About unreal
A work-in-progress skill for controlling Unreal Engine 5.x through PlayUnreal-style external automation. It describes setup, Remote Control launch options, selectors, and a Python API target.
Key features
- 01Automate Unreal Engine 5.x externally
- 02Set up Remote Control and Automation Driver
- 03Use ID and path selectors
- 04Reference a PlayUnreal Python API
- 05Cover editor and packaged builds
Use cases
- 01Preparing an Unreal project for automation
- 02Targeting UMG widgets with automation IDs
- 03Launching editor or packaged builds with Remote Control
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ randroids-dojo/ skills --skill unrealAfter installing, type/unrealin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
.claude-plugin/plugin.jsoncommands/unreal.mdreferences/automation-driver.mdplayunreal.mdremote-control.mdumg-automation.mdscripts/rc_wait_ready.pyrun_e2e.pyue_launch.pyDetails
From the project READMEUnreal Skill (WIP)
Automate Unreal Engine 5.x with PlayUnreal style external control.
Status: WIP. PlayUnreal repo: https://github.com/Randroids-Dojo/PlayUnreal
Quick Reference
# Launch editor with Remote Control enabled
UnrealEditor "/path/MyGame.uproject" -ExecCmds="WebControl.StartServer"
# Packaged build (enable Remote Control)
MyGame.exe -RCWebControlEnable -RCWebInterfaceEnable -ExecCmds="WebControl.StartServer"
# Wait for Remote Control and ping a PlayUnreal automation actor
python plugins/unreal/scripts/rc_wait_ready.py \
--host 127.0.0.1 --port 30010 \
--object-path "/Game/Maps/Main.Main:PersistentLevel.PlayUnrealDriver_1"
Setup Checklist
- Enable Remote Control and Automation Driver plugins.
- Add the PlayUnrealAutomation plugin to the project.
- Place the PlayUnreal driver actor or subsystem in the map.
- Tag key UMG widgets with automation IDs for stable selectors.
- Keep Remote Control on LAN/VPN only.
Selector Strategy
id=StartButtonmaps to Automation DriverBy::Id.path=#Menu//Start/<SButton>maps toBy::Path.text="Start"can be implemented via custom traversal if needed.
PlayUnreal Python (target API)
from playunreal import Unreal
async with Unreal.launch(
uproject="MyGame.uproject",
map="/Game/Maps/MainMenu",
remote_control=True,
) as ue:
page = ue.page()
await page.locator("id=StartButton").click()
await page.locator("id=HUDRoot").wait_for_visible()
await page.screenshot("artifacts/started.png")
Packaged Builds
- Use
-RCWebControlEnable -RCWebInterfaceEnable. - Ensure presets and assets are staged if using Remote Control presets.
References
references/remote-control.mdreferences/automation-driver.mdreferences/umg-automation.mdreferences/playunreal.md
Comments
Markdown supported