Its all manual, and if you are modifying systems like foliage you have to save/load their state(s) as well.
Generally, just make all your objects that can be changed and saved have a dedicated gameplay tag, write some c++ to loop and store/restore their state.
Word partition will load/unload cells based on distance.
Your objects should probably handle their own state instantiation by loadong/unloading their state when in proximity to the player - that could also be a bad idea if many objects are near, so how you handle it depends on how things are positioned.
A catch all to that would be creating a manager that uses a non game thread to handle the loading part.