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:
-
On Player’s InteractionComponent:
bUseTagFiltering = True Required Tags = ["Interactable"] -
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:
OnInteractionAvailableOnInteractionUnavailableOnHoldProgressUpdated
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?
- Check this documentation
- Review Troubleshooting
- Review Getting Started
- 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?
- Troubleshooting - Solutions to common problems
- Core Concepts - Deep dive into system
- Back to Overview