This was initially posted as a Bug Report, but it’s better as a Feature Request.
So, the feature is: Create an additional property inside ProximityPrompt to allow the Gui to be always visible for taller objects;
Below, is the original text:
Reproduction Steps
1) Create a “tall” part (ex: Size.Y. = 30)
2) Insert a ProximityPrompt inside it and set MaxActivationDistance = 30
3) Move closer to the part to activate the ProximityPrompt
Expected Behavior
The ProximityPrompt Gui should ALWAYS appear visible to the player, regardless of the height of the part.
Actual Behavior
The ProximityPrompt’s Gui is being placed exactly AT HALF the height of the Part, where the player can only see the Gui if he zooms out of the camera:
Proximity prompts will always appear in the center. You will have to offset the properties using the UIOffset on the Y axis. I believe this is intentional behavior.
I would just extend the distance of the ProximityPrompt instead of offsetting it since if you are above the part, the issue will happen as well.
I also just tried the solution proposed by them of using the UIOffset which is literally useless and has an issue when the proximity prompt leaves and appears.
Currently, the way ProximitPrompt works is that they show up depending on your distance between the Part’s position and the Player and place itself in the middle.
This is a true issue that always happens and I honestly hate it. They give you solutions they have never tried before, or maybe they had but don’t care about the issues it also brings; however, they just recommend it to people.
There is nothing you can do about it, that’s why I said this:
So is not an issue itself, is just how it works. If you really want it to appear in the right location, edit the BillboardGui of the proximity prompt that gets parented to the PlayerGui. Do some math to make it appear nearby.
I prefer you change the StudsOffsetWorldSpace of the BillboardGui since the UIOffset of the ProximityPrompt is in terms of pixels on the screen, is harder to calculate, and varies between devices.
The problem is that the ProximityPrompt’s Billboard is dynamically created and removed according to the proximity of the player, and as you can see below, changing StudsOffsetWorld apparently doesn’t interfere with the behavior, because as you can see, when you get even closer, it disappears:
That would be the simplest solution, leaving the ProxPrompt attached to a smaller, invisible part.
But actually, my game controls ProxPrompt in a more complex way, which prevents me from creating artificial parts just to fix this bug.
That’s why I’m reporting this as a bug because it’s misbehavior that should be fixed.
The solution provided by @HeraGagah is really nice and easier than mine!
By the way, you have to listen to ChildAdded, but it will kinda have the same exact effect, you would have to look above so it shows up. (Is another issue, so my solution isn’t the best) Consider using an attachment as @HeraGagah mentioned.