Frequently Asked Questions

Quick answers to common questions.


Compatibility

Q: What Unreal Engine versions are supported?

A: Unreal Engine 5.7 and higher.

The plugin uses modern UE5 features and APIs. Earlier versions are not supported.


Q: Does this work in VR?

A: Yes! Use Cone Detection method with appropriate angle settings.

VR works great with:

Detection Method: Cone
Interaction Distance: 400
Max Detection Angle: 60

Point your controller at objects and interact!


Q: Can I use this with Enhanced Input?

A: Absolutely! Just bind your Enhanced Input Action:

IA_Interact (Triggered)
└─ Start Interaction

IA_Interact (Completed)
└─ Stop Interaction

Works with both legacy and Enhanced Input systems.


Q: Does it work on mobile/console?

A: Yes! Works on all platforms Unreal Engine supports:

  • ✅ PC (Windows, Mac, Linux)
  • ✅ Console (PlayStation, Xbox, Switch)
  • ✅ Mobile (iOS, Android)
  • ✅ VR (Quest, SteamVR, PSVR)

Usage

Q: Do I need C++ knowledge?

A: No! The plugin is fully usable from Blueprints only.

C++ knowledge is only needed if you want to:

  • Extend the system with custom behavior
  • Modify core functionality
  • Optimize for specific use cases

All common use cases work 100% in Blueprint.


Q: Can I have different widgets for different objects?

A: Yes! Each object’s WidgetComponent can have a different Widget Class assigned.

Example:

Door → WBP_SimplePrompt
NPC → WBP_NPCDialogue
Chest → WBP_LootPrompt

Q: How do I add sounds to interactions?

A: In your Interactable Object’s Event Graph:

Event OnInteract
├─ Play Sound at Location (Interaction Sound, Actor Location)
└─ Your logic...

You can also play sounds on:

  • OnFocused (hover sound)
  • OnHoldStarted (hold begin)
  • OnHoldCompleted (success)

Q: Can I change interaction settings at runtime?

A: Yes! InteractionData is a struct you can modify:

Get Interactable Component
└─ Set Interaction Data (New Data)

Or modify individual properties:

Get Interactable Component
├─ Get Interaction Data (Break)
├─ Modify properties
└─ Set Interaction Data (Make)

Q: How do I make an object interactable only once?

A: Set bIsReusable = False in InteractableComponent.

After first interaction, object auto-disables.


Q: Can I disable/enable objects at runtime?

A: Yes!

// Disable
Interactable Component → SetEnabled (False)

// Enable
Interactable Component → SetEnabled (True)

Disabled objects won’t be detected or interacted with.


Interaction Types

Q: How do I know when a Hold interaction is complete?

A: Use the OnHoldCompleted event:

Event OnHoldCompleted
└─ Do Success Action

You can also track progress:

Event OnHoldProgress (Progress: 0.0 - 1.0)
└─ Update UI / Play Sound

Q: Can I cancel a Hold interaction?

A: Yes! Player releases input → Hold is automatically cancelled.

You can listen for this:

Event OnHoldCancelled
└─ Play Sound (Fail)

Q: How do Toggles work?

A: Toggle just fires OnInteract each time. You manage the state:

// Add boolean variable
Variable: bIsOn (Boolean)

Event OnInteract
├─ Flip Boolean (bIsOn)
└─ Branch: Is On?
   ├─ True → Turn On Logic
   └─ False → Turn Off Logic

Multiplayer

Q: Does this work in multiplayer?

A: Yes! Fully replicated with server authority.

  • Client requests → Server validates → Server executes
  • State replicates to all clients
  • Built-in anti-cheat (distance checks, etc.)

Q: Do I need to do anything special for multiplayer?

A: No! It just works.

The system automatically:

  • Sends RPCs to server
  • Validates on server
  • Replicates state to clients

Just implement your interaction logic in OnInteract as usual.


Q: Can clients cheat?

A: No. Server validates everything:

  • ✅ Distance (can’t interact from too far)
  • ✅ Cooldowns (enforced server-side)
  • ✅ CanInteract state
  • ✅ Object enabled state

Client can request, but server decides.


Detection

Q: Which detection method should I use?

A: Depends on your game:

Game Type Recommended Method
FPS Line Trace
Third-Person Sphere Trace
Adventure/Exploration Overlap or Cone
VR Cone
Top-Down Overlap

Test different methods - they’re easy to switch!


Q: Can I use multiple detection methods?

A: One method at a time per InteractionComponent.

But you can switch dynamically:

Set Detection Method (New Method)

Or have different characters use different methods.


Q: How do I prevent detecting objects behind walls?

A: Ensure walls have collision enabled.

