← Back to Plugins
Tools

Unreal

TomLeeLive By TomLeeLive 👁 8 views ▲ 0 votes

A plugin for Openclaw to control the Unreal Editor.

GitHub

Configuration Example

{
  "host": "127.0.0.1",
  "port": 18789,
  "autoConnect": true,
  "secret": "optional-secret-key"
}

README

# ๐Ÿฆž OpenClaw Unreal Plugin

AI-assisted Unreal Engine development. Control the editor, manipulate actors, simulate input, and automate workflows through natural language.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Unreal Engine](https://img.shields.io/badge/Unreal%20Engine-5.x-blue)](https://www.unrealengine.com/)
[![Discord](https://img.shields.io/discord/1234567890?color=7289da&label=Discord&logo=discord&logoColor=white)](https://discord.com/invite/clawd)

## โš ๏ธ Disclaimer

This software is in **beta**. Use at your own risk.

- Always backup your project before using
- Test in a separate project first
- The authors are not responsible for any data loss or project corruption

See [LICENSE](LICENSE) for full terms.

## Features

- ๐ŸŽฎ **Editor Control** - Start/stop PIE, pause/resume
- ๐ŸŽญ **Actor Management** - Create, find, delete, modify actors
- ๐Ÿ“ **Transform Tools** - Position, rotation, scale manipulation
- ๐Ÿ–ผ๏ธ **Screenshots** - Capture viewport images
- โŒจ๏ธ **Input Simulation** - Keyboard, mouse, gamepad simulation
- ๐Ÿ“ฆ **Asset Browsing** - List and explore project content
- ๐Ÿ”ง **Console Commands** - Execute Unreal console commands

## Quick Start

### 1. Install Plugin

Copy to your project's Plugins folder:

```bash
cp -r openclaw-unreal-plugin YourProject/Plugins/OpenClaw
```

### 2. Enable Plugin

1. Open your Unreal project
2. Go to Edit โ†’ Plugins
3. Search for "OpenClaw"
4. Enable the plugin
5. Restart the editor

### 3. Connect to OpenClaw

The plugin automatically connects to the OpenClaw gateway on startup.

Check connection: Window โ†’ OpenClaw Status

## Configuration

Create `openclaw.json` in your project root:

```json
{
  "host": "127.0.0.1",
  "port": 18789,
  "autoConnect": true,
  "secret": "optional-secret-key"
}
```

Or in `~/.openclaw/unreal-plugin.json` for global config.

## Available Tools (40+)

### Level Management
| Tool | Description |
|------|-------------|
| `level.getCurrent` | Get current level info |
| `level.list` | List all levels in project |
| `level.open` | Open level by path |
| `level.save` | Save current level |

### Actor Tools
| Tool | Description |
|------|-------------|
| `actor.find` | Find actor by name |
| `actor.getAll` | Get all actors in level |
| `actor.create` | Spawn new actor |
| `actor.delete` | Remove actor |
| `actor.getData` | Get detailed actor info |
| `actor.setProperty` | Modify actor property |

### Transform Tools
| Tool | Description |
|------|-------------|
| `transform.getPosition` | Get actor world position |
| `transform.setPosition` | Set actor position |
| `transform.getRotation` | Get actor rotation |
| `transform.setRotation` | Set actor rotation |
| `transform.getScale` | Get actor scale |
| `transform.setScale` | Set actor scale |

### Component Tools
| Tool | Description |
|------|-------------|
| `component.get` | List actor components |
| `component.add` | Add component to actor |
| `component.remove` | Remove component |

### Editor Control
| Tool | Description |
|------|-------------|
| `editor.play` | Start Play in Editor |
| `editor.stop` | Stop PIE session |
| `editor.pause` | Pause execution |
| `editor.resume` | Resume execution |
| `editor.getState` | Get current state |

### Debug Tools
| Tool | Description |
|------|-------------|
| `debug.hierarchy` | Get world actor hierarchy |
| `debug.screenshot` | Capture screenshot |
| `debug.log` | Log message to output |

### Input Simulation
| Tool | Description |
|------|-------------|
| `input.simulateKey` | Simulate keyboard input |
| `input.simulateMouse` | Simulate mouse input |
| `input.simulateAxis` | Simulate axis/gamepad |

### Asset Tools
| Tool | Description |
|------|-------------|
| `asset.list` | List assets in path |
| `asset.import` | Import external asset |

### Console
| Tool | Description |
|------|-------------|
| `console.execute` | Run console command |
| `console.getLogs` | Get output log |

### Blueprint
| Tool | Description |
|------|-------------|
| `blueprint.list` | List blueprints |
| `blueprint.open` | Open in editor |

## Example Interactions

```
User: Show me all actors in the level
AI: [Executes debug.hierarchy]
    Found 15 actors: PlayerStart, DirectionalLight, ...

User: Create a point light at (0, 0, 300)
AI: [Executes actor.create type="PointLight" x=0 y=0 z=300]
    Created PointLight_1 at position (0, 0, 300)

User: Start the game and move forward
AI: [Executes editor.play, then input.simulateKey key="W"]
    Started PIE, simulating W key press

User: Take a screenshot
AI: [Executes debug.screenshot]
    Screenshot saved to Saved/Screenshots/screenshot_20260211_141500.png
```

## Architecture

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Unreal Editor                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚              OpenClaw Plugin                     โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚ Connection  โ”‚  โ”‚   Tools     โ”‚  โ”‚  Input  โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  Manager    โ”‚  โ”‚  Handler    โ”‚  โ”‚ Simulateโ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ”‚                โ”‚              โ”‚
             โ–ผ HTTP Poll      โ”‚              โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  OpenClaw Gateway                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ–ฒ
             โ”‚ AI Requests
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    AI Assistant                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

## Requirements

- Unreal Engine 5.0 or later
- Windows, macOS, or Linux
- OpenClaw Gateway running

## Building from Source

```bash
# Clone repository
git clone https://github.com/openclaw/openclaw-unreal-plugin

# Copy to project
cp -r openclaw-unreal-plugin YourProject/Plugins/OpenClaw

# Regenerate project files
# Windows: Right-click .uproject โ†’ Generate Visual Studio files
# Mac: Open with Xcode, build
```

## ๐Ÿ” Security: Model Invocation Setting

When publishing to ClawHub or installing as a skill, you can configure `disableModelInvocation` in the skill metadata:

| Setting | AI Auto-Invoke | User Explicit Request |
|---------|---------------|----------------------|
| `false` (default) | โœ… Allowed | โœ… Allowed |
| `true` | โŒ Blocked | โœ… Allowed |

### Recommendation for Unreal Plugin: **`true`**

**Reason:** During Unreal development, it's useful for AI to autonomously perform supporting tasks like checking actor hierarchy, taking screenshots, and inspecting components.

**When to use `true`:** For sensitive tools (payments, deletions, message sending, etc.)

```yaml
# Example skill metadata
metadata:
  openclaw:
    disableModelInvocation: true  # Recommended for Unreal plugin
```

## Troubleshooting

### Compilation Error: "could not be compiled"

ํ”„๋กœ์ ํŠธ ์—ด ๋•Œ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด:

1. **Binaries/Intermediate ์‚ญ์ œ**
   ```bash
   rm -rf YourProject/Plugins/OpenClaw/Binaries
   rm -rf YourProject/Plugins/OpenClaw/Intermediate
   ```

2. **ํ”„๋กœ์ ํŠธ ๋‹ค์‹œ ์—ด๊ธฐ** - Unreal์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ƒˆ๋กœ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

### UE 5.7 Compatibility (v0.9.3+)

**v0.9.3 ์—…๋ฐ์ดํŠธ:** UE 5.7 API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ํ˜ธํ™˜์„ฑ ์ˆ˜์ • ์™„๋ฃŒ.

| ์ˆ˜์ •๋œ ์ด์Šˆ | ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• |
|------------|----------|
| `PlayInEditor` ๋ฉ”์„œ๋“œ ์ œ๊ฑฐ๋จ | `StartPlayInEditorSession()` ์‚ฌ์šฉ์œผ๋กœ ๋ณ€๊ฒฝ |
| `SendRegister` ์„ ์–ธ ๋ˆ„๋ฝ | ํ—ค๋”์— `void SendRegister()` ์„ ์–ธ ์ถ”๊ฐ€ |
| `HandleRegisterResponse` ์„ ์–ธ ๋ˆ„๋ฝ | ํ—ค๋”์— ์„ ์–ธ ์ถ”๊ฐ€ |

**UE 5.0 ~ 5.6 ์‚ฌ์šฉ์ž:** ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” API ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. v0.9.3๋ถ€ํ„ฐ UE 5.7+ ๊ถŒ์žฅ.

### macOS Gatekeeper: "node" Blocked

macOS์—์„œ Gateway ์‹œ์ž‘ ์‹œ `node`๊ฐ€ ์ฐจ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ:

**๋ฐฉ๋ฒ• 1: System Settings์—์„œ ํ—ˆ์šฉ**
1. System Settings โ†’ Privacy & Security
2. ์•„๋ž˜๋กœ ์Šคํฌ๋กค โ†’ "node" ์ฐจ๋‹จ ๋ฉ”์‹œ์ง€ ์ฐพ๊ธฐ
3. "Allow Anyway" ํด๋ฆญ
4. Gateway ๋‹ค์‹œ ์‹œ์ž‘: `openclaw gateway restart`

**๋ฐฉ๋ฒ• 2: ํ„ฐ๋ฏธ๋„์—์„œ quarantine ์†์„ฑ ์ œ๊ฑฐ**
```bash
xattr -d com.apple.quarantine ~/.nvm/versions/node/v24.13.0/bin/node
```

> **Note:** Node.js ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `which node`๋กœ ํ™•์ธํ•˜์„ธ์š”.

### Plugin not loading
- Check Output Log for errors
- Verify plugin is in `Plugins/OpenClaw/` folder
- Ensure `OpenClaw.uplugin` exists

### Not connecting to gateway
- Verify gateway is running: `openclaw gateway status`
- Check firewall allows port 18789 (default)
- Look for `[OpenClaw]` messages in Output Log

### Tools not executing
- Confirm connected (Window โ†’ OpenClaw Status)
- Check Output Log for tool execution errors
- Ensure editor is not busy

## Contributing

1. Fork the repository
2. Create feature branch
3. Make changes
4. Submit pull request

## Support

- ๐Ÿ“– [Documentation](https://docs.openclaw.ai)
- ๐Ÿ’ฌ [Discord](https://discord.com/invite/clawd)
- ๐Ÿ› [Issues](https://github.com/openclaw/openclaw-unreal-plugin/issues)

## License

MIT License - see [LICENSE](LICENSE) file.

---

Made with ๐Ÿฆž by the OpenClaw community
tools

Comments

Sign in to leave a comment

Loading comments...