Actor Health

Updated May 25, 2026

AC_Actor_Health is a reusable, server-authoritative actor component for health, damage, healing, replication, and zero-health callbacks.

For shared setup guidance, see the Migration Guide and Integration Guide. Use the System Atlas to look up functions, variables, events, components, and ownership references. Use this page for Actor Health-specific component setup and runtime behavior.

Actor Health System screenshot

Overview board from the example environment.

Related Videos

Some videos may have been recorded before V4. The same principles still apply, but asset names, component names, and folder locations may differ. Treat the current written documentation and V4 names as the source of truth.

  • Attribute Manager – Walkthrough
    Play

Overview

AC_Actor_Health centralizes health and damage logic for any actor that needs consistent health behavior, including characters, AI, props, destructible actors, rocks, trees, or other harvestable objects.

All health changes route through the same modification path. Damage, healing, and full restore all update Current Health through Modify Health, which keeps the component predictable and easy to integrate.

  • Reusable Actor Component that can be assigned to any actor.
  • Server authoritative and multiplayer-safe.
  • Supports direct damage, healing, and full restore.
  • Can optionally bind to Unreal’s Take Any Damage event.
  • Replicates current health and exposes health-change callbacks.
  • Provides a zero-health callback for death, destruction, cleanup, or state changes.

Introduction screenshot

High-level summary board for AC_Actor_Health.

Adding AC_Actor_Health

  1. Add AC_Actor_Health to the actor Blueprint that should own health.
  2. Set Current Health and Max Health in the Details panel.
  3. Choose whether Should Bind On Take Any Damage should bind the component to Unreal’s built-in damage event.
  4. Call the server events, or use the built-in damage binding path, to change health during play.
  5. Bind to On Health Changed or On Health Zero when UI, audio, death, destruction, or other systems need to react.

Important Variables

CategoryVariableTypePurpose
HealthCurrent HealthFloatCurrent live health value. Damage, healing, and restore operations modify this value.
HealthMax HealthFloatUpper limit used by Modify Health when clamping the final health value.
ReplicationPrevious HealthFloatCached previous value used by OnRep_CurrentHealth_Execution to calculate the changed amount.
SettingsShould Bind On Take Any DamageBooleanControls whether the component binds to the owning actor’s Take Any Damage event on BeginPlay.

No structs or data tables are required by this implementation. Health state lives directly on the component.

Functions and Server Events

Function / EventPurpose
Modify HealthCore function that applies a signed amount, clamps the result between 0 and Max Health, and writes the final value to Current Health using Set w/ Notify.
Server_ApplyDamageServer event for incoming damage. Multiplies the incoming damage by -1, then routes it into Modify Health.
Server_ModifyHealthGeneral server event that forwards a signed amount directly into Modify Health.
Server_SetHealthToMaxRestores the actor to full health by routing Max Health through Modify Health.
Is Health FullUtility check for whether the actor is currently at maximum health.

Negative values reduce health. Positive values restore health. The final result is clamped so health cannot go below 0 or above Max Health.

Modify Health screenshot

Modify Health clamps the final value between 0 and Max Health.

Summary screenshot

Core server events all route into Modify Health.

Event Dispatchers

The component exposes dispatchers so other systems can react to health changes without embedding their logic inside the health component.

DispatcherInputsPurpose
On Health ChangedNew Health, Changed AmountCalled whenever replicated health processing runs and calculates how much health changed.
On Health ZeroNoneCalled when Current Health is less than or equal to zero during health replication processing.

Take Any Damage Binding

On BeginPlay, the component checks authority and then evaluates Should Bind On Take Any Damage. If enabled, it binds to the owner’s Take Any Damage event and forwards incoming damage to Server_ApplyDamage.

This gives projects a clean default damage path while still allowing extra validation, equipment checks, or custom damage rules when needed.

Summary screenshot

BeginPlay authority check and optional Take Any Damage binding.

Replication Flow

Current Health is replicated. OnRep_CurrentHealth_Execution interprets the replicated value and broadcasts the relevant events.

  1. Calculate Changed Amount by comparing Current Health against Previous Health.
  2. Call On Health Changed with the new health and changed amount.
  3. Check whether Current Health is less than or equal to 0.
  4. If health is zero or below, call On Health Zero.
  5. Update Previous Health so the next replication pass can calculate the next delta.

Summary screenshot

OnRep_CurrentHealth_Execution broadcasts health changes, checks for zero health, and updates Previous Health.

Damage and Healing Flow

Damage, healing, and full restore use the same health modification path.

  • Damage: Damage reaches the component through Server_ApplyDamage or the optional Take Any Damage binding. It is converted into a negative modifier, applied through Modify Health, replicated, and then broadcast through the health dispatchers.
  • Healing: A positive amount is passed into Server_ModifyHealth or Modify Health. The result is clamped and broadcast through the same replication path.
  • Full restore: Server_SetHealthToMax routes Max Health into Modify Health, which clamps the result to the configured maximum.

Summary

The Actor Health System gives actors a consistent, reusable health workflow without custom health code in every Blueprint. The component owns the health rules; the owning actor and other systems own the reactions to those rules.