kkamal - Interaction System – Pure C++ | Press & Hold | Zero Tick | UE 5.4–5.7

🎬 Demo Video: https://youtu.be/mgm3DgOgP7k
πŸ“„
Documentation: https://drive.google.com/file/d/1zQq7I9GMW1FbqhWOxZ_lcH9wKEyET-DF/view?usp=sharing

Interaction System is a lightweight, pure C++ interaction framework for Unreal Engine. Attach a single component to your character, implement one interface on your actors, and your interaction system is ready in minutes.
Built on a Zero Tick architecture β€” no per-frame polling. Detection runs on Sphere Overlap events combined with a Line-of-Sight trace to ignore objects behind walls. Target selection updates on a timer (default 0.1s), keeping runtime overhead minimal.

━━━━━━━━━━━━━━━━━━━━━━━━
⚑ QUICK SETUP
━━━━━━━━━━━━━━━━━━━━━━━━

  1. Add UInteractionComponent to your character

  2. Bind TryPressInteract / TryBeginHoldInteract / TryEndHoldInteract to your input actions

  3. Implement IInteractable on any actor (or inherit from AInteractableActorBase)

  4. Done β€” no Tick, no boilerplate, no engine modification required

━━━━━━━━━━━━━━━━━━━━━━━━
πŸ”§ FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━
βœ… Press & Hold interactions with hold progress callbacks
βœ… Sphere Overlap detection + Line-of-Sight trace (ignores occluded objects)
βœ… Priority-based target selection with distance tiebreaker
βœ… Per-object cooldown support
βœ… Zero Tick architecture (timer-based, event-driven β€” no per-frame polling)
βœ… Blueprint-exposed delegates (Target Changed, Started, Completed, Hold Progress, Cancelled)
βœ… Fully playable demo level included (Door, Chest, Lever, NPC)
βœ… Enhanced Input ready β€” bind any key, no hard-coded controls
βœ… Works with any existing Character or Pawn class

━━━━━━━━━━━━━━━━━━━━━━━━
πŸ“¦ WHAT'S INCLUDED
━━━━━━━━━━━━━━━━━━━━━━━━

  • IInteractable interface β€” implement on any actor

  • UInteractionComponent β€” attach to your character (Sphere Overlap + LOS)

  • AInteractableActorBase β€” convenience base class with cooldown, priority, hold settings exposed in Class Defaults

  • 4 demo actors (C++ + Blueprint): Door, Chest, Lever, NPC

  • Demo character (third-person, Enhanced Input)

  • UI widgets: Interaction Prompt, Hold Progress Bar, NPC Dialogue Popup

  • English & Korean setup guide (PDF)

━━━━━━━━━━━━━━━━━━━━━━━━
πŸ“‘ DELEGATES
━━━━━━━━━━━━━━━━━━━━━━━━

  • OnInteractionTargetChanged β€” drive your prompt UI

  • OnInteractionStarted β€” trigger animations or sounds

  • OnInteractionCompleted(bSucceeded) β€” handle results

  • OnHoldProgressUpdated(ElapsedTime, Duration) β€” drive progress bar

  • OnHoldCancelled β€” reset UI on interrupt

  • OnOpened (Chest), OnLeverToggled, OnNPCTalked β€” connect your own logic

━━━━━━━━━━━━━━━━━━━━━━━━
πŸ›  TECHNICAL
━━━━━━━━━━━━━━━━━━━━━━━━

  • Pure C++ (no Blueprint-only logic)

  • Unreal Engine 5.4 – 5.7

  • Platform: Win64

  • No third-party dependencies (Enhanced Input plugin required, built into UE 5.4–5.7 and enabled automatically)

  • No engine modification required

  • Tested on UE 5.4, 5.5, 5.6, 5.7