MapEditor
MapEditor copied to clipboard
Painter
You should be able to "paint" objects by adding them into a list, and simply paint them on top of whatever.
Raycast implementation:

Use s2w to get the brush position, and get the position that's X units above that. Then use the brush settings to do a scatter raycast, and spawn a random object from that list. The list can also be weighted, so that some objects have a higher probability of spawning.
This is useful for things like vegetation, clutter and effects.
I suggest that the painting is initially only done on the client, and whenever the client lets go of the brush, the objects are sent to the server.
The result should be a new prefabblueprint which contains references to all the spawned objects.
how are you gonna prevent overlapping?
if distance == tooclose then
dont()
end