Запускаем выделенный сервер ETS2 на Ubuntu

Запускаем выделенный сервер ETS2 на Ubuntu

Как известно, в Euro Truck Simulator 2 появился режим конвоев, где можно создавать сессии для друзей и вместе выполнять доставки, общаясь в текстовом чате и с помощью рации по кнопке [x], наподобие TruckersMP. А в конце прошлого года, SCS Software выпустили ПО, с помощью которого можно запускать сессию конвоя отдельно от игры (выделенный сервер). Эта новость пришлась по вкусу многим игрокам и сейчас в списке сессий конвоя можно увидеть большое количество выделенных серверов. К сожалению, пока что лимит игроков в сессии – 8, но я надеюсь, что в будущем этот лимит поднимут. Ну а сегодня я расскажу как запустить выделенный сервер ETS2 на ОС семейства Linux, а именно на Ubuntu 22.04.

Рекомендую выполнять указанные далее действия от имени отдельного пользователя. В нашем примере это будет пользователь ets.

Устанавливаем SteamCMD

Устанавливаем SteamCMD прямо из репозитория, потому что он умеет обновлять сам себя, да и при таком варианте не придется вручную ставить 32-битные библиотеки:

sudo apt install steamcmd

Запускаем SteamCMD для обновления: steamcmd

После завершения обновления, можно выйти из него: quit

Устанавливаем выделенный сервер ETS2

Начинаем процесс установки в домашнем каталоге пользователя:

cd ~ && steamcmd +login anonymous +app_update 1948160 validate +quit

После завершения операции, перейдем в директорию, куда были установлены исполняемые и вспомогательные файлы сервера:

cd "Steam/steamapps/common/Euro Truck Simulator 2 Dedicated Server"

Далее нам нужно запустить сервер, чтобы он создал рабочую папку:

cd bin/linux_x64 && ./server_launch.sh

По итогу сервер выдаст ошибку *** ERROR *** : [MP] Error: Server packages file not found и самостоятельно завершится, не обращайте внимания.

Рабочая папка сервера была создана и теперь мы сделаем символьную ссылку к ней для удобства:

cd ~ && ln -s ".local/share/Euro Truck Simulator 2" ETS2_Server

Это значит что в домашней директории пользователя (в моем примере это /home/ets) появится ссылка ETS2_Server, которая будет вести на рабочую директорию сервера ETS2.

Выгружаем необходимые данные из Euro Truck Simulator 2

Для успешного запуска сервера, требуется 2 специальных файла (те самые server packages из текста ошибки). Эти файлы можно получить только из игры на вашем ПК.

Запустите игру и дождитесь меню выбора персонажа. Если вы не используете моды, смело можете пропустить этот абзац и примечание к нему, но если пользуетесь, то вам следует знать некоторые детали. Если у вас включены какие то моды, то ваш будущий сервер будет требовать их наличие у каждого игрока, который будет пытаться подключиться к сессии. Вы можете сделать сессию на ProMods или RusMap или вовсе не использовать моды. Здесь все на ваше усмотрение.

Примечание: если ваш сервер будет работать с модами, то при обновлении какого-либо мода в Steam, вам будет необходимо снова генерировать файлы server packages из игры и импортировать на сервер.

Если вы определились с модами, загрузитесь в мир, откройте консоль по клавише [~] и отправьте команду export_server_packages

После выполнения команды, в вашей папке “Документы => Euro Truck Simulator 2” будут созданы файлы server_packages.dat и server_packages.sii. Их нужно загрузить на сервер, в директорию /home/ets/ETS2_Server (рядом с server_config.sii). Для обмена файлами можно использовать WinSCP.

Настраиваем выделенный сервер ETS2

Откройте файл /home/ets/ETS2_Server/server_config.sii в любом удобном для вас текстовом редакторе и внесите желаемые изменения (замените /home/ets на путь к домашней папке вашего пользователя или используйте ~/ETS2_Server/server_config.sii).

