Settings¶
Global plugin configuration, under Project Settings → Plugins → Mova Interact. See Debug overlay & troubleshooting for the Debug category in practice and Multiplayer for the Network category.
-
class UMovaIxSettings : public UDeveloperSettings¶
Global configuration for the Mova Interact plugin.
Public Functions
-
UMovaIxSettings()¶
-
inline virtual FName GetCategoryName() const override¶
-
inline virtual FName GetSectionName() const override¶
Public Members
-
bool bAdvancedSettings = false¶
Reveal the advanced / rarely-used settings throughout this panel.
-
FString ActionsFileSuffix = TEXT("_Actions")¶
Filename suffix for the per-map Actions JSON, before ".json". Defaults to "_Actions".
-
FString ActionsFolderOverride¶
Folder the per-map Actions JSON is written to instead of next to the level.
Absolute, or project-relative.
Empty, the default, saves in ActionsSubfolder next to the level's .umap.
-
FString ActionsSubfolder = TEXT("_Ix")¶
Subfolder beside the level the Actions JSON is written into.
Defaults to "_Ix".
Ignored when ActionsFolderOverride is set.
-
bool bAutoDetectPreset = false¶
Re-detect the matching preset whenever the selected Component's Action data is edited (off = manual Detect only).
-
bool bBoundFilter = false¶
Display only the Components that are participating to the interactions.
-
float DetailsSplitRatio = 0.5f¶
Height ratio of the vanilla Components view vs the interactive properties view.
-
float MainSplitRatio = 0.35f¶
Height ratio of the main tree/list workspace vs the lower timeline section.
-
bool bPreviewing = false¶
Transient: true while the control panel is previewing an animation (gates real-object preview).
-
int32 PropertySearchFlags = 0 | static_cast<int32>(EMovaIxPropertySearchFlags::Advanced) | static_cast<int32>(EMovaIxPropertySearchFlags::More)¶
Which native Details search boxes are enabled in the Inspector's "More" and "Advanced" sections. Off by default.
-
bool bScrubbingTimeline = false¶
Transient: true while the user holds the mouse on the timeline (gates real-object preview).
-
bool bShowPresets = true¶
Show the Presets row (selector + Detect + Manage) at the top of the Control Panel.
-
bool bShowRuntime = false¶
Show Runtime properties.
-
bool bShowTimeline = false¶
Show the Timeline section (Group/Action combos + transport controls + Keyframe overlay).
-
EMovaIxTooltipTheme TooltipTheme = EMovaIxTooltipTheme::Dark¶
Look of the plugin's own structured hover tooltips, ex: the hierarchy panel's Actor row.
Light matches the Blueprint editor's Component tooltip, Dark matches the editor's default.
-
bool bShowCrosshair = false¶
Draws a crosshair at the center of the screen (player aim point).
-
FLinearColor CrosshairColor = FLinearColor(1.0f, 1.0f, 1.0f, 1.0f)¶
Color of the center crosshair.
-
float CrosshairDistance = 150.0f¶
Distance in front of the camera at which the center crosshair is drawn.
-
float CrosshairInterpolationSpeed = 18.0f¶
Crosshair camera-follow smoothing speed (QInterpTo).
0 = rigid (jittery while turning). 15-25 = smooth.
-
float CrosshairSize = 0.015f¶
Crosshair half-extent as a fraction of distance (world half-size = Distance * CrosshairSize).
Keeps on-screen size roughly constant with distance.
-
float CrosshairThickness = 1.5f¶
Line thickness for both crosshairs.
-
float CrosshairVerticalOffset = 0.0f¶
Vertical screen offset for the center crosshair, as a fraction of its distance (positive = up).
Use it to raise the reticle in third person where the camera looks down.
0 = exact screen center.
-
bool bImpactCrosshair = false¶
Draws a second crosshair on the point of impact of the currently targeted interactable.
Reuses the LOS trace point.
-
FLinearColor ImpactCrosshairColor = FLinearColor(0.0f, 1.0f, 0.0f, 1.0f)¶
Color of the impact-point crosshair.
-
bool bProjectedCrosshair = false¶
Draws a crosshair where the aim ray first hits world geometry (camera forward, or the cursor in cursor mode).
Unlike the impact crosshair, it does not snap to the targeted interactable.
-
FLinearColor ProjectedCrosshairColor = FLinearColor(1.0f, 0.85f, 0.2f, 1.0f)¶
Color of the projected crosshair.
-
float ProjectedCrosshairRange = 5000.0f¶
Max trace distance for the projected crosshair.
-
bool bDebugDraw = true¶
Universal toggle flag to run runtime viewport visibility diagnostics.
-
int32 DebugDrawFlags = 0 | static_cast<int32>(EMovaIxDebugDrawFlags::PointLine) | static_cast<int32>(EMovaIxDebugDrawFlags::PointSphere)¶
Active bitmask flag tracking choices evaluated during viewport debug steps.
-
bool bDebugScreen = false¶
Show the on-screen ScreenMessage debug overlays.
Server multicast, busy, etc.
Off keeps the screen clean.
-
bool bDebugSelection = false¶
Print the panel's own selection-routing diagnostics.
-
bool bDebugStates = false¶
Show the CurrentStates in the viewport, top-right panel.
-
bool bDebugTimings = false¶
Print per-step timings on screen when a selection changes.
-
EMovaIxLogVerbosity MinLogVerbosity = EMovaIxLogVerbosity::Log¶
Quiets routine plugin log output below this severity, ex: set to Warning to silence "SkipActionless" and similar skip-and-continue diagnostics while still seeing real warnings and errors. Independent of Unreal's own per-category console verbosity command.
-
float EyeHeightFactor = 0.87f¶
Eye height as a fraction of the pawn's capsule half-height, used as the interaction origin.
A Character's GetActorLocation is its capsule center, hip height, aiming from under the character.
0.87 puts the origin a little below the top of the capsule, roughly where the eyes are.
0 aims from the capsule center, which sits too low for a standing pawn.
-
float NoEyeOffset = -5.0f¶
Interaction-origin offset in cm for a pawn that is not a Character.
Ex: a flying sphere, or a custom Actor.
Such a pawn has no capsule to scale against.
-
float AnglePenaltyPerDegree = 25.0f¶
Off-center penalty in cm per degree, added to a candidate's distance when scoring. A Target N degrees off the aim is treated as N * this many cm farther away.
0 = pure proximity. Higher = strongly prefer centered Targets.
-
EMovaIxChoiceInput ChoiceInput = EMovaIxChoiceInput::NumberKeys¶
How the player picks among a multi-choice interaction prompt.
NumberKeys: 1..0 select, handles 4+ choices.
LegacyKeys: Primary / Secondary / Ternary select choices 0 / 1 / 2.
-
bool bCollapseInteractions = false¶
Fold an Actor's several interaction points into one multi-choice query by default.
Great for a gamepad: aim roughly at the Actor, then pick a Target from a list, ex: which drawer.
A Component tagged "#unique" opts out, staying its own aim-selected point.
Per-IC Collapse = Always / Never overrides this default.
-
float RadialDeadZone = 0.25f¶
Radial-menu dead zone: a select direction shorter than this (0..1) highlights nothing.
Keeps a resting stick from picking a random choice.
-
float RadialStartAngleDeg = 0.0f¶
Radial-menu start angle in degrees, clockwise from straight up.
0 puts the first choice at the top of the wheel.
-
float RadialMouseSensitivity = 0.15f¶
Radial wheel with a captured mouse cursor: how far raw mouse movement pushes the highlight. Higher values lock in a wedge with less mouse movement.
-
bool bUseMouseCursor = false¶
Show the mouse cursor and Target whatever it points at instead of the camera center. Cursor ray replaces the view-angle term in scoring.
Distance to the player still counts.
Map IA_Click to Left Mouse for click-to-interact.
IA_Click acts as IA_InteractPrimary only while this is on.
-
bool bAddressFieldChips = false¶
Show address fields (ex: Target) as chips, with the edit box hidden until the row is clicked.
Off: the edit box stays visible + a red chip only on an unresolved token.
On: every token shows as a classified chip, and clicking the row brings the box back.
-
TMap<FName, FLinearColor> SectionColors¶
Per-section header tints in the IC inspector.
Bright band behind each section title.
Keyed by section:
section.Cycles
section.Groups
section.States
section.Proximity
section.Transform
A multiplier on the native band:
White, the default, leaves it untinted.
Ex: yellow makes Action Cycles yellow.
An absent key = untinted.
-
TMap<FString, FString> ExtraOppositeWords¶
Extra verb/opposite word pairs, on top of the built-in table (Open<->Close, On<->Off, ...).
Used by "New Cycle..." to name the Close half from the entered Open half.
One direction per entry: add both "MyVerb"->"MyOpposite" and the reverse for symmetry.
Ex: { "Spin": "Unspin" } makes "DoorSpin" produce "DoorUnspin", not the "Undo" suffix.
-
TMap<FString, FString> ExtraStateWords¶
Extra verb/State word pairs, on top of the built-in table (Open->Opened, Close->Closed, ...).
Names the State a new Group reaches, ex: "DoorOpen" reaching "DoorOpened".
Overrides a built-in pair with the same key, and leaves the rest in place.
A verb with no natural participle can map to itself, ex: { "Spin": "Spin" }.
-
bool bServerVerifyRange = true¶
Verify on the Server that the interacting pawn is close enough to the Target before running a networked Action.
Blocks a modified client from triggering interactions across the map (remote-interaction exploit).
Check is lag-tolerant: it rejects and logs, it doesn't kick.
A laggy but valid player stays connected.
-
float ServerRangeSlack = 300.0f¶
Extra distance allowed beyond the interactor's detection radius for the server range check.
Absorbs client and server position lag: a valid interaction at the edge of range still passes.
0 is the detection radius itself, a larger value more forgiving and slightly more exploitable.
-
bool bShowClosestOutline = true¶
Writes a custom-depth stencil on the closest interactable for a post-process material to outline. Requires:
Project Settings -> Rendering -> Custom Depth-Stencil Pass = "Enabled with Stencil".
An outline post-process material on an unbound PPV, CustomStencil == OutlineStencilValue.
-
int32 OutlineStencilValue = 1¶
Stencil value for the exact interacted Component (highest-opacity tier: "where" the interaction is).
-
int32 OutlineStencilValueGroup = 2¶
Stencil value for the rest of the interacted Group (best-Root children: mid tier, "what will move").
-
int32 OutlineStencilValueOther = 3¶
Stencil value for the Actor's other Components (lowest tier: "what is selected" at a glance).
-
float PromptScale = 1.0f¶
Uniform render scale applied to the interaction prompt widget (1 = native size, 0.5 = half).
-
bool bAutoKeyWhileRecording = false¶
While recording, keep sampling the tracked Components on a timer.
On: a pose is captured every RecordSampleInterval seconds, which tends to over-produce Keyframes.
Off, the default: ManualKeyframeHotkey captures only the intended poses.
-
float RecordSampleInterval = 0.05f¶
Sampling interval in seconds when bAutoKeyWhileRecording is on.
-
FKey ManualKeyframeHotkey = EKeys::K¶
Hotkey that captures one manual pose sample while recording.
Works whether bAutoKeyWhileRecording is off or on, harmless outside an active recording.
None disables the hotkey, leaving the Rec button and timer as the only way to sample.
-
FKey RecordToggleHotkey¶
Hotkey that starts and stops the Recorder, equivalent to clicking the Rec/Stop button.
None, the default, disables the hotkey, leaving the button as the only way to toggle recording.
-
bool bGenerateToggleOnRecord = true¶
On Stop, generate a full Toggle instead of one Group.
ActionCycle with 2 ActionGroups: the recorded motion, then a generated reverse with every State @Zero.
On, the default: "Rec, move it open, Stop" gives a working press-to-open press-to-close toggle.
Off: Stop generates only the one recorded Group, for a motion that is not meant to reverse.
-
TSoftClassPtr<UMovaIxComponent> InteractiveComponentClass¶
Interactive Component class added by the Control Panel's "Add Interactive Component" button. Points at a project Blueprint, ex: BP_InteractiveComponent, to add that instead of the C++ class.
Empty = falls back to UMovaIxComponent.
-
FLinearColor AnimationColor = FLinearColor(0.0f, 0.8f, 1.0f, 0.6f)¶
Color of the animated preview box.
-
int32 AnimationPreview = 0 | static_cast<int32>(EMovaIxAnimationPreviewFlags::Ghost) | static_cast<int32>(EMovaIxAnimationPreviewFlags::RealObject)¶
How the live animation preview is shown: Ghost and/or the real moved object.
-
float AnimationThickness = 0.0f¶
Line thickness in the animated box.
-
bool bDrawProximityVolume = true¶
Draw the IC's self-contained proximity volume (auto Box/Sphere, or tagged level volumes) in the viewport.
-
bool bDrawRemoteTargetLine = true¶
Draw a line from the initiator to each resolved remote (^) Target Actor.
-
bool bDrawRemoteReach = true¶
Draw the IC's remote reach, RemoteMaxDistance, as a circle around the initiator.
Only drawn when that IC caps its reach, RemoteMaxDistance > 0.
A Target beyond the circle is signaled but ignored at runtime.
-
bool bEnableVisualizer = true¶
Enables the Component visualizer in the editor viewport.
-
FName IsolatedGroupName¶
Which Action Group to isolate in the editor visualizer.
None/All draws everything.
-
FLinearColor KeyframeColor = FLinearColor(1.0f, 0.4f, 0.0f, 0.25f)¶
Color of Keyframe ghost volumes.
-
FLinearColor PivotColor = FLinearColor(0.0f, 0.8f, 1.0f, 0.6f)¶
Color of the pivot gizmo.
-
FLinearColor ProximityVolumeColor = FLinearColor(0.2f, 1.0f, 0.5f, 1.0f)¶
Color of the IC's proximity volume wireframe.
-
FLinearColor RemoteLineColor = FLinearColor(1.0f, 0.9f, 0.0f, 1.0f)¶
Color of the line drawn from the initiator to a remote (^) Target Actor.
-
FLinearColor RemoteOutOfReachColor = FLinearColor(1.0f, 0.15f, 0.1f, 1.0f)¶
Color of a remote (^) Target that sits beyond the initiator's RemoteMaxDistance.
Red by default: the link is set, but the runtime refuses to signal it.
-
FLinearColor ShadowCircleColor = FLinearColor(0.0f, 0.8f, 1.0f, 0.1f)¶
Color of the ground-projection anchor circle.
-
FLinearColor ShadowLineColor = FLinearColor(1.0f, 1.0f, 1.0f, 0.1f)¶
Color of the ground-projection line.
-
int32 TrailCount = 8¶
Number of trails (ghosts) to draw.
-
int32 VisualizerDrawFlags = 0 | static_cast<int32>(EMovaIxVisualizerDrawFlags::Animation) | static_cast<int32>(EMovaIxVisualizerDrawFlags::PathLines)¶
Controls which visualizer elements are drawn in the editor viewport.
-
bool bShowTagTargetLabels = false¶
Draws a [TAG] or [Target] badge in the viewport over every Component of the selected Actor.
Yellow: has interaction tags.
Blue: is targeted by an Action.
Green: both.
Cyan: targeted by the isolated Group.
Gray: neither.
Clicking a badge selects that Component like clicking its row in the hierarchy.
-
bool bShowTagTargetType = true¶
Prints the role word, "[Tag]" or "[Target]", in front of each badge.
-
bool bShowTagTargetValues = false¶
Also print the Component's interaction tags next to its name, ex: "!Toggle !Toggle2". A Component's Target name is not printed, since it is always '@' + its own name.
-
float TagTargetLabelScale = 1.0f¶
Font scale for the [TAG] and [Target] badges.
-
float TagTargetLabelMaxDistance = 5000.0f¶
Beyond this distance the badges are not drawn.
A big level does not turn into soup.
0 means no limit.
-
bool bShowChoicePreview = false¶
Prints the same numbered choice list a real player sees in the interaction prompt. Ex: "1 OpenLeft / 2 CloseLeft", or "(3) OpenRight" for a hold-to-confirm choice.
Public Static Functions
-
static void OpenSettings()¶
Opens the Project Settings window directly to this plugin's section.
-
UMovaIxSettings()¶
-
enum class EMovaIxChoiceInput : uint8¶
How the player selects among a multi-choice interaction prompt.
Values:
-
enumerator NumberKeys¶
Number keys 1..0 pick a choice, ex: 1 = first, 2 = second. Handles more than 3 choices.
-
enumerator LegacyKeys¶
Primary / Secondary / Ternary keys pick choices 0 / 1 / 2, capped at 3.
-
enumerator RadialMenu¶
A radial wheel: a 2D direction (right stick / mouse) highlights a choice, the interact button confirms it.
-
enumerator NumberKeys¶