Перейти к содержимому

Свой сервер

Моды и карты

Моды — это обычные zip-архивы BeamNG: карта, машина, набор звуков. Сервер раздаёт их игрокам, а лаунчер скачивает их до запуска игры. Ставить вручную игрокам ничего не нужно.

  1. Положите zip-архив мода в папку content/ рядом с server.toml. В Docker это data/content/.
  2. Перезапустите сервер. Папку он читает только при запуске.

В логе появится строка вроде serving 2 mods (148.3 MB) from content/. Если файл не zip, сервер его пропустит и напишет '…' is not a ZIP file and will be ignored.

Заменили или удалили архив — тоже перезапустите сервер.

Положите zip карты в content/ и укажите карту в [server] map:

[server]
map = "/levels/my_map/info.json"

Здесь my_map — имя папки карты внутри архива, в levels/. Чтобы его узнать, откройте архив и посмотрите, какая папка лежит в levels/.

Если у карты есть своя картинка, сервер покажет её в списке серверов (Попасть в список).

Перед входом лаунчер скачивает с сервера архивы, которых у игрока ещё нет, и кладёт их в свой кэш. В следующий раз скачивать уже нечего. В карточке сервера игрок видит список файлов и их общий размер, а в фильтрах может ограничить объём загрузки. Поэтому лишние моды лучше не держать: каждый мегабайт ждёт каждый новый игрок.

Бывает, что мод нельзя раздавать, и игроки должны скачать его сами. Откройте content/mods.json (его пишет сервер) и поставьте у этого архива "protected": true:

"big-map.zip": { "protected": true }

В файле у записи будут и другие поля — их не трогайте, поменяйте только protected. Сервер больше не отдаёт такой файл. Лаунчер игрока, у которого мода нет, объяснит, в какую папку кэша его положить. Отметка сохраняется, даже если архив заменить.

Ресурсы тоже могут отправлять игрокам Lua-скрипты, но это другой механизм: скрипты приходят при входе, их не нужно класть в content/. Об этом — на странице Ресурсы.

Но одно может работать вместе с другим. Начиная с клиентского мода 1.7.6 скрипты ресурса могут включить Lua из мода в content/. Тогда моду не нужен свой стартовый скрипт (scripts/…/modScript.lua): его Lua загружает ресурс, а когда игрок уходит, выключает. Как это сделать, показано на странице Клиентские скрипты.