--// 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)