Tala Esenlikler

0 %
Tala Esenlikler
Unreal Engine
Developer
About Me

I’m a systems-focused Unreal Engine developer with 7+ years of experience creating plugins, gameplay frameworks, and editor tools. I specialize in building modular, multiplayer-ready systems using Blueprint and C++, and I’ve released 10+ products on the Fab Marketplace — 4 of which were featured in sponsored promotions.

  • Residence:
    Türkiye
  • City:
    Ankara
Turkish
English
Unreal Engine 5
Blueprint Scripting
C++ Programming
Animation Tools
UI/UX Systems (UMG)
Material Integration
Custom Tools & Editors
Replication & Multiplayer
Visual & Art
Blender 3D
Photoshop / Affinity Designer
Development Practice
  • Git Knowledge
  • Documentation & Support
  • Debugging & Validation
  • Modular Design Standards

UI Marker System & Widget Pooling

Visual feedback is a core part of any interaction system — and Ultimate Interaction Manager comes with a fully dynamic marker UI built for both performance and clarity.

This system uses widget pooling to ensure consistent performance even when multiple interactables are present, and it includes customization for on-screen, off-screen, and animated UI elements.

Let’s break down how it works and how to customize it to your needs.

How the Marker System Works

Each interaction target is automatically assigned a UI marker widget when it enters range. These markers:

  • Attach to the target or a named component (Marker Component Name)
  • Update in real time with progress, direction, and state
  • React visually based on the interaction’s type or current status
  • Can display icons, progress bars, directional indicators, and key prompts
  • Are pooled — meaning they are reused instead of recreated

You don’t need to manually add or remove markers — the system handles that for you.

Widget Pooling

Pooling is critical for performance — especially when dealing with dozens of interactables.

Here’s how it works:

  1. A number of marker widgets are instantiated at BeginPlay
  2. When a new target enters range, a widget is assigned from the pool
  3. If no widgets are available, a new one is created — then added to the pool
  4. When a target is removed or hidden, the widget is returned to the pool for future reuse

This reduces runtime overhead and avoids spikes from frequent widget creation.

Configuring Pooling Settings

To configure the pool, select your Manager_Interactor component and find these settings:

  • Default Widget Pool Size
    → Number of markers created at BeginPlay
  • Pending Target Check Interval
    → How often the interactor checks for nearby interactables
  • Widget Screen Margin
    → Padding around the edge of the screen for off-screen markers
  • Screen Radius Percent
    → Defines how far off-screen indicators can move (circular boundary effect)

Tip: Start with a pool size slightly larger than your average number of active interactables.

Customizing Marker Appearance

Each marker can be fully styled using the Marker Settings on the interaction target:

  • Progress bar style (circular with animated fill or static)
  • Custom textures or materials
  • Triangle indicator toggle
  • Icon rotation toggle
  • Flashing POI or Target states
  • Foreground/background color control
  • Texture2D or material slot override

Off-Screen Indicators

Off-screen targets are automatically handled by the system:

  • They are moved to the screen edge
  • The system calculates the angle and applies a circular boundary constraint
  • You can control the shape and reach of this area using Screen Radius Percent
  • POI or quest icons can be displayed even for targets far outside view

This allows for World of Warcraft-style POI indicators, directional markers, or stealth/patrol UIs.

Performance Tips

  • Minimize per-frame logic in marker widgets (e.g. avoid Tick events)
  • Don’t use more markers than necessary — leverage cooldowns or smart visibility rules
  • Test on lower-end hardware if you expect high marker counts (e.g. strategy or open world)
What’s Next?

Your UI system is now fast, clean, and styled to match your project — and you’re ready to handle hundreds of interactables without worrying about performance.

In the final section, we’ll look at advanced interaction logic, including network behavior, custom interaction flows, and how to extend the system with your own input or gameplay rules.

Reddit
LinkedIn
Facebook
WhatsApp
X
Email