- Resource nodes (trees, rocks, ore)
- Loot chests
- Foliage-based harvestables
- Enemy spawners
- Traps / destructibles
1. Resource Node — Tree (Blueprint)
A classic “harvest → wait → regrow” pattern.Setup
Blueprint:BP_TreeNode
-
Components:
StaticMesh(TreeMesh)LootComponent(optional, for logs, sticks, sap)
-
Variables:
RespawnTime(float, e.g. 300.0)bHasBeenHarvested(bool)
BPI_Respawnable.
On Harvest (Blueprint)
On Respawn (Blueprint)
2. Resource Node — Ore Vein (C++)
Header
Source
3. Respawnable Loot Chest (Blueprint)
Chest that refills over time.Setup
Blueprint:BP_RespawnChest
-
Components:
StaticMesh(ChestMesh)LootComponent
-
Variables:
RespawnTimebIsOpen(bool)
BPI_Respawnable.
On Chest Opened (Blueprint)
On Respawn (Blueprint)
4. Foliage Harvest (Instance-Based) + Respawn (C++ Pseudocode)
For truly instanced foliage viaUHierarchicalInstancedStaticMeshComponent:
On Harvest (C++ Pseudocode in FoliageInteractionManager)
On Foliage Respawn (called by Respawn Manager)
5. Enemy Spawner with Respawn Manager (C++)
Spawner uses Respawn Manager, enemy uses LootComponent.Spawner Header
Spawner Source
Enemy Death (simplified)
- LootComponent → what drops
- Respawn Manager + Spawner → when a new enemy appears
6. Trap / Destructible with Cooldown (Blueprint)
Example: a spike trap that fires, disables, then resets after a delay.Setup
Blueprint:BP_SpikeTrap
-
Components:
- Mesh, Collision, maybe a skeletal mesh for animation
-
Variables:
RespawnTimebIsActive
BPI_Respawnable.
When Triggered
On Respawn (Reset)
7. Quick Checklist for Implementations
When you create a new respawnable:- Decide: Actor-based or foliage-instance based?
- Implement “inactive” state (hidden, no collision, no interaction)
-
On “used/harvested/depleted”:
- Do your game logic (loot / damage / destruction)
- Call
RegisterRespawnRequeston the manager
-
Implement
OnRespawnRequested(via interface or Blueprint event):- Reset flags
- Reset loot / state
- Re-enable visuals, collision, interaction