local Players = game:GetService("Players") local RunService = game:GetService("RunService") local VirtualInputManager = game:GetService("VirtualInputManager") local LP = Players.LocalPlayer local PG = LP:WaitForChild("PlayerGui") local CheckGui = PG:WaitForChild("SkillCheckPromptGui") local Check = CheckGui:WaitForChild("Check") local Line = Check:WaitForChild("Line") local Goal = Check:WaitForChild("Goal") local HeartbeatConn = nil local function PressSpace() VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game) task.wait(0.01) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game) end local function LineInGoal() local lr = Line.Rotation % 360 local gr = Goal.Rotation % 360 local gs = (gr + 104) % 360 local ge = (gr + 114) % 360 if gs > ge then return lr >= gs or lr <= ge else return lr >= gs and lr <= ge end end local function HeartbeatCheck() if LP.Team and LP.Team.Name == "Survivors" then if LineInGoal() then PressSpace() if HeartbeatConn then HeartbeatConn:Disconnect() end end elseif HeartbeatConn then HeartbeatConn:Disconnect() HeartbeatConn = nil end end local function OnCheckVisible() if LP.Team and LP.Team.Name == "Survivors" then if Check.Visible then if HeartbeatConn then HeartbeatConn:Disconnect() end HeartbeatConn = RunService.Heartbeat:Connect(HeartbeatCheck) elseif HeartbeatConn then HeartbeatConn:Disconnect() HeartbeatConn = nil end elseif HeartbeatConn then HeartbeatConn:Disconnect() HeartbeatConn = nil end end Check:GetPropertyChangedSignal("Visible"):Connect(OnCheckVisible)