Some shower thoughts dominated my entire mind. I’ve searched and nothing really screams the answer
How do Bloxburg saves their player’s plot?
I know how to datastore things but It’s very questioning how Bloxburg or RoVille saves things since I’m thinking;
You have a part and you basically will datastore the (Color3, Material, CFrame) but how do they place it on different plots? You save the CFrame so if you load it on a different plot it will go to the plot where you saved the part on. It’s seriously confusing how it’s being performed .
I might just not explored the whole CFrame functions but can y’all explain it to me thoroughly (ain’t looking for the code), maybe there’s sort of api that does that… please?
Here’s my beautiful “made by professional” sketch to visualize what’s happening:
Loading and saving plots can be simple, but it can also be very difficult. It all depends on the degree of customization and the parameters you allow the user to have. I’ve never created a plots system, but if we take Bloxburg as an example, I personally would have created some kind of handle to save and load data, probably with modules so that new objects could be added easily.
On a side note, I’m not sure that script support is the right category for this, #development-discussion seems better to me.
Generally for this you save the positions of any plot objects relative to the plot itself rather than the world. The ToObjectSpace() method can be used for this.
I would save the plot as one giant Union, then just change the CFrame to the other plots when loaded in. You don’t really need to save the CFrame if the plot is just one big piece.
you could use CFrame1:ToObjectSpace(CFrame2) to find the part’s position relative to the plot’s position when saving it, then use CFrame1:ToWorldSpace(CFrame2) to get the position to place it at when loading it.