Optimalizace FiveM serveru: resmon, skripty a nastavení
28. října 2026·4 min čtení
FiveM server se nejčastěji zpomaluje kvůli skriptům, ne kvůli hardwaru. Jeden špatně napsaný skript dokáže hráčům srazit FPS nebo zahltit hlavní vlákno serveru. Postup je proto vždy stejný: změřit, najít viníka a opravit ho, nebo odstranit. Níže najdete nástroje k měření, nejčastější chyby ve skriptech i nastavení, která pomáhají.
Klient, nebo server? Kde lag vzniká
U FiveM rozlišujte dva druhy problémů:
- Nízké FPS u hráčů – zátěž vzniká v klientské části skriptů, která běží v počítači každého hráče. Výkonnější server tady nepomůže, je potřeba upravit skripty.
- Zpoždění na serveru – akce se provádějí pozdě, menu reaguje s prodlevou, vozidla poskakují. Příčinou bývá serverová část skriptů, pomalé dotazy do databáze nebo nedostatek výkonu.
Měřte proto obojí: klienta příkazem resmon, server přes konzoli, txAdmin a profiler.
Měření u hráče: resmon
- Připojte se na server a otevřete konzoli klávesou F8.
- Napište
resmon 1. Zobrazí se tabulka všech resources se spotřebou procesoru a paměti. - Sledujte sloupec s časem procesoru v milisekundách – když stojíte, když jezdíte a když používáte menu nebo inventář.
- Monitor vypnete příkazem
resmon 0.
Orientační hodnoty pro skript, který zrovna nic nedělá:
| Čas skriptu v klidu | Hodnocení |
|---|---|
| do 0,02 ms | v pořádku |
| 0,02–0,10 ms | snese se, ale sledujte ho |
| nad 0,10 ms | kandidát na optimalizaci |
Jeden snímek trvá při 60 FPS zhruba 16,7 ms. Pokud skripty dohromady spotřebují v každém snímku několik milisekund, hráč to pozná. Rozhodující je hlavně stav v klidu – skript, který nic nedělá, by neměl nic stát.
Měření na serveru: konzole, txAdmin a profiler
- Konzole – hláška
server thread hitch warningznamená, že hlavní vlákno serveru nestíhá. Občas při startu nevadí, opakovaně během hraní ano. - txAdmin – v přehledu ukazuje graf výkonu serveru v čase, takže poznáte, kdy problémy začínají, například ve chvíli, kdy je online nejvíc hráčů.
- Profiler – v serverové konzoli spusťte
profiler record 500, nechte ho nahrát vzorek a výsledek si zobrazte příkazemprofiler view. Uvidíte, které resources zabírají nejvíc času. Podrobnosti popisuje dokumentace FiveM.
Nejčastější chyby ve skriptech
Když najdete náročný skript, nejdřív zjistěte, jestli nemá novější verzi nebo lepší alternativu. Pokud ho upravujete sami, hledejte tyto vzory.
Smyčka, která běží v každém snímku
CreateThread(function()
while true do
Wait(0) -- běží v každém snímku, i když je hráč daleko
local coords = GetEntityCoords(PlayerPedId())
-- kontrola vzdálenosti od markeru
end
end)
Wait(0) znamená běh v každém snímku. Lepší je čekat podle situace – daleko od místa jednou za sekundu, blízko v každém snímku:
CreateThread(function()
while true do
local sleep = 1000
local coords = GetEntityCoords(PlayerPedId())
if #(coords - markerCoords) < 10.0 then
sleep = 0
-- vykreslení markeru a kontrola klávesy
end
Wait(sleep)
end
end)
Další časté prohřešky
- Desítky kontrol vzdálenosti – místo hlídání každého markeru v každém snímku použijte interakční systém, například
ox_targetneboqb-target. - Dotazy do databáze ve smyčce – data načtěte jednou, držte je v paměti a ukládejte v dávkách nebo při odpojení hráče.
- Události pro všechny hráče –
TriggerClientEvents cílem-1, posílaný často a s velkým objemem dat, zatěžuje síť i server. - Duplicitní skripty – dva HUDy nebo dva systémy oblečení běží zbytečně oba.
Databáze, streamované soubory a server.cfg
Databáze a oxmysql
- Pomalé dotazy si nechte vypisovat do konzole. V
server.cfgnastavte práh v milisekundách, napříkladset mysql_slow_query_warning 150. - Sloupce, podle kterých se často hledá (identifikátor hráče, SPZ vozidla), by měly mít v databázi index. Frameworky ho většinou vytvářejí samy, u doinstalovaných skriptů to zkontrolujte.
- Pravidelně mažte staré záznamy, které už nic nepotřebuje – logy, staré zprávy nebo data dávno neaktivních postav.
Mapy, auta a nastavení
- Streamované soubory – velké balíčky aut a map prodlužují připojování hráčů a zvyšují nároky na paměť. Soubory nad 16 MB FiveM hlásí jako „oversized asset“, takové modely nahraďte optimalizovanými verzemi.
- Nepoužívané resources – co nepotřebujete, odstraňte z
server.cfg. Resource s klientskou částí stahuje a spouští každý hráč. - Pořadí
ensure– závislosti (oxmysql,ox_lib, framework) patří před skripty, které je používají. - OneSync – synchronizaci, se kterou dnes počítá většina RP skriptů, zapíná v
server.cfgřádekset onesync on. - Plánované restarty – v txAdminu nastavte restart jednou nebo dvakrát denně v době, kdy hraje nejméně lidí. Uvolní se paměť a server začne s čistým stavem.
Postup připojení databáze a řešení chyb najdete v návodu FiveM: databáze a oxmysql.
Výkon procesoru a postupné ladění
Skripty na FiveM serveru běží převážně v hlavním vlákně, proto rozhoduje výkon procesoru na jedno jádro víc než počet jader. Pokud po optimalizaci skriptů konzole dál hlásí zpoždění, je čas na výkonnější balíček nebo víc RAM.
Měňte vždy jednu věc a po každé větší úpravě znovu změřte resmon a profiler. Jen tak budete vědět, co opravdu pomohlo. Pokud si s chybou v konzoli nevíte rady, ColdHost AI v panelu projde konzoli a soubory serveru a navrhne úpravu – provede ji až po vašem schválení.
Shrnutí
- Měřte: u hráče
resmon 1, na serveru konzoli, txAdmin a profiler. - Opravte smyčky s
Wait(0), nahraďte kontroly vzdálenosti interakčním systémem a odstraňte duplicitní skripty. - Hlídejte databázi, velikost streamovaných souborů a pořadí
ensure. - Nastavte pravidelné restarty.
FiveM servery na FiveM hostingu ColdHost běží na vlastních strojích s procesory AMD Ryzen s vysokým taktem (parametry hardwaru), s txAdminem, MySQL databází a DDoS ochranou v ceně, od 20 Kč měsíčně.
Mohlo by vás zajímat: ESX, QBCore nebo Qbox, FiveM: časté chyby, Vlastní mapy, MLO a auta a server.cfg – základní nastavení.