I tested it out and I gotta say it’s a great addition. It’s noticeable “easier” than doing it the “old fashioned” way. Also, I was able to achieve the stacking interactions with a rather hacky method…
I was hoping they would have the ability to have multiple interactions with different inputs on one ProximityPrompt. Stacking the prompts is still possible by creating multiple ProximityPrompts. If the ability to add multiple interactions per prompt were added I’d hope for a script based API where you can add multiple interactions per prompt with something like AddInteraction(name, keyCode, ...). Of course a toggle would likely need to be added to the prompt instance itself. But I do believe this would be an excellent QOL change to the prompts themselves.
In addition to the AddInteraction there should also be RemoveInteraction(name) it could also be based off of keyCode instead of name. Overall this would make it a bit easier to have multiple interactions on one object instead of needing to add multiple prompts per object.
The same exists for sounds when in tools. They keep playing from the spot in which you un-equip your tool.
In general I’d recommend disabling stuff like ProximityPrompts and Sounds when the parent of the tool is in Backpack, or even move the Sound Emitter on the HumanoidRootPart.
Insane, works great! No more need to calculate distance/magnitude and struggle with creating BillBoardGui’s, as well as making sure only one shows at a time haha.
Thanks for checking it out!
We will launch the feature once we are confident that we have addressed all the issues and it’s up to our standards. Conservatively, that will be early next year.
Wow, this is a great new feature! Can’t wait to try it out. If I run into any problems on the way I’ll make sure to note it here. This is going to make development so much easier for so many people!
Is it possible to get this feature rolled out sooner for a few beta users?
I am making a restaurant/cafe type game and I am using ProximityPrompts for a interactive system and a lot of it is already made with it. It would be very appreciated if I could get it rolled out into an actual game early, and then help bug test even further.
It won’t work because roblox calculates the magnitude from the Mouse’s Position. Try your code yourself and you will see what I mean, make a big part by the way and make sure the size of it is not like 2,2,2. Just make sure is not a square.
local Part = script.Parent
local ClickDetector = Part.ClickDetector
ClickDetector.MouseClick:Connect(function(player)
local HumanoidRootPart = player.Character.PrimaryPart
if (HumanoidRootPart.Position - Part.Position).Magnitude > ClickDetector.MaxActivationDistance then
print("You are exploiting, sorry if I caught you by mistake since this is not accurate...")
end
end)
Just add a few to the conditional like a feather. No anti-exploit needs to be 100% accurate, but it needs to be 100% accurate in terms of false positives. It’s better to let a guilty player go free than punish an innocent.
I did a weird thing already, but Roblox should do an accurate check for us, not everything needs to be inaccurate. Mine doesn’t have false positives, instead it expands the range a lot more, if you are really far of it, it will get you. The thing is that is not accurate. I want to catch the exploiter properly.
EDIT: Instances should be secured to use. I hate that they have backdoors, at least some of them…
EDIT: 12/9/2020: I already found a way for accurate checks. Still, Roblox should fix those issues.
When this comes out, I’m not gonna use it for its intended purpose of showing prompts.
If this feature proves to be more performant than running a loop on a player’s position (or firing an event every time their position changes), I can see many different uses.
Like an animation that occurs when you get close to it, or a custom rendering system where complex character models are loaded in when the event fires (because we still can’t do custom stuff like this with streaming enabled).
To do this as it is right now, you could add a ProximityPrompt in a part and do this:
Set the KeyboardKeyCode to “W”, so when the player walks near it by pressing W, it triggers.
To make it “invisible”, set the UIOffset to a huge number, which will move the GUI far away from the part and out of a player’s view. You can also remove the ActionText.
This prompt should then fire a Triggered event when the player walks within the MaxActivationDistance of the part.
I couldn’t find it in the “insert objects” thing either, I even restarted Studio, turned beta features on and off but that didn’t work.
I decided to use command line and “ProximityPrompt” showed up, all you gotta do is type this up in command line, you can then just keep duplicating it if you want to use it again.
I’ve parented a Part to the ProximityPrompt and put a ScreenGui in StarterGui with a LocalScript, but it still remains the same default prompt, am I missing something?