Interactable Runtime Config¶
UMounteaInteractableRuntimeConfig (UDataAsset) supplies gameplay defaults to every interactable component via SetDefaults().
Fields¶
| Field | Type | Default | Purpose |
|---|---|---|---|
DefaultInteractionPeriod |
float (s) |
3.0 |
Interaction duration. -1 = instant (Press-style behaviour) |
DefaultInteractableState |
EInteractableStateV3 |
EIS_Awake |
State interactables boot into |
DefaultSetupType |
ESetupType |
EST_Quick |
How collision/highlight components are auto-discovered (see below) |
OverlapCollisionChannelName |
FName |
InteractionOverlap |
Must match the Interactor Runtime Config's channel of the same name |
bDefaultHighlightEnabled |
bool |
true |
Whether interactables highlight when focused |
DefaultHighlightSetup |
FInteractionHighlightSetup |
Overlay Material, Stencil 133 | Highlight type + material/stencil |
DefaultLifecycleMode |
EInteractableLifecycle |
EIL_Cycled |
Re-triggerable (Cycled) or single-use (OnlyOnce) |
DefaultCooldownPeriod |
float (s) |
3.0 |
Cooldown between cycles, only when Cycled |
DefaultInteractableWeight |
int32 |
1 |
Tier 1 focus-selection priority - higher wins |
DefaultMaxInteractors |
int32 |
1 |
How many interactors can occupy slots simultaneously |
DefaultWidgetRanges |
FInteractableWidgetRanges |
Attention 500cm / Interaction 200cm | Distance thresholds for widget mode transitions |
Auto-Setup Modes¶
ESetupType controls how FindAndAddCollisionShapes() / FindAndAddHighlightableMeshes() discover components on the owning actor:
| Mode | Behaviour |
|---|---|
EST_FullAll |
Adds every component from the owning actor |
EST_AllParent |
Adds all parent components |
EST_Quick |
Adds only the first parent component (the default - fastest, works for most single-mesh actors) |
EST_None |
No auto-discovery; wire CollisionOverrides / HighlightableOverrides by hand |
Lifecycle¶
EIL_OnlyOnce : one successful interaction, then EIS_Completed forever
EIL_Cycled : completes → EIS_Cooldown (DefaultCooldownPeriod) → EIS_Awake again
optionally bounded by LifecycleCount (-1 = infinite repeats)
Widget Ranges¶
FInteractableWidgetRanges requires InteractionRange <= AttentionRange (validated by IsValid()). An interactor's RefreshFocus() compares its distance to each detected interactable against these thresholds and calls ToggleWidgetVisibility / UpdateAttentionWidgetMode accordingly - see User Interface.
Resolving From Code¶
const UMounteaInteractionSystemSettings* settings = GetDefault<UMounteaInteractionSystemSettings>();
const UMounteaInteractableRuntimeConfig* config = settings ? settings->GetInteractableConfig() : nullptr;
See Interactable System for how these values map onto the component's own editable properties.