Перейти к основному содержанию

Быстрые клавиши

~ (Тильда) — переключить отладочную консоль, из которой выполняются многие команды. Используйте list для просмотра списка команд. Используйте help someCommand для получения информации о команде. Команда list также может принимать фильтр, например: list show. F3 — переключить отладочный оверлей. Содержит много полезной информации о сети, рендеринге и других состояниях игры. Наведите мышь на сущности и области, чтобы увидеть такие вещи, как ID сущности, ID сетки, координаты и другое. F5 — переключить окно спавна сущностей F6 — переключить окно спавна тайлов B — переключить окно песочницы Shift + F4 — переключить UI

View Variables

View Variables или VV — это инструмент для просмотра и изменения переменных объектов. Вы можете VV объект с помощью команды vv или через контекстное меню правой кнопки мыши. Вы также можете использовать команды vvread, vvwrite и vvinvoke для использования VV напрямую из консоли. Параметры, которые принимают команды vv: vv /path/to/an/object откроет VV для введённого пути. Проверьте автодополнение команд для всех возможностей. vv <IoC Interface>, например vv IPlayerManager, откроет VV для клиентского IoC. vv S<IoC Interface>, например vv SIPlayerManager, откроет VV для серверного IoC. vv CE<Entity System>, например vv CEPhysicsSystem, откроет VV для клиентской entity system. vv SE<Entity System>, например vv CSPhysicsSystem, откроет VV для серверной entity system. vv <EntityUid> откроет VV для сущности. И клиент, и сервер одновременно. vv guihover откроет VV для текущего GUI-контрола под мышью.

Окно разработчика

devwindow открывает дополнительное окно, содержащее растущее количество полезных инструментов отладки и разработки:
  • Вторичная отладочная консоль
  • Дерево UI

Запуск тестов

Server GC

Я рекомендую включить server GC для запуска тестов SS14, особенно интеграционных тестов (это сокращает время интеграционных тестов вдвое). Для включения в различных редакторах:

Rider

Unit Testing -> Test Runner и добавьте переменную окружения COMPlus_gcServer=1

dotnet test

Передайте -e COMPlus_gcServer=1 команде dotnet test

Visual Studio

Кто-нибудь, кто использует VS, пожалуйста, заполните это

Скриптинг

Скриптинг позволяет запускать C# Interactive REPL внутри игры! Вы можете запускать скрипты как на сервере, так и на клиенте. Обратите внимание, что скриптинг отключён для релизных сборок клиента из-за соображений размера и безопасности, и вам, очевидно, нужны права уровня host, чтобы делать это на сервере. Для открытия скриптинга есть две команды: csi и scsi. Первая — на клиенте, вторая — на сервере. Также есть watch, который показывает вывод списка команд каждый кадр (как окно watch в отладчике). См. эту ссылку для введения (я полагаю). Глобальные переменные по умолчанию, которые вы можете использовать, определены в IScriptGlobals как на клиенте, так и на сервере. Полезные: vv на клиенте, res<T>() для быстрого разрешения IoC и т.д.

Тестирование лобби

По умолчанию сервер запускается в режиме «без лобби». Это означает, что лобби отключено, и вы отправляетесь сразу в игру при подключении к серверу. Это удобно для тестирования, конечно, но если вы хотите тестировать лобби, вы можете представить, почему это раздражает. Чтобы включить лобби, нужно установить переменную конфигурации game.lobbyenabled в true. Есть несколько способов сделать это:
  1. Отредактируйте конфигурационный файл сервера в папке bin сервера и добавьте lobbyenabled=true в секцию [game].
  2. Передайте --cvar game.lobbyenabled=true в команду, которую вы используете для запуска игры.
  3. Измените переменную во время игры, выполнив cvar game.lobbyenabled true в консоли сервера. Вам придётся возродить персонажа, чтобы попасть в лобби, если вы подключились до этого.
Если вы используете Rider, я рекомендую создать отдельную конфигурацию запуска (см. ниже) с --cvar game.lobbyenabled=true. Для быстрой проверки лобби с более лёгкой настройкой golobby завершит раунд, включит лобби и отправит вас в предыгровое лобби. Вы можете пропустить таймер следующего раунда с помощью forcepreset sandbox (или любого другого режима игры).

