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

🛠️ System & Developer Tools API

This section contains utility endpoints for developers, including cache management, API discovery, and general system diagnostics.

Инструменты разработчика

Этот контроллер предоставляет доступ к внутренним отладочным действиям и инструментам разработки RimWorld. Он обеспечивает функциональность «режима бога», обычно зарезервированную для консоли разработчика игры.

Использовать с осторожностью

Действия, выполняемые здесь, обходят стандартные правила игрового процесса. Неправильное использование может привести к:

  • Повреждению файлов сохранений.
  • Вылетам игры.
  • Нарушению поведения ИИ.

GET
/api/v1/dev/materials-atlas

Получает данные атласа материалов уровня разработки, который содержит внутреннее сопоставление определений материалов с их графическими текстурами, шейдерами и свойствами рендеринга.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/dev/materials-atlas

Response:

{
    "success": true,
    "data": {
        "materials": [
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_RockFlecked_Atlas",
        "Custom/CutoutComplex_CompactedMachinery_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_Rock_Atlas",
        "Custom/Cutout_AncientFence_Atlas",
        "Custom/CutoutComplex_Fleshmass_Atlas",
        "Custom/Transparent_PowerConduit_Blueprint_Atlas",
        "Custom/Transparent_Sandbags_Blueprint_Atlas",
        "Custom/Transparent_Barricade_Blueprint_Atlas",
        "Custom/Transparent_Wall_Blueprint_Atlas",
        "Custom/Transparent_Fence_Atlas_Smooth",
        "Custom/Cutout_Wall_Atlas_Smooth",
        "Custom/Cutout_Wall_Atlas_Bricks",
        "Custom/Cutout_Wall_Atlas_Smooth",
        "Custom/Cutout_Wall_Atlas_Bricks",
        "Custom/Cutout_Wall_Atlas_Bricks"
        ]
    },
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-11T19:15:20.9851409Z"
}


POST
/api/v1/dev/console

Конечная точка для разработки и отладки, позволяющая взаимодействовать с внутренней системой логирования игры. Это обеспечивает программное управление консолью разработчика, позволяя отправлять сообщения в лог и очищать консоль.

Example:

curl --request POST \
--url 'http://localhost:8765/api/v1/dev/console'

Request:

{
"action": "message",
"message": "hello_world"
}

Response:

{
    "success": true,
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-08T19:13:29.997162Z"
}


POST
/api/v1/dev/stuff/color

Конечная точка инструмента разработки, которая изменяет визуальные свойства цвета конкретного материала типа «stuff» в игре. «Stuff» в RimWorld относится к базовым материалам, из которых изготавливаются предметы и строения (например, дерево, сталь, ткань, пласталь). Эта конечная точка позволяет в реальном времени настраивать отображаемый цвет материала, что в основном используется для визуальной настройки, отладки или тестирования при разработке модов.

Example:

curl --request POST \
--url http://localhost:8765/api/v1/dev/stuff/color \
--header 'content-type: application/json' \
--data '{
    "name": "WoodLog",
    "hex": "aa00ff"
}'

Request:

{
    "name": "WoodLog",
    "hex": "aa00ff"
}

Response:

{
    "success": true,
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-08T19:13:29.997162Z"
}


POST
/api/v1/dev/materials-atlas/clear

Очищает кэш атласа материалов в оперативной памяти, заставляя игру перезагружать текстуры материалов, шейдеры и свойства рендеринга с диска по запросу.

Example:

curl --request POST \
--url http://localhost:8765/api/v1/dev/materials-atlas/clear

Response:

{
    "success": true,
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-08T19:13:29.997162Z"
}


GET
/api/v1/dev/endpoints

Получить полный список всех зарегистрированных конечных точек API, включая их HTTP-методы, пути, описания, категории и теги. Это очень полезно для программного обнаружения маршрутов и создания автоматизированных клиентов API.

Example:

curl --request GET \
--url 'http://localhost:8765/api/v1/dev/endpoints'

Response:

{
    "success": true,
    "data": {
        "endpoints": [
            {
                "method": "POST",
                "path": "/api/v1/camera/change/zoom",
                "description": "Change game camera zoom",
                "category": "CameraController",
                "tags": [],
                "is_deprecated": false
            },
            {
                "method": "POST",
                "path": "/api/v1/camera/change/position",
                "description": "Change game camera position",
                "category": "CameraController",
                "tags": [],
                "is_deprecated": false
            },
            {
                "method": "POST",
                "path": "/api/v1/stream/start",
                "description": "Start game camera stream",
                "category": "CameraController",
                "tags": [],
                "is_deprecated": false
            }
        ]
    },
    "errors": [],
    "warnings": [],
    "timestamp": "2026-03-28T16:45:00.0000000Z"
}

