SmartPool is a utility plugin designed to minimise performance costs associated with frequent actor creation and destruction. The plugin is built with the user in mind, providing a highly customizable pooling solution that requires minimal setup and offers a wide range of supporting tools.
Key Features:
Multiple Pooling Solutions:
PoolSubsystem - Primary pooling solution comprised of a global & local pool, accessible by any entity part of the current world.
ActorPoolComponent - Secondary pooling solution pooling actors for the exclusive use of the actor that the component is attached to.
Complete Pool Control - Users have complete control over pooled actors, as well as additional utility functionality and events relating to actor pooling that they can bind to.
Pool Profile Assets - Actor pooling configurations are created and stored as DataAssets, allowing for ease of interchangeability and editing of data.
Full Support for Any Actor Type - Any actor derived entity can be pooled by plugin, the Poolable interface grants users additional control over how their actors are Activated & Deactivated.
Quality of Life Improvements Provided - The PooledActor provides users with the necessary boilerplate needed for compatibility with the ActorPoolComponent and multiplayer support.
Supporting Tools - A range of in and out of editor tools is provided to aid user development:
Pool Profile Editor - Centralized tool for finding and editing Pool Profiles.
Pool Profiler - Tool for profiling data regarding actor pooling.
External Analysis Files - Text files containing pool data & recommendations saved externally for later viewing and analysis.
Console Commands - Tool for debugging actor pooling in built projects where editor tools are no longer available.
Multiplayer Compatible - The plugin follows a server-authoritative model when pooling actors, these are then replicated to clients.
Blueprint & C++ Friendly - All features provided by the plugin are equally available in both blueprint & C++.
Unreal Style Workflow - Plugin functionality follows Unreal Engine practices, as well as behaviours when it comes to systems like actor spawning.
Dependencies:
EditorScriptingUtilities - This plugin requires the following engine plugin to be enabled to work properly. Please ensure this plugin is active in your project settings (Edit > Plugins).