A lightweight, high-performance, fully replicated object pooling system for Unreal Engine 5.
Reuse actors instead of spawning and destroying them constantly. Ideal for projectiles, effects, pickups, and enemies.
UObjectPoolComponentfor easy pool managementAPooledObjectbase class with activation/deactivation events- Configurable pool size and auto-despawn lifespan
- Server-authoritative spawning (RPC supported)
- Full multiplayer replication
- Blueprint Native Events for simple setup
- Improves performance by reducing spawn/destroy overhead
- No dependencies
- Create folder
Plugins/ObjectPoolPluginin your project - Copy the plugin files from this repo into it
- Enable the plugin in the Editor
- Restart Editor
- Add Object Pool Component to a manager actor (GameMode, Level Blueprint, or dedicated spawner recommended)
- In the component details, set:
- Pooled Object Class (any class inheriting from APooledObject)
- Pool Size
- Call
SpawnPooledObject(FTransform SpawnTransform)to get an actor from the pool - When finished with the actor, call
Deactivate()on it (or set a lifespan)
Create your actors by inheriting from PooledObject instead of Actor, then override:
PoolObjectActivate→ Show meshes, enable collision, start effectsPoolObjectDeactivate→ Hide meshes, disable collision, stop effects
A clean and efficient object pooling solution designed for high-performance Unreal Engine games.