local player = game.Players.LocalPlayer -- Map string text to Enum.KeyCode local keyMap = { ["W"] = Enum.KeyCode.W, ["A"] = Enum.KeyCode.A, ["S"] = Enum.KeyCode.S, ["D"] = Enum.KeyCode.D, ["E"] = Enum.KeyCode.E, ["G"] = Enum.KeyCode.G, ["X"] = Enum.KeyCode.X, ["V"] = Enum.KeyCode.V, ["T"] = Enum.KeyCode.T, ["H"] = Enum.KeyCode.H, ["K"] = Enum.KeyCode.K, ["Y"] = Enum.KeyCode.Y, ["U"] = Enum.KeyCode.U, } local debounce = false -- Continuously checks if the Pushups GUI is active and returns components or nil local function getPushupsGui() local gui = player:FindFirstChild("PlayerGui") if not gui then return nil end local pushupsGui = gui:FindFirstChild("PushupsGui") if not pushupsGui then return nil end local pushupsFrame = pushupsGui:FindFirstChild("Pushups") if not pushupsFrame then return nil end local button = pushupsFrame:FindFirstChild("Button") local remoteEvent = pushupsFrame:FindFirstChild("RemoteEvent") if button and remoteEvent then return button, remoteEvent end return nil end -- Main loop that runs forever while true do local button, remoteEvent = getPushupsGui() if button and remoteEvent then local text = button.Text local key = keyMap[text] if key and not debounce and text ~= "..." and text ~= "Tap" then debounce = true remoteEvent:FireServer(key) task.delay(0.7, function() debounce = false end) end end task.wait(0.1) end