Naar de inhoud
Actuele kortingscode:10% kortingGebruiken bij je bestelling

FiveM resources: scripts installeren, ensure en laadvolgorde

Zo installeer je een script (resource) op een FiveM-server: mapstructuur, fxmanifest.lua, SQL-import, ensure in de juiste volgorde, betaalde scripts met Asset Escrow en fouten oplossen.

  • beginner
  • ~20 min
  • Bijgewerkt op 2-10-2026

Alles wat op een FiveM-server “iets doet” (het framework, jobs, auto's, kaarten, de HUD) is een resource. We laten zien hoe je een script goed uploadt, in de juiste volgorde inschakelt en wat je doet als het niet start.

Wat je nodig hebt

  • Een FiveM-server bij StormHost (of je eigen FiveM-server)
  • Een script (resource) dat je van een betrouwbare bron hebt gedownload
  • Een programma om archieven uit te pakken op je computer (in Windows ingebouwd, of 7-⁠Zip)
  • Ongeveer 20 minuten

Wat een resource is#

Een resource is een map met scripts en bestanden die de server kan starten, stoppen en herstarten. De server herkent de map alleen als er een bestand fxmanifest.lua in staat (bij heel oude scripts __resource.lua).

  • De mapnaam is de naam van de resource. De map ox_lib = de resource ox_lib. Deze naam gebruik je bij ensure.
  • In de map staan meestal scripts voor de server (server/), voor spelers (client/), gedeelde scripts (shared/), de configuratie (config.lua), een webinterface (html/, web/) en modellen (stream/).
  • Een standalone script werkt op zichzelf. Andere scripts hebben een framework (ESX, QBCore, Qbox) of een bibliotheek (ox_lib, oxmysql) nodig. Wat een script nodig heeft, beschrijft de auteur in de handleiding (README).

De map resources en categorieën#

De server zoekt resources in de map resources naast server.cfg. Mappen tussen vierkante haken zijn categorieën: het zijn geen resources, ze zorgen alleen voor overzicht.

text
server.cfg
resources/
├── [standalone]/
│   ├── oxmysql/
│   │   └── fxmanifest.lua
│   └── ox_lib/
│       └── fxmanifest.lua
├── [esx]/
│   └── es_extended/
│       └── fxmanifest.lua
└── muj_skript/
    └── fxmanifest.lua

Hier bestaan de resources oxmysql, ox_lib, es_extended en muj_skript. Een hele categorie start je met één regel: ensure [standalone]. Je kunt categorieën ook in elkaar plaatsen.

Bij een server met txAdmin staat de map resources in de deploymentmap (txAdmin stelt daarvoor txData/<NAME>_<CODE>.base voor).

Waar je scripts vandaan haalt#

  • Officiële bronnen: de sectie Releases op het Cfx.re-forum (opent in een nieuw venster), Cfx Marketplace, de GitHub-pagina van de auteur (sectie Releases).
  • Koop betaalde scripts alleen via Cfx Marketplace of Tebex. Elders loop je het risico op oplichting.
  • Gebruik geen “leaks” (gestolen betaalde scripts). Ze bevatten vaak schadelijke code die andere resources “besmet” of vreemden toegang tot je server geeft. FiveM meldt zulke code als prohibited logic.

Een script installeren, stap voor stap#

Voorbereiding op je computer#

  1. Download het script. Heeft het op GitHub een sectie Releases, download het archief dan daar en niet via Code › Download ZIP. Een release bevat de gebouwde webinterface, de broncode vaak niet.

  2. Pak het archief uit.

  3. Zoek de map waar fxmanifest.lua direct in staat. Dat is de resource.

  4. Geef de map de naam die de auteur opgeeft. Meestal haal je het achtervoegsel van GitHub weg: hernoem ox_lib-main naar ox_lib.

    Waarom: andere scripts verwijzen op naam naar de resource. ox_lib-main zou voor die scripts niet bestaan.

  5. Lees de README: welke afhankelijkheden (dependencies) het script heeft, of er een .sql-bestand bij zit en wat je in config.lua moet instellen.

Pas op voor een dubbele map

Na het uitpakken ontstaat vaak muj_skript/muj_skript/fxmanifest.lua. Alleen de binnenste map hoort op de server. Anders meldt de server dat de resource geen manifest heeft, of vindt hij de resource niet.

Uploaden naar de server#

  1. Open in je klantaccount Mijn diensten, klik op de server en ga naar het tabblad Bestanden.
  2. Open de map resources (of een categorie, bijvoorbeeld [standalone]).
  3. Klik op Nieuwe map en maak een map met de naam van de resource, bijvoorbeeld muj_skript.
  4. Open de map en upload de bestanden met de knop Uploaden. Maak de submappen (client, server, html …) opnieuw aan met de knop Nieuwe map en upload daarin de bijbehorende bestanden.

Het tabblad Bestanden uploadt losse bestanden tot 100 MB en pakt geen archieven uit. Upload grote resources (auto's, kleding, kaarten, een heel framework) via SFTP. Support regelt de toegang voor je (contactgegevens), de werkwijze staat in de handleiding Bestandsbeheer.

Database en configuratie#

  1. Bevat het script een .sql-bestand, importeer het dan in de database van de server. Hoe dat met het programma HeidiSQL gaat, staat in de handleiding Database voor FiveM.

  2. Open config.lua (of config/*.lua) in de editor van het tabblad Bestanden en loop de instellingen door. Veelvoorkomende opties:

    Optie (voorbeeld)Wat die meestal doet
    Config.Framework = 'esx'Voor welk framework het script wordt ingesteld (esx, qb, qbx). Moet overeenkomen met je server.
    Config.Locale = 'cs'De taal van de teksten (hier Tsjechisch), als het script die taal bevat.
    Config.Debug = falseDebugmeldingen. Laat dit op een live server op false staan.

    De namen van de opties verschillen per script. Wat ze precies doen, beschrijft de auteur in de commentaarregels van het bestand.

Het script inschakelen#

  1. Voeg aan server.cfg (bij txAdmin in de CFG Editor) deze regel toe:

    server.cfgcfg
    ensure muj_skript
    • ensure – start de resource (en herstart hem als hij al draait).
    • muj_skript – de mapnaam van de resource.

    Zet de regel onder alle afhankelijkheden van het script (framework, oxmysql, ox_lib). Staat het script in een categorie die je al start (ensure [standalone]), dan hoef je de regel niet toe te voegen.

  2. Herstart de server. Of start het script zonder herstart, met commando's in de console (klantaccount, of Live Console in txAdmin):

    text
    refresh
    ensure muj_skript
    • refresh – de server doorzoekt de map resources opnieuw en vindt nieuwe resources. Zonder dit commando kent hij het nieuwe script niet.
    • ensure muj_skript – start het script.

Scripts die spelersgegevens wijzigen of items aan de inventaris toevoegen, kun je beter starten door de hele server te herstarten, niet terwijl hij draait.

fxmanifest.lua: wat erin staat#

fxmanifest.luaLua
fx_version 'cerulean'
game 'gta5'

author 'Jan'
description 'Voorbeeldscript'
version '1.0.0'

shared_script 'config.lua'
client_scripts {
    'client/*.lua'
}
server_scripts {
    '@oxmysql/lib/MySQL.lua',
    'server/*.lua'
}

ui_page 'html/index.html'
files {
    'html/index.html',
    'html/app.js'
}

dependencies {
    'oxmysql',
    'ox_lib'
}
OnderdeelWat het doet
fx_version 'cerulean'De versie van het manifestformaat. cerulean is de huidige. Zonder fx_version geeft de server een waarschuwing.
game 'gta5'Voor welk spel de resource is (gta5 = FiveM, rdr3 = RedM).
author, description, versionInformatie over het script, zonder invloed op de werking.
shared_scriptEen bestand dat zowel op de server als bij de speler wordt geladen (meestal config.lua).
client_scriptsScripts die bij de speler draaien. De speler downloadt ze. *.lua = alle .lua-bestanden in de map.
server_scriptsScripts die alleen op de server draaien. De speler krijgt ze nooit te zien. @oxmysql/lib/MySQL.lua laadt een bibliotheek uit een andere resource.
ui_page, filesDe webinterface van het script (NUI) en de bestanden die de speler downloadt.
dependenciesResources die eerst moeten draaien. De server probeert ze zelf te starten, en als er een ontbreekt, start hij het script niet.

Het oudere onderdeel lua54 'yes' is niet meer nodig: sinds juni 2025 draaien alle scripts in Lua 5.4.

Afhankelijkheden en laadvolgorde#

  • Resources starten in de volgorde van de ensure-regels in server.cfg.
  • De gebruikelijke volgorde: de standaardresources van FiveM › oxmysql › ox_lib › de kern van het framework › scripts van het framework › je eigen scripts.
  • De regel dependencies in het manifest kan ook voorwaarden aan de server stellen, bijvoorbeeld '/onesync' (OneSync ingeschakeld), '/server:4500' (minimale serverbuild) of '/gameBuild:h4' (minimale game build). Als aan een voorwaarde niet is voldaan, start het script niet.

Betaalde scripts en Asset Escrow#

Betaalde scripts van Cfx Marketplace of Tebex zijn meestal beveiligd met Asset Escrow: de code is versleuteld en draait alleen op de servers van de koper.

  • Het script draait alleen op een server waarvan de license key bij hetzelfde Cfx.re-account hoort als waarmee je het script hebt gekocht. Je downloadt het via de Cfx.re Portal (opent in een nieuw venster) of via de link in de e-mail van Tebex.
  • Versleutelde bestanden kun je niet bewerken. De auteur laat de configuratiebestanden (config.lua) meestal open, en die kun je wel aanpassen.
  • In de resource zit een .fxap-bestand. Dat moet samen met de rest naar de server worden geüpload, anders kan het script niet worden geverifieerd.

Auto's, kleding en kaarten (gestreamde bestanden)#

Modellen en textures worden naar spelers “gestreamd”: bij het verbinden downloaden ze die van de server. Zo'n resource heeft meestal een map stream en in het manifest verwijzingen naar databestanden van het spel.

fxmanifest.luaLua
fx_version 'cerulean'
game 'gta5'

files {
    'data/vehicles.meta',
    'data/carvariations.meta',
    'data/handling.meta'
}

data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
OnderdeelWat het doet
Map stream/Modellen en textures (.yft, .ytd, .ydr …). Alles in deze map wordt automatisch door spelers gedownload en staat niet in het manifest.
files { … }Databestanden die de speler downloadt.
data_file 'VEHICLE_METADATA_FILE'De definitie van het voertuig (vehicles.meta): modelnaam voor het spawnen, geluid, klasse.
data_file 'VEHICLE_VARIATION_FILE'Kleuren en varianten van het voertuig (carvariations.meta).
data_file 'HANDLING_FILE'Rijeigenschappen (handling.meta).
this_is_a_map 'yes'De resource is een kaart of interieur (MLO). Nadat de resource is gestart, laadt het spel de kaartgegevens opnieuw.

Praktische tips:

  • Elke auto of kaart maakt de download bij de eerste verbinding groter. Tientallen auto's met textures in hoge resolutie betekenen lange laadtijden.
  • Interieurs (MLO) vereisen vaak een bepaalde game build (sv_enforceGameBuild) of een andere resource met basisgegevens. Lees de README.
  • Upload grote pakketten met auto's en kaarten via SFTP, de bestanden zijn vaak groter dan 100 MB.

Een script controleren voordat je het installeert#

Een script draait op de server met volledige toegang tot de gegevens, de database en de spelers. Loop voordat je het start in elk geval dit na:

  • Bron: de officiële GitHub-pagina van de auteur, het Cfx.re-forum, Cfx Marketplace of Tebex. Geen willekeurige links van Discord.
  • Onleesbare code in een verder open script (lange reeksen betekenisloze tekens, load( met gedownloade tekst). Betaalde scripts zijn versleuteld met Asset Escrow, maar een gratis beschikbaar script hoort zulke code niet te bevatten.
  • Gegevens naar elders versturen: aanroepen van PerformHttpRequest naar adressen die niets met het script te maken hebben.
  • Nieuwe admincommando's waar de README niets over zegt.

Meldt FiveM bij een resource prohibited logic, dan bevat de resource waarschijnlijk schadelijke code die ook andere resources kan hebben besmet. Verwijder de resource en controleer je andere scripts.

Prestaties van resources#

  • De server meldt in de console server thread hitch warning: timer interval of … milliseconds als één servertick langer dan 150 ms duurde. Een enkele melding bij het opstarten is geen probleem. Regelmatige meldingen terwijl de server draait betekenen dat een script de server belast.
  • De veroorzaker vind je met de ingebouwde profiler: voer in de serverconsole profiler record 500 in (neemt 500 frames op), wacht even en voer dan profiler saveJSON profil.json in. Het bestand wordt opgeslagen in de map van waaruit de server wordt gestart. Download het op het tabblad Bestanden en open het in de ontwikkelaarstools van de browser Chrome (tabblad Performance › profiel laden).
  • Aan de kant van de speler toont het commando resmon in de F8-console de belasting per resource. Het werkt alleen in de ontwikkelaarsmodus van de client (anders krijg je de melding Access denied for command resmon).

Commando's voor het werken met resources#

CommandoWat het doet
refreshLaadt de lijst met resources opnieuw uit de map. Nodig na het uploaden van een nieuw script.
ensure <NAME>Start een resource, of herstart hem als hij al draait.
start <NAME>Start een resource die niet draait.
stop <NAME>Stopt een resource.
restart <NAME>Herstart een draaiende resource. Een gestopte resource wordt niet gestart (Can't restart a stopped resource.).

Je typt de commando's zonder schuine streep in de serverconsole. In txAdmin vind je hetzelfde in grafische vorm op de pagina Resources.

Controle#

  • Na een herstart of ensure staat in de console de regel Started resource muj_skript.
  • In txAdmin heeft de resource op de pagina Resources de status gestart.
  • In het spel werkt het script en in de clientconsole (F8) staan geen rode foutmeldingen.

Als iets niet werkt#

Meldingen die je hier niet vindt, zoek je op in het overzicht Veelvoorkomende fouten van een FiveM-server.

Couldn't find resource muj_skript.#

De server kent geen resource met deze naam.

  • De naam in ensure komt niet overeen met de mapnaam (hoofdletters en kleine letters maken verschil, let op -main).
  • fxmanifest.lua staat niet direct in de map (dubbele map na het uitpakken).
  • Je hebt het script geüpload terwijl de server draaide en geen refresh uitgevoerd.
  • De map staat buiten resources, of in een andere map resources dan die de server gebruikt (bij txAdmin is dat de deploymentmap).

Could not find dependency ox_lib for resource muj_skript.#

Er ontbreekt een afhankelijkheid. Installeer de resource die in de melding staat (hier ox_lib) en zet de ensure ervan boven het script. De melding Could not start dependency … betekent dat de afhankelijkheid bestaat, maar zelf niet is gestart. Zoek in de console naar de fout ervan.

Couldn't start resource muj_skript.#

De resource bestaat, maar is niet gestart. Boven deze melding staat in de console meestal de echte reden: een ontbrekende afhankelijkheid, een fout in het manifest, een voorwaarde waaraan niet is voldaan (OneSync, game build) of een licentiefout.

Waarschuwing dat de resource geen manifest heeft#

In de map ontbreekt fxmanifest.lua (of het bestand heeft een andere naam, bijvoorbeeld fxmanifest.lua.txt door Windows). Controleer de bestandsnaam en kijk of er een dubbele map is.

SCRIPT ERROR: @muj_skript/server/main.lua:25: …#

Een fout in de code van het script zelf. Na de dubbele punt staan het bestand, het regelnummer en een omschrijving. De meest voorkomende oorzaken: een verkeerde frameworkinstelling in config.lua, een ontbrekende tabel in de database (je hebt het .sql-bestand niet geïmporteerd), een incompatibele versie van het framework. Fouten bij de speler zie je in de F8-console.

You lack the required entitlement to use muj_skript#

Het betaalde script is gekocht met een ander Cfx.re-account dan het account waar de license key van de server bij hoort. Gebruik een license key van hetzelfde account, of draag het script op de Portal over aan het juiste account. Probeer ook de server te herstarten.

Failed to verify protected resource muj_skript#

De bestanden van het versleutelde script zijn beschadigd of er ontbreekt er een, meestal .fxap. Upload de hele resource opnieuw, inclusief het .fxap-bestand. Sommige SFTP-programma's dragen verborgen bestanden (die met een punt beginnen) niet over, schakel daarin de weergave van verborgen bestanden in.

Error parsing script of Failed to load script#

Het script gebruikt functies van een nieuwere serverversie. Update de artifacts (handleiding).

De interface van het script (menu, telefoon, HUD) wordt niet weergegeven#

De gebouwde webinterface ontbreekt. Download het script uit de sectie Releases in plaats van de broncode, of bouw de interface volgens de README (npm install en npm run build op je computer) en upload de map die dat oplevert.

Samenvatting

  • Een resource is een map met fxmanifest.lua, de mapnaam is de naam van de resource. Mappen [tussen haken] zijn alleen categorieën.
  • Download de release, pak hem uit, verwijder -main, upload hem naar resources, importeer de SQL en stel config.lua in.
  • Voeg ensure naam toe aan server.cfg, onder alle afhankelijkheden. Zonder herstart: refresh en ensure naam in de console.
  • Betaalde scripts (Asset Escrow) draaien alleen met een license key van hetzelfde Cfx.re-account en hebben het .fxap-bestand nodig.

Zoeken in de handleidingen