Skip to content
Pablo Rodriguez

Nameplate System

With multiple AI characters in levels, persistent nameplates create visual clutter and reduce immersion. Implement dynamic visibility system that shows nameplates only when relevant.

Create interface function for nameplate visibility control:

  • Visibility Input: Boolean to control nameplate display
  • Health Update: Refresh health display when nameplate becomes visible
  • Delay Integration: 0.1 second delay before health update for proper timing

Configure nameplates for proper initialization:

  • Default Visibility: Hidden on all characters
  • Selective Display: Only show when player is nearby
  • Performance: Reduces UI overhead when not needed

Create player-based detection system for nameplate activation:

  • Sphere Collision: Component named “Sphere_Toggle_Nameplates”
  • Radius: 1250 units for reasonable detection range
  • Collision Settings: Custom collision, ignore all, overlap pawn only
// Nameplate Detection System
OnDetectionSphereBeginOverlap(OtherActor) {
if (!OtherActor.Interface_Character_Type()) {
// Not a player - this is AI or NPC
OtherActor.Interface_Toggle_Nameplate(true);
}
}
OnDetectionSphereEndOverlap(OtherActor) {
if (!OtherActor.Interface_Character_Type()) {
// Hide nameplate when moving away
OtherActor.Interface_Toggle_Nameplate(false);
}
}

Leverage existing character type system:

  • Player Characters: Return true from Interface_Character_Type
  • AI Characters: Return false from Interface_Character_Type
  • Selective Activation: Only show nameplates for non-player characters

When nameplate becomes visible, ensure accurate health display:

// Nameplate Visibility with Health Update
Interface_Toggle_Nameplate(Visibility) {
Widget_Nameplate.SetVisibility(Visibility);
if (Visibility == true) {
DelayFunction(0.1) {
F_Health_Modify(); // Update nameplate with current health
}
}
}

The delay ensures the nameplate widget is fully visible before attempting to update health values.

  • Range Testing: 1250 units provides good balance between information and clutter
  • Gameplay Impact: Range should support tactical decision-making
  • Performance: Larger ranges increase collision detection overhead
  • Visual Comfort: Avoid nameplate flickering from rapid enter/exit events

Configure what information nameplates display:

  • Character Names: Identify different enemy types
  • Health Status: Current health for combat feedback
  • Status Effects: Visual indicators for debuffs or special states
  • Team Identification: Color coding for team allegiance
  • Combat Visibility: Consider keeping nameplates visible during active combat
  • Target Identification: Nameplates help players track damage dealt to enemies
  • Status Communication: Show when enemies are in different detection phases
  • Stealth Integration: Nameplates may need special behavior during stealth
  • Detection Risk: Consider whether nameplate visibility affects stealth gameplay
  • Information Balance: Provide useful information without breaking stealth immersion

The nameplate system creates clean, contextual UI that provides necessary information without overwhelming the player or cluttering the visual experience during exploration and combat.