I think the simplest way to do it is just to separate the wall back into its components and save those. So if you had a wall and you subtracted a cylinder from it to create the rounded space for the window, you would save the cylinder’s position relative to the wall in the datastore and just subtract the cylinder again when you rebuild the wall.
The other way of doing this would probably be to add parts of the wall to the rounded window so that it is rectangular again, and just section out the wall like you would a normal rectangular window. That would definitely be much more cpu friendly than live-unioning the parts together every time the player joins and their data loads. The only problem would be having to copy over any properties the wall has to the window’s walls, which couldn’t be that hard with a more object-oriented approach.
This is also exactly what i first thought of doing, although there are some minor exceptions…
Say you put a cylinder window to the wall and saved it the way you have told so.
But with that way, i am only able tosave the position and rotation and maybe the size of the objects to datastore…how would i actually make the instances to the csg opperation?
And the actuall wall is 4 parts not 1, right?
(Yeah i glitched the game and actually saw that he did not use any csg at first to save/load via datastore)