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.

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.

High-level summary board for AC_Actor_Health.
Adding AC_Actor_Health
- Add AC_Actor_Health to the actor Blueprint that should own health.
- Set Current Health and Max Health in the Details panel.
- Choose whether Should Bind On Take Any Damage should bind the component to Unreal’s built-in damage event.
- Call the server events, or use the built-in damage binding path, to change health during play.
- Bind to On Health Changed or On Health Zero when UI, audio, death, destruction, or other systems need to react.
Important Variables
| Category | Variable | Type | Purpose |
|---|---|---|---|
| Health | Current Health | Float | Current live health value. Damage, healing, and restore operations modify this value. |
| Health | Max Health | Float | Upper limit used by Modify Health when clamping the final health value. |
| Replication | Previous Health | Float | Cached previous value used by OnRep_CurrentHealth_Execution to calculate the changed amount. |
| Settings | Should Bind On Take Any Damage | Boolean | Controls 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 / Event | Purpose |
|---|---|
| Modify Health | Core 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_ApplyDamage | Server event for incoming damage. Multiplies the incoming damage by -1, then routes it into Modify Health. |
| Server_ModifyHealth | General server event that forwards a signed amount directly into Modify Health. |
| Server_SetHealthToMax | Restores the actor to full health by routing Max Health through Modify Health. |
| Is Health Full | Utility 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 clamps the final value between 0 and Max Health.

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.
| Dispatcher | Inputs | Purpose |
|---|---|---|
| On Health Changed | New Health, Changed Amount | Called whenever replicated health processing runs and calculates how much health changed. |
| On Health Zero | None | Called 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.

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.
- Calculate Changed Amount by comparing Current Health against Previous Health.
- Call On Health Changed with the new health and changed amount.
- Check whether Current Health is less than or equal to 0.
- If health is zero or below, call On Health Zero.
- Update Previous Health so the next replication pass can calculate the next delta.

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.