free auto spin scripts open src
Key Required

free auto spin scripts open src

[🍀UPD!] SPIN 4 UGCxenitzxenitz 1.5K views 112 executesUpdated Jan 31, 2026
Unrated
00
Lua Script•151 lines (4071 chars)
--// Services
local RS = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local LP = Players.LocalPlayer

--// Knit
local Knit = RS.Packages._Index["sleitnick_knit@1.6.0"].knit
local SpinService = Knit.Services.SpinService
local spinRF = SpinService.RF.Spin

--// Config
local AUTO_SPIN = false
local MIN_DELAY = 0.55      -- เร็วสุดปลอดภัย
local FAIL_LIMIT = 5

--// Runtime
local failCount = 0
local spinCount = 0
local lastTick = os.clock()

-- GUI
local gui = Instance.new("ScreenGui")
gui.Name = "AutoSpinMiniGUI"
gui.ResetOnSpawn = false
gui.Parent = LP:WaitForChild("PlayerGui")

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.fromOffset(180, 80)
frame.Position = UDim2.fromScale(0.5, 0.5) -- กลางจอ
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.BackgroundColor3 = Color3.fromRGB(30,30,30)
frame.BorderSizePixel = 0
frame.Active = true
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 12)

-- Toggle Button
local toggleBtn = Instance.new("TextButton", frame)
toggleBtn.Size = UDim2.new(1, -20, 0, 32)
toggleBtn.Position = UDim2.fromOffset(10, 8)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 16
toggleBtn.BackgroundColor3 = Color3.fromRGB(40,40,40)
toggleBtn.BorderSizePixel = 0
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)

-- SPS
local spsLabel = Instance.new("TextLabel", frame)
spsLabel.Size = UDim2.new(1, -20, 0, 20)
spsLabel.Position = UDim2.fromOffset(10, 45)
spsLabel.BackgroundTransparency = 1
spsLabel.Font = Enum.Font.Gotham
spsLabel.TextSize = 14
spsLabel.TextColor3 = Color3.fromRGB(200,200,200)
spsLabel.Text = "SPS: 0.00"

local function updateToggle()
    toggleBtn.Text = AUTO_SPIN and "AUTO SPIN : ON" or "AUTO SPIN : OFF"
    toggleBtn.TextColor3 = AUTO_SPIN
        and Color3.fromRGB(0,255,140)
        or Color3.fromRGB(255,90,90)
end
updateToggle()

toggleBtn.MouseButton1Click:Connect(function()
    AUTO_SPIN = not AUTO_SPIN
    updateToggle()
end)


-- DRAG
local dragging = false
local dragStart, startPos

local function updateDrag(input)
    local delta = input.Position - dragStart
    frame.Position = UDim2.new(
        startPos.X.Scale,
        startPos.X.Offset + delta.X,
        startPos.Y.Scale,
        startPos.Y.Offset + delta.Y
    )
end

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

        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

UIS.InputChanged:Connect(function(input)
    if dragging and
       (input.UserInputType == Enum.UserInputType.MouseMovement
        or input.UserInputType == Enum.UserInputType.Touch) then
        updateDrag(input)
    end
end)

-- AUTO SPIN 
task.spawn(function()
    while true do
        if AUTO_SPIN then
            local startTime = os.clock()

            local ok = pcall(function()
                spinRF:InvokeServer()
            end)

            if ok then
                spinCount += 1
                failCount = 0
            else
                failCount += 1
                if failCount >= FAIL_LIMIT then
                    AUTO_SPIN = false
                    updateToggle()
                end
                task.wait(1)
            end

            local elapsed = os.clock() - startTime
            local waitTime = MIN_DELAY - elapsed
            if waitTime > 0 then
                task.wait(waitTime)
            end
        else
            task.wait(0.15)
        end
    end
end)

-- SPIN PER SECOND COUNTER
task.spawn(function()
    while true do
        task.wait(1)
        local now = os.clock()
        local sps = spinCount / (now - lastTick)
        spsLabel.Text = string.format("SPS: %.2f", sps)
        spinCount = 0
        lastTick = now
    end
end)

Features & Information

-

Community Comments (0)

No comments yet for this script.