Выделенный сервер Euro Truck Simulator 2 - это небольшая бесплатная загрузка из Steam, которая держит постоянную сессию Convoy, чтобы ваша группа могла ездить вместе, а одному человеку не приходилось быть хостом и не выходить из сети. Это один из самых дешёвых игровых серверов: 1 ГБ памяти и доля ядра действительно достаточно, а предел игроков - восемь, и это ограничение самой игры, которое хостер поднять не может.
Шаг, на котором застревает большинство, - не установка. Это server_packages: два файла, которые нужно экспортировать из самой игры с точно тем набором DLC и модов, который должен запускать сервер, а затем скопировать на сервер. Пропустите его - и сервер откажется запускаться с сообщением о данных карты. Сделайте один раз и забудьте, зачем это было, - и следующее купленное DLC с картой сломает сервер так, что это будет похоже на баг.
Что такое выделенный сервер ETS2 и чем он не является#
Convoy - это собственный многопользовательский режим SCS Software, добавленный в базовую игру. Выделенный сервер - это тот же игровой движок без графики, который держит общий мир открытым, чтобы игроки могли приходить и уходить. Выделенный сервер есть и у Euro Truck Simulator 2, и у American Truck Simulator, а файлы и шаги ниже одинаковы для обоих, различаются только app id.
Он не является TruckersMP. TruckersMP - это отдельная неофициальная модификация со своими серверами, своими правилами и сотнями игроков в одном мире. Сервер TruckersMP вы хостить не можете: эта инфраструктура принадлежит им. Если вам нужна оживлённая публичная дорога, полная незнакомцев, присоединяйтесь к этому проекту. Если вам нужны восемь друзей, общая карта и свои правила, то это ваш вариант.
Два проектных решения важнее любой настройки:
- Сессия не постоянна так, как в игре на выживание. Каждый игрок ведёт собственный профиль со своей компанией, гаражами, заказами и деньгами. Сервер хранит общий мир, трафик и положение каждого. Сохранения мира, которое нужно копировать, нет, и экономики, которую нужно обнулять, тоже.
- У всех должна быть одна и та же карта. Сервер объявляет, из какой базовой карты, каких DLC и каких модов он собран, через файлы
server_packages. Игрок, чей набор не совпадает, не войдёт.
Требования и расход ресурсов#
Это почти самый лёгкий выделенный сервер, какой вам доведётся запускать.
| Игроки | RAM | vCPU | Примечания |
|---|---|---|---|
| 2-4, базовая карта | 1 ГБ | 0.75 | Комфортно |
| 8, базовая карта и DLC | 1-2 ГБ | 1 | Полный предел |
| 8, крупные карты-моды | 2-3 ГБ | 1.5 | Карты-моды - единственная настоящая нагрузка |
- CPU: скромный. Сервер запускает ИИ-трафик и ретранслирует позиции; он не считает подробно физику восьми грузовиков.
- Диск: несколько гигабайт. Экспортированный
server_packages.dat- самый большой одиночный файл, и он растёт с каждым включённым DLC с картой и каждым модом карты. - Сеть: по меркам игровых серверов небольшая. Восемь игроков, создающих обновления позиций и трафика, - это не проблема пропускной способности.
Раз предел равен восьми, размер тарифа не стоит мучительных раздумий. Берите самый маленький и возвращайтесь к вопросу, только если запускаете крупное сочетание карт-модов. Статья сколько игроков помещается на сервере - про игры, где ответ интересен; эта к ним не относится.
Установка выделенного сервера#
Сервер - это отдельное приложение Steam, app id 1948160 для Euro Truck Simulator 2. У American Truck Simulator свой.
$ steamcmd +force_install_dir /home/ets2/server +login anonymous \ +app_update 1948160 validate +quitАнонимный вход работает для большинства. Если Steam отказывает в загрузке, войдите вместо этого с аккаунтом, которому принадлежит игра. Исполняемые файлы:
bin/win_x64/eurotrucks2_server.exebin/linux_x64/eurotrucks2_serverЗапустите его один раз, и он создаст свою домашнюю папку и server_config.sii по умолчанию, а затем остановится с ошибкой об отсутствии пакетов сервера. Это ожидаемый первый запуск. Домашняя папка - это Documents\Euro Truck Simulator 2\ в Windows и ~/.local/share/Euro Truck Simulator 2/ в Linux, и её можно переместить с помощью -homedir.
| Параметр | Что делает |
|---|---|
-server "file" | Использовать указанный файл пакетов сервера |
-server_cfg "file" | Использовать указанный файл конфигурации |
-homedir "path" | Разместить конфигурацию и пакеты там, где вы решите |
-nosingle | Разрешить более одного экземпляра сервера на одной машине |
Если это ваш первый выделенный сервер Steam, то об app id, validate и скриптовых обновлениях в целом рассказано в статье SteamCMD простыми словами.
server_packages: шаг, который все пропускают#
Серверу нужно знать, как выглядит карта, и он узнаёт это, получив снимок, экспортированный из настоящего игрового клиента. Вы создаёте его на ПК, где есть нужные DLC и моды, и создаёте заново каждый раз, когда этот набор меняется.
- Откройте
config.cfgв домашней папке игры (тот же путьDocuments\Euro Truck Simulator 2\) и задайтеuset g_console "1"иuset g_developer "1". - Запустите игру с включёнными в точности теми DLC и активными теми модами, которые должен запускать сервер.
- Нажмите клавишу консоли (ту, что над Tab) и введите
export_server_packages. - В домашней папке игры появятся два файла:
server_packages.siiиserver_packages.dat. - Скопируйте оба в домашнюю папку сервера, рядом с
server_config.sii.
На хостинге с панелью шаги с 1 по 4 всё равно придётся выполнить на собственном ПК - обойти это нельзя, потому что для экспорта нужен полноценный клиент игры. Шаг 5 - это загрузка файлов; данные для подключения есть в статье SFTP и файловый менеджер.
server_config.sii подробно#
SII - собственный формат SCS. Оставьте оболочку и созданный идентификатор _nameless в точности такими, как их записал сервер, и правьте только значения.
SiiNunit{server_config : _nameless.1855.8AF0.3390 { lobby_name: "Night Shift Haulage" description: "Slow convoy, realistic driving, Fridays 20:00 CET" welcome_message: "Keep it on the road. Rules in the Discord." password: "diesel" max_players: 8 max_vehicles_total: 100 max_ai_vehicles_player: 50 max_ai_vehicles_player_spawn: 50 connection_virtual_port: 100 query_virtual_port: 101 connection_dedicated_port: 27015 query_dedicated_port: 27016 server_logon_token: "" player_damage: true traffic: true hide_in_company: false hide_colliding: true force_speed_limiter: false mods_optioning: false timezones: 2 service_no_collision: false in_menu_ghosting: false name_tags: true friends_only: false show_server: true moderator_list: 2 moderator_list[0]: 76561198012345678 moderator_list[1]: 76561198087654321}}| Ключ | По умолчанию | Что делает |
|---|---|---|
lobby_name | общее | Название в списке серверов |
description | пусто | Показывается, когда игрок выбирает сервер |
welcome_message | пусто | Выводится каждому игроку при входе |
password | пусто | Пароль для входа. Пусто - заходит любой |
max_players | 8 | Предел. Восемь - ограничение игры, а не значение по умолчанию |
max_vehicles_total | 100 | Всего ИИ-транспорта в сессии |
max_ai_vehicles_player | 50 | ИИ-трафик вокруг каждого игрока |
player_damage | true | Могут ли игроки повреждать друг друга |
traffic | true | ИИ-трафик вообще. Его отключение сильно экономит ресурсы |
hide_in_company | false | Скрывать чужие грузовики внутри складов компаний |
hide_colliding | true | Делать призраками грузовики, которые иначе столкнулись бы |
force_speed_limiter | false | Включает встроенный ограничитель скорости у всех |
mods_optioning | false | Позволяет игрокам выбирать, загружать ли необязательные моды |
service_no_collision | false | Нет столкновений на станциях обслуживания |
in_menu_ghosting | false | Игрока в меню нельзя задеть |
name_tags | true | Имена над грузовиками |
friends_only | false | Ограничивает вход друзьями по Steam |
show_server | true | Показывать сервер публично |
moderator_list | 0 | Число модераторов, за которым идут записи с индексами |
Три из этих параметров определяют характер сервера. Включённый hide_colliding - это защита от вредительства по умолчанию: грузовики проходят друг сквозь друга там, где случилось бы столкновение; отключайте его только для группы, которая договорилась играть всерьёз. Выключенный player_damage снимает остаток проблемы с таранами ценой любого реализма. force_speed_limiter решает, будет ли ваш convoy колонной или гонкой.
moderator_list - это массив со счётчиком: сначала число, затем по одной строке moderator_list[n] на каждый SteamID64, нумерация с нуля. Ошибётесь со счётом - и записи после него игнорируются. Перечисленные игроки повышаются автоматически при входе, и так вы получаете возможность выгонять и банить без консоли RCON.
Редактируйте файл при остановленном сервере. Как и большинство игровых серверов, этот перезаписывает свой конфиг при завершении и с лёгкостью затрёт набранное вами.
Порты и токен входа Steam#
| Порт | Протокол | Назначение |
|---|---|---|
27015 | UDP | Подключение |
27016 | UDP | Steam query |
Это connection_dedicated_port и query_dedicated_port. Два виртуальных порта, 100 и 101, - внутренние идентификаторы сетевого слоя Steam, а не то, что видит ваш файрвол, но если вы запускаете два сервера на одной машине, они должны различаться, как и выделенные порты. Оба настоящих порта работают по UDP; правило только для TCP даст сервер, который работает, но который нельзя найти. Про порт запросов и причину его отдельности рассказано в статье порты игрового сервера.
server_logon_token - это токен входа игрового сервера Steam. Без него сервер работает как анонимный игровой сервер, что ограничивает то, как он показывается и опознаётся; с ним у него есть постоянная идентичность в браузере Steam. Создаётся он на странице аккаунтов игровых серверов Steam, и учтите ловушку, которую официальная документация называет прямо: используйте app id игры, 227300 для Euro Truck Simulator 2, а не app id выделенного сервера. Токен, созданный для 1948160, не заработает. Что это такое, как работают баны против них и почему нужен один на сервер, описано в статье токены игровых серверов Steam.
Если хотите дать людям имя вместо адреса, подойдёт запись A, указывающая на сервер, - см. как привязать домен к игровому серверу.
Моды и DLC на сервере Convoy#
Правило простое и безжалостное: сервер запускает то, что было активно в клиенте, экспортировавшем пакеты, а подключающимся игрокам нужен совпадающий набор.
- DLC с картой. Купите Iberia после экспорта - и новых дорог на сервере нет, пока вы не экспортируете заново. Всем игрокам сервера это DLC тоже нужно, чтобы туда поехать.
- Карты-моды. Крупные карты-моды работают, и они - главная причина, по которой серверу ETS2 вообще может понадобиться больше 1 ГБ. Экспортируйте с ними активными и раздайте игрокам точно такие же версии модов.
- Моды грузовиков и прицепов. Они ведут себя лучше карт-модов, потому что не меняют данные мира, но несовпадение всё равно вызывает проблемы, когда игрок создаёт транспорт, которого нет ни у кого другого.
- `mods_optioning: true` позволяет игрокам решать, загружать ли необязательные моды, а не требует их. Полезно для косметических наборов, но не для того, что затрагивает карту.
Ведите письменный список набора модов и их версий где-нибудь помимо сервера, рядом с копией server_config.sii и пакетов. Только этот список позволяет восстановить работающий сервер после неудачного обновления, а после каждого патча игры порядок один: обновите сервер, заново экспортируйте пакеты из обновлённого клиента, затем перезапустите. Более широкая привычка описана в статье что делать, когда обновление мода ломает сервер.
Повседневная работа#
Сохранения мира нет, поэтому резервные копии касаются конфигурации, а не прогресса: server_config.sii, server_packages.sii, server_packages.dat и ваш список модов. Это небольшой архив, и он - разница между пятиминутным восстановлением и вечером повторного экспорта. Статья резервные копии, которые действительно восстанавливаются применима, даже когда копировать почти нечего, потому что именно восстановление - то, что люди не отрабатывали.
Модерация тоньше, чем вы, возможно, привыкли. Нет ни RCON, ни консоли, к которой можно подключиться, ни командной строки, куда можно печатать в идущей сессии. У вас есть список модераторов, который повышает названные аккаунты Steam при входе и даёт им в игре возможность выгонять и банить, а ещё password, чтобы совсем не пускать посторонних. Для восьми людей, знающих друг друга, этого достаточно, и это причина, по которой публичному серверу ETS2 нужен физически присутствующий модератор, а не набор автоматических правил.
Восьмиместный предел - это ещё и вопрос управления сообществом, а не техники. Группа из пятнадцати человек не может ехать вместе, поэтому работают те серверы, которые живут по расписанию: фиксированный вечер колонны, опубликованный маршрут и запись. Сам сервер почти ничего не стоит, если оставить его работать между такими вечерами, и это довод в пользу того, чтобы не выключать его, а не запускать по требованию и в 20:00 обнаружить, что последний патч игры сломал ваши пакеты.
Еженедельный перезапуск стоит запланировать даже на таком лёгком сервере: он снимает накопившийся дрейф и даёт фиксированную точку, к которой можно привязать обновление через SteamCMD. В панели вкладка Schedules может выполнять действие питания по cron-выражению, а полезные плановые задачи перечисляет те, что оправдывают своё место. Сессии Convoy не переживают перезапуск, поэтому поставьте его на час, когда никто не едет.
На RE:NODE тарифы ETS2 идут с двумя выделенными портами, так что порты подключения и запросов готовы на вкладке Network, а server_config.sii редактируется в браузере без клиента SFTP. Слоты резервных копий входят в каждый тариф, а восстановление - одна кнопка.
Диагностика#
«Server packages file not found». Два экспортированных файла отсутствуют в домашней папке сервера, либо вы скопировали только .sii, а не .dat. Нужны оба.
Сервер запускается, но никто не может его найти. Проверьте show_server, затем убедитесь, что оба UDP-порта открыты, затем добавьте токен входа, если ещё не сделали этого. Пока что проверяйте прямым подключением.
Игроку отказывают из-за несовпадения. Его набор DLC или модов отличается от экспорта. Быстрее всего, чтобы он подогнал свой под ваш; правильнее - опубликовать точный список.
Сервер сломался после обновления игры. Обновите сервер через SteamCMD, затем заново экспортируйте пакеты из обновлённого клиента. Выполнить только первую половину - самый частый вариант этой проблемы.
Изменения конфигурации возвращаются. Сервер работал, когда вы редактировали. Остановите, отредактируйте, запустите.
Два сервера на одной машине мешают друг другу. Им нужны разные выделенные порты, разные виртуальные порты и флаг -nosingle.
Всё выглядит нормально, а игроки всё равно отваливаются по таймауту. Читайте журнал сервера, а не гадайте; в нём названы файл или порт, которые он не смог использовать. О том, как вытащить информацию из именно такого вывода, рассказано в статье чтение консоли.
FAQ#
Сколько игроков вмещает сервер ETS2 Convoy?
Восемь. Это предел игры, задокументированный SCS, и ни один хостер не может его поднять. Большее число в server_config.sii дополнительных мест не даст.
Нужно ли владеть игрой, чтобы запустить сервер?
Игра нужна, чтобы экспортировать пакеты сервера, а это обязательный шаг, так что на практике да. Сама загрузка сервера бесплатна и обычно работает с анонимным входом в SteamCMD.
Это то же самое, что TruckersMP?
Нет. TruckersMP - неофициальная модификация со своими серверами, которые нельзя захостить самому. Convoy - официальный режим SCS с пределом в восемь игроков, а это его выделенный сервер.
Зачем серверу файл, экспортированный из моей игры?
Потому что карта, DLC и моды вместе определяют мир, а серверу неоткуда узнать, какое сочетание вам нужно. export_server_packages делает его снимок, и без этого снимка сервер отказывается запускаться.
Где взять токен входа сервера?
На странице аккаунтов игровых серверов Steam, создав его для app id 227300 (Euro Truck Simulator 2). Официальная документация прямо требует использовать app id игры, а не выделенного сервера.
Сохраняют ли игроки деньги и гаражи на сервере Convoy?
Да. Каждый игрок ведёт собственный профиль и экономику. Сервер лишь хранит общий мир, так что обнулять нечего, и при перезапуске ничего не потеряется.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.