When building scalable C++ gameplay systems in Unreal Engine 5 ,especially when leveraging Game Features and Modular Gameplay plugins, one of the biggest challenges is initialization order.
Components attached to an Actor often spawn at different times, depend on replicated data from the server (e.g. PlayerState or Inventory), or rely on asynchronous asset loading.
The IGameFrameworkInitStateInterface (provided by the ModularGameplay plugin and showcased in Epic’s Lyra Starter Game) solves this by introducing a tag-driven State Machine for Initialization.
This tutorial breaks down how the interface works, its underlying architecture, the architectural decision between Actor vs. Component implementations, and how to implement a clean initialization pipeline for your own modular gameplay components.
https://dev.epicgames.com/community/learning/tutorials/60O2/unreal-engine-part-01-mastering-igameframeworkinitstateinterface-decoupling-component-initialization-in-ue-5-like-lyra