Got it figured out. The StateObject class cannot be a subclass, otherwise ResourceLoader won’t recognize it, and save it instead as a normal resource. I created a minimal working example project for anyone that runs into this problem with a singleton state manager setup, it’s on my github GitHub - snapish/MinimalStateManagerSingleton: Example project for using a global class in gdscript to save/load custom resource files to file
1 Like