Overview¶
MovaInteract is a Blueprint-friendly, data-driven interaction system for Unreal Engine 5. Add one component to any actor and set up what it does entirely from a custom editor panel, no interaction Blueprint graph required.
The problem it solves¶
Most interaction kits ask you to wire a Blueprint graph per object: an Event Interact node, a branch on which key was pressed, a timeline to drive the door, another for the sound, a third for the light. It works, but it does not scale: a level with 200 interactive props means 200 graphs to maintain, and every designer change is a recompile.
MovaInteract inverts this. An interaction is data: a set of named poses (States), sequenced by time into Actions, grouped and gated into Groups, and stepped by Cycles. You set all of it up visually, previewing live, and the runtime executes the data, no graph, no recompile, and the same setup surface whether you are a programmer or a designer with zero C++ experience.
What one component gives you¶
Adding a UMovaIxComponent ("the IC") to an actor turns each of its
scene components into an addressable, animatable target. A single state can, at
once:
move / rotate / scale / hide a component,
play a one-shot or looping sound,
spawn a Niagara effect (burst or attached-while-active),
apply an impulse, a continuous force, or procedural vibration,
drive light color / intensity / temperature and material overrides,
play an AnimSequence or AnimMontage on a rigged target,
carry a gameplay payload (number / tag / text) for your own logic, and
act as a gate: a lock or condition another interaction checks.
A plain StaticMeshActor can open, slide, spin, light up, play a sound, and react to
the player with zero Blueprint nodes.
How it is triggered¶
Three independent trigger paths, all sharing one addressing grammar (Tag Grammar Reference):
Tags: a component or actor tag like
!Open @Paneldescribes a complete interaction: flow, verb, target(s), optional gate.Proximity: the IC can own a Box / Sphere / tagged-Volume trigger with Enter / Leave tag lists, so presence alone fires an interaction (a light that turns on as you approach).
The player Interactor:
UMovaIxInteractorComponenton a pawn finds the closest interactable in view and callsTargetInteraction(), raising events your HUD listens to.
Design principles¶
One grammar everywhere. The same address syntax (
@,%,#,^,:,?) is used for targets, conditions, filters and gates. Learn it once.Set it up, don't code. The IC Control Panel replaces the stock Details panel with a purpose-built tree, a scrubbable timeline, field pickers and live validation.
Record instead of hand-writing. Press Rec, move the object in the viewport, press Stop: MovaInteract generates the group, keyframes and states for you.
Multiplayer from the start. Actions replicate out of the box. Every client-facing entry point routes via the player-owned Interactor, not a world-placed actor (see Multiplayer for why).
Blueprint-first, C++-available. Every trigger, query and event is exposed to Blueprint. A pure-Blueprint project can drive the whole system. C++ projects get the same API plus
BlueprintNativeEventdecision hooks to override.
Where to go next¶
Installation: add the plugin to a project.
Quick Start: three short recipes covering the whole system.
The Model: the five concepts (State → KeyFrame → Action → Group → Cycle) in depth.