Продвинутое использование консоли

  • sudo позволяет выполнять команды как консоль сервера с вашего клиента. Большинство админ-команд (например, ban) автоматически отправляются на сервер, если у вас есть разрешение на их использование, но некоторые команды управления сервером, такие как cvar, могут быть выполнены только из консоли сервера обычно. Вот где вы используете sudo. Конечно, для этого требуется +HOST.
  • exec <file> позволяет выполнять файлы скриптов в директории пользовательских данных (%appdata%/space station 14/data для клиента или аналогично для других ОС, папка data рядом с исполняемым файлом для сервера). Вы можете создать скрипт lobby, который автоматически перезапускает раунд в лобби, а затем запустить его exec lobby:
sudo cvar game.lobbyenabled 1
restartroundnow

Разные полезные консольные команды

Это несколько полезных консольных команд и их описание. Это ни в коем случае не полный список. Чтобы увидеть все консольные команды, используйте list.
  • guidump — выгружает полный дамп дерева GUI в текстовый файл в %APPDATA%/Space Station 14/guidump.txt (Windows), ~/Library/Application Support/Space Station 14/guidump.txt (macOS) или ~/.local/share/Space Station 14/guidump.txt (Linux).
  • showrays — переключает отладочную отрисовку физических лучей. Принимает параметр времени жизни лучей.
  • showbb — визуализирует ограничивающие рамки и сетки. Сетки отображаются синими объёмами, их границы — красными линиями. Ограничивающие рамки отображаются красными линиями.
  • physics shapes — показывает точные коллизионные оболочки объектов. Очень полезно, если вы пытаетесь настроить структуру с необычной формой.
  • dumpentities — выгружает список сущностей с UID и prototypes.
  • debugai — используется для подсказок над головами мобов (в настоящее время охватывает как мышление, так и поиск пути для конкретного моба).
  • pathfinder — охватывает общий поиск пути, который в настоящее время представляет собой граф, маршруты, узлы (особенно полезно для JPS).
  • togglelight — переключает рендеринг света. Полезно для маппинга.
  • net_graph — включить с помощью net_graph 1, выключить с помощью net_graph 0. Показывает график использования сети.
  • tp — телепортирует игрока в любое место. Использование: tp <x> <y> [<MapId>].
  • aghost — переключает режим призрака администратора для быстрого исследования карты.
  • restartroundnow — если вы не работаете над экраном после игры, обычно это то, что нужно для завершения раунда. Перезапускает раунд без минутного ожидания.
  • restartround — перезапускает раунд как обычно, отправляя игроков обратно в предраундовое лобби.
  • restart — полностью перезапускает сервер.
  • launchauth — загружает токены аутентификации из настроек лаунчера при запуске с клиента. Вы можете запустить это перед подключением к серверу, чтобы легко включить и протестировать аутентификацию из dev-сборок.
  • deadmin — если вы работаете над чем-то, что ведёт себя по-разному для админов и не-админов, например чат, убедитесь, что вы вручную деадминитесь, чтобы проверить, что всё работает и для обычных игроков.

Используйте конфигурации запуска

Если вы используете Rider, используйте run configurations для быстрого переключения между сценариями тестирования. Это необходимо, если вам нужно чередовать различные сценарии, такие как разные бэкенды баз данных, но проявите креативность. Например, вот какие конфигурации запуска у меня есть на момент написания: many-run-configurations.png Вы можете использовать --cvar или +command для изменения конфигурации сервера и автоматического выполнения команд для настройки тестовых сред. Поищите другие идеи на этой странице, если хотите.

Отладка производительности

По умолчанию Rider отключает оптимизации для всех сборок при запуске через отладчик. Это означает, что даже BCL-код (System) будет работать намного медленнее. Это может сделать работу в отладчике довольно болезненной. Вы можете отключить это, сняв флажок в Settings -> Build, Execution & Deployment -> Debugger: rider_debugger_opts.png

Внешние инструменты

  • renderdoc — идеально подходит для отладки движка рендеринга и шейдеров.
Последнее изменение 21 июня 2026 г.