How to make 3d object snap to surface of another 3d object when placing in scene

Godot Version



Is there a way to place a 3D node and snap it to the surface of another node in the editor?

I am thinking along the lines of a game like a city builder, where when you place down a building it automatically snaps to the ground.

To be clear, I am not wanting to implement this functionality in my game. I want the ability to do this in the editor in order to ease the process of level design. In my case I am wanting to create a village on an island, so once my island model is created, I’d like to be able to place and move around objects such as buildings as I see fit, and doing so by moving them each along the global axes seems a bit tedious for that. I also find that it can be difficult to even get an object’s Y coordinate to sit on a flat surface without either clipping into the ground or floating above.

Hopefully this all makes sense. I might just be missing an obvious feature of the editor.


You could try with Transform -> Snap Object to Floor in the viewport toolbar or pressing Page Down in the keyboard with the object selected.

1 Like

That will work for what I need.