コンテンツにスキップ

🛠️ System & Developer Tools API

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

DevTools Controller

This controller exposes RimWorld's internal Debug Actions and development tools. It provides "God Mode" functionality usually reserved for the game's developer console.

Use with Caution

Actions performed here bypass standard gameplay rules. Misuse can lead to: * Corrupted save states. * Game crashes. * Broken AI behavior.


GET
/api/v1/dev/materials-atlas

Retrieves the development-level materials atlas data, which contains the internal mapping of material definitions to their graphical textures, shaders, and rendering properties.

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

A development and debugging endpoint that allows interaction with the game's internal logging system. This provides programmatic control over the developer console, allowing sending log messages, clearing 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

A development tool endpoint that modifies the visual color properties of a specific "stuff" material in-game. "Stuff" in RimWorld refers to the base materials that items and structures are made from (e.g., wood, steel, cloth, plasteel). This endpoint allows for real-time adjustment of a material's displayed color, primarily used for visual customization, debugging, or mod development testing.

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

Clears the in‑memory materials atlas cache, forcing the game to reload material textures, shaders, and rendering properties from disk on‑demand.

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

Get a comprehensive list of all registered API endpoints, including their HTTP methods, paths, descriptions, categories, and tags. This is highly useful for programmatic route discovery and building automated API clients.

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"
}

Server Cache Controller

Endpoints for managing the API's internal caching mechanism. Use these routes to toggle caching, monitor performance statistics (hit/miss ratios), and manually flush the cache to free memory or force data updates.


POST
/api/v1/cache/enable

Enable server caching for endpoint results. When enabled, valid GET requests will be stored in memory to reduce server load and improve response times.

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

Disable server caching. This forces the server to re-process every request. Useful for debugging or ensuring real-time data accuracy during development.

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

Retrieves the current status and performance statistics of the API's internal caching system. This endpoint provides visibility into cache utilization, effectiveness, and memory footprint, useful for monitoring and debugging API performance and optimization.

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

Manually triggers a complete flush of the caching system. This removes all stored entries and resets runtime statistics.

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

The Documentation Controller provides introspection capabilities for the API itself. It allows clients to dynamically discover available endpoints, schemas, and API versions without needing external references.

Feature Description
Discovery List all registered routes and their parameters.
Health Check the status of the API server.
Schema Retrieve JSON schemas for request/response bodies.

GET
/api/v1/core/docs/export

Generates and exports comprehensive documentation for all available API endpoints. Returning documentation in requested format both in response and as file in mod_path/docs/ directory.

Example:

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


GET
/api/v1/docs

Get documentation for all available API endpoints in requested format.

Example:

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


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

Get documentation for all available API endpoints in requested format.

Example:

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


GET
/api/v1/docs/health

Get documentation for all available API endpoints in requested format.

Example:

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


GET
/api/v1/docs/export

Get documentation for all available API endpoints in requested format.

Example:

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

General Controller

The General Controller serves as the entry point for miscellaneous utility functions that don't fit into specific entity categories. It handles the "meta" layer of the game client.

Primary Capabilities

  • Camera Control: Pan, zoom, and focus the player's view.
  • UI Management: Toggle interface visibility or open specific menus.
  • Time Control: Adjust game speed multiplier.