Input related - What would cause this to fail?

A while ago, I made this minigame that takes a random letter from the alphabet, and prompts you to press it on your keyboard. (FPE is the variable name I wrote for my proximity prompt, for some reason.)

local alphabet = "bhjklmnptuvyz"

local idx = math.random(1, #alphabet)
local randLetter = alphabet:sub(idx, idx)
fpe.KeyboardKeyCode = Enum.KeyCode[string.upper(randLetter)]
fpe.Enabled = true
print("Prompted")

In Studio, it worked fine. However, in game, on the same computers, on 2 computers actually, “Prompted” would print, but the proxprompt wouldn’t show up. I procrastinated making this post, and thought “I’ll just write it with the other problems in my game IDK how to solve…”

But recently, I picked up a hobby of writing posts online, so I thought I might as well write this. So I opened my game to check… and huzzah, seemingly with no changes to my code, the prompts start showing up!!! (Apparently if you type a combination of at least 4 ! or ? at once, the combo will turn into 3 of the last punctuation you wrote in the combo. So “?! ?!” with no spaces turned into !!!)

So how could this happen? I didn’t have a controller connected to my PC before etc.

It’s possible that the part with the ProximityPrompt is moving just enough for the prompt to lose line-of-sight visibility. Try setting RequiresLineOfSight to false. This prevents the prompt from being hidden when the part shifts slightly.