Advanced Logic, Networking & Extensions
At this point, you have a fully functional interaction system — but Ultimate Interaction Manager doesn’t stop at out-of-the-box behavior. This system is designed to be deeply customizable, giving you control over replication, input overrides, and gameplay logic without rewriting the core.
In this section, we’ll look at how to:
- Handle interactions over the network
- Customize how interactions are resolved
- Extend logic with your own rules or input systems
- Choose advanced finish & reactivation methods
Fully Replicated Interactions
The core interaction logic is server-authoritative, meaning:
- All interaction state changes originate on the server
- Clients receive replicated state updates (e.g. progress %, availability, activation)
- All core components (Manager_Interactor and Manager_InteractionTarget) are designed with replication in mind
What’s replicated:
- Interaction state
- Timers & hold logic
- Cooldowns
- Reactivation / deactivation
What’s not automatically replicated (you handle):
- Cosmetic effects (VFX, SFX, camera shakes, animations)
- Gameplay results tied to your project (e.g. inventory changes, UI responses)
Tip: Use the built-in event dispatchers (e.g. On Interaction End) to trigger your own cosmetic replication logic if needed.
Network Handling Modes
You can choose how multiple players interact with the same target via:
- Keep Enabled – All players can interact simultaneously
- Block While Interacting – Only one player can interact at a time
- Custom – You can override interaction logic via Blueprint
These options are available per target, under the Interaction Settings.
Finish Methods: What Happens When It’s Done?
This is one of the system’s most powerful features. Each interaction target allows you to choose from a wide set of finish behaviors:
- Destroy On Completed
- Deactivate On Completed
- Reactivate After Delay
- Handle Canceled and Completed Separately
- Combinations (e.g. Destroy on Completed, Reactivate on Canceled)
You can choose the behavior from a simple dropdown — no scripting required.
Extending Input Logic
If you’re using Enhanced Input:
- You can fully replace the input logic via Blueprint
- You can dynamically assign or modify input actions at runtime
- The interaction input action is editable in the component settings (Interaction Input Action)
If you’re not using Enhanced Input:
- Enable Use Custom Keys
- Define an array of keys directly on the interaction target
- System will check key presses independently of any input mapping
This makes UIM compatible with non-standard controls, UI-based input, VR/AR interaction systems, or even cinematic triggers.
Adding Custom Interaction Types
The built-in types are:
- Tap
- Hold
- Repeat
All internal logic is exposed through Blueprint, including:
- Alpha progress
- Interactor reference
- Current interaction state
- Tick updates (via On Interaction Updated)
Integrating with Gameplay Frameworks
Want to connect UIM with:
- Ability Systems?
- Inventory systems?
- AI decision trees?
- Dynamic events or world-state logic?
Easy — just call your logic inside any of these events:
- On Interaction Begin
- On Interaction End
- On Interaction Deactivated
- On Interaction Reactivated
This gives you total freedom to bridge this system with whatever your gameplay needs require — without touching the core plugin.
Final Notes & Best Practices
- Prefer replicating cosmetic effects manually, based on Blueprint events
- Use component-based logic in actors for clean, reusable interactables
- Leverage widget pooling for performance in large scenes
- Organize your interaction states using enums or data tables for clarity
- Avoid tick-based logic in interaction widgets — use dispatcher events instead
You’re Done!
You’ve now unlocked the full power of Ultimate Interaction Manager:
- Plug-and-play components
- Full replication
- Dynamic input
- Smart markers
- Clean UI
- Runtime extensibility