Auto win keyless
Keyless

Auto win keyless

+1 Hair Escape✂️rechellemae3rechellemae3 227 views 14 executesUpdated Oct 19, 2026
Unrated
00
Lua Script•214 lines (7513 chars)
-- auto win (end) - HairWorld StageX12
local env = (getgenv and getgenv()) or _G
if env.AutoWinCleanup then pcall(env.AutoWinCleanup) end

local Players = game:GetService("Players")
local UIS     = game:GetService("UserInputService")
local TS      = game:GetService("TweenService")
local WS      = game:GetService("Workspace")
local LP      = Players.LocalPlayer

local alive, loopOn = true, false
local conns = {}
local function track(c) table.insert(conns, c) return c end

-- ===== finding the pad =====
local function findPad()
    local o = WS
    for _, name in ipairs({"HairWorld", "StageX12", "WinPads", "WinPad"}) do
        o = o and o:FindFirstChild(name)
    end
    return o
end

local function padPart(pad)
    if pad:IsA("BasePart") then return pad end
    return pad:FindFirstChildWhichIsA("BasePart", true)
end

local function autoWin()
    local pad = findPad()
    if not pad then warn("[autowin] pad not found at workspace.HairWorld.StageX12.WinPads.WinPad") return false end
    local part = padPart(pad)
    local char = LP.Character
    local root = char and char:FindFirstChild("HumanoidRootPart")
    if not part or not root then return false end

    root.CFrame = part.CFrame + Vector3.new(0, part.Size.Y / 2 + 3, 0)
    root.AssemblyLinearVelocity = Vector3.zero

    if firetouchinterest then
        for _, p in ipairs(pad:IsA("BasePart") and {pad} or pad:GetDescendants()) do
            if p:IsA("BasePart") then
                pcall(firetouchinterest, root, p, 0)
                pcall(firetouchinterest, root, p, 1)
            end
        end
    end
    return true
end

-- ===== gui =====
local C = {
    bg = Color3.fromRGB(14, 14, 20), panel = Color3.fromRGB(20, 20, 29),
    row = Color3.fromRGB(26, 26, 38), rowHi = Color3.fromRGB(36, 36, 52),
    off = Color3.fromRGB(48, 48, 66), text = Color3.fromRGB(230, 230, 245),
    a1 = Color3.fromRGB(150, 100, 255), a2 = Color3.fromRGB(70, 180, 255),
    red = Color3.fromRGB(255, 90, 110),
}
local function new(class, props, parent)
    local o = Instance.new(class)
    for k, v in pairs(props) do o[k] = v end
    if parent then o.Parent = parent end
    return o
end
local function corner(o, r) return new("UICorner", {CornerRadius = UDim.new(0, r)}, o) end
local function gradient(o, rot)
    return new("UIGradient", {Color = ColorSequence.new(C.a1, C.a2), Rotation = rot or 0}, o)
end

local gui = new("ScreenGui", {
    Name = tostring(math.random(100000, 999999)),
    ResetOnSpawn = false, DisplayOrder = 999,
    ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
})
local mounted = false
for _, fn in ipairs({
    function() return gethui and gethui() end,
    function() return game:GetService("CoreGui") end,
    function() return LP:WaitForChild("PlayerGui", 5) end,
}) do
    local ok, p = pcall(fn)
    if ok and p then
        local ok2 = pcall(function() gui.Parent = p end)
        if ok2 and gui.Parent == p then mounted = true break end
    end
end
if not mounted then warn("[autowin] couldn't mount gui") return end

local main = new("Frame", {
    AnchorPoint = Vector2.new(0.5, 0.5),
    Size = UDim2.new(0, 260, 0, 170),
    Position = UDim2.new(0.5, 0, 0.5, 0),
    BackgroundColor3 = C.bg, BorderSizePixel = 0,
}, gui)
corner(main, 14)
gradient(new("UIStroke", {Thickness = 1.5, Color = Color3.new(1, 1, 1)}, main), 45)

