So basically I am trying to make a custom proximity prompt, I want the player to see that theyre holding E down by having a bar stretch across (like a loading bar) and I don't want the player to only have to press it, and make it so if they let go of E before the 1 second time is up then they have to do it again.
So how do I make it so the player has no choice but to hold down E for 1 second in order to have the door open, and then while they are holding E down the "bar" stretches for until the 1 second is over (and it opens) or the player lets goes of e before (and nothing happens)
I dont want a prompt because i want the bar to open at the same time as im holding down E. A prompt would make the bar open after E
local bar = script.Parent.frontdoors.BillboardGui.Bar local prompt = script.Parent.frontdoors.ProximityPrompt2 local UserInputService = game:GetService("UserInputService") local KeyHeld = Enum.KeyCode.E local function isEKeyDown() return UserInputService:IsKeyDown(KeyHeld) end local function input(input,gameProcessedEvent) if not isEKeyDown() then bar.Transparency = 0 bar:TweenSize(UDim2.new(0, 0, 0, 3), "Out", "Sine", 1) wait(1.01) bar.Transparency = 1 bar:TweenSize(UDim2.new(0, 0, 0, 3), "Out", "Sine", 0) bar.Transparency = 0 wait() else bar.Transparency = 0 bar:TweenSize(UDim2.new(0, 50, 0, 3), "Out", "Sine", 1) wait(1.01) bar.Transparency = 1 bar:TweenSize(UDim2.new(0, 0, 0, 3), "Out", "Sine", 0) bar.Transparency = 0 wait() end end UserInputService.InputBegan:Connect(input)