Every FiveM script comes with a dependency list. It is the cheapest compatibility check you will ever run, and most people read it too late — after the purchase, after the install, after the "Could not find resource" line in the console.
Here is what those lines actually mean, and how to check them before you install anything.
A dependency entry is a name, not a version
dependencies {
'qb-core',
'ox_lib',
'oxmysql'
}
Three strings. The server reads them and does exactly one thing: it refuses to start this resource while one of those named resources is not running. That is the whole mechanism. There is no version check, no API check, no compatibility matrix.
Two consequences follow:
- A dependency that exists but is three releases behind satisfies the check perfectly.
- A dependency you renamed on disk breaks the check, because the comparison is a literal string match against the resource folder name.
Three kinds of dependency
Framework. es_extended, qb-core, qbx_core. This is the one that matters most, because a script written for QBCore does not run on ESX, and vice versa. The console usually stays quiet here: the script starts, calls an export that does not exist, gets nil back, and every button in the UI does nothing.
Libraries. ox_lib, qbx_lib, voruniverse_lib, pma-voice. Shared helper libraries that several studios depend on. Installing the script without the library produces the same symptom as a framework mismatch: no error, no feature.
Data layer. oxmysql, mysql-async. If the resource opens a database and this one is missing, the failure surfaces on the first query instead of at start.
The name is the folder name
The check compares the string in the manifest with the name of a started resource. If your server folder is called qb-core-old, or you have both ox_lib and oxlib, the manifest will not match. That is why "it worked for him" is not evidence: the other server probably has the exact folder names the script author wrote.
Check it before you install
Open the package, open fxmanifest.lua, and list the dependencies. Then, on your server, list what is actually started. Every name on the first list must exist on the second, with the exact spelling.
If you are buying rather than installing, this list is part of the compatibility answer: a script that targets qbx_core is not a script for a QBCore server, whatever the title says.
The RPScripts FiveM Script Tester does that read for you. Paste a resource ZIP, a single Lua file or the manifest text, and it parses the manifest, resolves the dependency list and reports the framework the resource targets. It runs in the browser; nothing is uploaded.
Disclosure: this post is from RPScripts. The tool linked above is ours and free to use. You can also read the manifest by hand.
A short checklist
- Every dependency in
fxmanifest.luais started on your server, spelled exactly. - The framework dependency matches your framework, not the one the seller tested on.
- Library dependencies are installed, not only the script itself.
- The database driver named in the manifest is present.
- A dependency you renamed will be renamed back, or the manifest edited to match.
Ten minutes with the manifest before the purchase saves an evening with the console.
Top comments (0)