Complete reference for all gengine project settings — ports, safety mode, token budget, rate limits, and auto-start behavior.
Project Settings
gengine's configuration lives in Project Settings > Plugins > gengine. Settings are stored in Config/DefaultGame.ini under the [/Script/Gengine.GengineSettings] section. You can edit them in the editor UI or directly in the INI file.
Opening the Settings
Edit > Project Settings > Plugins > gengine
The settings panel is divided into four sections: Server, Safety, Performance, and Bridge.
Server Settings
| Setting | Type | Default | Description |
|---|---|---|---|
RestApiPort | int | 8080 | Port the gengine HTTP REST API listens on. Change if 8080 conflicts with another service. |
McpBridgePort | int | 3000 | Port the MCP bridge (Node.js) listens on for HTTP+SSE connections. |
BindAddress | string | 127.0.0.1 | Network interface to bind. 127.0.0.1 restricts to localhost only. Do not change to 0.0.0.0 on a shared network. |
bAutoStartBridge | bool | true | Automatically launch the MCP bridge Node.js process when the editor starts. Disable if you want to manage the bridge manually. |
bAutoStartRestApi | bool | true | Automatically start the REST API HTTP server on editor launch. |
Port configuration example
[/Script/Gengine.GengineSettings]
RestApiPort=8080
McpBridgePort=3000
BindAddress=127.0.0.1
If you change RestApiPort, also update the GENGINE_PORT environment variable in your Claude CLI or MCP client config to match:
{
"mcpServers": {
"gengine": {
"command": "node",
"args": ["C:/path/to/Plugins/gengine/Resources/mcp-bridge/dist/index.js"],
"env": {
"GENGINE_PORT": "8081"
}
}
}
}
Safety Settings
| Setting | Type | Default | Description |
|---|---|---|---|
SafetyTier | enum | Supervised | Active safety tier: ReadOnly, Supervised, or Unrestricted. See Safety System documentation. |
bRequireConfirmForDestructive | bool | true | When true, destructive operations require confirm: true in params. Automatically set based on SafetyTier. |
bBlockConsoleCommands | bool | false | When true, completely disables run_console_command. Overrides blocklist. |
ConsoleCommandBlocklist | string[] | (built-in list) | Additional command prefixes to block beyond the default blocklist. |
Adding custom blocklist entries
[/Script/Gengine.GengineSettings]
SafetyTier=Supervised
ConsoleCommandBlocklist=(entries=("myDangerousCommand","anotherBlockedPrefix"))
Performance Settings
| Setting | Type | Default | Description |
|---|---|---|---|
MaxConcurrentTasks | int | 4 | Maximum tasks the queue dispatches simultaneously. Reducing this to 2 can help on lower-end machines. Do not increase above 4. |
TaskTimeoutSeconds | int | 30 | How long a queued task waits before timing out. |
MaxActorsPerDeleteCall | int | 200 | Cap on actors deleted in a single delete_actors call. |
MaxSearchResults | int | 200 | Maximum assets returned by a single search or list call. |
OutputLogMaxLines | int | 1000 | Maximum lines returned by get_output_log. |
bEnableOutputSanitizer | bool | true | Run MCPOutputSanitizer on all responses. Only disable for debugging. |
Token Budget Settings
| Setting | Type | Default | Description |
|---|---|---|---|
MaxResponseTokens | int | 8192 | Maximum tokens in a single AI response. Passed to the provider as max_tokens. |
MaxContextTokens | int | 200000 | Maximum context window size. gengine truncates conversation history if it would exceed this. |
bCompressLargeResponses | bool | true | Compress tool result payloads above 4 KB before sending to the AI. Reduces token usage on large asset lists. |
LargeResponseThresholdBytes | int | 4096 | Payload size above which compression is applied. |
Rate Limiting Settings
| Setting | Type | Default | Description |
|---|---|---|---|
bEnableRateLimiting | bool | true | Enable per-session rate limiting. |
RateLimitRequestsPerMinute | int | 60 | Requests per minute per session. Overrides license tier default if set lower. |
RateLimitBurstSize | int | 10 | Additional requests allowed in a burst above the per-minute rate. |
Note: Rate limit settings in Project Settings cap at or below the limits set by your license tier. Setting
RateLimitRequestsPerMinuteto 600 on a Free tier license still enforces the Free tier's 60 req/min limit.
Bridge Settings
| Setting | Type | Default | Description |
|---|---|---|---|
BridgeLaunchCommand | string | node | Executable used to launch the MCP bridge. Change to a full path if node is not in your system PATH. |
BridgeScriptPath | string | (auto) | Path to the bridge entry point. Auto-detected from plugin location. Override only if using a non-standard installation. |
BridgeEnv | string map | {} | Additional environment variables passed to the bridge process. |
BridgeRestartOnCrash | bool | true | Automatically restart the bridge if it exits unexpectedly. |
BridgeRestartMaxAttempts | int | 3 | Maximum restart attempts before giving up and showing an error in the Diagnostics tab. |
Full Settings Reference (INI format)
[/Script/Gengine.GengineSettings]
; Server
RestApiPort=8080
McpBridgePort=3000
BindAddress=127.0.0.1
bAutoStartBridge=True
bAutoStartRestApi=True
; Safety
SafetyTier=Supervised
bRequireConfirmForDestructive=True
bBlockConsoleCommands=False
; Performance
MaxConcurrentTasks=4
TaskTimeoutSeconds=30
MaxActorsPerDeleteCall=200
MaxSearchResults=200
OutputLogMaxLines=1000
bEnableOutputSanitizer=True
; Token Budget
MaxResponseTokens=8192
MaxContextTokens=200000
bCompressLargeResponses=True
LargeResponseThresholdBytes=4096
; Rate Limiting
bEnableRateLimiting=True
RateLimitRequestsPerMinute=60
RateLimitBurstSize=10
; Bridge
BridgeLaunchCommand=node
BridgeRestartOnCrash=True
BridgeRestartMaxAttempts=3
Common Configuration Scenarios
Offline / air-gapped development
Use Ollama locally and lock down network binding:
BindAddress=127.0.0.1
bAutoStartBridge=True
SafetyTier=Supervised
Configure the provider to use Ollama at http://localhost:11434.
CI/CD read-only pipeline
Prevent any writes during automated asset auditing:
SafetyTier=ReadOnly
bEnableRateLimiting=False
MaxConcurrentTasks=4
High-throughput batch operations (Pro/Enterprise)
Increase rate limits for sustained automated work:
SafetyTier=Unrestricted
RateLimitRequestsPerMinute=600
RateLimitBurstSize=50
MaxConcurrentTasks=4
TaskTimeoutSeconds=60
Low-end machine
Reduce concurrency to avoid editor hitches:
MaxConcurrentTasks=2
TaskTimeoutSeconds=60
bCompressLargeResponses=True