RE:NODE

Návody12 min čtení

Dedikovaný server pro Abiotic Factor krok za krokem

Server pro Abiotic Factor: instalace přes SteamCMD, všechny spouštěcí parametry, SandboxSettings.ini, crossplay, admini, porty, savy a běžné pády.

9 čtenářů

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 2857200 obsahuje 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 anonymous ve 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áčiRAMvCPUPoznámky
1-4, začátek hry4 GB1Čistý save, otevřená jedna nebo dvě úrovně
6, rozehraný svět6 GB1.5Výchozí limit se skutečnou základnou
8-128-10 GB2Nad zamýšlenou velikostí skupiny
16-2412 GB2.5-3Jde 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#

bash
$ steamcmd +force_install_dir C:\abiotic\server +login anonymous \    +app_update 2857200 validate +quit

Spustitelný 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áš:

code
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é.

autosave a čisté zastaveníSpouštěcí parametrynázev, porty, slotySandboxSettings.inipravidla světaAdmin.inimoderátořiProces serverujeden na světSave světaSaved/SaveGames
Odkud Abiotic Factor server čte nastavení

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íš:

bash
AbioticFactorServer-Win64-Shipping.exe -log -useperfthreads \  -NoAsyncLoadingThread -SteamServerName="Cascade Nightshift" \  -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 \  -ServerPassword=hallway-42 -WorldSaveName=Cascade \  -AdminPassword=change-this
ParametrVýchozíCo dělá
-SteamServerName=obecný názevNázev v prohlížeči serverů. Pokud obsahuje mezery, dej ho do uvozovek
-MaxServerPlayers=6Sloty. Přijme víc, hra je ale stavěná na šest
-PORT=7777Herní port, UDP
-QueryPort=27015Dotazovací port Steamu, UDP
-ServerPassword=prázdnéHeslo pro připojení. Prázdné znamená veřejný server
-WorldSaveName=CascadeNá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=offPC, Playstation nebo Xbox. Omezí crossplay
-LANOnlyoffPouze lokální síť
-MultiHome=všechnyNaváže se na jednu adresu na stroji s více adresami
-logoffZapisuje na standardní výstup, který čte panel
-newconsoleoffOtevře samostatné okno konzole. Bez grafického rozhraní zbytečné
-useperfthreadsoffVláknování task graphu v Unrealu, součást standardního startovacího skriptu
-NoAsyncLoadingThreadoffTaké 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í#

PortProtokolÚčel
7777UDPHerní provoz
27015UDPDotazy 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:

  1. 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.
  2. 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ý.
  3. 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:

AbioticFactor/Saved/Config/WindowsServer/SandboxSettings.ini
[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=True

Nastavení, 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á
GameDifficulty11 normální, 2 těžká, 3 apokalyptická
HardcoreModeFalseJeden život. Vynutí nejtěžší obtížnost
AllowIronModeTrueIronman, dává smysl jen se zapnutým hardcore
LootRespawnEnabledFalseKlíčové pro dlouho žijící servery, viz níže
EnemySpawnRate1.0Jak často se nepřátelé vracejí
EnemyHealthMultiplier1.0Zdraví nepřátel
EnemyPlayerDamageMultiplier1.0Poškození, které nepřátelé způsobují hráčům
EnemyAccuracy2Přesnost střelby na stupnici 0-4
DetectionSpeedMultiplier1.0Jak rychle si tě všimnou
DamageToAlliesMultiplier0.5Friendly fire. 0 ho úplně odstraní
DeathPenalties1Úroveň trestu na stupnici 0-6
DurabilityLossOnDeathMultiplier0.1Poškození vybavení při smrti
HungerSpeedMultiplier1.0Úbytek sytosti. Nižší hodnota je vstřícnější k partě, která hraje jen občas
ThirstSpeedMultiplier1.0Úbytek hydratace
FatigueSpeedMultiplier1.0Únava
PlayerXPGainMultiplier1.0Rychlost levelování
BonusPerkPoints0Body perků navíc při tvorbě postavy
ItemStackSizeMultiplier1.0Velikosti stacků
ItemWeightMultiplier1.0Zátěž při nošení
BaseInventorySize12Počáteční sloty inventáře
DayNightCycleState00 normální, 1 stále den, 2 stále noc
PowerSocketsOffAtNightTrueNapájení zařízení v noci vypadává
FoodSpoilSpeedMultiplier1.0Kažení jídla
StructuralSupportLimit5Jak daleko můžeš stavět bez podpěry
AllowRecipeSharingTrueRecepty, které se naučí jeden, se naučí všichni
AllowCharacterResetTrueHráč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:

AbioticFactor/Saved/SaveGames/Server/Admin.ini
[Moderators]Moderator=76561198012345678Moderator=76561198087654321

Otevř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 -WorldSaveName vybí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.

0/2000