General installation
Start-up order, staff rights, asset escrow and database: everything shared by all scripts.
#1. Copy the resources
Put each folder (tc-ui, tc-mechanic…) in your resources folder. Do not rename the folders: scripts refer to each other by name (tc-ui in particular).
#2. Order in server.cfg
Order matters: a script cannot start before its dependencies, and the framework is detected when the script loads.
ensure oxmysql
ensure ox_lib
# your framework: core (Vision) / es_extended / qb-core / qbx_core
ensure es_extended
# your inventory and target system, if any
ensure ox_inventory
ensure ox_target
# the interface library, BEFORE every TC script
ensure tc-ui
# the TC scripts
ensure tc-contextmenu
ensure tc-divisions
ensure tc-forensic
ensure tc-mechanic
ensure tc-banana_defusetc-ui must always start before the other TC scripts. When you update a script, update tc-ui too: they evolve together.
#3. Staff rights (ACE)
Outside Vision, staff access (/mecagestion, /divgestion, /forensicgestion, /gestioncontexte, /banana stop…) relies on the command ACE permission. Add to your server.cfg:
add_ace group.admin command allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.adminYou can also list identifiers in each script's Config.Bridge.Admins:
Config.Bridge = {
Admins = { 'license:xxxxxxxx', 'discord:123456789012345678' },
AdminAce = 'command',
}On Vision, access goes through the staff panel permissions (listed on each script's Commands page).
#4. Database
Every script that stores data creates its tables by itself at start-up (CREATE TABLE IF NOT EXISTS, so no duplicates). You can also import the provided sql/install.sql by hand: each script's Database page offers it to copy or download.
Scripts with no persistent storage (tc-ui, tc-banana_defuse) have no tables.
#5. Asset escrow
Scripts are protected by FiveM asset escrow (FXAP). In practice:
- Your server license key (
sv_licenseKey) must be generated with the Cfx.re account that received the script. - Only the logic (
client/,server/,shared/) is encrypted.config.lua,bridge/,web/,sql/andinstall/stay readable and editable. - After adding a script to your account, restart the whole server (not only the resource) so the license is read again.
#6. Check it works
- Start the server and watch the console: no red line related to
tc-*. - Set
Debug = truein the script'sConfig.Bridgeto print the detected framework and inventory (set it back tofalseafterwards). - In game, try the script's main command (see its Commands page).
If something is wrong: Common troubleshooting.