Best Place to Store Game System Objects

I’m trying to make a nearly globally accessible system to deal with events that actors can register to receive and fire when necessary. Really similarly to how the AI sense system works, but doing considerably less. The design of the system itself is pretty straightforward, but I’m not sure where the best place to be creating/storing the system object would be.

My thought is that storing it in the world object would be best, but afaik there’s no way to inherit from the world object to be able to add something to it, and I don’t really want to fiddle with core engine code that hasn’t been made accessible to me and rebuilding my own version of the engine.

My second thought was to put it in the GameInstance, but it seems less intuitive to me than putting it in the World.

Just trying to see what some people’s thoughts are on where someone would put such a thing.

GameInstance is the place to do it.