Server FiveM potřebuje licenční klíč z Cfx.re keymasteru a ten se vystavuje tobě, ne tvému hostingu. Zapisuje se do něj adresa, na které server běží, takže při přesunu serveru klíč upravuješ, ne kopíruješ. Všechno ostatní - resources, framework, sloty, model synchronizace - je záležitost server.cfg a txAdminu a téměř každá stížnost na výkon FiveM, kterou kdy přečteš, nakonec skončí u některého resource, ne u stroje.
Tenhle návod pokrývá celou cestu: klíč, instalaci FXServeru, první spuštění txAdminu, řádky konfigurace, na kterých záleží, i ty, které tiše rozbíjejí věci, porty, oprávnění a hledání skriptu, který ti žere čas snímku.
Co je FXServer a co potřebuje#
FXServer je serverový program Cfx.re. Neobsahuje žádnou hru: hostuje resources, tedy složky s Lua, JavaScriptem nebo C# a souborem fxmanifest.lua, který je popisuje, a připojeným klientům GTA V říká, které z nich si mají stáhnout a spustit. Holý FXServer je prázdná mapa, na které nic není. Když lidé říkají „FiveM server“, myslí tím FXServer plus framework - ESX, QBCore, Qbox - plus stovku resources navrch.
Plynou z toho hned dvě věci. První: výkon tvého serveru je většinou cizí kód. Špatně napsaný skript, který sis nainstaloval, protože na fóru vypadal dobře, je nejpravděpodobnější příčina serveru, který sekává. Druhá: aktualizace není jedna věc. Existuje build FXServeru, verze frameworku, každý resource zvlášť a build GTA V, na který server klienty připíná, a všechno se vyvíjí nezávisle.
Co potřebuješ, než začneš:
- Licenční klíč z
keymaster.fivem.net. Zdarma, svázaný s tvým účtem Cfx.re. - Stroj nebo tarif. 2-4 GB pro malý server, 6-12 GB pro obydlený roleplay server. Hlavní vlákno táhne jedno rychlé jádro.
- Jeden port, otevřený jako TCP i UDP. Výchozí je
30120. - Databázi, pokud vůbec používáš nějaký framework. ESX i QBCore ji potřebují.
- Místo na disku pro streamované assety. Vlastní vozidla a interiéry tvoří většinu velkého serveru a každý bajt si stáhne každý nový hráč.
Licenční klíč Cfx.re#
Přihlas se na keymaster.fivem.net, vytvoř klíč serveru a zadej IP adresu, na které bude server běžet, a štítek, který poznáš i později. Dostaneš dlouhý klíč, který patří do server.cfg jako sv_licenseKey.
Pravidla kolem něj jsou krátká a všechna se týkají vlastnictví:
- Jeden klíč na jeden server. Dva servery na jednom klíči jsou licenční chyba na tom druhém, ne chytrá úspora.
- Klíč si pamatuje svou adresu. Když se server přestěhuje na jinou IP, uprav klíč v keymasteru nebo vystav nový. Klíč, jehož adresa už nesedí, selže při startu, neposkytne jen tichou degradaci. Zbytek té práce popisuje přesun serveru bez ztráty hráčů.
- Klíč je tvůj a může být odebrán. Cfx.re odebírá klíče serverům, které porušují podmínky - obvyklým důvodem je prodej přístupu k hernímu obsahu - a odebrání se váže na účet, ne na stroj.
- Je to přihlašovací údaj. Patří do
server.cfga nikam jinam. Ne na screenshot konzole, ne do zprávy na Discordu, ne do veřejného repozitáře Git spolu se zbytkem složky server-data.
Instalace FXServeru a první spuštění txAdminu#
Buildy FXServeru pocházejí ze serveru artifactů Cfx.re na runtime.fivem.net/artifacts/fivem/. Je tam cesta pro Linux a cesta pro Windows a každá uvádí buildy označené jako recommended a latest. Vezmi recommended, pokud framework, který potřebuješ, výslovně nechce něco novějšího; „latest“ existuje proto, aby lidé mohli testovat poruchy, a také je najdou.
Obvyklé uspořádání drží program a tvůj obsah odděleně, aby aktualizace jednoho nerušila druhé:
/home/fivem/ server/ the extracted artifacts - replaced wholesale on update server-data/ your resources, your server.cfg - the thing you back up resources/ server.cfg$ cd /home/fivem/server-data$ bash /home/fivem/server/run.sh +exec server.cfgKdyž ho spustíš úplně bez argumentů, naběhne místo toho txAdmin, což je doporučený způsob, jak server postavit od nuly. txAdmin je součástí artifactů - není co instalovat - a spustí webové rozhraní na portu 40120 a do konzole vypíše jednorázový PIN. Otevři http://your-address:40120, zadej PIN a vytvoř administrátorský účet.
Odtud ti deployer postaví server podle receptu: čistý server cfx-default, nebo plnou instalaci ESX či QBCore se staženými resources a naimportovaným schématem databáze. Pro první server je to opravdu nejrychlejší správná cesta, protože recept zapojí části, které se ručně spojují zdlouhavě. Který recept vlastně chceš, rozebírá volba frameworku pro FiveM a to rozhodnutí stojí za deset minut, než nějaký spustíš.
server.cfg řádek po řádku#
# Listen on one port as both TCP and UDPendpoint_add_tcp "0.0.0.0:30120"endpoint_add_udp "0.0.0.0:30120"# Resources - order matters, dependencies firstensure mapmanagerensure chatensure spawnmanagerensure sessionmanagerensure hardcap# What the server list showssv_hostname "Longship RP | Serious roleplay | EU"sets tags "roleplay, esx, eu"sets locale "en-GB"set sv_projectName "Longship RP"# Slots and syncsv_maxclients 48set onesync onset onesync_population true# Pin the DLC level clients must be onsv_enforceGameBuild 2699# Securitysv_scriptHookAllowed 0set sv_entityLockdown "strict"set sv_endpointPrivacy trueexec secrets.cfgŘádky, které lidé pokazí, v pořadí, v jakém je pokazí:
`ensure` versus `start`. ensure resource spustí, nebo ho restartuje, pokud už běží. start ho jen spustí. Používej ensure na všechno; rozdíl se projeví, když znovu načteš konfiguraci a polovina resources se nevrátí.
`set`, `sets` a `setr`. Tři různé rozsahy platnosti convaru. set je jen pro server. sets ho zapíše do informačního bloku serveru, aby se objevil v seznamu serverů. setr ho replikuje klientům, aby ho tam mohly číst skripty. Když ti framework říká, abys použil setr, myslí to vážně; použití set místo toho vyrobí resource, který se na klientu chová jinak bez viditelného důvodu.
`sv_maxclients` a OneSync. Bez OneSync je pevný strop 32. S set onesync on jsi v implementaci Infinity a strop je velmi vysoké číslo, což neznamená, že ho tvůj server dokáže využít. Skutečným limitem roleplay serveru jsou skripty, ne příznak.
`sv_enforceGameBuild`. Tohle připíná úroveň DLC, na které musí být klienti. Když ho nastavíš špatně, hráčům se řekne, ať si před připojením změní build hry, a oni to čtou jako to, že je tvůj server rozbitý. Čísla buildů se mění s každou aktualizací GTA Online, takže aktuální vezmi z dokumentace Cfx.re, ne z dva roky starého návodu.
`sv_entityLockdown`. Hodnoty jsou inactive, relaxed a strict. Na serveru s OneSync strict brání klientům vytvářet entity, které server neschválil, a je to nejúčinnější protipodvodný řádek v celém souboru. Zároveň rozbíjí špatně napsané resources, které spawnují věci na straně klienta, což je rozumný filtr na tvůj seznam resources.
RCON. rcon_password ve FiveM je zastaralá nešifrovaná vzdálená konzole a není dobrý důvod ji zapínat, když existuje txAdmin. Nech ji nenastavenou. Obecný argument pro všechny hry najdeš v článku bezpečné používání RCON.
Oprávnění jsou samostatný systém oddělený od seznamu adminů v txAdminu a jejich pletení je zasvěcení, kterým si projde každý:
add_ace group.admin command allowadd_ace group.admin command.quit denyadd_principal identifier.license:1a2b3c4d5e group.adminadd_principal identifier.discord:123456789012345678 group.modAce je oprávnění, principal je osoba nebo skupina a add_principal obojí spojí. Administrátoři txAdminu se ukládají v txAdminu a řídí webový panel; ace řídí příkazy ve hře a oprávnění resources. Kdo je admin txAdminu, není ve hře automaticky nic. Každý řádek server.cfg rozebírá zbytek souboru včetně convarů, které frameworky očekávají, že nastavíš.
Porty, endpointy a připojení#
| Port | Protokol | Účel |
|---|---|---|
30120 | UDP | Herní provoz |
30120 | TCP | Endpoint HTTP: registrace v seznamu, stahování assetů, /info.json |
40120 | TCP | Webové rozhraní txAdminu |
Stejné číslo nese dva různé protokoly a selhávají různě, což z toho dělá nejužitečnější poznatek, když se server FiveM chová divně. Otevřené UDP a zavřené TCP znamená server, který se nezobrazí v seznamu a nikdo se k němu nedokáže dokončit připojení, protože úvodní handshake a stahování assetů jdou přes HTTP. Otevřené TCP a zavřené UDP znamená hráče, kteří se připojí, stáhnou všechno a pak zůstanou na černé obrazovce.
Hráči se připojují příkazem connect your-address:30120 v konzoli F8, přes seznam serverů nebo odkazem cfx.re/join. Místo IP můžeš na adresu dát jméno - připojení domény ke game serveru popisuje záznam A - ačkoli licenční klíč se pořád řídí adresou pod ním. Porty game serverů vysvětleně ukazuje, jak port zvenku správně otestovat, což stojí za to udělat dřív, než začneš vinit konfiguraci.
txAdmin v běžném provozu#
Deployer při prvním spuštění je to, s čím se lidé setkají, ale každodenní hodnota je jinde.
- Plánované restarty s upozorněním ve hře v intervalech, které si nastavíš. Instance FXServeru se při dlouhém uptime zhoršují, stejně jako frameworky, které na nich běží; restart každých šest nebo dvanáct hodin je běžná praxe. Volbu hodiny řeší restartovací plány, které pomáhají.
- Zvládání pádů a zaseknutí. txAdmin sleduje hlavní vlákno serveru a restartuje ho, když přestane reagovat, což je rozdíl mezi dvouminutovým výpadkem ve 3 ráno a šestihodinovým.
- Správa hráčů. Každé připojení se eviduje podle jeho identifikátorů - licence, Steam, Discord, IP - takže ban sleduje člověka, ne jméno. Varování, důvody banů i šablony banů žijí tady a historie je to, co čteš, když se někdo odvolává.
- Whitelist, schvalováním adminem, podle role na Discordu nebo podle členství v guildě. Pro seriózní roleplay server je to funkce, díky které zbytek moderace funguje.
- Živá konzole, tedy stejný výstup, jaký bys dostal z terminálu, plus příkazová řádka. Čtení konzole je o tom, které řádky v té zdi textu mají význam.
- Graf výkonu, kterému se věnuje další sekce a který je důvodem mít txAdmin spuštěný dřív, než si myslíš, že ho potřebuješ.
Většina lagů je resource, ne stroj#
Roleplay server, který sekává se čtyřiceti hráči, téměř nikdy nepotřebuje větší tarif. Potřebuje někoho, kdo si přečte monitor resources.
FXServer spouští tvoje serverové skripty na jednom hlavním vlákně. Práce každého resource v jednom ticku probíhá na tom vlákně postupně, takže jeden skript, který dělá něco drahého, zpozdí všechno ostatní - včetně synchronizace, kterou hráči pociťují jako rubber-banding. Přidání paměti na to nemá žádný vliv. Přidání jader pomůže jen málo, protože vlákno, na kterém záleží, se rozdělit nedá.
Graf výkonu v txAdminu rozděluje do košů, jak dlouho trval hlavní vlákno serveru na každý tick. Zdravý server tráví téměř všechny ticky v nejrychlejším koši. Server s jedním špatným resource si vypěstuje ocas: malý, ale stálý zlomek ticků, které trvají mnohem déle, než by měly, což hráči pociťují právě jako periodické sekání, ne jako stálý lag.
Jak resource najít:
- Na klientu stiskni F8 a spusť
resmon 1. Vypíše každý resource s jeho CPU časem na snímek a pamětí na daném klientu. Ukazuje jen náklady na straně klienta, ale ty jsou polovinou problému a tou snáze opravitelnou. - Na serveru použij profiler:
profiler record 500zachytí pět set ticků, pakprofiler saveneboprofiler viewukáže, kam šel čas. - Půlení. Zastav polovinu nepodstatných resources, sleduj graf, vrať je zpět. Hrubé, rychlé a vždycky to funguje.
Vzorce, které to způsobují, jsou stále stejné:
- Vlákno s
Citizen.Wait(0)- tedy v každém snímku - které dělá práci, jež stačí udělat jednou za sekundu. Je to nejčastější výkonnostní chyba v celém ekosystému FiveM. - Kontroly vzdálenosti, které smyčkou procházejí každého hráče v každém snímku, místo aby procházely jen blízké hráče na časovači.
- Databázové dotazy uvnitř smyčky. Nastav
mysql_slow_query_warningna něco kolem 150 a čti, co oxmysql vypisuje. - Události, které se spouštějí mnohem častěji, než se děje to, co představují.
Streamované assety jsou samostatný problém, který vypadá podobně. Vlastní vozidla a interiéry zatěžují disk a šířku pásma, ne CPU: pomalé první připojení znamená, že hráči stahují stovky megabajtů přes tvůj endpoint TCP, a žádné CPU na tom nic nezmění. Zkrať složky stream, nebo to čekání přijmi a řekni o něm lidem.
Dimenzování: paměť, jádra, databáze a disk#
| Server | RAM | vCPU | Poznámky |
|---|---|---|---|
| Freeroam nebo drift, do 32 slotů | 2-3 GB | 1-1.5 | Málo resources, málo stavu |
| Roleplay na ESX nebo QBCore, 48-64 | 4-6 GB | 2 | Běžný případ |
| Velký roleplay, 64-128 slotů | 8-12 GB | 2.5-3.5 | Stovky resources |
Paměť sleduje počet resources a stav, který drží, ne počet hráčů, takže poloprázdný server s dvěma sty skripty spotřebuje víc než plný se čtyřiceti. CPU se týká hlavního vlákna, tedy taktu spíš než počtu jader; další jádra pomáhají při obsluze assetů a načítání resources, ne při délce ticku.
Každý framework potřebuje databázi a na RE:NODE obsahuje každý tarif FiveM slot pro databázi vytvořený z panelu s vygenerovaným hostem, uživatelem a heslem, plus tlačítko „Open in phpMyAdmin“, které tě přihlásí jednorázovým tokenem. Připojovací řetězec jde do konfigurace stejně jako kdekoli jinde:
set mysql_connection_string "mysql://user:password@host:3306/database?charset=utf8mb4"Databáze a oxmysql řeší import schématu, pomalé dotazy a zálohování - což je na roleplay serveru důležitější než kdekoli jinde v tomhle katalogu, protože databáze jsou postavy a ztratit ji znamená ztratit server.
Tarify FiveM na RE:NODE běží od 2 GB do 12 GB, od $9 měsíčně, se dvěma přidělenými porty, dostupným txAdminem a tvým vlastním klíčem Cfx.re zadaným na záložce Setup. Sloty pro zálohy jsou součástí každého tarifu a záložka Schedules umí spouštět noční zálohu.
Řešení potíží#
„Couldn't load resource X“. Chyba v manifestu nebo chybějící závislost. Řádek těsně nad ní v konzoli pojmenovává skutečný problém; název resource je jen místo, kde se to projevilo.
Server se nezobrazuje v seznamu. Nejdřív licenční klíč, potom dostupnost TCP 30120 zvenku. Otestuj to stažením http://your-address:30120/info.json z jiné sítě - pokud to selže, nebude fungovat ani nic dalšího.
Hráčům se říká, ať změní build hry. sv_enforceGameBuild nesedí s tím, na čem je jejich klient. Nastav aktuální build, nebo ho odstraň, pokud nepoužíváš žádný obsah z DLC.
Zaseknutí na „awaiting scripts“ nebo černá načítací obrazovka. Resource, který při startu končí chybou, nebo chybějící spawnmanager a sessionmanager v seznamu ensure. Čti konzoli od začátku, ne od konce.
txAdmin pořád hlásí zaseknutí a restartuje. Něco blokuje hlavní vlákno na celé sekundy. Než zvýšíš timeout, profiluj; zvýšení timeoutu skryje příznak a příčinu ponechá.
Hráči se připojí, ale nevidí se navzájem. OneSync vypnuté na serveru s víc než 32 sloty, nebo sv_entityLockdown nastavené na strict s resources, které spawnují entity na straně klienta.
První připojení trvá pět minut. Streamované assety. Zkontroluj celkovou velikost složek stream; většina serverů vozí vozidla, se kterými nikdo nejezdí.
FAQ#
Potřebuji vlastní licenční klíč FiveM?
Ano. Klíče se vystavují po jednom na server na účet Cfx.re a nelze je sdílet ani je nemůže dodat hosting. Vytvoření je zdarma a zabere asi minutu na keymaster.fivem.net.
Co se stane s klíčem, když server přesunu?
Klíč si pamatuje adresu, pro kterou byl vytvořen, takže ho v keymasteru uprav nebo vygeneruj nový. Klíč, který nesedí s adresou, ze které se používá, zastaví server při startu s licenční chybou.
Musím txAdmin instalovat?
Ne. Je součástí artifactů FXServeru už léta. Spusť server bez konfigurace a txAdmin naběhne na portu 40120 s jednorázovým PIN v konzoli.
Kolik hráčů server FiveM unese?
Třicet dva bez OneSync. S povoleným OneSync je strop enginu mnohem vyšší, ale praktickým limitem jsou tvoje resources: většina seriózních roleplay serverů má 48 až 128 hráčů a omezením je čas skriptů na hlavním vlákně, ne sloty.
Spraví moje sekání serveru víc RAM?
Skoro nikdy. Sekání na FiveM je čas hlavního vlákna a to je problém resources. Než změníš tarif, přečti si graf výkonu v txAdminu a výstup resmon na klientu.
Můžu provozovat ESX nebo QBCore bez databáze?
Ne. Oba ukládají postavy, inventáře a peníze do databáze a bez funkčního připojovacího řetězce framework nenaběhne.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.