local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local old = playerGui:FindFirstChild("AdminWinUI4")
if old then old:Destroy() end

local isSpamming = false
local spamThread = nil
local totalWins = 0
local winsPerSec = 0
local lastWinCount = 0
local lastWinTime = tick()
local toggleIndex = 0
local selectedRoomA = 0
local selectedRoomB = 1

-- Build room list
local rooms = workspace:FindFirstChild("Rooms")
local roomList = {}
do
    local children = rooms:GetChildren()
    table.sort(children, function(a,b) return (tonumber(a.Name) or 0) < (tonumber(b.Name) or 0) end)
    for _, room in ipairs(children) do
        local main = room:FindFirstChild("Main")
        local win = room:FindFirstChild("Win")
        if win then
            roomList[#roomList+1] = {
                name = room.Name,
                cost = main and main:GetAttribute("_Cost") or 0,
                win = win,
                room = room
            }
        end
    end
end

local function getWinParts()
    local a = roomList[selectedRoomA + 1]
    local b = roomList[selectedRoomB + 1]
    return a and a.win, b and b.win
end

-- ======================== UI ========================
local gui = Instance.new("ScreenGui")
gui.Name = "AdminWinUI4"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = playerGui

local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 340, 0, 420)
frame.Position = UDim2.new(0.5, -170, 0.5, -210)
frame.BackgroundColor3 = Color3.fromRGB(14, 14, 20)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 14)

local stroke = Instance.new("UIStroke", frame)
stroke.Thickness = 2
stroke.Color = Color3.fromRGB(120, 60, 255)

-- Title bar
local titleBar = Instance.new("Frame", frame)
titleBar.Size = UDim2.new(1, 0, 0, 44)
titleBar.BackgroundColor3 = Color3.fromRGB(22, 14, 44)
titleBar.BorderSizePixel = 0
Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 14)
local tf = Instance.new("Frame", titleBar)
tf.Size = UDim2.new(1, 0, 0, 14)
tf.Position = UDim2.new(0, 0, 1, -14)
tf.BackgroundColor3 = Color3.fromRGB(22, 14, 44)
tf.BorderSizePixel = 0

local titleTxt = Instance.new("TextLabel", titleBar)
titleTxt.Size = UDim2.new(1, -50, 1, 0)
titleTxt.Position = UDim2.new(0, 14, 0, 0)
titleTxt.BackgroundTransparency = 1
titleTxt.Text = "👑 Win Teleport Admin"
titleTxt.TextColor3 = Color3.fromRGB(220, 200, 255)
titleTxt.TextSize = 14
titleTxt.Font = Enum.Font.GothamBold
titleTxt.TextXAlignment = Enum.TextXAlignment.Left

local closeBtn = Instance.new("TextButton", titleBar)
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -36, 0.5, -14)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 70)
closeBtn.Text = "✕"
closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
closeBtn.TextSize = 12
closeBtn.Font = Enum.Font.GothamBold
closeBtn.BorderSizePixel = 0
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 6)
closeBtn.MouseButton1Click:Connect(function()
    if spamThread then task.cancel(spamThread) end
    gui:Destroy()
end)

-- Wins display
local winsBox = Instance.new("Frame", frame)
winsBox.Size = UDim2.new(1, -20, 0, 38)
winsBox.Position = UDim2.new(0, 10, 0, 54)
winsBox.BackgroundColor3 = Color3.fromRGB(22, 22, 32)
winsBox.BorderSizePixel = 0
Instance.new("UICorner", winsBox).CornerRadius = UDim.new(0, 8)
local winsLbl = Instance.new("TextLabel", winsBox)
winsLbl.Size = UDim2.new(1, 0, 1, 0)
winsLbl.BackgroundTransparency = 1
winsLbl.Text = "🏆 Wins: " .. tostring(player.leaderstats.Wins.Value)
winsLbl.TextColor3 = Color3.fromRGB(255, 210, 60)
winsLbl.TextSize = 14
winsLbl.Font = Enum.Font.GothamBold

-- Stats
local statsLbl = Instance.new("TextLabel", frame)
statsLbl.Size = UDim2.new(1, -20, 0, 20)
statsLbl.Position = UDim2.new(0, 10, 0, 100)
statsLbl.BackgroundTransparency = 1
statsLbl.Text = "➕ Session: 0  |  ⚡ 0 wins/s"
statsLbl.TextColor3 = Color3.fromRGB(140, 255, 180)
statsLbl.TextSize = 11
statsLbl.Font = Enum.Font.Gotham

