Как известно, в 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
– максимум игроков, пока лимит 8server_logon_token
– токен Steam авторизации, в целом не обязателен, но лучше сделайте и пропишите- токен получаем здесь, номер игры 227300 для ETS или 270880 для ATS
player_damage
– столкновения между игрокамиtraffic
– трафикhide_in_company
– скрывать игроков в зонах компанийhide_colliding
– скрывать столкнувшееся ТС после телепортацииforce_speed_limiter
– принудительное ограничение скоростиmods_optioning
– позволить модам, помеченным как необязательные, быть действительно необязательнымиtimezones
– принимает значения от 0 до 2service_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