server.cfg is het belangrijkste configuratiebestand van een FiveM-server: het bepaalt de poort, de naam in de serverlijst, de license key, de game build, OneSync, welke resources starten en de rechten van admins. We lopen het regel voor regel door en leggen bij elke instelling uit wat die doet en welke waarde je kiest.
Wat je nodig hebt
- Een FiveM-server bij StormHost (of je eigen FiveM-server)
- Toegang tot de bestanden: het tabblad Bestanden, of de CFG Editor in txAdmin
- Ongeveer 25 minuten
Waar je server.cfg vindt#
- Server met txAdmin:
server.cfgstaat in de map die je bij het deployen van het recept hebt gekozen (txAdmin stelt daarvoortxData/voor). Je bewerkt het bestand het makkelijkst in txAdmin via CFG Editor in het linkermenu, opslaan doe je met Ctrl+S. Het pad vind je in txAdmin onder Settings › FXServer (het veld Server Data Folder, het veld CFG File Path zie je nadat je de geavanceerde opties hebt weergegeven).<NAME>_ <CODE>. base - Server zonder txAdmin:
server.cfgstaat in de hoofdmap van de server. Je bewerkt het in je klantaccount op het tabblad Bestanden (handleiding).
Wijzigingen in server.cfg worden pas actief na een herstart van de server.
Het klantaccount kan sommige regels overschrijven
Bij een server zonder txAdmin kan het klantaccount bij elke start waarden van het tabblad Instellingen › Variabelen naar server.cfg schrijven (meestal de poort, de servernaam, de license key en het aantal slots). Wordt je wijziging in deze regels na een herstart steeds teruggedraaid, pas de waarde dan aan in de variabelen, niet in het bestand.
Hoe server.cfg wordt gelezen#
- Het bestand wordt van boven naar beneden gelezen, regel voor regel. Elke regel is één commando van de serverconsole.
- Tekst na
#is commentaar en wordt door de server genegeerd. Je zet een regel “uit” door er#voor te zetten. - Zet waarden met spaties tussen aanhalingstekens:
sv_hostname "Muj server". - Staat dezelfde instelling twee keer in het bestand, dan geldt de laatste.
- Met het commando
exec bestand.cfglaad je nog een configuratiebestand (bijvoorbeeldexec permissions.cfg). Handig om het overzichtelijk te houden.
Variabelen (convars) stel je in met drie commando's:
| Commando | Wat het doet | Wanneer je het gebruikt |
|---|---|---|
set | Stelt de variabele alleen voor de server in. | Geheime waarden en serverwaarden, bijvoorbeeld set mysql_connection_string. |
setr | Stelt de variabele in en stuurt die ook naar spelers (clientscripts). | Instellingen die scripts bij de speler nodig hebben (taal, voicechat). Nooit voor wachtwoorden. |
sets | Stelt een variabele in die zichtbaar is in de serverlijst en in info.json. | Openbare gegevens: sets sv_projectName, sets tags, sets locale. |
Stel een wachtwoord nooit in met setr of sets
Een waarde die je met setr instelt, wordt naar alle spelers gestuurd, en een waarde die je met sets instelt, is openbaar zichtbaar. Stel de connection string van de database of een ander wachtwoord altijd alleen met set in.
Voorbeeld van een server.cfg#
Het voorbeeld is gebaseerd op de standaardconfiguratie van FiveM en de recepten van txAdmin. De afzonderlijke blokken lichten we hieronder toe.
# --- Netwerk ---
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
sv_maxclients 48
sv_endpointPrivacy true
# --- Serverlijst ---
sv_hostname "Muj RP server"
sets sv_projectName "Muj RP server"
sets sv_projectDesc "Tsjechische roleplayserver met eigen scripts"
sets tags "roleplay, czech, esx"
sets locale "cs-CZ"
load_server_icon logo.png
#sv_master1 ""
# --- Sleutels ---
sv_licenseKey "<LICENSE_KEY>"
set steam_webApiKey "none"
# --- Spel en beveiliging ---
sv_enforceGameBuild 3258
sv_scriptHookAllowed 0
sv_enableNetworkedSounds false
sv_enableNetworkedScriptEntityStates false
sv_filterRequestControl 2
# --- OneSync (alleen zonder txAdmin, zie hieronder) ---
set onesync on
# --- Database ---
set mysql_connection_string "mysql://<USER>:<PASSWORD>@<DATABASE_IP>:3306/<DATABASE_NAME>"
# --- Resources ---
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure oxmysql
ensure [standalone]
# --- Rechten ---
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:<FIVEM_ID> group.adminVervang de waarden tussen punthaken door je eigen gegevens (haal de haken weg): <LICENSE_KEY> is de sleutel uit de Cfx.re Portal, de databasegegevens vind je op het tabblad Databases, <FIVEM_ID> is het numerieke ID van je Cfx.re-account (hoe je dat vindt, staat in het gedeelte over rechten).
Netwerk en slots#
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer je het wijzigt |
|---|---|---|---|
endpoint_add_tcp "0.0.0.0:30120" | Op welk adres en welke poort de server TCP-verbindingen accepteert (downloaden van resources, informatie voor de serverlijst). | 0.0.0.0 en de poort van het tabblad Netwerk (regel Verbindingsadres). | Alleen als de poort verandert. 0.0.0.0 betekent “op alle adressen van de server”. |
endpoint_add_udp "0.0.0.0:30120" | Hetzelfde voor UDP, waarover het spel zelf loopt. | Hetzelfde adres en dezelfde poort als bij TCP. | TCP en UDP moeten altijd dezelfde poort hebben. |
sv_maxclients 48 | Het maximale aantal spelers (1–2048). | 48 | Voor meer dan 48 heb je een abonnement Element Club Argentum nodig (zie OneSync). Waarden vanaf 32 vereisen OneSync. |
sv_endpointPrivacy true | Verbergt de IP-adressen van spelers in openbare overzichten van de server. | true | Laat dit aan staan, het beschermt spelers. |
30120 is de standaardpoort van FiveM. Bij ons heeft je server de poort die je op het tabblad Netwerk ziet, en die moet in beide endpoint_add_*-regels staan. Let op na het deployen met een txAdmin-recept: als txAdmin de poort van de server niet kent, schrijft het juist de standaardwaarde 30120 naar server.cfg. Controleer de poort en pas hem zo nodig aan.
Naam en serverlijst#
| Instelling | Wat het doet | Aanbevolen waarde |
|---|---|---|
sv_hostname | De servernaam voor de console en sommige tools. In de serverlijst is die meestal niet te zien. | Een korte servernaam. |
sets sv_projectName | De projectnaam die spelers in de serverlijst zien. Het hoort een naam te zijn, geen lijst met tags. | De naam van je community, bijvoorbeeld Muj RP server. |
sets sv_projectDesc | De beschrijving in de serverlijst, één zin. | Een korte zin over de server. |
sets tags | Tags, gescheiden door komma's, waarmee spelers de server zoeken. | roleplay, czech en dergelijke. |
sets locale | De hoofdtaal van de server. De standaardwaarde root-AQ is een placeholder en hoort te worden gewijzigd. | De taal van je spelers, bijvoorbeeld nl-NL voor Nederlands of cs-CZ voor Tsjechisch. |
load_server_icon | Het pictogram van de server in de lijst. Het moet een PNG van 96 × 96 px in de servermap zijn. | logo.png |
sets banner_detail, sets banner_connecting | Het adres van de bannerafbeelding in de serverdetails en tijdens het verbinden. | Optioneel. |
#sv_master1 "" | Als deze regel niet is uitgecommentarieerd, staat de server in de lijst als privé en kun je er vanuit de serverbrowser niet mee verbinden. Uit de lijst verdwijnt hij daardoor niet. | Laat de regel uitgecommentarieerd met #, of verwijder hem. |
sets sv_projectName en sets sv_projectDesc zijn verplicht. Als ze ontbreken, geeft de server bij het opstarten een foutmelding en verschijnt hij mogelijk niet in de lijst.
Kleuren in de naam schrijf je met de codes ^0 tot en met ^9 (bijvoorbeeld ^1 voor rood). Overdrijf het niet, een te “versierde” naam kan door de serverlijst worden ingekort.
Sleutels#
| Instelling | Wat het doet | Aanbevolen waarde |
|---|---|---|
sv_licenseKey | De license key van de server uit de Cfx.re Portal. Zonder deze sleutel start de server niet. | Je eigen sleutel (handleiding). |
set steam_webApiKey | Een sleutel voor de Steam Web API. Je hebt hem alleen nodig als scripts met de Steam-identifiers van spelers werken. | "none", of je eigen sleutel van steamcommunity.com/dev/apikey (opent in een nieuw venster). |
rcon_password | Het wachtwoord voor de externe console RCON (UDP). Als het niet is ingesteld, staat RCON uit. | Niet instellen. Je hebt een console in je klantaccount en in txAdmin. |
Spel en beveiliging#
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer je het wijzigt |
|---|---|---|---|
sv_enforceGameBuild | Dwingt een versie van het spel (game build) met bepaalde DLC's af. Spelers downloaden die bij hun eerste verbinding. Kan alleen bij het opstarten van de server worden ingesteld. | De build die je scripts en kaarten vereisen. De recepten van txAdmin stellen hem zelf in. | Als een script of MLO een nieuwere DLC nodig heeft (auto's, interieurs). |
sv_scriptHookAllowed | Staat spelers ScriptHook V toe (menu's en mods aan de kant van de speler). | 0 (niet toegestaan) | Sta dit niet toe, het zet de deur open voor cheats. |
sv_pureLevel | Verbiedt aangepaste spelbestanden bij spelers: 1 staat alleen geluidsmods en bekende grafische mods toe, 2 verbiedt alles. | Niet ingesteld, of 1 | Competitieve servers en PvP-servers. |
sv_enableNetworkedSounds | Laat clients geluidsevents via de server versturen. Wordt vaak misbruikt. | false | Alleen als een script dit uitdrukkelijk nodig heeft. |
sv_ | Laat clients de status van entiteiten via de server wijzigen. Wordt vaak misbruikt. | false | Alleen als een script dit uitdrukkelijk nodig heeft. |
sv_filterRequestControl | Blokkeert het overnemen van de controle over entiteiten van andere spelers (0 uit tot en met 4 het strengst). | 2 (blokkeert het overnemen van entiteiten die door spelers worden bestuurd) | Probeer 1 bij problemen met scripts die entiteiten overdragen. |
Een selectie van game builds (elke build bevat ook alle oudere DLC's):
| Build | Naam van de DLC |
|---|---|
2802 | Los Santos Drug Wars |
3095 | The Chop Shop |
3258 | Bottom Dollar Bounties |
3407 | Agents of Sabotage |
3570 | Money Fronts |
3751 | A Safehouse in the Hills |
3889 | The Kortz Center Heist |
De volledige en actuele lijst staat in de documentatie van FiveM (link onderaan). Een hogere build betekent een grotere download voor spelers bij hun eerste verbinding.
OneSync#
OneSync is het synchronisatiesysteem van FiveM: de server kent de positie en de status van alle spelers en entiteiten (auto's, personages, objecten) en bepaalt zelf wat hij naar wie stuurt. Daardoor kan hij meer spelers aan en kunnen scripts rechtstreeks op de server met entiteiten werken. Moderne frameworks (ESX Legacy, QBCore, Qbox) vereisen OneSync.
| Modus | Wat het betekent | Wanneer je het gebruikt |
|---|---|---|
on | Volledige OneSync (voorheen “Infinity”), tot 2048 spelers. Entiteiten ver van een speler worden niet naar hem gestuurd. | Bijna altijd. De recepten van txAdmin zetten het zelf aan. |
legacy | Compatibiliteitsmodus voor oude scripts die ervan uitgaan dat elke speler alle anderen ziet. Slechtere prestaties en grafische fouten. | Alleen voor een oud script dat anders niet werkt. |
off | Zonder OneSync, de server stuurt alleen gegevens tussen spelers door. Alleen voor kleine servers: 32 slots of meer vereisen OneSync. | Vrijwel nooit. |
Limieten voor slots:
- OneSync is gratis tot 48 slots. Voor meer slots heb je een abonnement FiveM Element Club Argentum of hoger nodig op de Cfx.re Portal (opent in een nieuw venster).
sv_maxclientsvan 32 of meer vereist OneSynconoflegacy, meer dan 64 alleenon.- Het abonnement verhoogt het aantal slots niet vanzelf. Na de aankoop moet je
sv_maxclientsverhogen en de server herstarten.
Waar je OneSync inschakelt:
- Met txAdmin: alleen in txAdmin, Settings › FXServer › geavanceerde opties › OneSync (aanbevolen: OneSync On). Regels met
set onesyncinserver.cfgcommentarieert txAdmin zelf uit, met de opmerkingonesync MUST only be set in the txAdmin settings page. - Zonder txAdmin: met de regel
set onesync oninserver.cfg.
Het platform FiveM for GTAV Enhanced gebruikt geen synchronisatie via spelers (P2P) meer, het spel loopt altijd via de server.
Resources en de volgorde van ensure#
| Commando | Wat het doet |
|---|---|
ensure naam | Start een resource. Als hij al draait, wordt hij herstart. Het aanbevolen commando voor server.cfg. |
start naam | Start een resource als die niet draait. |
ensure [categorie] | Start alle resources in de map [categorie] (een map tussen vierkante haken). |
Resources starten in de volgorde waarin ze in het bestand staan. Daarom:
- Bovenaan de standaardresources van FiveM (
mapmanager,chat,spawnmanager…). - Daarna de bibliotheken waar de rest van afhangt:
oxmysql,ox_lib. - Daarna de kern van het framework (
es_extended,qb-core,qbx_core). - Tot slot de scripts van het framework en je eigen scripts.
Staat een script vóór zijn afhankelijkheid, dan start het niet. Details staan in de handleiding FiveM resources.
ACE-rechten#
FiveM heeft een ingebouwd rechtensysteem (ACL). Het bestaat uit twee commando's:
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:<FIVEM_ID> group.adminadd_ace group.admin command allow– de groepgroup.adminmag alle commando's gebruiken (commandis het algemene recht op commando's).add_ace group.admin command.quit deny– behalve het commandoquit, dat de server uitschakelt.add_principal identifier.– de speler met deze identifier hoort bij de groepfivem: <FIVEM_ ID> group.admin group.adminen erft de rechten ervan.
In het algemeen: add_ace <WHO> <WHAT> allow|deny geeft een recht, add_principal <WHO> <GROUP> plaatst een speler in een groep. De omgekeerde commando's zijn remove_ace en remove_principal. Of iemand een recht heeft, controleer je in de console met het commando test_ace <WHO> <WHAT>.
Identifiers van spelers:
| Identifier | Voorbeeld | Opmerking |
|---|---|---|
identifier.fivem: | identifier. | Het numerieke ID van het Cfx.re-account. txAdmin gebruikt dit voor de hoofdadmin. |
identifier.license: | identifier. | De Rockstar-licentie van het spel. Wordt door de meeste frameworks gebruikt (QBCore). |
identifier.discord: | identifier. | Het numerieke ID van de Discord-gebruiker. De speler moet Discord open hebben staan. |
identifier.steam: | identifier. | Het Steam ID in hexadecimale vorm. Werkt alleen als steam_webApiKey is ingesteld. |
De identifiers van een bepaalde speler vind je in txAdmin: Players, klik op de speler en open het tabblad IDs. Het toevoegen van de admin doet txAdmin zelf (de regel {{addPrincipalsMaster}} in het recept). Frameworks hebben hun eigen admingroepen, zie ESX, QBCore of Qbox?.
Voor gevorderden: rechten voor een resource
Een resource kan het recht nodig hebben om commando's uit te voeren, bijvoorbeeld add_ace resource.es_extended command.add_principal allow. Zulke regels staan in de recepten van frameworks. Verwijder ze niet, anders kan het framework geen groepen toewijzen.
Controle#
- Sla
server.cfgop en herstart de server. - Controleer in de console (klantaccount of Live Console in txAdmin) of er bij het opstarten geen fouten zijn verschenen en of de resources zijn gestart (
Started resource …). - Open in je browser
http://(het adres van het tabblad Netwerk). Je ziet JSON met de openbare instellingen van de server, waaronder de waarden die met<IP_ ADDRESS>: <PORT>/ info. json setszijn ingesteld (sv_projectName,locale,tags). - Controleer de server met de tool CFX Resolver: die toont de naam, de slots, OneSync en de afgedwongen build.
Als iets niet werkt#
Meldingen die je hier niet vindt, zoek je op in het overzicht Veelvoorkomende fouten van een FiveM-server.
De server staat niet in de serverlijst of is “privé”#
- De regel
sv_master1 ""mag niet actief zijn. Commentarieer hem uit met#. - Controleer of je zowel
sets sv_projectNamealssets sv_projectDeschebt. - Na het opstarten kan het tot 8 minuten duren voordat de server in de lijst verschijnt.
- Controleer of je rechtstreeks met de server kunt verbinden: in het spel F8 en
connect <IP_ADDRESS>:<PORT>.
Connection rejected by server: Client/Server game build revision mismatch#
De speler en de server hebben een verschillende revisie van de build, meestal kort na een update van het spel. Update de artifacts van de server (handleiding). Spelers kunnen in de FiveM-client het Update Channel omzetten (tandwiel › Game).
Spelers doen er lang over om te verbinden of blijven hangen bij het downloaden#
Na een wijziging van sv_enforceGameBuild downloadt elke speler de DLC-gegevens. Dat gebeurt maar één keer. Blijven spelers herhaaldelijk hangen, controleer dan of de build bestaat (tabel hierboven) en of je geen typfout hebt gemaakt.
In server.cfg is een regel ## [txAdmin CFG validator]: … verschenen#
txAdmin heeft een regel uitgecommentarieerd die niet in server.cfg mag staan en heeft de reden achter de dubbele punt gezet. Meestal is dat onesync MUST only be set in the txAdmin settings page. (OneSync hoort in de instellingen van txAdmin) of you MUST NOT start/stop/ensure txadmin resources. (txAdmin start vanzelf, verwijder ensure monitor).
Meer dan 48 slots instellen lukt niet#
Zonder een abonnement Element Club Argentum is de limiet 48. Bij een server zonder txAdmin kan het aantal slots ook worden bepaald door een variabele op het tabblad Instellingen › Variabelen.
Een wijziging is na een herstart teruggedraaid#
Je hebt een regel aangepast die bij het opstarten wordt overschreven door een variabele van het tabblad Instellingen, of een ander bestand dan het bestand dat de server laadt. Controleer bij txAdmin CFG File Path onder Settings › FXServer.
Samenvatting
server.cfgwordt van boven naar beneden gelezen.setis alleen voor de server,setrwordt naar spelers gestuurd,setsis openbaar zichtbaar. Wachtwoorden alleen metset.- De poort in
endpoint_add_tcpenendpoint_add_udpmoet overeenkomen met het tabblad Netwerk.sv_projectName,sv_projectDescensets localebepalen hoe de server er in de lijst uitziet. - OneSync
onis de juiste keuze voor bijna elke server. Met txAdmin schakel je het alleen in onder Settings › FXServer. Gratis tot 48 slots. - Start resources met het commando
ensure, afhankelijkheden eerder dan scripts. Admins voeg je toe metadd_principalen de identifier van de speler.