Кэш сервера

Эндпоинты для управления механизмом внутреннего кэширования API. Используйте эти маршруты для переключения кэширования, мониторинга статистики производительности (соотношение попаданий/промахов) и ручной очистки кэша для освобождения памяти или принудительного обновления данных.


POST
/api/v1/cache/enable

Включить кэширование сервера для результатов эндпоинтов. Когда оно включено, валидные GET-запросы будут сохраняться в памяти для снижения нагрузки на сервер и улучшения времени ответа.

Example:

curl --request POST \
--url http://localhost:8765/api/v1/cache/enable

Response:

{
    "success": true,
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-08T19:13:29.997162Z"
}


POST
/api/v1/cache/disable

Отключить кэширование сервера. Это заставляет сервер заново обрабатывать каждый запрос. Полезно для отладки или обеспечения точности данных в реальном времени во время разработки.

Example:

curl --request POST \
--url http://localhost:8765/api/v1/cache/disable

Response:

{
    "success": true,
    "errors": [],
    "warnings": [],
    "timestamp": "2025-12-08T19:13:29.997162Z"
}


GET
/api/v1/cache/status

Возвращает текущий статус и статистику производительности системы внутреннего кэширования API. Этот эндпоинт обеспечивает видимость использования кэша, его эффективности и занимаемой памяти, что полезно для мониторинга и отладки производительности и оптимизации API.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/cache/status

Response:

{
    "enabled": true,
    "statistics": {
        "total_entries": 0,
        "hits": 0,
        "misses": 0,
        "memory_usage_bytes": 0,
        "last_cleanup": "2025-12-10T18:43:21.4353167Z",
        "hit_ratio": 0.0,
        "compiled_delegate_count": 0,
        "compiled_delegate_hits": 0,
        "compiled_delegate_misses": 0
    }
}


POST
/api/v1/cache/clear

Вручную запускает полную очистку системы кэширования. Это удаляет все сохраненные записи и сбрасывает статистику выполнения.

Example:

curl --request POST \
--url http://localhost:8765/api/v1/cache/clear

Response:

{
    "enabled": true,
    "statistics": {
        "total_entries": 0,
        "hits": 0,
        "misses": 0,
        "memory_usage_bytes": 0,
        "last_cleanup": "2025-12-10T18:43:21.4353167Z",
        "hit_ratio": 0.0,
        "compiled_delegate_count": 0,
        "compiled_delegate_hits": 0,
        "compiled_delegate_misses": 0
    }
}

Документация

Documentation Controller предоставляет возможности самоанализа для самого API. Он позволяет клиентам динамически обнаруживать доступные конечные точки, схемы и версии API без необходимости во внешних ссылках.

Функция Описание
Discovery Список всех зарегистрированных маршрутов и их параметров.
Health Проверка статуса сервера API.
Schema Получение схем JSON для тел запросов/ответов.

GET
/api/v1/core/docs/export

Генерирует и экспортирует подробную документацию для всех доступных конечных точек API. Возвращает документацию в запрошенном формате как в ответе, так и в виде файла в директории mod_path/docs/.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/core/docs/export


GET
/api/v1/docs

Получить документацию для всех доступных конечных точек API в запрошенном формате.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/docs


GET
/api/v1/docs/extensions/{extensionId}

Получить документацию для всех доступных конечных точек API расширения в запрошенном формате.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/docs/extensions/34


GET
/api/v1/docs/health

Получить документацию по состоянию (health) для всех доступных конечных точек API в запрошенном формате.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/docs/health


GET
/api/v1/docs/export

Получить экспорт документации для всех доступных конечных точек API в запрошенном формате.

Example:

curl --request GET \
--url http://localhost:8765/api/v1/docs/export

Общие настройки

General Controller служит точкой входа для различных вспомогательных функций, которые не вписываются в конкретные категории сущностей. Он обрабатывает «мета-слой» игрового клиента.

Основные возможности

  • Управление камерой: Панорамирование, масштабирование и фокусировка вида игрока.
  • Управление интерфейсом: Переключение видимости интерфейса или открытие определенных меню.
  • Управление временем: Настройка множителя скорости игры.