ProximityPrompt gui not visible on tall objects

Edit

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:



Issue Area: Engine
Issue Type: Display
Impact: High
Frequency: Constantly

2 Likes

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.

3 Likes

Have you already managed to do this?
Can you show me step by step how to do it?

There’s a property called UIOffset, which is the X and Y position. So I would do 0, -5 which will move it 5 studs down I believe

If I were you, I’d make it 0,-12 to put it relatively central on the player’s position on a 30 stud high block.

Again, have you already managed to do this?
A lot of people give opinions without having proven whether this works in practice.

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.

Are you referring to MaxActivationDistance? This does not change anything about the reported problem.

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.

1 Like

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:

Can’t you just add an Attachment inside the part and parent the ProximityPrompt inside the Attachment to adjust the offset to your likings?

2 Likes

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.

You wouldn’t need a separate invisible part, it would just be an Attachment instance inside the original part.

image

4 Likes