server.cfg to główny plik konfiguracyjny serwera FiveM: ustawia port, nazwę na liście serwerów, klucz licencyjny, game build, OneSync, które zasoby startują i uprawnienia adminów. Przejdziemy go linia po linii i przy każdym ustawieniu wyjaśnimy, co robi i jaką wartość wybrać.
Czego potrzebujesz
- Serwer FiveM w StormHost (lub własny serwer FiveM)
- Dostęp do plików: zakładka Pliki albo CFG Editor w txAdmin
- Około 25 minut
Gdzie znaleźć server.cfg#
- Serwer z txAdmin:
server.cfgjest w folderze wybranym podczas wdrażania przepisu (txAdmin proponujetxData/). Najłatwiej edytować go w CFG Editor w lewym menu txAdmin; zapisz przez Ctrl+S. Ścieżkę znajdziesz w txAdmin w Settings › FXServer (pole Server Data Folder; pole CFG File Path pojawia się po pokazaniu opcji zaawansowanych).<NAZWA>_ <KOD>. base - Serwer bez txAdmin:
server.cfgjest w głównym folderze serwera. Edytuj go w strefie klienta w zakładce Pliki (poradnik).
Zmiany w server.cfg zaczynają działać dopiero po restarcie serwera.
Strefa klienta może nadpisywać niektóre linie
Na serwerze bez txAdmin strefa klienta może przy każdym starcie zapisywać do server.cfg wartości z zakładki Ustawienia › Zmienne (zazwyczaj port, nazwę serwera, klucz licencyjny i liczbę slotów). Jeśli Twoje zmiany w tych liniach wracają po restarcie, zmień wartość w zmiennych, a nie w pliku.
Jak czytany jest server.cfg#
- Plik jest czytany od góry do dołu, linia po linii. Każda linia to jedno polecenie konsoli serwera.
- Tekst po
#to komentarz i serwer go ignoruje. Linię „wyłączasz”, stawiając#na jej początku. - Wartości ze spacjami umieszczaj w cudzysłowach:
sv_hostname "Muj server". - Jeśli to samo ustawienie pojawia się w pliku dwa razy, wygrywa ostatnie.
- Polecenie
exec plik.cfgwczytuje inny plik konfiguracyjny (na przykładexec permissions.cfg). Przydatne do utrzymania porządku.
Zmienne (convars) ustawia się trzema poleceniami:
| Polecenie | Co robi | Kiedy używać |
|---|---|---|
set | Ustawia zmienną tylko dla serwera. | Wartości tajne i serwerowe, na przykład set mysql_connection_string. |
setr | Ustawia zmienną i wysyła ją także graczom (skrypty klienckie). | Ustawienia potrzebne skryptom po stronie gracza (język, czat głosowy). Nigdy dla haseł. |
sets | Ustawia zmienną widoczną na liście serwerów i w info.json. | Dane publiczne: sets sv_projectName, sets tags, sets locale. |
Nigdy nie ustawiaj hasła przez setr ani sets
Wartość ustawiona przez setr jest wysyłana wszystkim graczom, a ustawiona przez sets jest publicznie widoczna. Connection string bazy danych i każde inne hasło ustawiaj zawsze tylko przez set.
Przykładowy server.cfg#
Przykład opiera się na domyślnej konfiguracji FiveM i przepisach txAdmin. Każdy blok objaśniamy niżej.
# --- Sieć ---
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
sv_maxclients 48
sv_endpointPrivacy true
# --- Lista serwerów ---
sv_hostname "Muj RP server"
sets sv_projectName "Muj RP server"
sets sv_projectDesc "Czech roleplay server with custom scripts"
sets tags "roleplay, czech, esx"
sets locale "cs-CZ"
load_server_icon logo.png
#sv_master1 ""
# --- Klucze ---
sv_licenseKey "<LICENSE_KEY>"
set steam_webApiKey "none"
# --- Gra i bezpieczeństwo ---
sv_enforceGameBuild 3258
sv_scriptHookAllowed 0
sv_enableNetworkedSounds false
sv_enableNetworkedScriptEntityStates false
sv_filterRequestControl 2
# --- OneSync (tylko bez txAdmin, zobacz niżej) ---
set onesync on
# --- Baza danych ---
set mysql_connection_string "mysql://<USER>:<PASSWORD>@<DATABASE_IP>:3306/<DATABASE_NAME>"
# --- Zasoby ---
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure oxmysql
ensure [standalone]
# --- Uprawnienia ---
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:<FIVEM_ID> group.adminWartości w nawiasach ostrych zastąp własnymi danymi (nawiasy usuń): <LICENSE_KEY> to klucz z Cfx.re Portal, dane bazy danych są w zakładce Baza danych, a <FIVEM_ID> to numeryczne ID Twojego konta Cfx.re (jak je znaleźć, wyjaśnia sekcja o uprawnieniach).
Sieć i sloty#
| Ustawienie | Co robi | Zalecana wartość | Kiedy zmieniać |
|---|---|---|---|
endpoint_add_tcp "0.0.0.0:30120" | Adres i port, na którym serwer przyjmuje połączenia TCP (pobieranie zasobów, informacje dla listy serwerów). | 0.0.0.0 i port z zakładki Sieć (linia Adres połączenia). | Tylko przy zmianie portu. 0.0.0.0 oznacza „na wszystkich adresach serwera”. |
endpoint_add_udp "0.0.0.0:30120" | To samo dla UDP, które przenosi samą grę. | Ten sam adres i port co dla TCP. | TCP i UDP muszą zawsze używać tego samego portu. |
sv_maxclients 48 | Maksymalna liczba graczy (1–2048). | 48 | Więcej niż 48 wymaga subskrypcji Element Club Argentum (zobacz OneSync). Wartości od 32 wymagają OneSync. |
sv_endpointPrivacy true | Ukrywa adresy IP graczy w publicznych listach serwerów. | true | Zostaw włączone, chroni graczy. |
30120 to domyślny port FiveM. Na naszych serwerach port Twojego serwera to ten z zakładki Sieć i musi być w obu liniach endpoint_add_*. Uważaj po wdrożeniu przepisem txAdmin: jeśli txAdmin nie zna portu serwera, wpisuje do server.cfg domyślny 30120. Sprawdź go i w razie potrzeby zmień.
Nazwa i lista serwerów#
| Ustawienie | Co robi | Zalecana wartość |
|---|---|---|
sv_hostname | Nazwa serwera dla konsoli i niektórych narzędzi. Zwykle nie pojawia się na liście serwerów. | Krótka nazwa serwera. |
sets sv_projectName | Nazwa projektu, którą gracze widzą na liście serwerów. Powinna być nazwą, nie listą tagów. | Nazwa Twojej społeczności, na przykład Muj RP server. |
sets sv_projectDesc | Opis na liście serwerów, jedno zdanie. | Krótkie zdanie o serwerze. |
sets tags | Tagi oddzielone przecinkami, po których gracze znajdują serwer. | roleplay, czech i podobne. |
sets locale | Główny język serwera. Domyślne root-AQ to wartość zastępcza i należy ją zmienić. | Język Twoich graczy, na przykład pl-PL dla polskiego lub en-US dla angielskiego. |
load_server_icon | Ikona serwera na liście. Musi być plikiem PNG 96 × 96 px w folderze serwera. | logo.png |
sets banner_detail, sets banner_connecting | URL obrazu bannera w szczegółach serwera i podczas łączenia. | Opcjonalnie. |
#sv_master1 "" | Gdy ta linia nie jest zakomentowana, serwer pokazuje się na liście jako prywatny i nie da się do niego dołączyć z przeglądarki serwerów. Nie usuwa go jednak z listy. | Zostaw zakomentowaną przez # albo usuń linię. |
sets sv_projectName i sets sv_projectDesc są wymagane. Jeśli ich brakuje, serwer wypisuje błąd przy starcie i może nie pojawić się na liście.
Kolory w nazwie zapisuje się kodami ^0 do ^9 (na przykład ^1 dla czerwonego). Nie przesadzaj; lista serwerów może skrócić zbyt „ozdobioną” nazwę.
Klucze#
| Ustawienie | Co robi | Zalecana wartość |
|---|---|---|
sv_licenseKey | Klucz licencyjny serwera z Cfx.re Portal. Bez niego serwer nie wystartuje. | Twój klucz (poradnik). |
set steam_webApiKey | Klucz Steam Web API. Potrzebny tylko wtedy, gdy Twoje skrypty pracują z identyfikatorami Steam graczy. | "none" albo Twój klucz z steamcommunity.com/dev/apikey (otwiera się w nowym oknie). |
rcon_password | Hasło do zdalnej konsoli RCON (UDP). Jeśli nie jest ustawione, RCON jest wyłączony. | Nie ustawiaj. Masz konsolę w strefie klienta i w txAdmin. |
Gra i bezpieczeństwo#
| Ustawienie | Co robi | Zalecana wartość | Kiedy zmieniać |
|---|---|---|---|
sv_enforceGameBuild | Wymusza wersję gry (game build) z określonymi DLC. Gracze pobierają ją przy pierwszym połączeniu. Można ustawić tylko przy starcie serwera. | Build wymagany przez Twoje skrypty i mapy. Przepisy txAdmin ustawiają go za Ciebie. | Gdy skrypt lub MLO potrzebuje nowszego DLC (samochody, wnętrza). |
sv_scriptHookAllowed | Pozwala graczom używać ScriptHook V (menu i mody po stronie gracza). | 0 (wyłączone) | Nie zezwalaj, otwiera drzwi cheatom. |
sv_pureLevel | Blokuje zmodyfikowane pliki gry po stronie graczy: 1 dopuszcza tylko mody audio i znane mody graficzne, 2 blokuje wszystko. | Nieustawione albo 1 | Serwery rywalizacyjne i PvP. |
sv_enableNetworkedSounds | Pozwala klientom wysyłać zdarzenia dźwiękowe przez serwer. Często nadużywane. | false | Tylko gdy skrypt wyraźnie tego potrzebuje. |
sv_ | Pozwala klientom zmieniać stan encji przez serwer. Często nadużywane. | false | Tylko gdy skrypt wyraźnie tego potrzebuje. |
sv_filterRequestControl | Blokuje przejmowanie kontroli nad encjami innych graczy (0 wyłączone do 4 najostrzejsze). | 2 (blokuje przejmowanie encji sterowanych przez graczy) | Jeśli skrypty przekazujące encje mają problemy, spróbuj 1. |
Wybrane game buildy (każdy zawiera też wszystkie starsze DLC):
| Build | Nazwa 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 |
Pełna, aktualna lista jest w dokumentacji FiveM (link na dole). Wyższy build oznacza większe pobieranie dla graczy przy pierwszym połączeniu.
OneSync#
OneSync to system synchronizacji FiveM: serwer zna pozycję i stan wszystkich graczy i encji (samochodów, pedów, obiektów) i sam decyduje, co komu wysłać. Dzięki temu obsługuje więcej graczy, a skrypty mogą pracować z encjami bezpośrednio na serwerze. Nowoczesne frameworki (ESX Legacy, QBCore, Qbox) wymagają OneSync.
| Tryb | Co oznacza | Kiedy używać |
|---|---|---|
on | Pełny OneSync (dawniej „Infinity”), do 2048 graczy. Encje daleko od gracza nie są do niego wysyłane. | Prawie zawsze. Przepisy txAdmin włączają go za Ciebie. |
legacy | Tryb zgodności dla starych skryptów, które oczekują, że każdy gracz widzi wszystkich pozostałych. Gorsza wydajność i błędy graficzne. | Tylko dla starego skryptu, który inaczej nie działa. |
off | Bez OneSync; serwer tylko przekazuje dane między graczami. Tylko dla małych serwerów: 32 lub więcej slotów wymaga OneSync. | Praktycznie nigdy. |
Limity slotów:
- OneSync jest bezpłatny do 48 slotów. Więcej slotów wymaga subskrypcji FiveM Element Club Argentum lub wyższej w Cfx.re Portal (otwiera się w nowym oknie).
sv_maxclientsod 32 wymaga OneSynconlublegacy; więcej niż 64 wymagaon.- Sama subskrypcja nie zwiększa liczby slotów. Po jej zakupie trzeba zwiększyć
sv_maxclientsi zrestartować serwer.
Gdzie włączyć OneSync:
- Z txAdmin: tylko w txAdmin, Settings › FXServer › opcje zaawansowane › OneSync (zalecane OneSync On). txAdmin sam komentuje linie
set onesyncwserver.cfgz dopiskiemonesync MUST only be set in the txAdmin settings page. - Bez txAdmin: linią
set onesync onwserver.cfg.
Platforma FiveM for GTAV Enhanced nie używa już synchronizacji peer-to-peer (P2P); gra zawsze działa przez serwer.
Zasoby i kolejność ensure#
| Polecenie | Co robi |
|---|---|
ensure nazwa | Uruchamia zasób. Jeśli już działa, restartuje go. Zalecane polecenie do server.cfg. |
start nazwa | Uruchamia zasób, jeśli nie działa. |
ensure [kategoria] | Uruchamia wszystkie zasoby w folderze [kategoria] (folder w nawiasach kwadratowych). |
Zasoby startują w kolejności, w jakiej występują w pliku. Dlatego:
- Standardowe zasoby FiveM na górze (
mapmanager,chat,spawnmanager…). - Potem biblioteki, od których zależą pozostałe:
oxmysql,ox_lib. - Potem rdzeń frameworka (
es_extended,qb-core,qbx_core). - Na końcu skrypty frameworka i własne skrypty.
Jeśli skrypt jest przed swoją zależnością, nie wystartuje. Szczegóły w artykule Zasoby FiveM.
Uprawnienia ACE#
FiveM ma wbudowany system uprawnień (ACL). Składa się z dwóch poleceń:
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– grupagroup.adminmoże używać wszystkich poleceń (commandto ogólne uprawnienie do poleceń).add_ace group.admin command.quit deny– z wyjątkiem poleceniaquit, które wyłącza serwer.add_principal identifier.– gracz z tym identyfikatorem należy do grupyfivem: <FIVEM_ ID> group.admin group.admini dziedziczy jej uprawnienia.
Ogólnie: add_ace <KTO> <CO> allow|deny nadaje uprawnienie, a add_principal <KTO> <GRUPA> umieszcza gracza w grupie. Polecenia odwrotne to remove_ace i remove_principal. Aby sprawdzić, czy ktoś ma uprawnienie, użyj w konsoli polecenia test_ace <KTO> <CO>.
Identyfikatory graczy:
| Identyfikator | Przykład | Uwaga |
|---|---|---|
identifier.fivem: | identifier. | Numeryczne ID konta Cfx.re. txAdmin używa go dla głównego admina. |
identifier.license: | identifier. | Licencja gry Rockstar. Używana przez większość frameworków (QBCore). |
identifier.discord: | identifier. | Numeryczne ID użytkownika Discord. Gracz musi mieć uruchomionego Discorda. |
identifier.steam: | identifier. | Steam ID w zapisie szesnastkowym. Działa tylko z ustawionym steam_webApiKey. |
Identyfikatory konkretnego gracza znajdziesz w txAdmin: Players, kliknij gracza i otwórz zakładkę IDs. txAdmin dodaje admina sam (linia {{addPrincipalsMaster}} w przepisie). Frameworki mają własne grupy adminów, zobacz ESX, QBCore czy Qbox?.
Dla zaawansowanych: uprawnienia dla zasobu
Zasób może potrzebować uprawnienia do wykonywania poleceń, na przykład add_ace resource.es_extended command.add_principal allow. Przepisy frameworków zawierają takie linie. Nie usuwaj ich, inaczej framework nie będzie mógł przydzielać grup.
Weryfikacja#
- Zapisz
server.cfgi zrestartuj serwer. - W konsoli (strefa klienta albo Live Console w txAdmin) sprawdź, czy przy starcie nie pojawiły się błędy i czy zasoby wystartowały (
Started resource …). - Otwórz w przeglądarce
http://(adres z zakładki Sieć). Zobaczysz JSON z publicznymi ustawieniami serwera, łącznie z wartościami ustawionymi przez<ADRES_ IP>: <PORT>/ info. json sets(sv_projectName,locale,tags). - Sprawdź serwer narzędziem CFX Resolver: pokazuje nazwę, sloty, OneSync i wymuszony build.
Rozwiązywanie problemów#
Komunikatów, których tu nie znajdziesz, szukaj w artykule Częste błędy serwera FiveM.
Serwera nie ma na liście serwerów albo pokazuje się jako „prywatny”#
- Linia
sv_master1 ""nie może być aktywna. Zakomentuj ją przez#. - Sprawdź, czy masz zarówno
sets sv_projectName, jak isets sv_projectDesc. - Pojawienie się serwera na liście może zająć do 8 minut po starcie.
- Sprawdź, czy możesz połączyć się z serwerem bezpośrednio: naciśnij F8 w grze i wpisz
connect <ADRES_IP>:<PORT>.
Connection rejected by server: Client/Server game build revision mismatch#
Gracz i serwer mają różne rewizje buildu, zazwyczaj krótko po aktualizacji gry. Zaktualizuj artefakty serwera (poradnik). Gracze mogą przełączyć Update Channel w kliencie FiveM (ikona koła zębatego › Game).
Gracze długo się łączą albo zacinają się na pobieraniu#
Po zmianie sv_enforceGameBuild każdy gracz pobiera dane DLC. Dzieje się to tylko raz. Jeśli zacinają się wielokrotnie, sprawdź, czy build istnieje (tabela wyżej) i czy nie ma literówki.
W server.cfg pojawiła się linia ## [txAdmin CFG validator]: …#
txAdmin zakomentował linię, która nie jest dozwolona w server.cfg, i po dwukropku dopisał powód. Najczęściej to onesync MUST only be set in the txAdmin settings page. (OneSync należy do ustawień txAdmin) albo you MUST NOT start/stop/ensure txadmin resources. (txAdmin startuje sam; usuń ensure monitor).
Nie można ustawić więcej niż 48 slotów#
Bez subskrypcji Element Club Argentum limit wynosi 48. Na serwerze bez txAdmin liczbę slotów może też sterować zmienna w zakładce Ustawienia › Zmienne.
Zmiana cofnęła się po restarcie#
Edytowano linię, którą zmienna z zakładki Ustawienia nadpisuje przy starcie, albo inny plik niż ten, który serwer wczytuje. Z txAdmin sprawdź CFG File Path w Settings › FXServer.
Podsumowanie
server.cfgjest czytany od góry do dołu.setjest tylko dla serwera,setrjest wysyłane graczom,setsjest publicznie widoczne. Hasła tylko przezset.- Port w
endpoint_add_tcpiendpoint_add_udpmusi zgadzać się z zakładką Sieć.sv_projectName,sv_projectDescisets localedecydują o tym, jak serwer wygląda na liście. - OneSync
onto właściwy wybór dla prawie każdego serwera. Z txAdmin włącza się go tylko w Settings › FXServer. Bezpłatny do 48 slotów. - Zasoby uruchamiaj przez
ensure, zależności przed skryptami. Adminów dodawaj przezadd_principali identyfikator gracza.