Unless you plan to never save the game, you need a save system.
If you can never save the game, you still need to save the data, you just don’t need a system for it.
Save systems in Unity are a real pain in my opinion because there’s no easy way that I know of to identify prefabs, and even if you identify a prefab, no easy way to get it back. There’s also no good way to identify instance data for a prefab. This is the single worst limitation in Unity in my opinion, not only with no good solution, but no good solution even feasible. But maybe someone else has discovered something and can provide a better answer.
What I do in Empire of Ember is give every object either a GuidComponent or if a scriptable object, implement an interface that returns a Guid. The GuidComponent, as its name implies, is a component that just contains a Guid. It manually requires you add this component to every object that can be saved or loaded in the game.
When I save an object I save the Guid value, which is part of what I call a SaveState. A SaveState is actually a token, and contains all data needed to restore the object. I subclass the SaveState with additional information as needed. When a value in an object changes that should be saved, it’s kept in the SaveState subclass rather than the class instance in-game.
In order to get an object back, I have to have a scriptable object with a giant List that I can iterate through and find a game object from the Guid that identifies it. This is broken into parts, so I can search only weapons in the game, for example. This is extremely slow and memory intensive, and that downside shows up in my game. But there’s no other solution that I know of that actually works and is reasonable to use.
Why not use Asset Bundles?
Asset Bundles have to be rebuilt every time you change anything in the bundle. This is not feasable in a game with 100GB + of source assets, as I’d have to wait half an hour every time
Why not use Addressables?
They don’t work if your game uses complex DLLs. I’ve repeatedly brought up this issue for over a a year and I think I’m shadowbanned from the addressables forum because I never get an answer. I even sent a repro case to Unity QA, they agreed the issue existed, then took no action and just closed the case