DragDetectors [Beta]

[Edit: Enabled in all published games as of 9/25/2023.
Users must still subscribe to the beta in order to author DragDetectors]

Hello Creators!

We are excited to announce the beta release of DragDetectors! DragDetectors are a new instance type designed to make interacting with objects easy for everyone. They enable easy mapping of cursor/dragging actions to intuitive motions in 3d space. They can be used for anything that requires physical manipulation, like opening doors and drawers, pushing parts around, or grabbing and tossing a bowling ball.

Making a game of Jenga has never been so easy!

4-Slider

DragDetectors are highly customizable. You can choose from a wide array of drag styles, set directions and limits, and define how objects respond to the motion. DragDetectors work with anchored objects (will stay where you leave them) and unanchored objects (will apply physics as you drag and when you let go) so you can create the perfect interaction for your experience.

Furthermore, you can script against DragDetectors, using the movement to create additional mechanics like a light dimmer switch or a gear shift.

Please note, Drag Detectors can currently only run locally in Studio (edit, play, and test on a local server). That means they cannot be used in production experiences just yet. Our goal is to address any issues you find before implementing this in production.

We can’t wait to see what you all come up with, and look forward to hearing your feedback!

How to use DragDetectors

There is an extended DragDetectors tutorial page here. And full API documentation here.

But read on to get started quickly!

To enable DragDetectors, go to File->Beta Settings. After you restart Studio, you will be able to add a DragDetector under any part or model in Explorer. Hit Play and you will be able to go into the experience and start interacting with that object!

Customization of DragDetectors happens through properties. Click a topic to see documentation, or scroll down to see some examples.

  1. DragStyle - choose between different kinds of translations and rotations
  2. Drag Directions - choose directions and axes of motion
  3. ResponseStyle - choose whether physics is in action while you drag
  4. Axis/Movement Limits
  5. Physics Response
  6. Modifier Input
  7. Replication

In addition, you can use event connections and methods to customize DragDetector behavior, build 3DUIs, and perform game logic.

Examples

Here are some examples of what you can do with DragDetectors. Each of these is available as a model in the Toolbox, so feel free to play with them and modify them in Studio!

Example #1
Example #2
Example #3

Models, Videos, and Worlds to Explore

Models

In addition to the models in the examples, the models used in the introductory video clips may all be found in the Toolbox. If you filter(the button to the right of the search box) for Creator = PrinceTybalt, you will find: Marionette, Slingshots, Slingshots WithReloadScripts, Jenga, Jenga Throwable, and Particle LineSlider.

You can check for more models there in the coming days.

Videos

Also, we will be making a series of instructional videos, Here is the first “How to Build a Jenga Game in 3 Minutes With DragDetectors”, and there will be more to come:

Worlds

Lastly, there are two worlds we are sharing with you that we have used for prototyping and QA testing. They exercise all the features of DragDetectors, many of which are not covered here.
The worlds are published and you are free to download, inspect, alter, copy, and reuse as you like. Go to the link, click ‘…’ near the title, then Edit to open them in Roblox Studio, then File->Download to save your own copy.

DragDetectors TestWorld 1

DragDetectors TestWorld 2

Known Issues

Please note that DragDetectors are in an early Beta phase, and there are a couple of known issues.

  1. They can currently only run locally in Studio (edit, play, and test modes). That means they cannot be used in production experiences just yet. Our goal is to address any issues you find before implementing this in production.

  2. They work in Team Create, but not in Team Test. We are working to resolve this in the coming weeks.

  3. It’s possible for objects to disappear while you are rotating them with RotateAxis or RotateTrackball DragStyle. A fix is coming in the next week or so.

What’s next?

We can’t wait for you to try DragDetectors and let us know what you think. Over the next few weeks, we will be monitoring the DevForum for your feedback. Feel free to message us directly if you have any special requests or questions.

We will make a follow-up announcement here when DragDetectors goes live for Production Experiences. Stay tuned, and thanks for helping us test this new feature!


Finally, many people helped us launch this feature. In particular, I’d like to thank @Urukeli, @DeFactoCepti, @PolarPorcupine, @Slim_Fandango, and @IgnisRBX!

Thank you!

625 Likes

This topic was automatically opened after 10 minutes.

I see this new feature as an ABSOLUTE WIN

As a creation game creator, this feature will DEFINITELY help me make more game features

Honestly, well done on this one, the field of possibilities have been expanded

It looks really tweakable as well, I am testing it and the amount of properties is insane

105 Likes

Glad to see this being added, making puzzle solving systems on mobile will be exponentially easier and more engaging with this.

46 Likes

Thanks, Varonex! We will be watching this post carefully, so if you have questions, don’t be shy!

27 Likes

Finally, this used to be so hard to make. The old drag module was deprecated. So happy to see this back!

Excited to think of all the chaos I can cause with this.

21 Likes

Awesome new feature, excited to try it out!

You forgot to uncopylock the demo places by the way :stuck_out_tongue:
image

30 Likes

Glad that I can finally talk about how awesome this is without being pointed at that NDA :tada:

Honestly, I really love those time-savers (in the same category as ProximityPrompts).

Making these features yourself takes quite some work to get that movement and replication right; letting the engine handle this makes the UX so much better!

23 Likes

absolute W for everyone, ecstatic to see roblox natively supporting such a massively useful feature

22 Likes

LOL I tested it but I had permission. :stuck_out_tongue:
Try again?

29 Likes

This is awesome! Excited to play with this :slight_smile:

Been looking forward to it since I noticed it in the creator roadmap.

Thanks to everyone on the team that worked on it!

13 Likes

Will this work with UI instances too?

13 Likes

This is a big win for development speed.

Are there plans to make this support VR grabbing as well?

22 Likes

Yay!!! This will make the process of dragging WAY EASIER!!! Cannot wait for the full release!!! :grin:

17 Likes

DragDetectors do not work with objects in the Screen UI,
It’s a great idea but there are a lot of potential approaches; possibly in the future.

26 Likes

This post is the definition of Roblox/Roblox Staff caring more about the community hopefully communication will be increased further into the future but getting that out of the way I can see this being a really great (feature) I am looking forward to it.

11 Likes

@PrinceTybalt
I see a lot of potential in this Instance !

I was wondering, would it be possible to add another property so that, if the part you move is in a model, ALL THE OTHER PARTS WITHIN THE MODEL move along?

As of now, this is what it does:

Note that the grey part is the PrimaryPart of the model containing that (ugly) lever.


I mentioned it being a property because it gives people the choice to make the Detector act like this, or not !

Contexts it’ll be useful: a part/model moving system that permits the player to move all children of the model at the same time for a creation game (aka my case :slight_smile:)

Also, quite interesting to see how it works !
image
My anticheat system detected an AlignPosition :joy:

19 Likes

Finally this feature got released this is great!

12 Likes

Have you tried welding all the parts inside the model?

7 Likes

Yes but for obvious performance reasons physics-wise, it’d be better to implement this. Also, the fact it uses welds make it gittery, and sometimes even does not replicate properly to the server:


The Hinge seems to cause the issues (mainly), I had a case where the whole frame wasn’t moving completely on the serverside (knowing that the DragDetector does NOT RunLocally)

16 Likes