[PLUGIN] Savior

I don’t need you to make slot instances persistent, if I keep a pointer to a slot instance in a UPROPERTY UE won’t garbage collect it, and there’s a property chain from the slot (USavior) via SlotData to the TMaps, so all the references would stay alive. Similarly if nothing holds a UPROPERTY on the slot it should GC just fine, no memory leaks, so I don’t see why you need to forcibly empty it. After all if the user might never call WriteSlotToFile. It’s only if something holds on to a slot by accident that you’d get a leak? I’d just like the choice, deleting the data on write just seems too aggressive, especially as I can’t call SaveLevel without that happening even if I wanted right now.

It’s all tied up with streaming levels. If you only ever have one level it doesn’t matter, and switching persistent maps is a big enough load point that you can take the hit of reading / updating / writing without much impact. But when streaming you really don’t want to do more work than you have to during unload / load of a streaming section. I would like the choice of keeping data in memory so that I can save streaming levels that unload, and populate levels that reload, without hitting the disk.