Content Manager - это лаунчер от сообщества, которым уже пользуется большинство игроков Assetto Corsa, и он же самый простой способ собрать сервер: его раздел Server редактирует пресеты, которые превращаются в server_cfg.ini и entry_list.ini, проверяет, что каждая выбранная вами машина, скин и конфигурация трассы действительно существуют, и умеет упаковать бинарник сервера, конфиг и нужные серверу данные контента в один архив, который вы загружаете на хостинг. Модовые трассы и машины после этого работают точно так же, как стандартные, при двух условиях, из-за которых проваливается почти каждый неудачный вход: у сервера и у каждого пилота должна быть одна и та же версия каждого мода (сервер сверяет чексуммы файлов), а имена папок в конфиге должны совпадать с папками на диске символ в символ - на Linux-сервере, включая регистр.
Собственные файлы сервера подробно разобраны в руководстве по серверу Assetto Corsa. Эта статья - о стороне контента: серверные пресеты Content Manager, как устроены папки трасс и машин, конфигурации трасс и боксы, что сервер на самом деле проверяет, требования Custom Shaders Patch и как доставить нужные файлы вашим пилотам.
Что Content Manager делает для сервера#
Content Manager (CM) - это лаунчер-замена для Assetto Corsa, написанный сообществом. Админам серверов он полезен четырьмя вещами:
- Редактирует серверные пресеты в форме, а не в сырых ini-файлах: выбор трассы и конфигурации, список машин, entry list со скинами, сессии, погода и помощники.
- Проверяет контент: он знает, какие машины, скины и конфигурации установлены на вашем компьютере, и помечает всё недостающее до запуска сервера.
- Запускает сервер локально, чтобы вы могли проверить пресет на своей машине, прежде чем что-то загружать.
- Упаковывает пресет вместе с бинарниками сервера, конфигом и нужными серверу данными контента, готовый к загрузке на хостинг.
У CM есть бесплатная версия и платная полная, которая открывает дополнительные функции. Серверными инструментами можно пользоваться бесплатно; если какая-то упомянутая здесь опция у вас неактивна, причина, скорее всего, в этом.
CM хранит пресеты в папке игры в server/presets/, по одной папке на пресет (SERVER_00, SERVER_01 и так далее), и в каждой лежат свои server_cfg.ini и entry_list.ini. Это те же файлы, которые читает acServer; CM - это интерфейс, а не другой формат. Это важно, потому что вы можете открыть файлы, которые создал пресет, прочитать их и позже править на сервере вручную, без CM.
Как собрать пресет#
В CM раздел сервера показывает пресеты слева; создайте пресет и пройдите по вкладкам:
- Main: название, пароль, админский пароль, трасса и её конфигурация, список машин. Выбирайте конфигурацию явно - она задаёт
CONFIG_TRACK. - Entry list: одна строка на место на стартовой решётке, у каждой машина и скин. CM показывает число боксов на трассе и предупреждает, если список длиннее.
- Rules and conditions: помощники, повреждения, расход топлива и износ шин, сессии, время суток, погода, динамическая трасса.
- Запустите локально и зайдите с того же компьютера. Если вы можете зайти на свой локальный сервер, пресет корректен.
Затем упакуйте его. Опция упаковки создаёт архив с исполняемым файлом сервера для выбранных платформ, папкой cfg и папкой content, в которой лежат только нужные серверу файлы данных каждой машины и трассы - без текстур и 3D-моделей. Папка сервера, собранная так, весит несколько мегабайт на машину, а не сотни.
Загрузите архив на сервер и распакуйте его на месте - файловый менеджер, который распаковывает архивы прямо там, где они лежат, здесь экономит много времени, - или распакуйте у себя и загрузите папки по SFTP. Оба варианта описаны в статье SFTP и файловый менеджер. На хостинге бинарник сервера уже установлен, так что из упаковки вам нужны cfg/ и content/.
Как устроены папки трасс#
Трассы лежат в content/tracks/<track_folder>/. В TRACK= указывается имя папки, и часто оно совсем не похоже на отображаемое имя: модовая трасса "Circuit of the Example Hills" может жить в ex_hills_2024. Смотрите на папку, а не на название в меню.
У трассы с несколькими конфигурациями есть подпапка на каждую, и CONFIG_TRACK= указывает одну из них:
content/tracks/ex_hills_2024/ gp/ data/ surfaces.ini ... national/ data/ ui/ gp/ui_track.json national/ui_track.json models_gp.ini models_national.iniУ трассы с одной конфигурацией папка data/ лежит прямо в папке трассы, её UI-файлы - прямо в ui/, а CONFIG_TRACK остаётся пустым.
| Тип трассы | TRACK= | CONFIG_TRACK= |
|---|---|---|
| Одна конфигурация | Имя папки | Пусто |
| Несколько конфигураций | Имя папки | Имя подпапки конфигурации |
| Несколько конфигураций, оставлено пустым | Имя папки | Обычно падает при запуске |
Боксы - это жёсткий предел размера стартовой решётки. В ui_track.json каждой конфигурации трассы указано число боксов, и MAX_CLIENTS и entry list не должны его превышать. У модовых трасс это число сильно разнится: на клубной трассе их может быть двенадцать, на переделанной дороге общего пользования - пять. CM показывает это число при выборе конфигурации; проверьте его, прежде чем обещать решётку на 24 машины.
Как устроены папки машин#
Машины лежат в content/cars/<car_folder>/, а CARS= в server_cfg.ini - это список имён этих папок через точку с запятой.
content/cars/ex_gt3_2024/ data.acd skins/ 01_red/ 02_blue/ ui/ ui_car.json ...model and sound filesДанные физики обычно упакованы в data.acd. Некоторые модовые машины поставляются с распакованной папкой data/ вместо него или в дополнение к нему. В любом случае данные физики - часть того, что сервер сравнивает с копией у каждого пилота, так что два пилота с разными сборками одной и той же папки машины не взаимозаменяемы.
Скины - это косметика. Entry list назначает один на каждое место через SKIN=, указывая папку в skins/. Пилот, у которого этого скина нет, видит вместо него стандартный; зайти ему это не мешает. Паки скинов - приятная деталь для лиги, но не повод кого-то не пускать.
Чексуммы: что сервер на самом деле сравнивает#
Когда пилот подключается, сервер сравнивает чексуммы ключевых файлов в копии трассы и машины у пилота со своими. Любое различие - и пилот получает отказ. Сравниваются файлы, которые влияют на вождение, - данные покрытий и конфигурации трассы, физика машины, - а не текстуры, звуки или скины.
Из этого следуют практические выводы:
- Серверу нужны правильные файлы данных, а не полный контент. Именно поэтому упакованный CM контент маленький, и поэтому сервер только с
data.acdи папками данных трасс работает. - Визуальный мод не ломает чексуммы, а мод, который правит физику или данные покрытий, ломает. "Графическое обновление" трассы, которое заодно трогает
surfaces.ini, для сервера - уже другая трасса. - Повторное скачивание мода может его изменить. Сайты модов тихо перевыпускают файлы. "На прошлой неделе работало" обычно означает, что кто-то из пилотов или сервер получил более новую сборку.
- Ошибка называет файл. Прочитайте её: сбой чексуммы на данных покрытия трассы указывает на трассу, на данных машины - на эту машину.
Linux-серверы и имена папок#
Большинство серверов Assetto Corsa на хостинге работают на Linux-версии acServer. Имена файлов в Linux чувствительны к регистру, а в Windows - нет, а значит, пресет, собранный в Windows, может прекрасно работать на вашем компьютере и падать на сервере.
Если TRACK=Ex_Hills_2024, а папка называется ex_hills_2024, Windows её найдёт, а Linux - нет. То же относится к папкам машин, конфигураций и скинов. Исправление - сделать так, чтобы конфиг в точности совпадал с папкой: копируйте имена из списка файлов самого сервера, а не из отображения в CM и не по памяти. Когда сервер завершается при запуске, его лог называет папку, которую он не нашёл; как быстро найти эту строку, рассказано в статье как читать консоль.
Custom Shaders Patch и требования#
Custom Shaders Patch (CSP) - широко используемое расширение рендерера и движка игры. Многие современные модовые трассы и машины используют возможности CSP - дополнительное освещение, эффекты дождя, расширения физики, - и некоторые без него работают неправильно или не работают вовсе.
Для сервера это порождает вопрос, которого стандартная игра никогда не задавала: какая версия CSP должна быть у пилотов? Серверные настройки CM позволяют объявить для пресета минимальную версию CSP, чтобы пилотам без неё об этом сообщалось до входа, а не чтобы они обнаруживали сломанную трассу посреди сессии. AssettoServer, открытая замена acServer, описанная в основном руководстве, идёт дальше и строит поверх CSP свои функции - синхронизированные погоду и время, трафик и многое другое.
Это решение про аудиторию. Публичный сервер, который требует свежую версию CSP, отсекает игроков с чистой установкой. Лига, где все пилоты работают с CSP, много выигрывает от этого требования. В любом случае укажите требование в названии или описании сервера и опубликуйте его вместе со списком контента.
Как доставить контент пилотам#
Стандартный сервер никогда не отправляет контент пилотам, так что распространение - задача админа. Что работает:
- Список контента с точными версиями и ссылками. Названия машин и трасс, имена папок, версия и откуда скачать именно эту версию. Закреплённый в вашем Discord и обновляемый при каждом изменении сервера.
- Один архив на весь набор. Для лиги упакуйте все машины и трассы в одну загрузку, размещённую где-то в надёжном месте. Пилоты перетаскивают её в CM, который устанавливает контент Assetto Corsa из архивов.
- Ссылки на загрузку, которые сообщает сервер. Обёртки серверов от сообщества и AssettoServer могут передавать в CM ссылки на загрузку недостающего контента, так что пилоту, который заходит без машины, показывают, где её взять. Это самое близкое к загрузке при входе, что есть в Assetto Corsa, и зависит оно от используемых инструментов, так что проверьте, что поддерживает ваш серверный софт, прежде чем это обещать.
Храните список рядом с бэкапами сервера. Конфигурация, о которой лига договаривалась три недели, маленькая, и её легко потерять; список контента - то, что позволит пересобрать сервер, когда сайт с модами исчезнет. Почему восстановление тоже нужно проверять, объясняет статья бэкапы, которые действительно восстанавливаются. В RE:NODE слоты для бэкапов есть на каждом тарифе Assetto Corsa, так что папки cfg и content можно сохранить перед каждым изменением контента и восстановить одной кнопкой.
Занятое место на диске сервера растёт вместе с контентом, хотя нужны только файлы данных. Сервер с трафиком или свободной ездой с десятками машин и большой картой всё равно может дойти до нескольких гигабайт, в основном за счёт трасс. Удаляйте машины и трассы, которыми больше не пользуетесь, когда меняете пресет; старый контент - обычная причина, по которой заполняется диск сервера.
Решение проблем#
"Checksum failed" для машины. Сборка этой машины у пилота отличается от серверной. Сравните версии и договоритесь об одной.
"Checksum failed" для трассы. То же самое для трассы - часто это графический пак или пак обновления, который заодно изменил данные покрытия.
Сервер завершается при запуске, называя папку. Расхождение в имени папки или в регистре либо пустой CONFIG_TRACK у трассы с несколькими конфигурациями.
Решётка стартует с машинами в странных местах или сессия ломается. Записей больше, чем боксов в конфигурации.
Пилоты без CSP видят сломанную трассу. Трассе нужен CSP. Объявите требование в пресете и в названии сервера.
Пресет работает локально, но не на хостинге. Чувствительность к регистру в Linux или контент, который вы не загрузили. Сравните папку content/ на сервере с упакованным архивом.
Скины отображаются стандартными. У пилота нет пака скинов. Это только косметика.
FAQ#
Нужен ли Content Manager, чтобы запустить сервер Assetto Corsa?
Нет. acServer читает два ini-файла и папку контента, и их можно написать руками. Content Manager ускоряет работу и ловит ошибки вроде недостающих скинов или большего числа записей, чем боксов.
Нужны ли серверу полные файлы модовых машин и трасс?
Нет, только файлы данных, по которым считаются чексуммы. Опция упаковки в Content Manager копирует именно их, и сервер остаётся маленьким. Пилотам полный контент нужен, чтобы его видеть и на нём ездить.
Почему у пилотов не проходит проверка чексуммы на модовой трассе?
Их версия отличается от серверной. У многих модовых трасс в обращении несколько сборок и паков обновлений. Опубликуйте точную сборку и убедитесь, что она же стоит на сервере.
Как выбрать конфигурацию трассы на сервере?
Укажите в TRACK= папку трассы, а в CONFIG_TRACK= - имя подпапки конфигурации. В Content Manager выбор конфигурации в пресете задаёт оба значения.
Может ли сервер автоматически отправлять игрокам машины и трассы?
Стандартный сервер не может. Обёртки от сообщества и AssettoServer могут сообщать ссылки на загрузку, которые Content Manager показывает пилотам с недостающим контентом, и это ближайший аналог.
Стоит ли моему серверу требовать Custom Shaders Patch?
Если ваши трассы или машины от него зависят - да, и укажите это в названии сервера. Для публичного сервера на стандартном или более старом контенте необязательный CSP позволит зайти большему числу игроков.




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