Add ‘Sink’ Toggle To Dragger In Studio

EDIT:
Woohoo! This sounds like it to me. :grinning:

In Roblox Studio, there is a problem with dragged parts floating over non-flat surfaces. This puts off some builders, particularly those who use smooth terrain, and causes us to use the Move tool instead for precise and accurate movements.

For example, dragging a new part onto a Rock smooth terrain platform, you will be unable to get the part to sit flat with no gap between it and the ground. Every part needs to be carefully positioned with Move so that gaps are not there, but still make the most of a part’s size. Note that tools like ResizeAlign don’t and can’t exist for terrain due to the purposely imperfect and unrecordable shape of Rock and many other terrain materials.

If Roblox could make some changes to the way a part’s location is determined when dragging, it would help me and many others manipulate parts quickly and reliably. Because of the upcoming arrival of the Lua Dragger, this is also the perfect time to implement a solution. Though probably not the best time to point it out (sorry).

An easy solution I can think of is to make a toggleable button in the model tab - and a value accessible via StudioService for the plugins - that indicates whether:

  1. Every point of a part being dragged will stay outside collidable surfaces
  2. Only the point the mouse started the drag on (thanks to the new Luna Dragger) will stay outside collidable surfaces
  3. Part will go as far away from the camera as it can, or ‘sink’, until all points of a part are inside or touching a collidable surface

I’m sure there are plenty of other use cases, so if you have any of those or a better proposal for what should be done about them please leave them as a reply.

Thanks for reading!

Edit: Here’s a recent post which includes some annoying use cases:

1 Like

Unfortunate the changes aren’t quite what you want, and what you want is actually very hard to achieve. The problem is that it’s very hard to define what “sufficiently sunk” means for a particular model.

If you’re dragging a tree you want it to “sink” to the point where all the vertices at the bottom of the trunk are inside the terrain. That’s very different from a rock though, for a rock you probably want it to be sunk to about 50% of its volume, which would be entirely inappropriate for a tree. How far something needs to be sunk also depends on the slope of the terrain, things on a steep slope have to be sunk further to get the desired visual.

Unfortunately this will probably always require at least some degree of manual intervention, even if there are some things we could do to make it easier.

3 Likes

I think my topic that’s linked in OP is an acceptable solution to the problem this thread poses. Users could set a little bounding shape primary part somewhere inside of their model and enable some setting so only that part is used for collision checking when dragging. Functionally this could be the same as sinking models.

1 Like

This should be possible with the “physical” dragging mode that we’re investigating, since you could set the CanCollide of the parts of the model you want to sink to false, and then mass set them back to CanCollide true after placing the models.

1 Like

I guess this would make it possible to write a plugin to turn off collisions on everything but the primary part for the dragger in this mode. Annoying that we need to make third party tools to do this though.