Blog

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

  1. Připojte se na server a otevřete konzoli klávesou F8.
  2. Napište resmon 1. Zobrazí se tabulka všech resources se spotřebou procesoru a paměti.
  3. Sledujte sloupec s časem procesoru v milisekundách – když stojíte, když jezdíte a když používáte menu nebo inventář.
  4. Monitor vypnete příkazem resmon 0.

Orientační hodnoty pro skript, který zrovna nic nedělá:

Čas skriptu v kliduHodnocení
do 0,02 msv pořádku
0,02–0,10 mssnese se, ale sledujte ho
nad 0,10 mskandidá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 warning znamená, ž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říkazem profiler 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_target nebo qb-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 – TriggerClientEvent s 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.cfg nastavte práh v milisekundách, například set 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 řádek set 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í.

FiveM od 20 Kč měsíčně

RP server s txAdminem.

Zobrazit balíčky