A FiveM server can have excellent scripts, a polished map, and a solid framework—and still fall over at startup because one resource expects another resource to be running first. The familiar results are errors about missing exports, unavailable events, nil values, or a script that starts successfully but does nothing useful.
This guide explains how FiveM resource dependencies work, how they relate to your server.cfg start order, and how to troubleshoot the usual failures without randomly moving lines around until the console gets quieter.
What counts as a FiveM resource dependency?
A dependency is a resource that another resource needs in order to function. It may provide shared functions, database access, inventory logic, UI utilities, target interactions, job data, or a framework’s player system.
For example, a dealership script may depend on a framework and an inventory system. The dealership does not necessarily need to know how either project is built internally; it calls documented exports or events supplied by those resources. If the provider is missing, stopped, renamed, incompatible, or started too late, those calls fail.
Common dependency categories include:
- Frameworks: the base player, job, money, and character layer used by many roleplay scripts.
- Libraries: shared utility resources for callbacks, UI, zones, menus, notifications, or common functions.
- Database connectors: resources that let server scripts communicate with their supported database setup.
- Gameplay systems: inventory, target, phone, housing, dispatch, voice, or appearance resources that other scripts integrate with.
- Map and asset packs: streamable assets or map resources required by a job, heist, interior, or activity.
Not every listed integration is a hard dependency. A script may support several inventories or frameworks and use only one. Read the creator’s documentation before starting every optional bridge you can find; duplicate integrations are a fast route to weird behavior.
The three places dependency problems usually appear
1. The resource folder name
FiveM starts a resource by its folder name. If documentation says ensure example_library, the folder should normally be named example_library. Renaming it to example_library-main, adding a version suffix, or nesting it inside an extra folder can break an otherwise correct configuration.
Before changing code, check that each resource directory contains its fxmanifest.lua at the expected level. A common extraction mistake produces a path like resources/[local]/my-script/my-script/fxmanifest.lua. In that case, FiveM sees the outer folder, not the actual resource.
2. The resource manifest
The fxmanifest.lua file tells FiveM what the resource contains and may declare dependencies. A creator can use the manifest’s dependency declaration to state that another resource needs to be started first. FiveM’s official documentation covers the available manifest entries, including dependency-related fields.
A simplified example looks like this:
dependency ‘example_library’
That line is useful documentation and can help enforce the intended relationship, but it does not replace following the installation instructions for every resource involved. Some projects require configuration values, SQL imports, permissions, build steps, or a matching bridge in addition to being started first.
Do not add dependency lines to third-party scripts casually. It can be appropriate when you maintain the resource and understand its requirements, but it will not fix an export name that changed between versions or a library that is configured incorrectly.
3. server.cfg load order
Your server configuration determines what is started and, when using sequential ensure lines, the order in which resources are requested to start. The safest broad rule is simple: start foundations before features that call them.
A typical structure might be:
- Core FiveM resources and server configuration.
- Database connector and essential libraries.
- Your chosen framework and its required base modules.
- Major systems such as inventory, targeting, voice, appearance, and housing.
- Jobs, activities, businesses, and standalone gameplay scripts.
- Maps, vehicles, clothing, and other asset resources where their documentation does not require a different order.
The exact order varies by framework and resource author. Treat a script’s readme as the source of truth when it conflicts with a generic order like the one above.
Why “No such export” is not always a load-order problem
When the console reports an unavailable export, moving a resource higher in server.cfg is a reasonable first check—but it is not the only explanation. An export error generally means one resource attempted to call a named function another resource did not expose at that moment.
Work through these possibilities in order:
- The provider resource never started. Look earlier in the console for its actual startup error.
- The folder name is wrong. The calling script may reference the original resource name while the installed folder uses a different name.
- The export name changed. The script may target an older or newer version of a library than the one on your server.
- The wrong integration is enabled. A resource configured for one framework, inventory, or target system may be trying to call exports that do not exist in your chosen stack.
- The provider started but failed initialization. A missing database connection, config value, key, permission, or required data can leave a resource technically running but unusable.
- The resource is outdated or modified. Unofficial edits and random “fixed” reuploads often remove the context needed to support a script safely.
In other words, an export error is a symptom. Find the first meaningful error in the startup sequence rather than treating the final red line as the root cause.
A clean dependency-check workflow
When adding a new FiveM script, resist the temptation to drag it into resources and hit restart during a busy session. A small repeatable process saves more time than it costs.
- Read the source page and installation notes. Confirm the supported framework, required libraries, optional integrations, database requirements, and version notes. Download from the original creator or a trusted official distribution point whenever possible.
- Inspect the folder structure. Make sure fxmanifest.lua sits in the resource folder that you will ensure.
- List every required resource. Separate hard requirements from optional bridges. Record the precise folder names the documentation expects.
- Check version compatibility. A modern script may not support an older framework build, and a legacy script may expect exports removed by a newer library.
- Add dependencies first. Install and configure required providers before installing the feature that depends on them.
- Place ensure lines deliberately. Start libraries and core systems before dependent scripts. Keep related resources grouped so future updates are easier to review.
- Restart in a test window. Watch the complete startup log, not just the last few console lines. Test the feature with a normal player account and any relevant job or permission level.
- Write down custom changes. If you edit a config, SQL file, manifest, or bridge, keep a short changelog. Your future self will appreciate it after the next update.
Use the manifest and docs as your map
FiveM’s resource manifest documentation is worth bookmarking, especially if you are beginning to inspect scripts instead of only installing them. It clarifies the role of fxmanifest.lua and helps server owners recognize what they are looking at before changing files.
For dependencies, creator documentation is still crucial. Two resources can both use Lua and both run on FiveM while being completely incompatible at the framework or API level. “It starts” is not the same thing as “it is integrated correctly.”
Common mistakes that create avoidable conflicts
Starting two resources that solve the same problem
Running multiple inventory, targeting, phone, character, or dispatch systems because each came bundled with a different script can cause duplicated UI, conflicting events, or data that only updates in one system. Choose a primary system, then configure supported bridges for scripts that need it.
Updating one half of an integration
Updating a library without checking dependent scripts can break changed exports or behavior. Before a major update, read the project’s changelog, back up your working configuration, and test on a staging server if you have one.
Using vague resource names
Names such as new, test, or script2 make troubleshooting miserable. Keep the creator’s expected folder name unless documentation tells you otherwise, and use category folders such as [core], [standalone], or [maps] to organize the filesystem without changing the resource’s own name.
Restarting only the dependent script
If you change a shared library, framework configuration, database setup, or a major integration, restarting one job script may not rebuild the state it relies on. Follow the resource author’s restart guidance, and schedule a full controlled restart when needed rather than experimenting on live players.
A note for GTA VI-focused communities
The dependency habits above are practical for current FiveM resource management. They should also make a server team more disciplined as new GTA platforms and tools emerge: document requirements, isolate changes, retain source links, and test integrations before a public rollout.
However, any discussion of how GTA VI modding, multiplayer tooling, or future resource formats may work is speculative and might not accurately represent current or future events. Do not assume that a GTA V/FiveM script, manifest pattern, or framework will transfer to GTA VI unless the relevant platform and creator documentation explicitly confirm it.
Make dependencies boring—and your server healthier
The best outcome is not a clever fix after a crash. It is a server where every resource has a known source, a clear owner, documented requirements, and an intentional place in the startup order. That makes updates calmer, support requests easier to answer, and the player experience much less likely to be interrupted by a missing export at peak time.
Looking for your next resource or a second set of eyes on an integration problem? Check out the available mod downloads, or create a free account and join the SixMods Community Forums to compare notes with other players, developers, and server owners.
Responses