Справочник по файлам конфигурации

В качестве файлов конфигурации используется TOML, относительно современный и простой формат конфигурационных файлов. По умолчанию сервер загружает файл конфигурации из server_config.toml рядом с исполняемым файлом. Клиент загружает его из GameControllerOptions.ConfigFileName (по умолчанию client_config.toml) в каталоге пользовательских данных.

В файлах конфигурации хранятся “CVar”, что является сокращением от “console variable” (консольная переменная), но также может означать “config variable” (переменная конфигурации), в зависимости от того, насколько вам важно быть точным по отношению к Quake или чему-то подобному. Это не имеет особого значения. Эй, зато коротко писать.

Ускоренный курс по TOML

TOML по сути просто INI, но немного более строго специфицированный и хипстерский. Вы пишете заголовки в квадратных скобках и ключи под ними. Мы не используем более продвинутые возможности TOML, чем показано здесь (поскольку они отстой):

[net]
port = 12345

[game]
hostname = "honkhonk"
maxplayers = 64

[log]
enabled = true

Когда CVar упоминается как net.port, это означает, что нужно поместить port = foo под заголовок [net]. В случаях, когда вы обращаетесь к cvar напрямую целиком (например, в команде cvar), вы пишете полное имя (например, cvar net.port).

Справочник по CVar

Если вы хотите найти справочник всех CVar, доступных в игре/движке, лучше всего заглянуть в код игры и движка: CCVars.<category>.cs для Space Station 14, CVars.cs для Robust. Читаться должно довольно легко.

Способы задания CVar

  • Вы можете поместить их в файл конфигурации сервера или клиента, и они будут загружены автоматически.
  • Вы можете использовать команду cvar, чтобы просматривать и задавать CVar во время выполнения. Учтите, что не все CVar поддерживают изменение на лету: последствия могут варьироваться от нормальной работы до взрыва сервера или полного отсутствия эффекта.
  • Вы можете передать --cvar foo.bar=123 в качестве аргумента командной строки клиенту или серверу, чтобы переопределить CVar при запуске. Это также переопределяет любые значения, заданные в файлах конфигурации.
  • Вы можете использовать переменную окружения ROBUST_CVARS, которая разделяется точкой с запятой, вот так: ROBUST_CVARS=foo.bar=1234;foo.baz=hello there. Вряд ли вы захотите принимать в неё небезопасный ввод, поскольку она довольно примитивна и не может быть корректно экранирована.
  • Вы можете задавать CVar через несколько переменных окружения с префиксом ROBUST_CVAR_ (обратите внимание на отсутствие множественного числа по сравнению с предыдущим). Например, ROBUST_CVAR_game__hostname=foobar. Двойное подчёркивание (__) заменяется на ..

Subpages