- Accessing the subsystem
- Registering respawn requests
- Implementing respawn callbacks
- Using the Respawnable interface
- Making resource nodes, foliage, or world objects fully respawnable
1. Getting the Respawn Manager (Blueprint)
Because it’s a World Subsystem, you can get it from any Blueprint:Node Path:
Simplest Node Setup
2. Registering a Respawn Request (Blueprint)
When an actor is harvested, used, or destroyed visually, register its respawn:Node Example:
Typical Setup
The actor itself no longer tracks time.
3. Implementing Respawn Callbacks
When the delay expires, the Respawn Manager calls back into the actor. This depends on whether you use the interface or a direct function:Option A — Using the Respawnable Interface (Recommended)
Add the Interface
- Open your Blueprint (e.g., BP_Tree, BP_Rock, BP_Chest)
- Class Settings → Interfaces
- Add:
BPI_Respawnable
Event: OnRespawnRequested
This is what the Respawn Manager calls when the actor should respawn.Example Implementation
Option B — Direct Function Call (No Interface)
If your actor has a custom function, e.g.:The interface method is cleaner for plugins.
4. Full Blueprint Pattern for Resource Nodes
Below is the canonical pattern for respawnable resource nodes:Step 1 — Handle Harvesting
Step 2 — Implement Respawn Callback
5. Using Respawn Manager with LootComponent (Blueprint)
If your actor includes aLootComponent:
On harvest:
On respawn:
- Trees
- Rocks
- Ore veins
- Plant clusters
- Beehives
- Mushrooms
- Bushes
- ANY harvestable spot
6. Using Respawn Manager with Foliage System (Blueprint)
For actors converted from foliage instances (via your FoliageInteractionManager pattern):On harvest:
On respawn:
7. Handling Custom Respawn Logic
The callback event (OnRespawnRequested) can perform anything you need:
- Reset health
- Reset crafting station fuel
- Reset puzzle state
- Refill water wells
- Re-arm traps
- Regenerate dungeon loot
- Switch meshes/materials
- Trigger an animation of regrowth
8. Adding Debug Support (Optional)
For debugging respawn behavior:Add a text render actor:
Or add a print:
Or track state:
9. Blueprint Best Practices
| Practice | Why |
|---|---|
| Use the Respawnable interface | Cleanest API, plugin-friendly |
| Always disable collision when inactive | Prevents invisible obstacles |
| Hide mesh only when needed | Helps debugging |
| Keep callbacks lightweight | Thread-safe and scalable |
| Restore loot inside callback | Guarantees fresh rolls |
| Test with multiple clients | Confirm correct replication |
Add a variable: RespawnTime | Lets designers tune each node |