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)
