I do not want it in the GameInstance because i want modular code, that can be easily copied from one project to another, like a plugin, without being a plugin. This is the wonderful thing about programming, I can build a large web of small frameworks, each of which can be used in different projects as needed. I have a game I was doing that had large use of physics equations for fuel consumption etc., but the code is all in blueprint function libraries. I should have made a subsystem using objects, the ni could “port” it too other projects. Only real downside i see is that subsystem has to be referenced to call from, where as blueprint function libraries can just be accessed through the right click menu.
An example, is my current project I have a panel framework (basically a cheezy version of windows, but not scalable) I built for the UI, and I can move it from project to project to reuse the functionality