> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

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

Конфигурационные файлы используют [TOML](https://toml.io/), относительно современный и простой формат конфигов.
По умолчанию сервер загружает конфигурационный файл из `server_config.toml` рядом с исполняемым файлом. Клиент загружает его из `GameControllerOptions.ConfigFileName` (по умолчанию `client_config.toml`) в [User Data Directory](../../robust-toolbox/user-data-directory).

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

## Краткий курс TOML

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

```toml theme={null}
[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` for Space Station 14](https://github.com/space-wizards-federation/space-station-14/blob/master/Content.Shared/CCVar), [`CVars.cs` for Robust](https://github.com/space-wizards-federation/RobustToolbox/blob/master/Robust.Shared/CVars.cs). Читать их довольно легко.

## Способы указания CVars

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