Переменные окружения
На этой странице перечислены все переменные окружения MCRS_*, которые читают сервер, клиент и тестовые инструменты, и их значения по умолчанию. Список получен командой grep -rn 'MCRS_' crates src на коммите 51d45c26a. Сервер читает 11 переменных. Клиент читает намного больше, и большинство из них нужны для замеров производительности.
Бинарник сервера mcrs читает переменные из таблицы ниже. Если переменная не задана, сервер берет значение по умолчанию. Если значение не удалось разобрать, сервер пишет предупреждение в лог и тоже берет значение по умолчанию. Код находится в ServerSettings::read из crates/mcrs_minecraft_server_settings/src/server_settings.rs, а вызывает его src/main.rs.
Переменная-переключатель включается значениями on, 1, true и yes и выключается значениями off, 0, false и no, регистр букв не важен. Пробелы по краям значения отбрасываются до разбора.
| Переменная | По умолчанию | Что делает |
|---|---|---|
MCRS_PORT |
25565 |
Порт, на котором сервер слушает. Сервер слушает на всех интерфейсах (0.0.0.0). Допустимо от 1 до 65535. |
MCRS_COMPUTE_THREADS |
по умолчанию плагина | Размер пула вычислительных потоков. Положительное число. |
MCRS_WORLD_SEED |
0 |
Сид мира, знаковый или беззнаковый 64-битный. Отрицательный сид сохраняет свои биты, как Java long. |
MCRS_WORLD_PRESET |
normal |
Пресет мира, короткий (flat) или с пространством имен (minecraft:flat), приводится к нижнему регистру. |
MCRS_DEFAULT_GAMEMODE |
creative |
Режим игры нового игрока: survival, creative, adventure или spectator. |
MCRS_MOB_AI |
вкл | Думают ли мобы. При выключении убирается плагин мозга мобов. |
MCRS_LAN_ANNOUNCE |
вкл | Объявляет ли сервер себя в локальной сети. Сервер, который слушает только loopback, никогда не объявляет себя. |
MCRS_COMPRESSION_THRESHOLD |
256 |
Размер пакета в байтах, начиная с которого пакеты сжимаются. Отрицательное число выключает сжатие. |
MCRS_ACCEPT_TRANSFERS |
выкл | Принимает ли сервер игроков, которых переносит (transfer) другой сервер. |
MCRS_ENABLE_STATUS |
вкл | Отвечает ли сервер на запросы статуса (пинг списка серверов). |
MCRS_HIDE_ONLINE_PLAYERS |
выкл | Скрывает ли статус имена игроков онлайн. Счетчики остаются. |
Сервер также читает ops.json, whitelist и файлы банов из рабочего каталога. Это файлы, поэтому в таблице их нет.
Бинарник клиента собирает все переменные MCRS_* процесса и отрезает префикс. Этот код лежит в crates/mcrs_minecraft_client/src/native.rs. Если имя встречается дважды, берется первое значение. Если значение неверное, нативный клиент печатает его в stderr и не запускается. Браузерная сборка берет те же имена из строки запроса в нижнем регистре, например ?time=6000.
У клиента, собранного с singleplayer, есть встроенный сервер, и он тоже читает серверные переменные из таблицы выше, например WORLD_SEED и WORLD_PRESET.
| Переменная | По умолчанию | Что делает | Файл |
|---|---|---|---|
MCRS_SERVER |
нет | host:port сервера, к которому надо подключиться. Без нее сборка singleplayer поднимает собственный сервер. |
native.rs |
MCRS_USERNAME |
Player |
Имя игрока. | config.rs |
MCRS_VIEW |
96 |
Дальность прорисовки в колонках, от 2 до 96. Приоритетнее файла настроек. | config.rs |
MCRS_OPTIONS |
нет | Путь к JSON-файлу с полями fov, fov_effect_scale, smooth_light, clouds, brightness, view_distance. Неизвестные поля дают ошибку. |
options.rs |
MCRS_FULLSCREEN |
выкл | Занять весь дисплей. | config.rs |
MCRS_OPEN_TO_LAN |
выкл | Встроенный сервер слушает на всех интерфейсах и объявляет себя. Аутентификации нет, поэтому любой в сети может зайти под любым именем. | config.rs |
MCRS_GUI_SCALE |
0 (авто) |
Фиксированный масштаб GUI. | config.rs |
MCRS_HISTORY |
нет | Файл, в котором хранится история команд. | config.rs |
MCRS_VSYNC |
выкл | Вертикальная синхронизация. По умолчанию выключена, чтобы время кадра оставалось читаемым. | config.rs |
MCRS_OCCLUSION |
вкл | Тест окклюзии по пирамиде глубины. 0 рисует каждую группу, которая проходит пирамиду видимости (frustum) и граф пещер. |
config.rs |
MCRS_CAVE |
вкл | Отсечение по графу пещер. | config.rs |
MCRS_CHUNK_MAP, MCRS_LIGHT_LEVELS |
выкл | Отладочные оверлеи. | config.rs |
MCRS_ASYNC |
половина ядер, не меньше 4 | Потоки асинхронного вычислительного пула (построение мешей, декодирование колонок, освещение). | config.rs |
MCRS_MESH, MCRS_MESH_FLIGHT |
2048, 2048 (web: 32, 128) | Сколько секций построитель мешей берет за кадр и сколько задач может быть в работе одновременно. | config.rs |
MCRS_UPLOAD |
4 |
Бюджет загрузки на кадр, в МБ. | config.rs |
MCRS_ARENA |
192,640,512 (web: 32,208,80) | Размеры арен в МБ для квадов, моделей и граней, в виде quads,models,faces. |
config.rs |
MCRS_JAR_WORKERS |
по умолчанию крейта | Число воркеров загрузки в онлайн-тесте крейта клиентского JAR. | native.rs |
MCRS_CERT |
нет | Хеш сертификата для веб-клиента, который подключается к серверу. Только веб-сборка. | config.rs |
Параметры для замеров
Заголовок раздела «Параметры для замеров»Переменные из этого раздела нужны, чтобы замер производительности можно было повторить. Не задавайте их для обычной игры, потому что некоторые намеренно меняют то, что измеряется. Метод описан на странице Производительность и в PERF.md.
| Переменная | По умолчанию | Что делает |
|---|---|---|
MCRS_HOT |
выкл | Держит одно ядро CPU занятым, чтобы производительные ядра не снижали частоту. Время движка при этом получается в два-три раза короче. Это не настройка для игрока. |
MCRS_GPU_HOT |
нет | Сжигает столько рабочих групп GPU после кадра, чтобы GPU оставался на полной частоте. |
MCRS_STATS |
нет | Секунды между строками F3, которые пишутся в лог при скрытом оверлее. |
MCRS_PROBE |
авто | 0 оставляет проходы GPU без замера, 1 замеряет каждый кадр. |
MCRS_RESOLUTION |
нет | Открывает окно размером ровно <width>x<height>. |
MCRS_LATENCY |
нет | На сколько изображений swapchain окно может убежать вперед. |
MCRS_MONITOR |
самый быстрый дисплей | primary открывает окно на основном дисплее. |
MCRS_CENSUS |
нет | Секунды между строками, где подсчитаны трассированные колонки по стадиям. |
MCRS_TRACY_PREVIEW |
выкл | Отправляет изображения кадров в Tracy. Стоит одного считывания (readback) за кадр. |
MCRS_CHUNK_GUARD, MCRS_LIGHT_GUARD |
выкл | 1 роняет клиент, когда игрок стоит в колонке, которой у клиента нет, warn только пишет в лог. MCRS_LIGHT_GUARD читается так же, но для света. |
MCRS_GPUTRACE |
нет | Путь для записи трассы GPU. |
MCRS_RASTER |
нет | Доля от 0 до 1 для растрового прохода. |
MCRS_DRAWS |
все | Список номеров отрисовок через запятую, которые надо оставить. |
MCRS_SKY |
все | Список проходов неба через запятую, которые надо рисовать: disc,twilight,celestial,stars,clouds. |
MCRS_FLY, MCRS_TURN |
нет | Скорость скриптового полета в блоках за тик и секунды до одного полного оборота. |
MCRS_TIME |
нет | Фиксирует все часы на заданном числе тиков. |
MCRS_POS, MCRS_LOOK, MCRS_SCREEN, MCRS_CURSOR |
нет | Стартовая позиция x,y,z, направление взгляда yaw,pitch, экран (inventory) и позиция курсора для скриптовых снимков. |
MCRS_CAPTURE |
нет | Записать один скриншот в путь .png и выйти. |
MCRS_SCREENSHOT_DIR |
нет | Каталог для скриншотов. |
MCRS_SCENE_DIR, MCRS_SCENE_RECORD |
нет | Каталог для съемки сцены без окна и запись клиента ванили, из которой берутся сущности. |
Клиент читает их все в crates/mcrs_minecraft_client/src/config.rs, dev/knobs.rs и scene_capture.rs.
Тесты, бенчмарки и сборка
Заголовок раздела «Тесты, бенчмарки и сборка»| Переменная | Кто использует | Что делает |
|---|---|---|
MCRS_BLESS |
тесты мешей, моделей сущностей и анимации сущностей | Если она задана, тест перезаписывает устаревший ожидаемый файл. Без нее тест падает и сообщает об этом. |
MCRS_CLIENT_JAR |
тест отрисовки сущностей | Путь к клиентскому JAR. |
MCRS_VANILLA_SERVER_JAR, MCRS_SCENE_CLIENT, MCRS_SCENE_ENTITIES |
тест scene_frames клиента |
Серверный JAR, другой бинарник клиента и источник сущностей сцены: summon, record или skip (по умолчанию). |
MCRS_MOLANG_CORPUS, MCRS_GPU_FUZZ_PROGRAMS |
тесты Molang | Путь к файлу корпуса и число fuzz-программ (по умолчанию 10000). |
MCRS_BENCH_WORLD, MCRS_BENCH_AREA |
бенч random_ticks_save |
Каталог сохраненного мира и <dimension> <x> <z> <radius>, чтобы загрузить только эту область. |
MCRS_BIN |
mob-bench/run.sh |
Путь к бинарнику mcrs. Серверные переменные бенч задает сам. |
MCRS_VANILLA_SERVER |
vanilla-server/run.sh |
Адрес vanilla-сервера, который скрипт передает тесту подключения mcrs. |
MCRS_DRAW_ONLY, MCRS_GPU_HOT, MCRS_SPLIT_DRAW |
пример stress_field отрисовки сущностей |
Рисовать только full_rigs или impostors, число рабочих групп для удержания GPU (по умолчанию 16384) и разделение отрисовки на два прохода. |
MCRS_COMMIT_HASH |
время сборки сетевого крейта | Хеш коммита, который сообщает сервер. Крейт читает его через option_env! во время сборки, поэтому значение во время работы ни на что не влияет. |
Footnotes
Заголовок раздела «Footnotes»Источники и проверка
Проверено: 26.4-snapshot-7, 51d45c26a, 2026-11-09
Переведено с версии 51d45c26a
- crates/mcrs_minecraft_server_settings/src/server_settings.rs
- crates/mcrs_minecraft_client/src/config.rs
- crates/mcrs_minecraft_client/src/dev/knobs.rs
- src/main.rs
- issue #278
Следить: #278