Proximity Prompt Studio Beta

This is really neat! It takes something rather difficult to do and gives a really simple “in” for developers who wouldn’t know how to do it otherwise. And a huge time-saver for people who know how to do it but don’t want to make a system from scratch.

A great feature.

4 Likes

1: In cases in which there are multiple prompts near each other that all take the same input when exclusivity is Global or OnePerButton, how are the prompts prioritized? Does it consider cursor position/camera angle or is it arbitrary?

2: In my custom prompt system, I have a context based priority system, where potentially more relevant prompts can be prioritized. For example, if I’m holding an ore, I prioritize the prompts to add the ore to a furnace at a higher priority than the prompt to close the furnace door or other random prompts that might be nearby. I don’t want the other prompts to be disabled; I just want them to not appear if a high priority prompt is nearby. Will a similar priority system be implemented for this feature?

27 Likes

This is a really cool feature! If I use this in a game will it work or do beta features only work in roblox studio?

1 Like

Neat, so to speak I guess now I can just prompt people to buy a VIP item/area/door/vehicle using that, which will be very useful!

2 Likes

I believe that it’s only in-Studio for the time being because we have to opt-into the Beta Feature in order to use it. I’m fairly certain that anything that requires us to opt-in will be Studio-only until that process is no longer required.


Also @crypto_mancer, the deprecated versions of :Connect() are being used in the example code blocks – I wanted to bring it up just in case that wasn’t intentional.

2 Likes

Great questions!

  1. It updates at your current framerate. The task scheduler is not used currently.
  2. By default, it uses the PrimaryPart of the local player’s Character, which by default is the HumanoidRootPart. If no character exists, it uses the camera’s focus position
  3. You can use the camera’s focus position if player.Character is nil. You can also set the player’s character to a non-humanoid model, in which case the PrimaryPart’s position will be used for proximity prompts.
5 Likes

Change your quick-insert menu settings to show all objects, not just recommended objects.

image

10 Likes

When you go in first person with this feature on a part and you hover over the Interact Frame your mouse get’s stuck.

14 Likes

Thanks for trying out our new feature! During the beta, it will only be available in Studio.

5 Likes

This is really good! It makes 3D interaction so much better.

3 Likes

Great catch! It’s been updated.

6 Likes

Am I able to customize how and what get’s shown? Like if I wanted a certain image shown instead of some generic text. Anyway, seems cool but lacks a lot of versatility. EDIT: When I say “how” , I mean if I can specify tweens and such along with it.

3 Likes

Great questions, we really appreciate the feedback!

  1. The prompt that is closest to the center of the screen is prioritized. In our testing, we found this to be the most intuitive approach for users.

  2. That’s a really interesting use case for a custom priority system. We will look into what this would involve.

15 Likes

Any ETA on when this will be live for use in production? I absolutely went crazy reading this, since in a project of mine I want this behavior, luckily I won’t have to code it myself. Literally thank you.

8 Likes

Wat is this… I thought I’d never see the day…


Awesome update, Roblox! I actually am in need of this for my upcoming game. It’s great to know Roblox is actively working on cool updates that can free up time from simpler tasks to spend on harder tasks.

1 Like

This is legendary! Thank you so much! One question. How do we use our own UI? I do not see how.

3 Likes

Thanks for answering; glad it doesn’t use the task scheduler.
I have a few more questions if that’s fine, one of them being missed because I edited it into my post afterwards (sorry about that)

  1. Wouldn’t RequiresLineOfSight still allow for situations where the character can interact with something through a wall if Invisicam is being used? If so, would there be any way to prevent that in the future?
  2. Looking at the API, it looks like this can also used on the server. Is there any kind of protection aginast exploiters if used on the server (for example, can an exploiter activate buttons without being near them or activate buttons that are required to be held down instantly) or do we have to implement that ourselves?
1 Like

https://streamable.com/cign2d

This is amazing, specially for me that scripting is super difficult for me!

@crypto_mancer I have a question, can i use this for make a rig play an animation?

  • If yes, how i do it?
2 Likes

More great questions!

  1. This should work fine - if a wall is transparent because invisicam is used, the player will still not be able to interact with a ProximityPrompt through that wall. It may be possible for the player to angle the camera in a way to attempt to interact with objects behind a wall in certain camera modes. We have tried hard to make this feel right.

  2. There is a server-side check to make sure the player is near the prompt to avoid this sort of exploit. For the HoldDuration feature, it is possible for a hacker to overcome this as the animation happens client-side. If your game’s security relies on HoldDuration, you will need to send events to the server on hold start/end to verify the timing.

11 Likes

This looks really convenient! Is there any plans for more extensive prompts? for example, I might want to press E to bring up a prompt that then allows me to chose multiple options, such as repairing or removing a tire from a car.

6 Likes