Описание параметров:

  • lobby_name – название сессии (макс. 63 символа)
  • description – описание сессии (макс. 63 символа)
  • welcome_message – приветственное сообщение сессии, которое будет приходить игроку в чат, после подключения (макс. 127 символов)

Обратите внимание: в этих параметрах можно использовать русские символы, но после запуска сервера, эти символы в конфиге будут заменены на шестнадцатеричные значения байтов UTF-8 символов. Также следует помнить, что сервера с русскими названиями в списке будут отображаться ниже всех серверов, имеющих английское название.

  • password – пароль сессии, если нужен (макс. 63 символа)
  • max_players – максимум игроков, пока лимит 8
  • server_logon_token – токен Steam авторизации, в целом не обязателен, но лучше сделайте и пропишите
    • токен получаем здесь, номер игры 227300 для ETS или 270880 для ATS
  • player_damage – столкновения между игроками
  • traffic – трафик
  • hide_in_company – скрывать игроков в зонах компаний
  • hide_colliding – скрывать столкнувшееся ТС после телепортации
  • force_speed_limiter – принудительное ограничение скорости
  • mods_optioning – позволить модам, помеченным как необязательные, быть действительно необязательными
  • timezones – принимает значения от 0 до 2
  • service_no_collision – выключить коллизии в зонах сервиса
  • in_menu_ghosting – столкновения при нахождении в меню
  • name_tags – показывать теги имен игроков над их ТС

Если вам не нужны модераторы в сессии, то оставьте значение параметра moderator_list по умолчанию. Если модераторы все же нужны, измените значение на 1 и добавьте на новой строке еще один параметр, в котором нужно указать SteamID64 модератора. Вы можете добавить несколько модераторов, увеличивая число в квадратных скобках. В итоге это может выглядеть вот так:

...
 moderator_list: 1
 moderator_list[0]: 76561198210303223
 moderator_list[1]: 76561197990364979
...

На этом работа с конфигом завершена. Вы можете экспериментировать с разными параметрами и настроить все на ваш вкус.

Теперь создадим скрипт автозапуска сервера ETS2:

nano ETS2_Server_Run.sh

вставляем следующее содержимое:

#!/bin/sh
cd "Steam/steamapps/common/Euro Truck Simulator 2 Dedicated Server/bin/linux_x64" && ./server_launch.sh &

Сохраняем при помощи [Ctrl]+[o] и выходим при помощи [Ctrl]+[x].

Затем добавляем права на запуск: sudo chmod +x ETS2_Server_Run.sh

Другие настройки

Теперь вам необходимо открыть порты, чтобы ваш выделенный сервер ETS2 был доступен извне и отображался в списке сессий конвоев в игре. Для этого выполните следующие команды:

sudo iptables -A INPUT -p tcp -m multiport --dports 27015,27016 -j ACCEPT
sudo iptables -A INPUT -p udp -m multiport --dports 27015,27016 -j ACCEPT

Не забудьте принять меры, чтобы правила сохранялись после перезагрузки сервера. В конце этой статьи есть пример решения этой задачи.

По желанию, вы также можете добавить сервер в автозапуск, чтобы при перезагрузке вашего VPS, игровой сервер запускался автоматически. Для этого откройте crontab -e и добавьте следующую строку:

@reboot cd /home/ets && ./ETS2_Server_Run.sh >/dev/null 2>&1

Не забудьте заменить путь к домашнему каталогу на свой.

На этом все. Теперь вы можете перезагрузить ваш VPS и выделенный сервер ETS2 автоматически запустится. Или просто запустите сервер в фоновом режиме вручную:

cd ~ && ./ETS2_Server_Run.sh >/dev/null 2>&1 &

Когда сервер запущен в фоновом режиме, вы не видите его выводы в консоль, поэтому вам понадобятся логи сервера: ~/ETS2_Server/server.log.txt