Wall:
└─ Collision: BlockAll or BlockAllDynamic

Line Trace method is best for this (blocked by geometry).


Filtering

Q: How do I make only certain objects interactable?

A: Use Tag Filtering:

  1. On Player’s InteractionComponent:

    bUseTagFiltering = True
    Required Tags = ["Interactable"]
    
  2. On Objects:

    • Details → Tags → Add “Interactable”

Now only tagged objects are detected.


Q: Can I temporarily disable specific objects?

A: Yes! Add an “Ignored Tag”:

InteractionComponent:
└─ Ignored Tags = ["Locked"]

Object:
└─ Add Tag "Locked" (can't be interacted with)
└─ Remove Tag "Locked" (can be interacted with again)

Q: How does the Priority system work?

A: When multiple objects overlap, highest priority is selected.

NPC (Priority 10) + Item (Priority 0)
→ NPC selected automatically

Higher number = higher priority.


Widgets

Q: Why must widgets inherit from InteractionWidget?

A: The C++ class provides the events:

  • OnInteractionAvailable
  • OnInteractionUnavailable
  • OnHoldProgressUpdated

Without it, events won’t trigger.


Q: Can widgets have animations?

A: Yes! Create animations in Widget Designer:

Event OnInteractionAvailable
├─ Play Animation (FadeIn)
└─ Update text...

Event OnInteractionUnavailable
└─ Play Animation (FadeOut)

Q: How do I make widgets always face camera?

A: Enable Absolute Rotation:

Widget Component:
└─ Transform → Absolute Rotation = ✓ True

Or implement custom rotation (see Troubleshooting).


Advanced

Q: Can I create interaction chains?

A: Yes! Example:

// Lever
Event OnInteract
├─ Enable Button
└─ SetEnabled (False) // Can't pull lever again

// Button (starts disabled)
Event OnInteract
└─ Complete Puzzle

Q: Can I require items for interactions?

A: Yes! Add custom logic:

Event OnInteract (Interacting Actor)
├─ Cast to MyPlayerCharacter
├─ Branch: Has Item "Key"?
│  ├─ Yes → Open Door
│  └─ No → Show Message "Locked"

Q: Can I interact with moving objects?

A: Yes! Works with any Actor, including:

  • Vehicles
  • Moving platforms
  • Flying objects
  • Animated actors

Q: How do I create timed interactions?

A: Use Hold type with HoldDuration:

InteractionData:
└─ Interaction Type = Hold
└─ Hold Duration = 5.0 (5 seconds)

Or implement custom timer in OnInteract.


Performance

Q: How many interactable objects can I have?

A: Thousands! The system is optimized:

  • Detection runs at intervals (not every frame)
  • Efficient trace queries
  • Low overhead

For very large numbers (10,000+), use distance culling.


Q: Does this impact FPS?

A: Minimal impact (<0.1ms per frame) with default settings.

If you notice performance issues:

  • Increase Detection Interval
  • Use Tag Filtering
  • Implement distance culling
  • Use Line Trace (cheapest method)

Q: Should I disable Debug in final build?

A: Yes! Always:

Show Debug = False

Debug visualization has performance cost and looks unprofessional.


Integration

Q: Can I use this with my existing systems?

A: Yes! The system is non-invasive:

  • Component-based (doesn’t replace your classes)
  • Event-driven (integrate via events)
  • No dependencies on other systems

Works alongside inventory, dialogue, quest systems, etc.


Q: Can I extend the system in C++?

A: Yes! All classes are designed for extension:

  • Inherit from UInteractionComponent
  • Override virtual functions
  • Add custom behavior

Q: Does this work with AI/NPCs?

A: Yes! Add InteractionComponent to AI:

AI Character:
└─ Interaction Component
   └─ Detection Method = Overlap

AI can now interact with objects.


Licensing

Q: Can I use this in commercial projects?

A: Yes! Licensed under Unreal Engine Marketplace EULA.

You can:

  • ✅ Use in commercial games
  • ✅ Modify the code
  • ✅ Ship with your game

You cannot:

  • ❌ Resell the plugin
  • ❌ Share with other developers (they need to buy it)

Q: Can I modify the plugin?

A: Yes! You have full source code access.

Modify anything you need for your project.


Support

Q: Where do I get help?

  1. Check this documentation
  2. Review Troubleshooting
  3. Review Getting Started
  4. Contact support via Marketplace

Q: How do I report bugs?

Please provide:

  • Unreal Engine version
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots or logs

Report via Marketplace support page.


Q: Will there be updates?

Plugin is actively maintained. Updates will include:

  • Bug fixes
  • New features
  • Compatibility with new UE versions
  • Performance improvements

Didn’t find your answer?


← Back to Index