Перейти к основному содержанию
В разработке, ещё не финальная версия
Launcher имеет возможность напрямую запускать «content bundles» без подключения к серверу. Content bundles — это самодостаточные zip-файлы, содержащие контент, который будет загружен клиентом игры. Content bundles также могут базироваться на обычной загруженной версии контента, и в этом случае сначала будут загружены и смонтированы эти ресурсы. Изначальный вариант использования content bundles — это реплеи в Space Station 14. Пакет содержит данные реплея вместе с необходимыми метаданными, чтобы заставить launcher загрузить соответствующую версию игры. Это упрощает распространение реплеев в виде простых zip-файлов, которые можно легко передать в launcher администраторам или игрокам. Content bundles — это универсальная система, поэтому она также может быть полезна для распространения других вещей.

Формат

Content bundles — это обычные zip-файлы. Вы знаете, что это такое. Содержимое zip-файла монтируется непосредственно в корень VFS игры. /foo.txt будет доступен как /foo.txt для игры. Если указана базовая сборка (см. ниже), контент для базовой сборки будет загружен и также загружен вместе с content bundle. Такой контент базовой сборки имеет приоритет над content bundle, поэтому заменить файлы в базовой сборке невозможно. Специальный файл /rt_content_bundle.json интерпретируется игрой для получения базовых метаданных, необходимых для работы, таких как версия engine.

rt_content_bundle.json

Вот JSON-данные, которые могут быть в rt_content_bundle.json:
// JSON-комментарии не принимаются launcher, они только для пояснения.
{
  // Обязательно: версия engine для использования.
  "engine_version": "0.124.0.0",
  // Опционально: удалённая сборка для загрузки как базовая.
  // Если не указана, удалённая сборка не загружается.
  "base_build": {
    // Эти свойства в основном эквивалентны тому, что возвращается через HTTP /info API сервера.
    "fork_id": "wizards",
    "version": "2f6d909e443ecb501b916b69a2996acb351cc216",
    "download_url": "https://cdn.centcomm.spacestation14.com/builds/wizards/builds/2f6d909e443ecb501b916b69a2996acb351cc216/SS14.Client.zip",
    "hash": "a306c7b16b6bca9d7bd56a017c6fb50ba6205bd9f58b40752fe9ed9bd21ed195",
    "manifest_download_url": "https://cdn.centcomm.spacestation14.com/cdn/version/2f6d909e443ecb501b916b69a2996acb351cc216/download",
    "manifest_url": "https://cdn.centcomm.spacestation14.com/cdn/version/2f6d909e443ecb501b916b69a2996acb351cc216/manifest",
    "manifest_hash": "1657E0BD25D640946453E11F1B7E95D5FAF5B4E1087330D0692BAB2EFD1E6F00"
  }
}

Безопасность side-loading

Content bundles теоретически делают довольно лёгким внедрение читов в игру вместе с остальным официальным контентом сервера. Теоретически можно создать content bundle, который просто содержит дополнительный читательский код в /Assemblies/ и в остальном загружает последнюю версию любого сервера, к которому вы подключаетесь. Для смягчения этого Content Manifests позволяют ограничить список сборок, которые будут загружены из /Assemblies/, через свойство clientAssemblies. Так как content bundles всегда загружаются после содержимого игры, они не могут заменить какие-либо файлы, и серверы могут ограничить загружаемые сборки только теми, которые они предоставляют.

Аутентификация

Content bundles запускаются с отключённой аутентификацией. Launcher не будет предоставлять клиенту токен аутентификации, поэтому невозможно подключиться к серверам с аутентификацией через content bundle (чтобы вы там ни пытались сделать…). (Да, я знаю, что только что написал целый раздел про side-loading выше. Я передумал и не хочу его удалять. Аааа.)
Последнее изменение 21 июня 2026 г.