Skip to main content
The Loot System and Respawn Manager are designed to work together:
  • Loot System decides what drops
  • Respawn Manager decides when the source comes back
This page shows how to connect:
  • LootTable + LootComponent (UMI)
  • RespawnManagerSubsystem (Respawn Manager)
…to create renewable:
  • Resource nodes (trees, rocks, ore veins)
  • Harvestable world objects (plants, mushrooms, bushes)
  • Chests/containers that refill over time
Enemies are usually single-use loot + separate enemy spawn/respawn logic. We’ll touch on that pattern at the end.

1. High-Level Pattern

For any loot source you want to respawn:
So:
  • LootComponent = “What dropped?”
  • Respawn Manager = “When does this node come back?”

2. Required Components

On your loot source actor (e.g., BP_Tree, BP_Rock, BP_OreNode, BP_BerryBush):
  • ULootComponent – which uses a LootTable (e.g. LT_TreeLoot)
  • (Recommended) implements BPI_Respawnable / IRespawnable
  • A mesh or visual component you can hide/show
  • A collision/interaction component to enable/disable
  • A RespawnTime float
Example:

3. Resource Node Pattern (Tree/Rock/Ore)

3.1 Tree Example — Blueprint Flow

On Harvest:
On Respawn:
That’s literally enough to have infinite renewable trees.

3.2 Rock/Ore Example — C++

Header:
Source:

4. Chests & Containers

You probably want two behaviors for chests:
  1. Single-use chest (dungeon chest, boss chest):
    • Uses LootComponent
    • bSingleUse = true
    • No respawn → just disabled once looted
  2. Respawnable chest (world chests, camp chests):
    • Uses LootComponent
    • bSingleUse = false
    • Registers with Respawn Manager after being looted

4.1 Blueprint: Single-use Chest (No Respawn)

No respawn request is sent.

4.2 Blueprint: Respawnable Chest

On Chest Looted:
On Respawn:
This gives you camp chests that refill on a timer.

5. Enemy Loot vs Enemy Respawn

Important distinction:
  • Loot System handles what drops when an enemy dies
  • Respawn Manager should not respawn the enemy itself directly (usually)
Typical pattern:
  1. Enemy has a LootComponent
  2. On death:
    • LootComponent → GenerateLoot
    • Spawn WorldItemActors around corpse, or auto-loot to players
  3. Enemy does not register itself with Respawn Manager
  4. A separate spawner or manager uses Respawn Manager to handle enemy respawn

5.1 Enemy Death + LootComponent

Blueprint:
No respawn scheduling here.

5.2 Enemy Spawner + Respawn Manager

Spawner actor:
So:
  • LootComponent = enemy drops
  • Respawn Manager = when spawner creates a new enemy
Cleaner separation, especially for multiplayer & save/load.

6. WorldItemActor & Decay

You can also mix loot → world items → decay with respawns:
  • LootComponent generates items
  • You spawn WorldItemActors using InventoryComponent → SpawnWorldItem()
  • WorldItemActor runs decay/spoilage logic (UMI)
  • When items expire, you may (optionally) have the spawn point schedule a respawn via Respawn Manager, if you want periodic “drop piles” in the world
This is more niche, but the pattern is:

7. Common Gotchas

❌ Forgetting to call ResetLoot() on respawn

Result: chest respawns visually but drops nothing (or keeps old state).
Fix: Always call LootComponent → Reset Loot in OnRespawnRequested.

❌ Using per-actor timers + Respawn Manager together

Result: duplicated logic, inconsistent behavior.
Fix: Pick one pattern. For anything integrated with Respawn Manager, let only the manager handle timing.

❌ Not disabling collision/interaction on harvested nodes

Result: invisible objects blocking the player or still interactable.
Fix: On harvest/loot: hide mesh, disable collision, disable interaction.

❌ Trying to respawn enemies directly with LootComponent

Respawn Manager should be used with spawners or respawn points, not with dead pawns themselves.
Keep loot and respawn responsibility separated.

8. Best Practice Recipes

Renewable Resource Node

  • Actor: BP_Tree, BP_Rock, BP_OreNode
  • Components: StaticMesh, LootComponent
  • Interface: BPI_Respawnable
  • Flow:
    • On harvest: GenerateLoot → give items → hide/disable → register respawn
    • On respawn: ResetLoot → show/enable

Renewable Loot Chest

  • Actor: BP_CampChest
  • Components: StaticMesh, LootComponent
  • Variables: RespawnTime, bIsOpen
  • Flow:
    • On open: generate loot, give to player, mark open, disable interaction, register respawn
    • On respawn: reset loot, mark closed, enable interaction

Single-Use Boss Chest

  • Actor: BP_BossChest
  • LootComponent with Legendary-weighted LootTable
  • bSingleUse = true
  • No respawn registration
  • Optional: destroy chest after opening

9. Summary

  • LootComponent + LootTable decide what is dropped.
  • Respawn Manager decides when the loot source comes back.
  • Resource nodes and chests are the main candidates for Respawn Manager + Loot integration.
  • Enemies should use LootComponent for drops, and separate spawners for enemy respawn.