Server All the Mods 10 tvoří zip ServerFiles z balíčku, Java 21 a jeden startovací skript. Aktuální vydání v době psaní, ATM10 8.2, je Minecraft 1.21.1 na NeoForge 21.1.251 s 464 módy ve složce serveru; zip má kolem 1,2 GB a už obsahuje instalátor NeoForge. Rozbalíš ho, spustíš startserver.sh, přijmeš EULA a počkáš několik minut, než proběhne první start. Paměť se nastavuje v user_jvm_args.txt, který se dodává s -Xms4G -Xmx8G. Ber 8 GB heapu jako minimum pro malou skupinu a dej ho do kontejneru, který má alespoň o 2 GB víc. Většina potíží pramení z toho, co skript dělá, aniž by to řekl, a zbytek tohoto návodu to projde.
Širší obraz ATM (jaké balíčky existují, jak chunk loading za měsíce zpomaluje server, jak bezpečně aktualizovat) najdeš v článku Server All the Mods: nastavení ATM10 a ATM9. Obecná práce s modpacky, třeba stavba serveru z klientského exportu, je v článku servery s modpacky z CurseForge nebo Modrinth. Tento článek jde hlouběji do samotné instalace ATM10: co dělá který soubor, co dělá který řádek skriptu a co změnit.
Stažení správných souborů serveru#
ATM10 se publikuje na CurseForge. Každé vydání má klientský balíček jako hlavní soubor a samostatný serverový balíček přiložený jako další soubor, pojmenovaný ServerFiles-<version>.zip. Pro 8.2 je to ServerFiles-8.2.zip. Na záložce Files balíčku otevři vydání, na kterém jsou tvoji hráči, a koukni do Additional Files. Server nestav z klientského zipu. Soubory serveru už mají odstraněné módy jen pro klienta a přicházejí se skripty a souborem s argumenty JVM.
Verzi shoduj přesně. ATM10 má od vydání desítky releasů (5.x, 6.x, 7.x a teď 8.x) a aplikace CurseForge hráčům klienta aktualizuje, jakmile nějaký vyjde. Server na 8.1 s hráči na 8.2 je odmítne, nebo je pustí dovnitř a pak selže na neshodném obsahu. Napiš verzi na svůj Discord a aktualizuj server i hráče ve stejný den.
Existují také spin-offy s vlastními soubory serveru. ATM10 Lite je menší balíček, ATM10 To The Sky je skyblock varianta a nově je tu edice Aeronautics. Všechno níže platí pro všechny, ale čísla verzí, počty módů a nároky na paměť jsou jiné. Přečti si startovací skript v tom zipu, který stahuješ, a nepředpokládej, že odpovídá tomuto.
Co je v zipu 8.2:
| Cesta | Co to je |
|---|---|
mods/ | 464 jar souborů, módy jen pro klienta už odstraněny |
config/, defaultconfigs/ | Konfigurace balíčku; defaultconfigs/ zakládá konfigurace pro jednotlivé světy |
kubejs/ | Změny receptů a lootu, na kterých balíček závisí |
datapacks/ | Datapacky balíčku, kopírují se do nových světů |
neoforge-21.1.251-installer.jar | Instalátor loaderu, takže nic nestahuješ |
startserver.sh, startserver.bat | Skripty pro instalaci a spuštění na Linuxu a Windows |
user_jvm_args.txt | Příznaky pro paměť a garbage collector |
server-icon.png | Ikona zobrazená v seznamu serverů |
Chybí eula.txt, server.properties i svět. První spuštění vytvoří všechny tři.
NeoForge a Java 21#
Minecraft 1.21.1 potřebuje Javu 21 a skript ATM10 to kontroluje. Spustí java -fullversion, vezme hlavní verzi a pod 21 odmítne nastartovat s hláškou Minecraft 1.21 requires Java 21 - found Java 17. Pokud Java chybí úplně, dostaneš Minecraft 1.21 requires Java 21 - Java not found. Kontrola je -ge 21, takže novější Java projde. NeoForge pro 1.21.1 ale vznikl a byl testován na 21 a Java 21 je to, co bys měl používat. Na stroji s více instalacemi Javy nasměruj skript na správnou pomocí proměnné prostředí ATM10_JAVA, nastavené na úplnou cestu k binárce java.
Verze loaderu je pevně daná v prvních řádcích skriptu:
NEOFORGE_VERSION=21.1.251# To use a specific Java runtime, set an environment variable named ATM10_JAVA# To disable automatic restarts, set an environment variable named ATM10_RESTART to false.# To install the pack without starting the server, set ATM10_INSTALL_ONLY to true.NeoForge sám nepřepisuj na novější. Každé vydání ATM zafixuje konkrétní build. Přechod z 8.1 na 8.2 posunul 21.1.249 na 21.1.251 a balíček byl testován na tomhle buildu. Novější build bývá v pořádku, ale když není, dostaneš pád, který na této verzi balíčku nikdo jiný neviděl. Nastavení serveru NeoForge vysvětluje instalátor a strukturu libraries/, kterou vytváří. Pro server ATM platí jednoduché pravidlo: spouštěj build, který skript jmenuje.
Co vlastně dělá startserver.sh#
Skript je krátký. Když si ho jednou přečteš, vysvětlí většinu problémů při prvním startu. Popořadě:
- Zkontroluje, že Java existuje.
- Pokud neexistuje složka
libraries/, nainstaluje NeoForge. Použije přibalený instalátor, pokud je, jinak ho stáhne zmaven.neoforged.net, a pak spustíjava -jar neoforge-21.1.251-installer.jar -installServer. - Pokud neexistuje
server.properties, zapíše ho s pěti řádky:allow-flight=true,motd=All the Mods 10,max-tick-time=180000,simulation-distance=5aview-distance=8. - Při
ATM10_INSTALL_ONLY=truetady skončí. - Zkontroluje, že Java je alespoň 21.
- Spustí server ve smyčce. Když proces skončí, počká 10 sekund a spustí ho znovu, pokud není
ATM10_RESTART=false.
Spouštěcí řádek je část, které musíš rozumět:
java @user_jvm_args.txt \ @libraries/net/neoforged/neoforge/21.1.251/unix_args.txt noguiŽádný jar serveru tu není. Argumenty se znakem @ jsou soubory s argumenty Javy. První obsahuje tvoje příznaky paměti a GC. Druhý, který zapsal instalátor, obsahuje classpath a hlavní třídu pro přesně tenhle build NeoForge. Číslo verze je součástí té cesty, což způsobuje problém s aktualizací popsaný níže u pádů.
Tři chování lidi překvapí:
- Výchozí hodnoty se zapíšou jen jednou. Pokud
server.propertiesuž existuje, například z výchozí instalace hostingu nebo z dřívějšího serveru, skript ho nechá být. Nedostanešallow-flight=trueani 180sekundový watchdog a první let s jetpackem vykopne hráče za létání. Ty řádky si přidej sám. - Smyčka restartů se nestará o to, proč se server zastavil. Při úplně prvním běhu server zapíše
eula.txtseula=falsea skončí a skript ho restartuje každých 10 sekund donekonečna, dokud ten soubor neupravíš. V panelu, který má vlastní obsluhu restartů, se také může smyčka skriptu a smyčka panelu prát. Když proces dohlíží panel nebo systemd, nastavATM10_RESTART=falsea restartování nech na dohlížiteli. - Pod `set -eu` se skript při chybách zastaví, kromě řádku s Javou, kde se návratový kód záměrně zachytává, aby smyčka mohla pokračovat. Padající server se proto tiše restartuje každých 10 sekund. Čti log, ne uptime.
Čistá první instalace na tvém vlastním linuxovém stroji vypadá takhle:
$ mkdir -p /srv/atm10 && cd /srv/atm10$ unzip ~/ServerFiles-8.2.zip$ chmod +x startserver.sh$ ATM10_INSTALL_ONLY=true ./startserver.sh # install NeoForge, write properties$ echo "eula=true" > eula.txt # after reading the EULA$ ATM10_RESTART=false ./startserver.shKdyž nejdřív nainstaluješ a přijmeš EULA před skutečným startem, přeskočíš smyčku restartů a server rovnou začne stavět svět.
user_jvm_args.txt řádek po řádku#
ATM10 dodává tento soubor, komentáře zkráceny:
-Xms4G-Xmx8G-XX:+UseG1GC-XX:+ParallelRefProcEnabled-XX:MaxGCPauseMillis=200-XX:+UnlockExperimentalVMOptions-XX:+DisableExplicitGC-XX:+AlwaysPreTouch-XX:G1NewSizePercent=30-XX:G1MaxNewSizePercent=40-XX:G1HeapRegionSize=8M-XX:G1ReservePercent=20-XX:G1HeapWastePercent=5-XX:G1MixedGCCountTarget=4-XX:InitiatingHeapOccupancyPercent=15-XX:G1MixedGCLiveThresholdPercent=90-XX:G1RSetUpdatingPauseTimePercent=5-XX:SurvivorRatio=32-XX:+PerfDisableSharedMem-XX:MaxTenuringThreshold=1Jsou to široce používané příznaky G1 vyladěné pro Minecraft, často nazývané Aikarovy příznaky. Sáhnout musíš jen na dva řádky.
- `-Xmx` je strop heapu. Je to číslo, které rozhoduje, jestli se balíček vejde. Zvyš ho pro víc hráčů nebo vyzrálý svět. Nikdy ho nenastavuj na celou paměť stroje nebo kontejneru.
- `-Xms` je počáteční heap. V kombinaci s
-XX:+AlwaysPreTouchJVM při startu zabere a projde celé-Xms. S dodanými hodnotami je 4 GB potvrzeno dřív, než se načte jediný mód. Nastavit-Xmsrovno-Xmxje běžné a vyhne se změnám velikosti, jenže pak je celý heap potvrzen od první vteřiny. Ujisti se, že kontejner má opravdu tolik plus režii, jinak se server zabije při startu, a ne až za hodinu. - G1 příznaky nech být, pokud nic neměříš. Jsou rozumné pro heap od 6 do 16 GB. Pokud půjdeš přes 12 GB, některé návody zvyšují
G1HeapRegionSizena16Ma procenta nové generace, což je ladicí krok a ne lék na lagy. Příznaky JVM a verze Javy vysvětluje, co který mění.
Pro místo, kde se paměť nastavuje, platí jedno pravidlo. Pokud panel nebo wrapper předává -Xmx i na příkazové řádce, soupeří dvě hodnoty a výsledek závisí na pořadí. Vyber jedno místo, obvykle tento soubor, a to druhé odstraň.
RAM a CPU podle počtu hráčů#
Dodané -Xmx8G je to, co autoři balíčku považují za funkční minimum, a odpovídá to zkušenosti. Pod 8 GB ATM10 nastartuje, ale garbage collection běží neustále, jakmile se hráči rozprostřou, a první rušný večer skončí pádem kvůli nedostatku paměti. Kontejner potřebuje víc než heap, protože Java používá paměť i na metaspace (třídy 464 módů), zásobníky vláken, přímé buffery a JIT. U balíčku této velikosti je ta režie zhruba 1,5 až 2,5 GB.
| Hráči | -Xmx v user_jvm_args.txt | Kontejner nebo tarif |
|---|---|---|
| 1-3, nový svět | 8G | 10 GB |
| 4-8, pár základen | 10G | 12-14 GB |
| 8-15, vyzrálý svět | 12G | 14-16 GB |
| 15+ nebo těžká automatizace | 14G+ | 16 GB+, a nejdřív profiluj |
Pár poznámek k tabulce:
- Hráči stojí méně než světy. Hráč, který stojí na místě, stojí málo. Hráč, který generuje nový terén, nebo základna plná strojů Mekanism a AE2 načítaná nepřetržitě, stojí hodně. Čtyři hráči s velkými továrnami mohou potřebovat víc než deset, kteří většinou prozkoumávají předgenerovanou zem.
- CPU je druhá polovina. Hlavní tick Minecraftu je jedno vlákno, takže rychlost jednoho jádra rozhoduje, kolik automatizace server unese, než klesne pod 20 TPS. Další jádra pomáhají s generováním chunků, garbage collection a sítí. Počítej s alespoň dvěma rychlými jádry a se třemi či více pro vytížený server.
- Víc heapu není vždy lepší. Heap 20 GB na serveru, který využívá 9 GB, jen prodlužuje každou plnou sběrnou fázi. Dimenzuj podle toho, co hlásí spark, ne podle velikosti tarifu. Kolik RAM potřebuje server Minecraftu popisuje, jak ta čísla číst.
Na RE:NODE jsou tarify Minecraftu, které ATM10 pojmou, Pro s 10 GB a Premium se 14 GB, s 2,5 a 3,5 vCPU. Pro je správně pro malou skupinu s -Xmx8G. Premium sedí vytíženému serveru s -Xmx12G. Tarify s 2 až 6 GB tento balíček neutáhnou a raději to řekneme, než abychom ho na to prodávali. Když kontejner dosáhne limitu paměti, jádro ho zastaví a server se čistě restartuje místo swapování, takže rezerva mezi -Xmx a tarifem je nastavení, na kterém nejvíc záleží.
Instalace v panelu#
V hostovaném panelu jsou kroky stejné, jen je provádíš přes správce souborů a konzoli místo shellu. Řada Minecraftu na RE:NODE instaluje Paper se správnou verzí Javy, přijatým EULA a vygenerovaným světem. Server ATM10 tuto instalaci nahrazuje tvým vlastním nahráním. Žádný instalátor modpacků neexistuje a nic v panelu nečte balíček z CurseForge.
- Zálohuj výchozí instalaci, pak zastav server.
- Smaž soubory Paperu, které nepotřebuješ: jar serveru,
plugins/a vygenerované složky světů. - Nahraj
ServerFiles-8.2.zippřes správce souborů nebo SFTP a rozbal ho na místě. - Uprav existující
server.propertiesa přidejallow-flight=trueamax-tick-time=180000, protože skript je do existujícího souboru nezapíše. - Nastav paměť v
user_jvm_args.txttak, aby-Xmxbylo o 2 GB nebo víc pod tarifem. - Zajisti, aby startup spouštěl skript ATM, nebo stejný řádek
java @user_jvm_args.txt @libraries/..., sATM10_RESTART=false, aby restarty řídil panel. Pokud záložka Startup nezpřístupňuje, co potřebuješ, otevři ticket a zeptej se. - Spusť server a sleduj konzoli, dokud se neobjeví
Done.
SFTP a správce souborů obsahuje údaje k připojení. Nahrání 1,2 GB je přes SFTP spolehlivější než přes prohlížeč na pomalé lince.
Předgenerování světa#
Soubory serveru ATM10 obsahují spark a FTB Chunks, ale ne předgenerátor. Terén v tomto balíčku je drahý, s extra rudami, módovanými strukturami a několika přidanými dimenzemi. Hráči, kteří prozkoumávají na jetpacích nebo s elytrami, generují chunky rychleji, než jedno vlákno ticku zvládne, a stutter pocítí všichni. Předgenerování přesune tu práci na dobu, kdy nikdo není online.
Chunky má build pro NeoForge 1.21.1 a běží jen na serveru, takže ho hráči nepotřebují. Přidej jar do mods/, restartuj a spusť:
/chunky world minecraft:overworld/chunky center 0 0/chunky radius 4000/chunky start/chunky worldborder/chunky pause a /chunky continue ti umožní zastavit na začátku hraní a pokračovat přes noc. Postup přežije restart. Na ATM10 zabere poloměr 4 000 bloků hodiny, ne minuty, a soubory regionů narostou o několik gigabajtů. Spouštěj to, když není nikdo online, a před začátkem zkontroluj volné místo na disku. Použij doplňování tabulátorem u /chunky world a předgeneruj Nether, End a ty módované dimenze, ve kterých tví hráči žijí. Těžební dimenze nech být, protože se mají resetovat. Hranice světa a předgenerování pokrývá načasování a velikosti souborů podrobněji.
Zkontroluj také nastavení mazání itemů. Balíček dodává Crash Utilities se zapnutým mazáním itemů v config/crashutilities-server.toml. Každých 5 minut, pokud je načteno víc než 1 000 odhozených itemů, varuje v chatu a všechny smaže. To drží lagy z entit na uzdě. Také to překvapí hráče, kterým zmizí odhozený stack, tak jim to řekni, nebo zvyš maximum, pokud by vaše skupina raději itemy nechala.
Časté příčiny pádů a opravy#
Konzole se zastaví uprostřed řádku bez crash reportu. Proces byl zabit zvenčí, skoro vždy kvůli paměti. -Xmx plus režie přesáhly limit kontejneru, často při generování světa nebo startu s velkým -Xms. Sniž heap nebo přejdi na vyšší tarif. Skutečná chyba Javy kvůli nedostatku paměti naopak vypíše java.lang.OutOfMemoryError a obvykle zapíše crash report.
`Error: could not open 'libraries/net/neoforged/neoforge/<version>/unix_args.txt'`. Aktualizoval jsi balíček na vydání s novějším buildem NeoForge. Skript uviděl existující složku libraries/, přeskočil instalátor a pak se pokusil spustit build, který není nainstalovaný. Spusť instalátor ručně (java -jar neoforge-<version>-installer.jar -installServer), nebo smaž libraries/ a spusť skript, ať nainstaluje načisto.
`has been compiled by a more recent version of the Java Runtime (class file version 65.0)`. Server běží na Javě 17 (class file version 61). Class verze 65 je Java 21. Přepni runtime, nebo nastav ATM10_JAVA.
Server se restartuje každých 10 sekund a nikdo se nemůže připojit. Buď eula.txt stále říká false, nebo server při startu padá a smyčka skriptu to skrývá. Najdi nahoře první chybu po hlášce o restartu.
`Failed to bind to port` při startu. Jiný proces, často druhá kopie ponechaná běžet kvůli dvojité smyčce restartů, drží port 25565. Zastav všechno, ověř, že nic neběží, a spusť jednou. V panelu použij port, který přidělí tarif, ne hodnotu zkopírovanou z návodu.
Watchdog zabije server při těžkém generování. Uvidíš A single server tick took 60.00 seconds a výpis vláken. max-tick-time je pořád na vanilkových 60000, protože skript svou výchozí hodnotu nikdy nezapsal. Nastav 180000. Nenastavuj -1, protože to nechá opravdu zaseknutý server viset navždy.
Server padá, když někdo vstoupí do jedné oblasti. Blokentita v tom chunku padá při každém ticku. Crash report jmenuje blok a jeho souřadnice. Obnov ten region ze zálohy nebo blok odstraň. Chyby chunků a poškození světa popisuje nástroje a vysvětlení crash reportů ukazuje, jak ve stack trace najít viníka mezi módy.
Chybějící registry entries po aktualizaci. Vydání odstranilo mód a svět stále obsahuje jeho bloky. NeoForge při načítání varuje a potvrzení je smaže natrvalo. Před aktualizací si přečti changelog a zálohu z doby před aktualizací si nech, dokud si nebudeš jistý.
Tu zálohu ulož jinam než na disk samotného serveru. Na RE:NODE jsou sloty záloh součástí každého tarifu, ukládají se mimo stroj, obnovují se jedním tlačítkem a lze je zamknout, aby rotace nesmazala kopii před aktualizací, zatímco testuješ. Zálohy, které se opravdu obnoví vysvětluje, proč bys měl obnovu vyzkoušet dřív, než ji budeš potřebovat.
FAQ#
Jakou verzi Javy potřebuje server All the Mods 10?
Javu 21. ATM10 je Minecraft 1.21.1 a startovací skript odmítne běžet na čemkoli starším. Novější Java kontrolou skriptu projde, ale balíček a NeoForge jsou testované na 21, takže používej 21.
Stačí 6 GB na server ATM10?
Na skutečné hraní ne. U kontejneru se 6 GB by heap po započtení režie musel být kolem 4 GB. Balíček se načte, ale jakmile hráči začnou prozkoumávat, převezme vládu garbage collection. Použij heap 8 GB v kontejneru s 10 GB nebo víc.
Musím NeoForge stahovat zvlášť?
Ne. Soubory serveru 8.2 obsahují instalátor NeoForge a skript ho při prvním startu spustí. Znovu ho stačí spustit jen tehdy, když aktualizace balíčku přejde na nový build NeoForge.
Kde změním RAM serveru?
V user_jvm_args.txt: řádek -Xmx pro strop a -Xms pro počáteční heap. Pokud tvůj panel nastavuje paměť i na příkazové řádce, použij jedno nebo druhé, ne obojí.
Můžu server provozovat bez smyčky restartů?
Ano. Nastav proměnnou prostředí ATM10_RESTART=false a skript skončí, když se server zastaví. Udělej to vždy, když server už restartuje panel, systemd nebo jiný dohlížitel.
Můžou se hráči připojit na ATM10 To The Sky nebo ATM10 Lite na stejný server?
Ne. Každý je jiný balíček s vlastními soubory serveru a seznamem módů. Hráči musí mít stejný balíček a stejnou verzi jako server.