local header = new("Frame", {
    Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = C.panel, BorderSizePixel = 0,
}, main)
corner(header, 14)
new("Frame", {
    Size = UDim2.new(1, 0, 0, 14), Position = UDim2.new(0, 0, 1, -14),
    BackgroundColor3 = C.panel, BorderSizePixel = 0,
}, header)
for n = 1, 3 do
    local d = new("Frame", {
        Size = UDim2.new(0, 8, 0, 8), Position = UDim2.new(0, 14 + (n - 1) * 14, 0.5, -4),
        BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0,
    }, header)
    corner(d, 4)
    gradient(d, 45 * n)
end

-- drag
do
    header.Active = true
    local dragging, start, startPos
    track(header.InputBegan:Connect(function(i)
        if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
            dragging, start, startPos = true, i.Position, main.Position
        end
    end))
    track(UIS.InputChanged:Connect(function(i)
        if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
            local d = i.Position - start
            main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
        end
    end))
    track(UIS.InputEnded:Connect(function(i)
        if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
            dragging = false
        end
    end))
end

local list = new("Frame", {
    Size = UDim2.new(1, -24, 1, -50), Position = UDim2.new(0, 12, 0, 44),
    BackgroundTransparency = 1,
}, main)
new("UIListLayout", {Padding = UDim.new(0, 8)}, list)

-- Auto Win (end) button
local winBtn = new("TextButton", {
    Size = UDim2.new(1, 0, 0, 40), BackgroundColor3 = C.row,
    Text = "Auto Win (end)", TextColor3 = C.text,
    Font = Enum.Font.GothamBold, TextSize = 13,
    AutoButtonColor = false, BorderSizePixel = 0,
}, list)
corner(winBtn, 8)
gradient(new("UIStroke", {Thickness = 1.5, Color = Color3.new(1, 1, 1)}, winBtn), 0)
track(winBtn.MouseEnter:Connect(function() winBtn.BackgroundColor3 = C.rowHi end))
track(winBtn.MouseLeave:Connect(function() winBtn.BackgroundColor3 = C.row end))
track(winBtn.MouseButton1Click:Connect(function()
    local ok = autoWin()
    winBtn.Text = ok and "Teleported!" or "Pad not found"
    task.delay(1.5, function() winBtn.Text = "Auto Win (end)" end)
end))

-- Loop toggle
local row = new("TextButton", {
    Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = C.row,
    Text = "", AutoButtonColor = false, BorderSizePixel = 0,
}, list)
corner(row, 8)
new("TextLabel", {
    Size = UDim2.new(1, -64, 1, 0), Position = UDim2.new(0, 12, 0, 0),
    BackgroundTransparency = 1, Text = "Loop Auto Win", TextColor3 = C.text,
    Font = Enum.Font.GothamMedium, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left,
}, row)
local sw = new("Frame", {
    Size = UDim2.new(0, 38, 0, 20), Position = UDim2.new(1, -50, 0.5, -10),
    BackgroundColor3 = C.off, BorderSizePixel = 0,
}, row)
corner(sw, 10)
local sg = gradient(sw, 0)
sg.Enabled = false
local knob = new("Frame", {
    Size = UDim2.new(0, 14, 0, 14), Position = UDim2.new(0, 3, 0.5, -7),
    BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0,
}, sw)
corner(knob, 7)

track(row.MouseButton1Click:Connect(function()
    loopOn = not loopOn
    sg.Enabled = loopOn
    sw.BackgroundColor3 = loopOn and Color3.new(1, 1, 1) or C.off
    TS:Create(knob, TweenInfo.new(0.15), {
        Position = loopOn and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7)
    }):Play()
end))

task.spawn(function()
    while alive do
        task.wait(1)
        if loopOn then pcall(autoWin) end
    end
end)

-- RightShift to hide/show
track(UIS.InputBegan:Connect(function(i)
    if i.KeyCode == Enum.KeyCode.RightShift and not UIS:GetFocusedTextBox() then
        main.Visible = not main.Visible
    end
end))

env.AutoWinCleanup = function()
    alive, loopOn = false, false
    for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end
    pcall(function() gui:Destroy() end)
    env.AutoWinCleanup = nil
end

print("[autowin] loaded - RightShift hides/shows")

Features & Information

Auto win im lazy btw

Community Comments (0)

No comments yet for this script.