I have a scene which references and updates a scriptable object. In the editor, changes to the scriptable object persist even after I exit play mode, and even if I restart the editor.
I made a build of this same scene. However, changes did NOT persist when restarting the game.
Is this a bug? If not, it’s clearly a design flaw since the editor and game work differently.
It’s not a bug and it’s not a design flaw. It is intended this way. SOs are assets, like every other assets it can be edited/changed in the editor and they can be saved. In the game although you cannot save them. In the built game you will need something to save all data regardless, not just the SOs.
If you want something to persist between runtime sessions then it must be data stored outside of the compiled game, such as a database you place in the application folder somewhere and fetch it, or the registry.