auto parry
Key Required

auto parry

parry parkourvoppevoppe 2.5K views 164 executesUpdated May 22, 2026
Unrated
00
Lua Scriptβ€’230 lines (7677 chars)
-- hello dear skids if you are gonna try to steal my art work idgaf but if you are gonna say its yours and try to act cool around your friends youre a fucking asshole :D
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local VirtualInputManager = game:GetService("VirtualInputManager")

local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()

-- settings for dumbasses
local CHECK_RADIUS    = 2.5   -- head check radius (studs)
local COOLDOWN        = 0.7   -- Parry cooldown or F button cooldown idk

local enabled    = false
local lastPress  = 0
local connection = nil

local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude

local function pressF()
    pcall(function()
        VirtualInputManager:SendKeyEvent(true,  Enum.KeyCode.F, false, game)
        task.wait(0.05)
        VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.F, false, game)
    end)
end

local function checkAboveHead()
    local character = LocalPlayer.Character
    if not character then return false end

    local head = character:FindFirstChild("Head")
    if not head then return false end

    rayParams.FilterDescendantsInstances = {character}

    local headTop = head.Position + Vector3.new(0, head.Size.Y / 2, 0)

    local result = workspace:Raycast(headTop, Vector3.new(0, CHECK_RADIUS, 0), rayParams)

    if result and result.Instance then
        local part = result.Instance
        if part:IsA("BasePart") and part.CanCollide then
            local now = tick()
            if now - lastPress >= COOLDOWN then
                lastPress = now
                pressF()
                return true
            end
        end
    end
    return false
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "HeadDetectorGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 220, 0, 130)
MainFrame.Position = UDim2.new(0.5, -110, 0.1, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 10)
Corner.Parent = MainFrame

local Stroke = Instance.new("UIStroke")
Stroke.Color = Color3.fromRGB(80, 120, 255)
Stroke.Thickness = 1.5
Stroke.Parent = MainFrame

local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 32)
TitleBar.BackgroundColor3 = Color3.fromRGB(25, 30, 50)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 10)
TitleCorner.Parent = TitleBar

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -10, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Auto Parry"
TitleLabel.TextColor3 = Color3.fromRGB(130, 160, 255)
TitleLabel.TextSize = 13
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar

local StatusLabel = Instance.new("TextLabel")
StatusLabel.Size = UDim2.new(1, -20, 0, 24)
StatusLabel.Position = UDim2.new(0, 10, 0, 40)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Status: off"
StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
StatusLabel.TextSize = 12
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = MainFrame

local TriggerLabel = Instance.new("TextLabel")
TriggerLabel.Size = UDim2.new(1, -20, 0, 20)
TriggerLabel.Position = UDim2.new(0, 10, 0, 62)
TriggerLabel.BackgroundTransparency = 1
TriggerLabel.Text = "Parrying: No"
TriggerLabel.TextColor3 = Color3.fromRGB(160, 160, 180)
TriggerLabel.TextSize = 11
TriggerLabel.Font = Enum.Font.Gotham
TriggerLabel.TextXAlignment = Enum.TextXAlignment.Left
TriggerLabel.Parent = MainFrame

local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(1, -20, 0, 32)
ToggleButton.Position = UDim2.new(0, 10, 0, 88)
ToggleButton.BackgroundColor3 = Color3.fromRGB(50, 60, 100)
ToggleButton.Text = "  Start"
ToggleButton.TextColor3 = Color3.fromRGB(220, 230, 255)
ToggleButton.TextSize = 13
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.BorderSizePixel = 0
ToggleButton.Parent = MainFrame

local BtnCorner = Instance.new("UICorner")
BtnCorner.CornerRadius = UDim.new(0, 8)
BtnCorner.Parent = ToggleButton

local BtnStroke = Instance.new("UIStroke")
BtnStroke.Color = Color3.fromRGB(80, 100, 200)
BtnStroke.Thickness = 1
BtnStroke.Parent = ToggleButton

ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")

local dragging = false
local dragStart, startPos

TitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or
       input.UserInputType == Enum.UserInputType.Touch then
        dragging  = true
        dragStart = input.Position
        startPos  = MainFrame.Position
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or
                     input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(
            startPos.X.Scale,
            startPos.X.Offset + delta.X,
            startPos.Y.Scale,
            startPos.Y.Offset + delta.Y
        )
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or
       input.UserInputType == Enum.UserInputType.Touch then
        dragging = false
    end
end)

local function setEnabled(state)
    enabled = state

    if enabled then
        StatusLabel.Text = "Status: on"
        StatusLabel.TextColor3 = Color3.fromRGB(80, 255, 120)
        ToggleButton.Text = "  Stop"
        ToggleButton.BackgroundColor3 = Color3.fromRGB(30, 80, 40)
        BtnStroke.Color = Color3.fromRGB(60, 200, 80)
        Stroke.Color = Color3.fromRGB(80, 255, 120)

        connection = RunService.Heartbeat:Connect(function()
            if not enabled then return end
            local hit = checkAboveHead()
            if hit then
                TriggerLabel.Text = "Parrying: yes"
                TriggerLabel.TextColor3 = Color3.fromRGB(255, 220, 60)
            else
                TriggerLabel.Text = "Parrying: no"
                TriggerLabel.TextColor3 = Color3.fromRGB(160, 160, 180)
            end
        end)
    else
        StatusLabel.Text = "Status: off"
        StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
        ToggleButton.Text = "  Start"
        ToggleButton.BackgroundColor3 = Color3.fromRGB(50, 60, 100)
        BtnStroke.Color = Color3.fromRGB(80, 100, 200)
        Stroke.Color = Color3.fromRGB(80, 120, 255)
        TriggerLabel.Text = "Parrying: no"
        TriggerLabel.TextColor3 = Color3.fromRGB(160, 160, 180)

        if connection then
            connection:Disconnect()
            connection = nil
        end
    end
end

ToggleButton.MouseButton1Click:Connect(function()
    setEnabled(not enabled)
end)

ToggleButton.MouseEnter:Connect(function()
    ToggleButton.BackgroundColor3 = enabled
        and Color3.fromRGB(40, 100, 55)
        or  Color3.fromRGB(65, 78, 130)
end)

ToggleButton.MouseLeave:Connect(function()
    ToggleButton.BackgroundColor3 = enabled
        and Color3.fromRGB(30, 80, 40)
        or  Color3.fromRGB(50, 60, 100)
end)

Features & Information

uhh a gui and you open it up it auto press F yes thats all and yes its open source idgaf about yall god damn skids
#open source ahh

Community Comments (5)

blepblepMay 22, 2026

It's a auto key presser no need to be angry about it

ThisRandomGUYThisRandomGUYMay 23, 2026

do for mobile pls

Replying to @ThisRandomGUY
voppevoppeMay 27, 2026

@ThisRandomGUY ill make one

voppevoppeMay 27, 2026

@i224lol62 eh im not really good at making UIs i just used ai because it was easier but im trying to get better dont hate meπŸ™

Replying to @voppe
ThisRandomGUYThisRandomGUYMay 29, 2026

@voppe Its ok i like it btw