Dedikovaný server pro Abiotic Factor se zdarma stahuje přes SteamCMD (app id 2857200) a konfiguruje se téměř výhradně argumenty příkazové řádky, k tomu jeden soubor s pravidly světa. Šest hráčů se pohodlně vejde do 4 GB paměti; dlouho běžící svět s rozlehlou základnou a tuctem lidí chce 8 GB a víc. Potřebuje dva UDP porty, 7777 pro hru a 27015 pro dotazy Steamu, a klidně poběží měsíce, pokud ho zastavuješ čistě a zálohuješ jednu složku.
Než začneš, je dobré pochopit, kde se nastavení nachází. Žádný jediný server.cfg neexistuje. Identita, porty, sloty a hesla jsou spouštěcí argumenty. Pravidla světa - obtížnost, četnost spawnů, rychlost hladovění, tresty za smrt - jsou v SandboxSettings.ini. Moderátoři jsou v Admin.ini. Když upravíš špatný soubor, nestane se nic, a právě to je většina dotazů na podporu kolem této hry.
Co je dedikovaný server pro Abiotic Factor#
Abiotic Factor je co-op survival odehrávající se ve výzkumném zařízení a jeho multiplayer je postavený na malé skupině: výchozí limit je šest hráčů a souboje, loot i ekonomika craftingu jsou vyladěné zhruba na tento počet. Dedikovaný server existuje proto, aby svět běžel dál, i když se host odhlásí, a aby simulaci všech nebrzdil něčí snímkovací frekvence.
Pár faktů, které ovlivňují všechno ostatní:
- Serverový nástroj je build pro Windows. Steam depot pro app
2857200obsahuje spustitelný soubor pro Windows. Na Linuxu se provozuje pod Protonem nebo Wine, což funguje dobře a dělá to většina linuxových a kontejnerových hostingů. Pokud v době, kdy to čteš, už vyšel nativní linuxový build, objeví se jako samostatný depot ve stejné aplikaci. - Je zdarma a anonymní. Stačí
login anonymousve SteamCMD. Na provoz serveru nepotřebuješ účet, který vlastní hru. - Postavy jsou uložené na serveru. Tvoje postava, perky i inventář patří k uloženému světu na daném serveru, ne k tvému účtu na Steamu. Připojení na jiný server znamená začít s jinou postavou. Řekni to skupině dřív, než někdo stráví večer na testovacím serveru.
- Crossplay je ve výchozím stavu zapnutý a vlajkou se omezuje, ne povoluje. U většiny her je to naopak, takže to zaskočí lidi, kteří čekají, že ho musí zapnout.
Požadavky a spotřeba zdrojů#
Zařízení je sada propojených úrovní, ne jedna otevřená mapa, a server drží načtené ty, ve kterých někdo je. Paměť roste s počtem hráčů, s tím, kolik úrovní skupina otevřela, a s počtem postavených objektů.
| Hráči | RAM | vCPU | Poznámky |
|---|---|---|---|
| 1-4, začátek hry | 4 GB | 1 | Čistý save, otevřená jedna nebo dvě úrovně |
| 6, rozehraný svět | 6 GB | 1.5 | Výchozí limit se skutečnou základnou |
| 8-12 | 8-10 GB | 2 | Nad zamýšlenou velikostí skupiny |
| 16-24 | 12 GB | 2.5-3 | Jde to, ale není to vyvážené. Čekej zvláštnosti |
- CPU: Unreal server, který drží jedno dominantní vlákno. Taktovací frekvence je důležitější než počet jader. Zátěž pochází z AI nepřátel a ze simulovaných objektů, takže základna plná strojů stojí víc než prázdná chodba.
- Disk: počítej s 10-15 GB na instalaci a pamatuj, že s každou aktualizací obsahu roste. Samotný save je malý, pár desítek megabajtů.
- Síť: nenáročná. Co-op server pro šest hráčů není problém pro šířku pásma; znát se dá latence mezi hráči a serverem.
Zvýšení -MaxServerPlayers nad šest parametr podporuje, hra ne. Škálování nepřátel, hustota lootu i ekonomika craftingu vznikly pro malý tým a prakticky to u dvanácti hráčů znamená svět vyrabovaný za dva večery. Pokud chceš větší skupinu, vykompenzuj to v nastavení sandboxu vyšším respawnem lootu a násobiči nepřátel, místo abys doufal, že to nějak dopadne. Obecný argument najdeš v článku Kolik hráčů se vejde na server.
Instalace serveru přes SteamCMD#
$ steamcmd +force_install_dir C:\abiotic\server +login anonymous \ +app_update 2857200 validate +quitSpustitelný soubor skončí v AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe. Spusť ho jednou jen s -log, nech ho vytvořit složky a zase ho zastav. Teď máš:
AbioticFactor/Saved/Config/WindowsServer/SandboxSettings.iniAbioticFactor/Saved/SaveGames/Server/Admin.iniAbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/AbioticFactor/Saved/Logs/Na hostingu s panelem se nic z toho nepíše ručně: instalace proběhne při vytvoření serveru, argumenty jsou pole na záložce Startup a soubory se upravují v prohlížeči nebo přes SFTP. Pokud to děláš sám, aplikační ID, validaci a aktualizační skripty popisuje SteamCMD vysvětlené.
Spouštěcí parametry jsou konfigurace#
Tohle je celý startovací příkaz a pro většinu serverů je to jediné místo, kde cokoli nastavíš:
AbioticFactorServer-Win64-Shipping.exe -log -useperfthreads \ -NoAsyncLoadingThread -SteamServerName="Cascade Nightshift" \ -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 \ -ServerPassword=hallway-42 -WorldSaveName=Cascade \ -AdminPassword=change-this| Parametr | Výchozí | Co dělá |
|---|---|---|
-SteamServerName= | obecný název | Název v prohlížeči serverů. Pokud obsahuje mezery, dej ho do uvozovek |
-MaxServerPlayers= | 6 | Sloty. Přijme víc, hra je ale stavěná na šest |
-PORT= | 7777 | Herní port, UDP |
-QueryPort= | 27015 | Dotazovací port Steamu, UDP |
-ServerPassword= | prázdné | Heslo pro připojení. Prázdné znamená veřejný server |
-WorldSaveName= | Cascade | Název složky se savem, tedy i způsob, jak držet dva světy |
-AdminPassword= | prázdné | Umožní hráči převzít admina ve hře |
-AdminIniPath= | výchozí | Jiné umístění Admin.ini, relativně k Saved |
-SandboxIniPath= | výchozí | Jiné umístění SandboxSettings.ini |
-PlatformLimited= | off | PC, Playstation nebo Xbox. Omezí crossplay |
-LANOnly | off | Pouze lokální síť |
-MultiHome= | všechny | Naváže se na jednu adresu na stroji s více adresami |
-log | off | Zapisuje na standardní výstup, který čte panel |
-newconsole | off | Otevře samostatné okno konzole. Bez grafického rozhraní zbytečné |
-useperfthreads | off | Vláknování task graphu v Unrealu, součást standardního startovacího skriptu |
-NoAsyncLoadingThread | off | Také součást standardního startovacího skriptu |
-WorldSaveName si zaslouží víc pozornosti, než se mu dostává. Pojmenovává složku v Saved/SaveGames/Server/Worlds/, takže jeho změna založí zcela nový svět a ten starý nechá nedotčený na disku. Je to bezpečný způsob, jak vyzkoušet patch nebo změnu sandboxu: nasměruj server na nový název savu, nech ho rozbít a pak ho vrať zpět. Je to také způsob, jak lidé omylem „ztratí“ svět - nic se nesmazalo, jen se změnil argument.
Porty, crossplay a připojení#
| Port | Protokol | Účel |
|---|---|---|
7777 | UDP | Herní provoz |
27015 | UDP | Dotazy Steamu, prohlížeč serverů |
Oba jsou UDP. Pravidlo firewallu, které otevře jen TCP, ti dá server, který běží, loguje a nikoho nepřijme, což je nejčastější hlášení „nefunguje to“ u každé hry postavené na Steamu. Proč je dotazovací port zvlášť a co se rozbije, když je dosažitelný jen jeden z dvojice, vysvětluje Porty herních serverů vysvětlené.
Hráči se připojují třemi způsoby:
- Seznam serverů ve hře, který se řídí dotazovacím portem. Server chráněný heslem se v seznamu zobrazí také; hráči jsou požádáni o heslo.
- Oblíbené ve Steamu. V klientu Steam zvol View, pak Game Servers, pak Favorites a přidej
203.0.113.10:27015- dotazovací port, ne herní. Server se pak ve seznamu ve hře zobrazí spolehlivě, i když je veřejný seznam pomalý. - Název hostitele místo adresy, pokud chceš rozdávat něco zapamatovatelného místo IP. Podrobnosti o záznamu A najdeš v článku Připojení domény k herním serveru.
Crossplay je zapnutý, dokud ho nevypneš. -PlatformLimited=PC omezí server na hráče ze Steamu a ostatní hodnoty dělají totéž pro konzole. Důvodem k omezení není výkon, ale konzistence: servery omezené na jednu platformu se vyhnou okénku s nekompatibilními verzemi, které vzniká, když patch dorazí do jednoho obchodu dřív než do druhého.
SandboxSettings.ini: pravidla světa#
Tento soubor odpovídá obrazovce sandboxu v singleplayeru a pro většinu serverů je to jediný soubor s nastavením, který kdy budou potřebovat. Musí začínat hlavičkou sekce a u klíčů záleží na velikosti písmen:
[SandboxSettings]GameDifficulty=1HardcoreMode=FalseEnemySpawnRate=1.0EnemyHealthMultiplier=1.0EnemyPlayerDamageMultiplier=1.0DetectionSpeedMultiplier=1.0EnemyAccuracy=2HungerSpeedMultiplier=1.0ThirstSpeedMultiplier=1.0FatigueSpeedMultiplier=1.0DamageToAlliesMultiplier=0.5PlayerXPGainMultiplier=1.0DeathPenalties=1DurabilityLossOnDeathMultiplier=0.1ItemStackSizeMultiplier=1.0BaseInventorySize=12LootRespawnEnabled=FalsePowerSocketsOffAtNight=TrueDayNightCycleState=0FoodSpoilSpeedMultiplier=1.0StructuralSupportLimit=5AllowRecipeSharing=TrueNastavení, která mění, jak se na serveru hraje, a ne jen o pět procent, jak se při hraní cítí:
| Klíč | Výchozí | Co dělá |
|---|---|---|
GameDifficulty | 1 | 1 normální, 2 těžká, 3 apokalyptická |
HardcoreMode | False | Jeden život. Vynutí nejtěžší obtížnost |
AllowIronMode | True | Ironman, dává smysl jen se zapnutým hardcore |
LootRespawnEnabled | False | Klíčové pro dlouho žijící servery, viz níže |
EnemySpawnRate | 1.0 | Jak často se nepřátelé vracejí |
EnemyHealthMultiplier | 1.0 | Zdraví nepřátel |
EnemyPlayerDamageMultiplier | 1.0 | Poškození, které nepřátelé způsobují hráčům |
EnemyAccuracy | 2 | Přesnost střelby na stupnici 0-4 |
DetectionSpeedMultiplier | 1.0 | Jak rychle si tě všimnou |
DamageToAlliesMultiplier | 0.5 | Friendly fire. 0 ho úplně odstraní |
DeathPenalties | 1 | Úroveň trestu na stupnici 0-6 |
DurabilityLossOnDeathMultiplier | 0.1 | Poškození vybavení při smrti |
HungerSpeedMultiplier | 1.0 | Úbytek sytosti. Nižší hodnota je vstřícnější k partě, která hraje jen občas |
ThirstSpeedMultiplier | 1.0 | Úbytek hydratace |
FatigueSpeedMultiplier | 1.0 | Únava |
PlayerXPGainMultiplier | 1.0 | Rychlost levelování |
BonusPerkPoints | 0 | Body perků navíc při tvorbě postavy |
ItemStackSizeMultiplier | 1.0 | Velikosti stacků |
ItemWeightMultiplier | 1.0 | Zátěž při nošení |
BaseInventorySize | 12 | Počáteční sloty inventáře |
DayNightCycleState | 0 | 0 normální, 1 stále den, 2 stále noc |
PowerSocketsOffAtNight | True | Napájení zařízení v noci vypadává |
FoodSpoilSpeedMultiplier | 1.0 | Kažení jídla |
StructuralSupportLimit | 5 | Jak daleko můžeš stavět bez podpěry |
AllowRecipeSharing | True | Recepty, které se naučí jeden, se naučí všichni |
AllowCharacterReset | True | Hráči si mohou přerozdělit perky |
LootRespawnEnabled=False je výchozí hodnota a pro šestičlennou partu, která hraje kampaň společně a dohraje ji, je správná. Pro trvalý veřejný server je špatná: zařízení je konečné, a když se jednou vyrabuje, nový hráč nemá co najít. Zapni to u všeho, co poběží déle než pár měsíců, a čekej, že se ekonomika bude chovat velmi odlišně.
Další nastavení, které si zaslouží vědomé rozhodnutí, je AllowRecipeSharing. Nech ho zapnuté pro skupinu s různými rozvrhy, jinak ten, kdo může hrát jen v neděli, bude v každé session pozadu. Vypni ho, pokud parta chce, aby specializace něco znamenala.
Změny sandboxu se projeví při dalším startu. Zastav server, uprav, spusť; úprava běžícího serveru riskuje, že se soubor přepíše pod rukama.
Admini a moderace#
K adminovi vedou dvě cesty a většina serverů používá obě.
První je -AdminPassword= na startovací řádce, kterým hráč převezme admin pravomoci ve hře. Je to pohodlné, ale je to sdílené tajemství, tak s ním také nakládej: změň ho, když někdo opustí skupinu, a nedávej ho do veřejného Discordu.
Druhá je Admin.ini, který se při prvním startu vytvoří v AbioticFactor/Saved/SaveGames/Server/Admin.ini. Přijímá SteamID64 pod hlavičkou sekce, jedno na řádek:
[Moderators]Moderator=76561198012345678Moderator=76561198087654321Otevři soubor, který server vygeneroval, a řiď se hlavičkou, kterou do něj zapsal, místo abys něco předpokládal - tato část hry se mezi buildy měnila. Potřebné ID je 17místné SteamID64, ne jméno profilu; spolehlivě ho přečteš ze serverového logu poté, co se dotyčný jednou připojí.
Dej každému adminovi vlastní přístup místo sdíleného přihlášení. Na hostingu s panelem to znamená subuživatele s oprávněním ke konzoli a ničím víc, což ti navíc dá log aktivity serveru, ze kterého je vidět, kdo co restartoval. Proč na tom záleží víc, než se zdá, popisuje Subuživatelé a nejnižší oprávnění.
Savy, zálohy a nový začátek#
Svět žije v jedné složce: AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/, nebo jak jsi nastavil -WorldSaveName. Ta složka obsahuje stav zařízení, postavené objekty i postavu každého hráče. Zálohuj ji a zbytek za deset minut obnovíš ze SteamCMD.
- Zastavuj server čistě. Čisté vypnutí uloží save. Zabití procesu nebo hosting, který zmizí bez varování, tě může stát všechno od posledního autosavu.
- Zálohuj před každým patchem. Aktualizace obsahu u hry v aktivním vývoji občas změní formát savů a záloha, kterou jsi neudělal, je přesně ta, kterou jsi potřeboval.
- Drž zálohu jinde než na serveru. Kopie v druhé složce na stejném disku tě ochrání před chybou ve správci souborů, ne před ztrátou stroje.
- Dva světy, jeden server. Protože
-WorldSaveNamevybírá složku, můžeš mít druhý save na testování a přepínat jedním argumentem. Je to nejlevnější staging prostředí, jaké ti jakákoli hra nabídne - obecněji stejný nápad rozebírá Staging a produkce na jednom účtu.
Záloha, kterou nikdo neobnovil, je jen hypotéza. Občas ji obnov do rezervního názvu světa, přihlas se a ověř, že tam tvoje postava je; proč je právě tento druhý krok celý smysl, vysvětluje Zálohy, které se opravdu obnoví.
Na RE:NODE tlačítko Restart pošle čisté zastavení, sloty pro zálohy jsou součástí každého tarifu pro Abiotic Factor, obnova je jedno tlačítko a položka v Schedules může dělat noční zálohu a restart v hodinu, kdy nikdo nehraje. Pokud server dosáhne limitu paměti, kontejner se zastaví a čistě znovu nastartuje místo swapování, takže riziko, se kterým je třeba počítat, je neuložené zastavení - a to je argument pro noční zálohu místo týdenní.
Řešení potíží#
Server naběhne, ale v seznamu se nezobrazuje. Zkontroluj oba UDP porty, pak přidej server do oblíbených ve Steamu přes adresa:27015 a připoj se odtud. Pokud to funguje, server je v pořádku a veřejný seznam je jen pomalý. Ověř také, že jsi nepřidal -NOSTEAM.
Hráči server vidí, ale při připojování vyprší čas. Dotazovací port je otevřený a herní ne. Jsou to samostatná pravidla.
Nic v `SandboxSettings.ini` se neprojeví. Buď chybí nebo je špatně napsaná hlavička [SandboxSettings], soubor je ve špatné složce, nebo argument -SandboxIniPath ukazuje jinam. Podívej se do logu při startu, který jmenuje načtené soubory.
Všichni se objevili v prázdném novém světě. Změnil se -WorldSaveName, nebo nebyl nikdy nastaven a výchozí hodnota se liší od toho, co jsi čekal. Stará složka je pořád v Saved/SaveGames/Server/Worlds/. Zastav server, nastav argument na název té složky a spusť.
Server padá po aktualizaci hry. Serverový nástroj se aktualizuje odděleně od klienta. Spusť aktualizaci přes SteamCMD s validate a ověř, že build sedí; nekompatibilní verze se odmítnou při připojení, ne pádem, takže pád po patchi bývá způsobený nekompatibilním savem nebo nutností přeinstalovat bez modů.
Paměť roste v průběhu dní. Do určité míry je to normální, jak se otevírá víc zařízení a víc se staví. Plánovaný restart ji udrží na stejné úrovni - viz Restartovací plány, které pomáhají. Pokud naroste k limitu během hodin, počet slotů nebo hustota zástavby překračuje tarif.
Něco je špatně a nevíš co. Přečti si log, než cokoli změníš. Poslední řádky před ukončením bývají o souboru nebo argumentu, který za to může, docela výslovné; jak to dělat efektivně, ukazuje Čtení konzole.
FAQ#
Kolik hráčů pojme server pro Abiotic Factor?
Ve výchozím stavu šest. -MaxServerPlayers přijme vyšší čísla, ale hustota lootu, škálování nepřátel a ekonomika craftingu jsou stavěné na malou skupinu, takže větší server vyžaduje upravit nastavení sandboxu.
Musím hru vlastnit, abych mohl provozovat server?
Ne. Dedikovaný server je app 2857200 a instaluje se přes login anonymous. Hru potřebuješ k hraní, ne k hostování.
Mohou na jednom serveru hrát konzolisté a hráči na PC?
Ano. Crossplay je zapnutý, dokud ho nevypneš pomocí -PlatformLimited=, který přijímá PC, Playstation nebo Xbox a omezí server na danou platformu.
Kde jsou nastavení sandboxu na dedikovaném serveru?
V SandboxSettings.ini ve složce AbioticFactor/Saved/Config/WindowsServer/, začínajícím hlavičkou [SandboxSettings]. Obrazovka sandboxu ve hře se týká jen lokálně hostované hry.
Běží server na Linuxu?
Depot obsahuje build pro Windows a linuxové hostingy ho spouštějí pod Protonem nebo Wine. Funguje to spolehlivě a většina kontejnerových hostingů to dělá právě takhle, ale je dobré to vědět, když ladíš cesty k souborům.
Jak začít nový svět, aniž bych smazal starý?
Změň -WorldSaveName na novou hodnotu. V Saved/SaveGames/Server/Worlds/ se vytvoří nová složka a předchozí svět zůstane na disku, připravený k přepnutí zpět.




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.