Přidat módy na server BeamMP znamená jednu složku a jeden řádek. Každý mód vozidla nebo mapy patří do Resources/Client jako původní nerozbalený .zip a server ho pošle každému hráči při připojení. Vlastní mapa navíc potřebuje klíč Map v ServerConfig.toml, který míří na soubor info.json té mapy a zapisuje se jako /levels/<folder>/info.json, kde <folder> je název složky uvnitř zipu, ne název na stránce se stažením. Restartuj server a hotovo.
Na co vás nikdo nepřipraví, je cena. Každý bajt v Resources/Client si stáhne každý hráč, který ho ještě nemá, a to přes upstream tvého serveru, než vůbec může jet. Balíček o velikosti 3 GB znamená pět minut čekání pro nováčka na dobrém připojení a ztraceného hráče na špatném. Tento návod je o tom, jak jednoduchou část udělat správně a tu drahou udržet pod kontrolou: pravidla pro zipy, cesta k mapě, jak se velikost balíčku promítá do doby připojení a přenosů, jak udržet balíček konzistentní napříč aktualizacemi a jak najít a odstranit mód, který všechno rozbil.
Pokud server ještě neběží, začni návodem na server BeamMP, který pokrývá auth key, zbytek ServerConfig.toml, porty a základy Lua.
Jak BeamMP distribuuje módy#
BeamMP nemá integraci s workshopem ani správce módů na serveru. Model je záměrně přímočarý: server vlastní složku zipů a klient, který se připojí, musí skončit přesně s těmito zipy načtenými.
Při připojení server klientovi řekne, které soubory poskytuje. Launcher tento seznam porovná s tím, co už má, a stáhne vše, co chybí nebo se liší, přes TCP část portu 30814. Teprve když dorazí všechny soubory, hra načte úroveň a hráče do ní vpustí. Vracející se hráč, který už má stejnou kopii, nestahuje nic, proto je první připojení pomalé a další ne - a proto změna souboru, i drobná, vrátí všechny hráče na pomalou cestu.
Z tohoto návrhu plynou dva důsledky:
- Neexistuje částečný balíček. Hráč nemůže přeskočit mód, který nechce. Co je v
Resources/Client, je povinné stažení pro všechny. - Strana serveru a strana klienta jsou oddělené světy.
Resources/Clientje obsah pro hráče.Resources/Serverobsahuje pluginy v Lua, které se nikomu neposílají. Zip s módem vložený doResources/Servernedělá nic a plugin v Lua vložený doResources/Clientse každému hráči pošle jako zbytečné stahování. Straně serveru se věnuje návod na pluginy BeamMP v Lua.
Pravidla pro zipy v Resources/Client#
Módy do BeamNG.drive jsou zip archivy s vlastní strukturou složek hry v kořeni. Mód vozidla vypadá jako vehicles/<model>/..., mapa jako levels/<mapname>/... a některé módy mají vedle toho složky ui/, art/ nebo lua/. BeamMP tyto archivy posílá tak, jak jsou, takže platí pravidla hry plus jedno vlastní.
| Pravidlo | Proč na něm záleží |
|---|---|
Nech .zip zabalený | Server posílá archivy, ne složky |
| Struktura v kořeni zipu | vehicles/ nebo levels/ musí být na nejvyšší úrovni |
| Žádný zip v zipu | Hra se do něj nepodívá |
| Jedna kopie každého módu | Dvě verze se perou o stejné cesty |
| Jednoduché názvy souborů | Mezery a podivné znaky dělají potíže |
První pravidlo lapí lidi na každém hostingu s webovým správcem souborů. Nahraješ mód, vidíš archiv, ze zvyku klikneš na „rozbalit“ a máš složku, kterou server neposílá, a hráče, kteří auto nevidí. Pokud jsi něco rozbalil omylem, složku smaž a nahraj zip znovu.
Druhé pravidlo lapí lidi, kteří stahují z fór. Mód sdílený jako CoolCar_v2.zip někdy obsahuje složku CoolCar_v2/ se skutečnou složkou vehicles/ o úroveň níž, nebo přímo CoolCar.zip, protože někdo zazipoval zip. Ani jedno se nenačte. Archiv před nahráním otevři: první, co uvnitř uvidíš, musí být vehicles, levels nebo jiná z nejvyšších složek hry. Pokud ne, přebal ho tak, aby to platilo. Na Linuxu oprava vypadá takto:
$ mkdir fix && cd fix$ unzip ../CoolCar_v2.zip$ lsCoolCar_v2$ cd CoolCar_v2 && zip -r ../../coolcar.zip . && cd ../..$ unzip -l coolcar.zip | headPoslední příkaz vypíše obsah přebaleného archivu; cesty, které vytiskne, by měly začínat vehicles/.
Módy vozidel nepotřebují nic dalšího. Jakmile je zip v Resources/Client a server se restartoval, auto se objeví ve výběru vozidel pro všechny, kdo se připojili po restartu. Pokud chceš zabránit spawnu konkrétního modelu, je to práce pro Lua v onVehicleSpawn, ne něco, co složka s módy dokáže vyjádřit.
Vlastní mapy a cesta Map#
Klíč Map je cesta do virtuálního souborového systému hry, která míří na info.json dané úrovně. U originální úrovně je to název složky ze základní hry:
[General]Map = "/levels/west_coast_usa/info.json"Módovaná mapa funguje stejně. Zip jde do Resources/Client a cesta pojmenovává složku pod levels/ uvnitř toho zipu. Postup v pořadí:
- Nahraj zip s mapou do
Resources/Client. - Vypiš obsah archivu a najdi řádek končící
info.jsonpodlevels/. - Zkopíruj název té složky přesně, včetně velikosti písmen, do
Map. - Restartuj server a připoj se sám, než to někomu řekneš.
$ unzip -l Resources/Client/some_map_v3.zip | grep info.json 812 2026-08-02 14:10 levels/somemap/info.jsonZ tohoto výstupu vychází Map = "/levels/somemap/info.json". Všimni si, jak málo má název složky společného s názvem zipu: some_map_v3.zip obsahuje somemap. Hádání podle stránky se stažením je způsob, jak začíná většina příspěvků „moje mapa se nenačte“.
Tři detaily, na kterých lidé klopýtají:
- Úvodní lomítko a `info.json` patří do hodnoty.
levels/somemap,/levels/somemap/isomemapjsou špatně. Převezmi formát výchozího řádku a změň jen složku. - Velikost písmen záleží. Servery BeamMP většinou běží na Linuxu, kde
SomeMapasomemapjsou různé složky. Použij přesně to, co říká archiv. - Jen jedna mapa na server. Všichni hráči jsou na úrovni uvedené v
Map. Změna znamená upravit soubor a restartovat, což všechny odpojí. Servery, které mapy střídají, to dělají podle rozvrhu s restartem, nebo provozují druhý server.
Některé mapy závisejí na samostatném balíčku obsahu - sdílených assetech, které používá víc map od stejného autora a které se publikují jako vlastní zip. Stránka mapy to obvykle uvádí. Pokud se mapa načte s chybějícími texturami, fialovými povrchy nebo chybějícími budovami, chybí závislost; patří do Resources/Client vedle mapy.
Když je cesta špatně, co se stane, závisí na verzi: některé buildy se vrátí na výchozí úroveň, jiné nechají klienty viset na načítací obrazovce. Oprava je v obou případech stejná: znovu vypiš zip a porovnej znak po znaku. Když je mapa pro verzi hry hráčů příliš nová nebo příliš stará, obvykle se načte jen částečně nebo vyhodí chyby v logu hry; to je problém verze, ne cesty, a důkazem je odložení zipu stranou.
Velikost módů, doba připojení a co hráči snesou#
Doba připojení je aritmetika. První stažení je velikost všeho v Resources/Client dělená pomalejším ze dvou čísel: co dokáže server tomu hráči poslat a co jeho připojení dokáže přijmout. Hráči, kteří se připojují současně, se o upstream serveru dělí.
| Velikost balíčku | Při 50 Mbit/s | Při 10 Mbit/s |
|---|---|---|
| 300 MB | asi 50 sekund | asi 4 minuty |
| 1 GB | asi 3 minuty | asi 14 minut |
| 3 GB | asi 8 minut | asi 40 minut |
Jsou to ideální hodnoty pro jednoho hráče, který má linku sám pro sebe; skutečná stahování jsou pomalejší. Čísla činí kompromis konkrétním. Balíček 300 MB je neviditelný. Balíček 1 GB je v pořádku pro stálou skupinu, která ho stáhne jednou. Balíček 3 GB na veřejném serveru znamená, že většina lidí, kteří kliknou na tvůj název v seznamu serverů, je pryč dřív, než stahování skončí, a někteří to zkusí později znovu a začnou od nuly.
To, co balíček nafukuje, bývá jiné, než majitelé serverů čekají. Jeden detailní mód vozidla má běžně desítky až několik set megabajtů a těžké položky jsou mapy - velká vlastní mapa může sama o sobě mít dobře přes gigabajt. Velikosti se mezi autory hodně liší, takže zkontroluj zipy a nespoléhej na pravidlo palce:
$ du -h Resources/Client/*.zip | sort -h$ du -sh Resources/ClientSpusť to před každou změnou i po ní. Seznam seřazený podle velikosti ti ukáže, kde je váha, a velmi často je to jedna mapa a dva obrovské balíčky aut, které dohromady tvoří většinu celku.
Praktické limity, které fungují:
- Veřejné servery: drž celek pod zhruba 1 GB a velikost uveď v popisu serveru nebo v textu
Description, aby lidé věděli, s čím souhlasí. - Soukromé skupiny: velikost je méně důležitá, protože každý stahuje jen jednou. Řekni lidem, ať se připojí večer před akcí a stahování mají z krku.
- Servery na akce: jedna mapa, vozidla pro akci a nic dalšího. Závod nepotřebuje v balíčku čtyřicet náhradních vozidel.
Pokud tě svádí přidat „pár oblíbených aut“, aby byl server atraktivnější, nejdřív se podívej na čísla připojení. Menší a rychlý server se zpravidla zaplní; velký a pomalý bývá přeskočen.
Přenosy: kdo platí za stahování#
Každé stažení módu odchází přes uplink serveru. Vynásob balíček počtem nových hráčů a číslo rychle naroste. Veřejný server s balíčkem 2 GB a padesáti novými hráči za týden odešle zhruba 100 GB provozu s módy, navíc k běžnému stavu vozidel. Po restartu, který změní soubor, je každý štamgast znovu nováček.
K tomu přibývá provoz ve hře, který roste s počtem hráčů krát počet aut, protože každý klient dostává aktualizace pro každé vozidlo. Přenos dat herního serveru na hráče nabízí metodu odhadu; pro BeamMP je užitečné poučení, že MaxCars ovlivňuje výkon klienta i provoz.
Špička záleží stejně jako celek. Deset lidí, kteří se po restartu připojí společně, tahá balíček naráz a dělí se o upstream, takže každý z nich vidí pomalejší stahování, než by měl sám. Hráči pak vyprší časový limit, zkusí to znovu a zatíží server víc. Pokud máš plánované restarty, dej je na klidnou hodinu, a pokud musíš měnit balíček, udělej to jednou, ne v pěti malých krocích během večera.
Na hostingu, který neúčtuje za gigabajty, to nestojí nic navíc, ale pořád je to sdílený uplink a pásmo a fair use vysvětluje, co „neměřené“ znamená v praxi. Záleží i na disku: plány BeamMP na RE:NODE jdou od 10 GB NVMe na nejmenším plánu po 30 GB na největším a balíček spolu se zálohami se tam musí vejít.
Jak udržet balíček módů konzistentní#
Většina potíží s módy na BeamMP jsou potíže s verzemi: mód aktualizovaný autorem, patch hry, který změnil něco, na čem mód stál, nebo dvě verze stejného módu v balíčku současně. Trocha disciplíny se vyhne téměř všemu.
Drž jednu kopii každého módu. Při aktualizaci módu smaž starý zip dřív, než nahraješ nový. Dva archivy, které oba obsahují vehicles/coolcar/, se navzájem přepisují v pořadí, které neovládáš, a výsledkem je auto, které má někdy nové díly a někdy ne. Je to tentýž problém, který popisuje pořadí načítání módů u jiných her, s tím rozdílem, že BeamNG ti žádné pořadí ke správě nedává - prostě nesmíš mít duplicity.
Pojmenovávej soubory s verzemi. coolcar_v2.1.zip místo coolcar.zip. Když se něco rozbije, na první pohled vidíš, co se od minulého týdne změnilo.
Veď manifest. Prostý textový soubor vedle serveru nebo na tvém Discordu, který vypisuje každý zip, jeho verzi, velikost a odkud pochází. Je to to, po čem sáhneš, když vyjde aktualizace hry a musíš se rozhodnout, které módy zkontrolovat první.
somemap_v3.zip 1.4 GB map, requires somemap_assetssomemap_assets.zip 310 MB dependency of somemapcoolcar_v2.1.zip 180 MB vehiclepickup_pack_v1.0.zip 95 MB vehicleDávej pozor na lokální módy hráčů. Hráč, který má vlastní kopii módu ve své běžné složce módů BeamNG, v jiné verzi než ty, může vidět zvláštní chování. BeamMP drží soubory, které stáhne, odděleně od vlastních módů hráče, ale to, jak spolu interagují, se mezi verzemi launcheru měnilo. Když jeden hráč hlásí problém, který nemá nikdo jiný, požádej ho, ať vypne své lokální módy a znovu se připojí, než sáhneš na server.
Aktualizuj záměrně. Po vydání BeamNG.drive hráči aktualizují hru, BeamMP je následuje a některé módy vozidel a map přestanou fungovat, dokud je autoři nedoženou. Nehoň aktualizace v noci, kdy lidé čekají, že pojedou. Nejdřív zálohuj Resources/Client a ServerConfig.toml, aktualizuj server a pak přidávej módy zpět kontrolovaně. Co dělat, když aktualizace módu všechno rozbije popisuje obecný postup.
Hledání a odstranění rozbitého módu#
Rozbitý mód BeamMP se projeví na straně hráčů, ne serveru. Server módy nenačítá, jen je posílá, takže konzole serveru obvykle vypadá čistě, zatímco hráči vidí auto, které se nespawnuje, vozidlo s chybějícími díly, okno s chybou Lua ve hře, úroveň, která se nikdy nenačte, nebo pád na plochu.
Nejrychlejší diagnostika je půlení a funguje, protože neexistuje stav světa, který by šel poškodit:
- Zastav server a přesuň všechno z
Resources/Clientdo složky vedle, napříkladResources/Disabled. - Spusť server s originální mapou a ověř, že čisté připojení funguje.
- Vrať zpět polovinu módů, restartuj, otestuj.
- Pokud se problém vrátí, viník je v té polovině. Pokud ne, je v té druhé. Opakuj s podezřelou polovinou.
U dvaceti módů je to zhruba pět restartů. Pokud je podezřelá mapa, nech ji v první polovině, kterou testuješ, a při testování vozidel nastav Map zpět na originální úroveň, aby problém s mapou nemohl zakrýt problém s vozidlem.
Hráči jsou druhý zdroj důkazů. Hra zapisuje log beamng.log do uživatelské složky a chyba ke konci obvykle jmenuje složku módu. Požádej jednoho postiženého hráče, ať ti ho pošle, místo aby popisoval, co viděl.
Trvalé odstranění módu:
- Smaž zip z
Resources/Client, nestačí ho přejmenovat - přejmenovaný.zipje pořád zip a může se dál posílat. - Pokud byla odstraněna mapa, změň
Mapzpět na originální úroveň nebo jinou mapu, kterou ještě máš. - Restartuj server.
- Aktualizuj manifest a řekni to hráčům, aby nikdo dál nehlásil auto, které už neexistuje.
Přesun souborů do sousední složky jako Resources/Disabled je bezpečný způsob, jak mód odložit bez smazání; server čte jen složky, které má nastavené ke čtení. Nenechávej vypnuté módy uvnitř Resources/Client se změněnou příponou v domnění, že se na každé verzi ignorují.
Než přidáš náhradu, zamysli se, odkud pochází. Každý zip, který servíruješ, běží na cizích PC a módy vozidel mohou obsahovat Lua. Používej módy od autorů a z webů, které umíš jmenovat, a k módu, který se objevil jen jako soubor v chatu, přistupuj s podezřením. Škodlivé pluginy a módy a udržování čistého módovaného serveru se tomu věnují důkladně.
Nahrávání balíčků a zálohy#
Nahrát vícegigabajtový balíček přes prohlížeč funguje, ale prohlížečový upload, který se zasekne na 90 %, je ztracený čas. Pro cokoli přes pár set megabajtů použij SFTP: ve většině klientů umí pokračovat a dovolí ti nahrát celou sadu zipů najednou. SFTP a správce souborů pokrývá připojení; na RE:NODE má každý server vlastní přihlašovací údaje SFTP a správce souborů v prohlížeči slouží k rychlým úpravám ServerConfig.toml.
Protože server neuchovává žádný stav světa, záloha BeamMP je o nastavení a snadno se na ni zapomene, dokud tě špatná aktualizace nedonutí stavět znovu z paměti. Co stojí za uchování:
ServerConfig.toml, který obsahuje výběr mapy a nastavení.Resources/Server, tvé pluginy v Lua, které si znovu stáhnout nemůžeš.Resources/Client, přesná sada verzí módů, které naposledy fungovaly spolu, nebo alespoň manifest, který je vypisuje.
Velké balíčky dělají úplné zálohy těžkými, takže rozumné je rozdělení: záloha konfigurace a pluginů před každou změnou a úplná záloha včetně Resources/Client, když je balíček ve známém funkčním stavu. Na RE:NODE mají herní plány sloty záloh, které můžeš spouštět na požádání nebo podle rozvrhu a obnovit tlačítkem; ukládají se mimo stroj a návod k zálohám v panelu vysvětluje ovládání. Zálohy, které opravdu obnovíš je připomínka, že jednu je třeba otestovat.
FAQ#
Musí si hráči módy instalovat sami?
Ne. Cokoli v Resources/Client launcher BeamMP automaticky stáhne, když se hráč připojí, a načte pro danou relaci. Hráči potřebují jen BeamNG.drive a BeamMP. Žádat je o ruční instalaci módů většinou věc zhorší, protože jejich ruční kopie může být jiná verze.
Můžu mít na jednom serveru BeamMP dvě mapy?
Můžeš nahrát několik zipů s mapami, ale používá se jen ta uvedená v Map a všichni jsou na ní společně. Ostatní se přesto posílají každému hráči, takže nepoužívané mapy jsou čistá cena za stahování. Nech jen mapu, kterou provozuješ, a přepínej úpravou Map a restartem.
Proč se moje vlastní mapa načte jako výchozí úroveň?
Cesta Map neodpovídá úrovni, která existuje. Vypiš zip, najdi složku pod levels/, která obsahuje info.json, a zapiš ji jako /levels/<folder>/info.json se stejnou velikostí písmen. Zkontroluj, že zip je pořád zabalený a leží přímo v Resources/Client.
Podporuje BeamMP Steam Workshop nebo repozitář ve hře?
Pro servery ne. Server servíruje jen zipy ze své vlastní složky Resources/Client. Chceš-li použít mód z repozitáře BeamNG, stáhni zip sám a nahraj ho a poznamenej si verzi.
Proč si vracející se hráči musí všechno stahovat znovu?
Protože se změnil soubor. Launcher stáhne každý soubor, který chybí nebo se liší od kopie, kterou má. Výměna, přebalení nebo aktualizace zipu se počítá jako změna, takže změny balíčku sdružuj, místo abys je dělal po jedné.
Jak velký může být balíček módů pro BeamMP?
Pevný limit kromě disku neexistuje, ale praktický ho určuje doba připojení. Pod zhruba 1 GB je pro veřejný server pohodlné; soukromé skupiny mohou jít výš, protože každý stahuje jednou. Změř to příkazem du -sh Resources/Client a řekni hráčům celkovou velikost.


