A professional, ScriptableObject-based object pooling system for Unity with safe warm-up, scene-scoped pools, weighted prefab variants, priority handling, and built-in debugging tools.The Pooled Object System is a production-ready alternative to Unity’s standard instantiation workflow, designed to reduce allocations and improve runtime performance.Pools are defined using ScriptableObjects, supporting reusable configurations, scene-scoped cleanup, and flexible exhaustion behaviour. Optional lifecycle callbacks allow pooled objects to reset state safely, while built-in safety features prevent object leaks and misuse.The system includes debugging tools, runtime statistics, and a complete demo scene demonstrating common use cases such as bullets, explosions, enemies, and debris. It is suitable for VFX, projectiles, AI, UI elements, and any frequently spawned runtime objects.ScriptableObject-driven pool configurationGlobal and scene-scoped pools with automatic cleanupSafe prewarming with optional warm-up over multiple framesConfigurable pool exhaustion policies: Expand, Deny Spawn, Despawn OldestWeighted prefab variants per pool keyType-safe spawning (Spawn()) and string-key spawningAutomatic return on disable safetyTimed despawn using scaled or unscaled timePool lifecycle callbacks for clean state resetsRuntime statistics, peak usage tracking, and debug overlayEditor validation tools to detect configuration issues




