Herní servery se konfigurují zhruba osmi textovými formáty a téměř každé „nastavení nic nezměnilo“ nebo „server po úpravě nenastartuje“ se vrací ke třem příčinám: porušenému pravidlu syntaxe formátu, souboru, který server při vypnutí přepíše, nebo klíči, který hostingový panel přepíše při startu. Nauč se pravidla každého formátu jednou - sekce v INI, zákaz komentářů a koncových čárek v JSON, zákaz tabulátorů v YAML, escapování v XML, středníky v souborech .cfg od Bohemie - a upravuj při zastaveném serveru, a většina těchto problémů zmizí. Tento článek je průvodce formáty, hrami, které je používají, a tím, jak soubor zkontrolovat dřív, než chybu najde server za tebe.
Která hra používá jaký formát#
| Formát | Typické soubory | Hry |
|---|---|---|
| INI | GameUserSettings.ini, Game.ini, PalWorldSettings.ini, cluster.ini | Hry na Unreal Engine, Palworld, ARK, Don't Starve Together |
| Properties / key=value | server.properties, servertest.ini, serverconfig.txt | Minecraft, Project Zomboid, Terraria |
| JSON | ServerHostSettings.json, enshrouded_server.json, server-settings.json | V Rising, Enshrouded, Factorio |
| YAML | paper-global.yml, bukkit.yml, config.yml pluginů | Paper a Spigot, většina pluginů pro Minecraft |
| XML | serverconfig.xml, serversettings.xml, types.xml | 7 Days to Die, Barotrauma, Space Engineers, loot v DayZ |
Konzolový .cfg | server.cfg, autoexec.cfg | Source hry (CS2, TF2, Garry's Mod), FiveM |
.cfg od Bohemie | serverDZ.cfg, server.cfg | DayZ, Arma 3 |
| Lua | SandboxVars.lua, modoverrides.lua | Project Zomboid, Don't Starve Together |
| TOML | ServerConfig.toml, velocity.toml, konfigurace modů | BeamMP, Velocity, mody NeoForge |
Přípona ne vždy prozradí formát. servertest.ini v Project Zomboid je prosté key=value bez sekcí. .cfg ve Source hře je seznam konzolových příkazů, zatímco .cfg v DayZ je syntaxe založená na třídách se středníky. Než něco předpokládáš, podívej se do souboru.
INI, properties a varianta z Unrealu#
INI je tu nejstarší formát: sekce v hranatých závorkách, pod nimi řádky key=value, komentáře začínající ; (některé parsery berou i #).
[ServerSettings]ServerPassword=ServerAdminPassword=change-meDifficultyOffset=1.0XPMultiplier=2.0[SessionSettings]SessionName=My ARK ServerNa sekci záleží. Správný klíč pod špatným nadpisem se tiše ignoruje, což je klasická chyba v ARK: nastavení z Game.ini vložené do GameUserSettings.ini, nebo správný klíč pod [SessionSettings] místo [ServerSettings].
Hry na Unreal Engine přidávají dva vlastní zlozvyky. Názvy sekcí bývají cesty ke skriptům, například [/Script/Pal.PalGameWorldSettings]. A některé hry balí všechna nastavení do jednoho velmi dlouhého řádku vnořených hodnot:
[/Script/Pal.PalGameWorldSettings]OptionSettings=(Difficulty=None,ExpRate=1.000000,ServerPlayerMaxNum=32,ServerName="My Palworld",AdminPassword="change-me",PublicPort=8211)Ten řádek se parsuje jako jedna hodnota. Jedna chybějící čárka, neuzavřená uvozovka nebo zbloudilý zalomený řádek uvnitř závorek a hra celý řádek zahodí a nastartuje s výchozími hodnotami - včetně prázdného hesla admina. Upravuj ho v obyčejném textovém editoru, měň vždy jednu hodnotu a ponech si kopii poslední verze, která fungovala. Co která z těch voleb dělá, probírá průvodce nastavením Palworld serveru.
Servery na Unrealu také při vypnutí zapisují konfigurační soubory zpátky na disk. Pokud upravíš GameUserSettings.ini za běhu serveru, tvoji změnu při příštím zastavení přepíše kopie z paměti serveru. Nejdřív zastav, pak edituj, pak spusť. Rozložení souborů a to, který adresář se skutečně uplatní, vysvětluje základy dedikovaného serveru na Unreal Engine.
Don't Starve Together používá klasické INI pro cluster.ini a server.ini jednotlivých shardů, se sekcemi jako [GAMEPLAY], [NETWORK] a [SHARD]. Platí stejné pravidlo: správný klíč, správná sekce.
Properties a prosté key=value
server.properties v Minecraftu je soubor Java properties: jeden key=value na řádek, # pro komentáře, žádné sekce.
# Minecraft server propertiesview-distance=8simulation-distance=6white-list=truemotd=A \u00A7aGreen\u00A7r serverZakopávají se o tři detaily. Mezery za hodnotou se berou jako její součást, takže white-list=true s mezerou na konci nemusí znamenat true. Zpětná lomítka jsou únikové znaky, a proto se barevné kódy často zapisují jako \u00A7. A server soubor při startu přepisuje, doplňuje chybějící klíče výchozími hodnotami a občas přeřadí řádky, takže komentáře, které si přidáš, mohou zmizet. Každý klíč je vysvětlený v článku server.properties vysvětleno.
servertest.ini v Project Zomboid (pojmenovaný podle tvého serveru) a serverconfig.txt v Terrarii jsou stejná myšlenka s vlastními klíči. Seznamy v Zomboidu používají středníky uvnitř hodnoty - Mods=modA;modB a WorkshopItems=123;456 - a zbloudilá mezera nebo nesedící počty na obou řádcích jsou častý důvod, proč se mody nenačtou.
JSON#
JSON je přísný a to je celá jeho osobnost. Objekty ve složených závorkách, pole v hranatých, klíče v dvojitých uvozovkách, hodnoty jsou řetězce, čísla, true, false nebo null.
{ "Name": "My V Rising Server", "Port": 9876, "QueryPort": 9877, "MaxConnectedUsers": 40, "Password": "", "Secure": true}Pravidla, která servery lámou:
- Žádné koncové čárky.
"Secure": true,před zavírací závorkou je neplatné. - Žádné komentáře. Nepovoluje se ani
//, ani#. Factorio vserver-settings.jsonproblém obchází klíči jako"_comment_visibility", které hra ignoruje - je to náznak, že skutečné komentáře přidávat nemáš. - Jen dvojité uvozovky. Jednoduché jsou neplatné.
- Na typech záleží.
"Port": "9876"je řetězec, ne číslo, a některé servery ho odmítnou nebo ignorují. - Zpětná lomítka je třeba escapovat. Cesta ve Windows je
"C:\\Servers\\save".
Chyba v JSON obvykle zastaví server při startu s chybou parseru, která uvádí řádek a sloupec. Některé servery místo toho přepnou na výchozí hodnoty a tvůj soubor jimi přepíšou, což vypadá, jako by tvoje nastavení zmizelo. Zkontroluj před startem:
$ python3 -m json.tool ServerHostSettings.json > /dev/null && echo okYAML#
YAML je formát světa pluginů pro Minecraft - vlastní konfigurace Paperu, bukkit.yml, spigot.yml a téměř každý config.yml pluginu. Struktura vychází z odsazení:
chunks: auto-save-interval: default max-auto-save-chunks-per-tick: 24entities: spawning: despawn-ranges: monster: hard: 128 soft: 32Co ho láme:
- Tabulátory. YAML zakazuje tabulátory v odsazení. Tabulátor vložený z příspěvku na fóru zneplatní celý soubor.
- Nekonzistentní odsazení. Dvě mezery v jednom bloku a čtyři v sousedním mění strukturu.
- Necitované zvláštní hodnoty.
yes,no,onaoffmohou starší parsery YAML číst jako booleany; verze jako1.20se stane číslem. Řetězce, které vypadají jako něco jiného, dej do uvozovek:version: "1.20". - Dvojtečka následovaná mezerou uvnitř hodnoty, která začíná nové mapování. Hodnotu dej do uvozovek.
Když je konfigurace pluginu pro Paper rozbitá, plugin obvykle zaloguje chybu a buď načte výchozí hodnoty, nebo se vypne, a některé pluginy pak soubor přepíšou. Před úpravou si udělej kopii a validuj:
$ python3 -c 'import sys, yaml; yaml.safe_load(open(sys.argv[1]))' config.yml && echo okTo vyžaduje balíček PyYAML. Fungují i online validátory, ale nevkládej na web konfiguraci, která obsahuje hesla nebo přihlašovací údaje k databázi.
XML#
XML je upovídané a nic neodpouští. Každý element se musí uzavřít, atributy musí být v uvozovkách a uvnitř hodnot je třeba escapovat pět znaků: & jako &, < jako <, > jako >, " jako " a ' jako '.
<?xml version="1.0"?><ServerSettings> <property name="ServerName" value="Smith & Sons Survival"/> <property name="ServerPort" value="26900"/> <property name="ServerMaxPlayerCount" value="8"/> <!-- <property name="ServerPassword" value=""/> --></ServerSettings>Obvyklým viníkem je ampersand: název serveru s & rozbije konfiguraci 7 Days to Die okamžitě. Komentáře jsou <!-- ... --> a nesmí obsahovat --. Každé nastavení v tomto souboru je popsané v článku nastavení serveru 7 Days to Die.
types.xml z DayZ je druhý soubor XML, který lidé upravují neustále, a při několika tisících řádků může jediný neuzavřený tag vypnout ekonomiku lootu. Věnuje se mu DayZ types.xml a ekonomika lootu. Před nahráním validuj:
$ xmllint --noout types.xml && echo okDva druhy .cfg#
Source a FiveM: seznam příkazů
Ve Source hrách je soubor .cfg skript konzolových příkazů, které se provádějí popořadě, přesně jako bys je zadával ručně. // začíná komentář. Hodnoty s mezerami potřebují dvojité uvozovky.
hostname "My CS2 Server"sv_password ""rcon_password "change-me"sv_cheats 0exec banned_user.cfgProtože je to skript, záleží na pořadí: pozdější řádek přepíše dřívější a konfigurace herního režimu spuštěná po server.cfg může tiše zrušit tvoje nastavení. Překlep v příkazu není chyba; konzole vypíše Unknown command a pokračuje. Po úpravě si přečti konzoli při startu. Samotné cvary jsou v článku příkazy a cvary serveru CS2.
server.cfg ve FiveM funguje na stejném principu - řádky sv_hostname, set, endpoint_add_tcp, ensure se provádějí popořadě - a pořadí startu resourců určuje pořadí řádků ensure. Probírá to FiveM server.cfg vysvětleno.
DayZ a Arma 3: syntaxe tříd
Formát od Bohemie vypadá jako C. Přiřazení končí středníkem, řetězce jsou v dvojitých uvozovkách a vnořené bloky jsou třídy:
hostname = "My DayZ Server";password = "";passwordAdmin = "change-me";maxPlayers = 60;class Missions{ class DayZ { template = "dayzOffline.chernarusplus"; };};Chybějící středník nebo chybějící }; za třídou je obvyklý důvod, proč se server DayZ při startu zastaví s chybou konfigurace. Pole se zapisují jako name[] = {"a", "b"};. Každý řádek rozebírá DayZ server.cfg vysvětleno.
Lua a TOML#
Tabulky v Lua
Project Zomboid a Don't Starve Together ukládají část nastavení jako kód v Lua, který vrací nebo přiřazuje tabulku. Protože je to kód, spouští se, a syntaktická chyba znamená, že selže celý soubor.
return { ["workshop-378160973"] = { enabled = true }, ["workshop-375850593"] = { enabled = true, configuration_options = { difficulty = "hard" }, },}Záznamy se oddělují čárkami a Lua koncovou čárku dovoluje, takže to není takový problém jako v JSON. Problémem jsou chybějící čárky mezi záznamy, nevyvážené složené závorky a necitované řetězce. -- začíná komentář. luac -p file.lua zkontroluje syntaxi bez spuštění, pokud máš Lua nainstalované. SandboxVars.lua z Project Zomboid je klíč po klíči probrán v článku nastavení serveru Project Zomboid.
TOML
TOML vypadá jako INI, ale je typované a přísnější: řetězce musí být v uvozovkách, čísla a booleany nesmějí a tabulky se zapisují [section] nebo [section.subsection].
[General]Name = "My BeamMP Server"Port = 30814MaxPlayers = 8Private = trueAuthKey = ""Private = "true" je řetězec a může být odmítnut; Name = My Server bez uvozovek je syntaktická chyba. BeamMP, minecraftová proxy Velocity i konfigurace modů NeoForge používají TOML.
Kódování, editory a vedení záznamů#
Kódování a konce řádků
Soubor může být syntakticky dokonalý a přesto selhat kvůli tomu, jak byl uložen.
- Kódování. Používej UTF-8. Některé editory ve Windows ukládají UTF-8 s BOM, tedy třemi neviditelnými bajty na začátku souboru, a hrstka parserů se na tom zadrhne - chyba pak ukazuje na řádek 1, sloupec 1, kde nic špatně nevypadá.
- Konce řádků. Windows ukládá řádky zakončené
\r\n, Linux používá\n. Většina herních parserů přijme obojí; shellové skripty ne. - Chytré uvozovky. Kopírování nastavení z webové stránky nebo textového procesoru může změnit
"na zakulacené uvozovky, které žádný parser nepřijme. - Používej pořádný editor. Editor správce souborů v panelu, VS Code nebo Notepad++ se zvýrazněním syntaxe daného formátu. Zvýraznění ukáže neuzavřený řetězec nebo závorku dřív než server.
Na RE:NODE otevře správce souborů konfigurace v editoru v prohlížeči se zvýrazněním syntaxe a větší úpravy lze dělat přes SFTP v editoru, který ti vyhovuje - údaje k připojení má SFTP a správce souborů.
Evidence změn
Nejlevnější pojistka na jakémkoli serveru je vědět, co jsi změnil. Konfigurace se rozbíhají: nastavení vyzkoušené při problému s lagem a nikdy nevrácené, hodnota, kterou moderátor o půlnoci změnil, aktualizace pluginu, která přepsala svůj soubor novými výchozími hodnotami. Za tři měsíce nikdo neví, proč se server chová tak, jak se chová.
Pár návyků tomu zabrání a žádný nevyžaduje zvláštní nástroje:
- Zkopíruj před úpravou. Ulož
server.cfgjakoserver.cfg.2026-10-07, než na něj sáhneš. Disk je levný a kopie vedle souboru je nejrychlejší možný rollback. - Měň jednu věc najednou. Když změníš pět hodnot a server se chová divně, máš pět podezřelých. Jedna změna, jeden restart, jedno pozorování.
- Zapiš si proč. Komentář v souboru, kde to formát dovoluje, nebo krátký textový soubor s datovanými poznámkami, kde ne: „2026-10-07: view-distance 10 na 8, TPS klesá ve špičce“. Důvod je to, co zapomeneš.
- Porovnej, když se něco nečekaně změní. Stáhni si aktuální soubor a poslední známou funkční kopii a porovnej je. Na stroji se shellem ukáže
diff -u old.yml new.ymlpřesně, které řádky se posunuly, a otázku „změnila aktualizace moji konfiguraci“ vyřeší za pár sekund. - Konfigurace patří do záloh. Zálohy v panelu je obsahují spolu se světem. Pokud složku s konfigurací navíc držíš v soukromém repozitáři Git, dostaneš úplnou historii každé změny zadarmo, ale soubory s hesly nebo tokeny nikdy necommituj nikam, kam mají přístup další lidé.
Aktualizace pluginů a modů zaslouží zvláštní podezření. Mnoho pluginů pro Minecraft při aktualizaci migruje svůj config.yml, přidává nové klíče a občas starý přejmenuje nebo odstraní. Většina to dělá pečlivě a tvoje hodnoty zachová. Některé soubor vygenerují znovu a tvůj starý uloží jako config.yml.old, který najdeš, jen když se podíváš. Po každé aktualizaci porovnej konfiguraci se svou kopií, než předpokládáš, že se plugin chová jako dřív.
Když se úprava neprojeví#
Pokud se nastavení vrací zpět nebo nemá žádný účinek, příčinou je téměř vždy jedna z těchto, v tomto pořadí:
- Server soubor přepsal. Hry na Unrealu, Minecraft a mnoho pluginů zapisují své konfigurace při startu nebo zastavení. Zastav server, uprav, spusť.
- Klíč vlastní panel. Egg pro Pterodactyl může při každém startu přepisovat konkrétní klíče - porty, IP, někdy maximální počet hráčů - z karet Startup a Network. Tyto hodnoty měň tam, ne v souboru. Jak to funguje, vysvětluje Pterodactyl eggy pro herní servery.
- Argument při spuštění přebíjí soubor. Mnoho her nechává parametry příkazové řádky zvítězit nad hodnotami z konfigurace.
-portna startovacím řádku porazíPortv JSON. - Špatný soubor nebo špatný adresář. Hry na Unrealu mají výchozí a uložené konfigurace na různých místech; čte se jen jedna. Minecraft má světově specifická přepsání globálních nastavení.
- Syntaktická chyba s tichým návratem k výchozím hodnotám. Server soubor nedokázal zpracovat a použil výchozí hodnoty. Hledej varování parseru nahoře v logu.
FAQ#
Můžu do konfiguračního souboru JSON přidávat komentáře?
Ne. Standardní JSON komentáře nezná a většina herních serverů používá přísný parser. Poznámky si veď v samostatném textovém souboru nebo použij klíč, který hra ignoruje, jako to dělá Factorio u klíčů _comment.
Proč server po mé úpravě resetoval konfiguraci na výchozí hodnoty?
Soubor se nepodařilo zpracovat a server se vrátil k výchozím hodnotám, které často zapsal přes tvůj soubor. Ověř syntaxi, obnov svou kopii a hledej chybu parseru nahoře v logu.
Záleží na tom, jestli použiju tabulátory, nebo mezery?
V YAML ano - tabulátory jsou v odsazení neplatné. V INI, JSON, XML, TOML a Lua je odsazení kosmetické. V souborech .cfg od Bohemie je kosmetické také, ale středníky ne.
Mám upravovat konfigurace za běhu serveru?
Jen pokud hra ten soubor na příkaz znovu načítá, což umí málokterá. Mnoho serverů zapisuje konfiguraci při vypnutí a tvoje úpravy přepíše. Zastavit, upravit, spustit je bezpečné pořadí pro každou hru.
Jaký je nejbezpečnější způsob, jak změnit dlouhý řádek nastavení Unreal Engine?
Zkopíruj funkční řádek do zálohy, změň jednu hodnotu, zachovej čárky a uvozovky a spusť server. Pokud se nastavení neprojeví, porovnej ho s výchozím souborem, který hra dodává, místo abys řádek přepisoval.




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.