Runtime tools
Play-mode MCP commands for smooth actor movement, rotation, and runtime-safe behaviour.
KARIANA ships a family of MCP commands for moving and rotating actors at runtime — i.e. while your project is in play mode inside the Unreal editor. These are the recommended commands for any runtime animation, cinematic sequence, or agent-driven behaviour.
Available commands
move_actor_smooth— move an actor to a target location over time, with tick-based interpolation.rotate_actor_smooth— rotate an actor to a target orientation over time.
Both commands accept the actor (by reference or label), the target value, and a duration. They resolve when the interpolation completes.
Why the _smooth variants
The editor-only tween commands (tween_location, tween_rotation, scale/material tweens) are not safe to call during play mode. They assume an editor world and use mechanisms (notably scoped transactions) that are illegal in the game world.
Calling a tween command during play will either:
- be silently redirected to its runtime-safe equivalent where the parameters map cleanly (e.g.
tween_location→move_actor_smooth), or - fail with a clear error if no safe mapping exists.
Your tools should target the _smooth variants directly to avoid ambiguity.
Spawning actors at runtime
Spawning actors during play mode is blocked by design. Spawn actors in edit mode or via Blueprints; the MCP spawn command is restricted to edit mode. If you need a runtime spawn, author it as a Blueprint the agent can call.
K9 pipeline
The runtime tools are exposed through K9 alongside the existing edit-mode tools. Loose class names are auto-resolved to their shape names, so prompts that reference e.g. "cube" or "sphere" will spawn the correct actor type (in edit mode).
Versioning
Runtime MCP commands are available in v0.9.21 and later. If you are on an earlier version, please upgrade before building any workflow that relies on them.
For the authoritative, continuously-updated list of MCP commands and their parameters, see the how_to_use.md file shipped inside the plugin.