-- Room selector label
local roomSelLbl = Instance.new("TextLabel", frame)
roomSelLbl.Size = UDim2.new(1, -20, 0, 20)
roomSelLbl.Position = UDim2.new(0, 10, 0, 126)
roomSelLbl.BackgroundTransparency = 1
roomSelLbl.Text = "🏠 Räume auswählen (2 zum Alternieren):"
roomSelLbl.TextColor3 = Color3.fromRGB(180, 180, 220)
roomSelLbl.TextSize = 11
roomSelLbl.Font = Enum.Font.GothamBold
roomSelLbl.TextXAlignment = Enum.TextXAlignment.Left

-- Selected rooms display
local selDisplay = Instance.new("TextLabel", frame)
selDisplay.Size = UDim2.new(1, -20, 0, 20)
selDisplay.Position = UDim2.new(0, 10, 0, 148)
selDisplay.BackgroundTransparency = 1
selDisplay.Text = "✅ Ausgewählt: Room 0 (Lvl 1)  ↔  Room 1 (Lvl 25)"
selDisplay.TextColor3 = Color3.fromRGB(100, 220, 255)
selDisplay.TextSize = 10
selDisplay.Font = Enum.Font.Gotham
selDisplay.TextXAlignment = Enum.TextXAlignment.Left

local function updateSelDisplay()
    local a = roomList[selectedRoomA + 1]
    local b = roomList[selectedRoomB + 1]
    selDisplay.Text = "✅ Room " .. (a and a.name or "?") .. " (Lvl " .. (a and a.cost or "?") .. ")  ↔  Room " .. (b and b.name or "?") .. " (Lvl " .. (b and b.cost or "?") .. ")"
end

-- Scrolling room list
local scrollFrame = Instance.new("ScrollingFrame", frame)
scrollFrame.Size = UDim2.new(1, -20, 0, 170)
scrollFrame.Position = UDim2.new(0, 10, 0, 172)
scrollFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 28)
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 4
scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 60, 220)
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, #roomList * 36)
Instance.new("UICorner", scrollFrame).CornerRadius = UDim.new(0, 8)

local listLayout = Instance.new("UIListLayout", scrollFrame)
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Padding = UDim.new(0, 4)

local roomButtons = {}
local clickStep = 0

local function refreshButtons()
    for i, btn in ipairs(roomButtons) do
        local isA = (i - 1) == selectedRoomA
        local isB = (i - 1) == selectedRoomB
        if isA and isB then
            btn.BackgroundColor3 = Color3.fromRGB(60, 140, 200)
        elseif isA then
            btn.BackgroundColor3 = Color3.fromRGB(50, 160, 90)
        elseif isB then
            btn.BackgroundColor3 = Color3.fromRGB(160, 80, 200)
        else
            btn.BackgroundColor3 = Color3.fromRGB(28, 28, 42)
        end
    end
    updateSelDisplay()
end

for i, roomData in ipairs(roomList) do
    local btn = Instance.new("TextButton", scrollFrame)
    btn.Size = UDim2.new(1, -8, 0, 30)
    btn.BackgroundColor3 = Color3.fromRGB(28, 28, 42)
    btn.BorderSizePixel = 0
    btn.LayoutOrder = i
    btn.Text = "Room " .. roomData.name .. "  |  Level " .. roomData.cost
    btn.TextColor3 = Color3.fromRGB(210, 210, 230)
    btn.TextSize = 11
    btn.Font = Enum.Font.Gotham
    btn.TextXAlignment = Enum.TextXAlignment.Left
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
    local pad = Instance.new("UIPadding", btn)
    pad.PaddingLeft = UDim.new(0, 10)

    btn.MouseButton1Click:Connect(function()
        local idx = i - 1
        if clickStep % 2 == 0 then
            selectedRoomA = idx
        else
            selectedRoomB = idx
        end
        clickStep = clickStep + 1
        if selectedRoomA == selectedRoomB then
            selectedRoomB = (selectedRoomA + 1) % #roomList
            clickStep = 0
        end
        refreshButtons()
    end)

    roomButtons[i] = btn
end

-- Hint
local hintLbl = Instance.new("TextLabel", frame)
hintLbl.Size = UDim2.new(1, -20, 0, 16)
hintLbl.Position = UDim2.new(0, 10, 0, 348)
hintLbl.BackgroundTransparency = 1
hintLbl.Text = "💡 1. Klick = Grün (A), 2. Klick = Lila (B)"
hintLbl.TextColor3 = Color3.fromRGB(130, 130, 160)
hintLbl.TextSize = 10
hintLbl.Font = Enum.Font.Gotham

-- Status
local statusLbl = Instance.new("TextLabel", frame)
statusLbl.Size = UDim2.new(1, -20, 0, 18)
statusLbl.Position = UDim2.new(0, 10, 0, 366)
statusLbl.BackgroundTransparency = 1
statusLbl.Text = "⏸ Gestoppt"
statusLbl.TextColor3 = Color3.fromRGB(200, 90, 90)
statusLbl.TextSize = 11
statusLbl.Font = Enum.Font.GothamBold

-- Toggle button
local toggleBtn = Instance.new("TextButton", frame)
toggleBtn.Size = UDim2.new(1, -20, 0, 38)
toggleBtn.Position = UDim2.new(0, 10, 0, 376)
toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 170, 90)
toggleBtn.Text = "▶  WIN SPAM STARTEN"
toggleBtn.TextColor3 = Color3.fromRGB(255,255,255)
toggleBtn.TextSize = 13
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.BorderSizePixel = 0
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 10)

-- Live updater
task.spawn(function()
    while gui.Parent do
        winsLbl.Text = "🏆 Wins: " .. tostring(math.floor(player.leaderstats.Wins.Value))
        local now = tick()
        local dt = now - lastWinTime
        if dt >= 1 then
            winsPerSec = math.floor((player.leaderstats.Wins.Value - lastWinCount) / dt)
            lastWinCount = player.leaderstats.Wins.Value
            lastWinTime = now
        end
        statsLbl.Text = "➕ Session: " .. tostring(totalWins) .. "  |  ⚡ " .. tostring(math.max(0, winsPerSec)) .. " wins/s"
        task.wait(0.1)
    end
end)

-- Rainbow border
task.spawn(function()
    local h = 0
    while gui.Parent do
        h = (h + 2) % 360
        stroke.Color = Color3.fromHSV(h/360, 0.85, 1)
        task.wait(0.04)
    end
end)

-- Spam
local function startSpam()
    local winA, winB = getWinParts()
    if not winA then statusLbl.Text = "❌ Kein Win Part!" return end
    if not winB then winB = winA end

    isSpamming = true
    toggleBtn.BackgroundColor3 = Color3.fromRGB(190, 50, 60)
    toggleBtn.Text = "⏹  STOPPEN"
    statusLbl.Text = "🟢 Läuft..."
    statusLbl.TextColor3 = Color3.fromRGB(80, 255, 140)
    lastWinCount = player.leaderstats.Wins.Value
    lastWinTime = tick()

    spamThread = task.spawn(function()
        while isSpamming do
            local char = player.Character
            local hrp = char and char:FindFirstChild("HumanoidRootPart")
            if hrp then
                local before = player.leaderstats.Wins.Value
                local wa, wb = getWinParts()
                local target = (toggleIndex % 2 == 0) and wa or wb
                toggleIndex = toggleIndex + 1
                hrp.CFrame = target.CFrame + Vector3.new(0, 3, 0)
                task.wait(0.06)
                local gained = player.leaderstats.Wins.Value - before
                if gained > 0 then totalWins = totalWins + gained end
            else
                task.wait(0.1)
            end
        end
    end)
end

local function stopSpam()
    isSpamming = false
    if spamThread then task.cancel(spamThread) spamThread = nil end
    toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 170, 90)
    toggleBtn.Text = "▶  WIN SPAM STARTEN"
    statusLbl.Text = "⏸ Gestoppt"
    statusLbl.TextColor3 = Color3.fromRGB(200, 90, 90)
end

toggleBtn.MouseButton1Click:Connect(function()
    if isSpamming then stopSpam() else startSpam() end
end)

refreshButtons()
[FIXES]+1 Shrink per Step Win Farm Keyless
Mobile Friendly
1,214 views
1 weeks ago

Win Farm Keyless

WORKING
Free

Description

This Script is a Win Farm Sript For [FIXES]+1 Shrink per Step.

Features

  • Wins Farm

Related Scripts