Spin a Brainrot is exactly what the title suggests—a chaotic, meme-filled RNG (Random Number Generation) game on Roblox. Players are tasked with spinning dice to unlock bizarre and hilarious “brainrot” characters inspired by internet culture. The goal is to collect the rarest entities, upgrade your luck, and build the ultimate collection of memes. It is a game that combines the addictive loop of gacha mechanics with the absurdity of modern internet humor.
However, the nature of RNG games means players often spend hours clicking the same button, hoping for a 1-in-a-million drop. The grind to get cash for upgrades or potions can be incredibly slow, and managing a full inventory of common drops is tedious. This is where Spin a Brainrot scripts become essential. These tools automate the spinning process, manage your inventory, and optimize your upgrades so you can focus on the fun part: showing off your rare drops.
In this article, we have gathered the best scripts for the game. We have a mix of comprehensive auto-farming hubs and specific utility scripts. Whether you need a keyless Spin a Brainrot script to jump in quickly or a powerful hub to dominate the leaderboards, we have you covered.

1. Full Autofarm with a Lot Features – (Auto Roll, Auto Rebirth, Potion Manager)
This script is a powerhouse for players who want to automate every single aspect of the game. It essentially plays the game for you, from rolling dice to managing your economy.
Feature Table
| Feature | Description |
|---|---|
| Script Name | King Gen Hub |
| Type | Full Auto Farm |
| Updated On | 2 Days Ago |
| Key System | Keyless |
Detailed Description
The King Gen Hub is designed for maximum efficiency. Its “Auto Roll Specific Dice” feature ensures you are always spinning for the exact rarity you need, rather than wasting spins on basic dice. It also includes “Auto Rebirth,” which is crucial for increasing your luck multiplier in the long run.
One of the standout features is the Potion Manager. The script can “Auto Buy Potion” and “Auto Use Potion” to keep your luck buffs active 24/7. Combined with “Auto Equip Best Brainrots,” your character will always be optimized for the highest possible luck stat. It effectively removes all the manual labor from the game. As a free Spin a Brainrot script, it offers premium-level automation without the cost.
Usage Tip: Enable “Auto Sell” carefully. Make sure you configure it to keep the rarities you want, or you might accidentally sell a rare drop.
loadstring(game:HttpGet("https://raw.githubusercontent.com/DoggyKing/king-gen-hub/refs/heads/main/keyhub", true))()
2. IDKv1 GUI – (Auto Roll, Sell Manager, AI-Generated)
This script is unique because it boasts a clean, AI-assisted interface that is incredibly user-friendly. It focuses on specific quality-of-life improvements that other scripts might miss.
Feature Table
| Feature | Description |
|---|---|
| Script Name | IDKv1 GUI 1.02 |
| Type | Utility / GUI |
| Updated On | 2 Weeks Ago |
| Key System | Keyless |
Detailed Description
IDKv1 is a fantastic keyless Spin a Brainrot script for players who want control. Unlike full auto-farmers that take over everything, this GUI gives you buttons to “Claim All Cash” or “Equip Best” on demand. The “Auto Roll” feature lets you select specific dice from a dropdown menu (like BlackholeDice or GalaxyDice), ensuring you don’t waste spins.
A major highlight is the Sell Manager. You can hover over the “Sell A Brainrot” button to see a tooltip explanation, or use “Sell All Brainrots” with a built-in confirmation screen to prevent accidents. This safety feature makes it one of the safest scripts to use for inventory management. The interface is also fully draggable and minimizable, keeping your screen clutter-free.
Why use this? It’s lightweight, safe, and doesn’t overwhelm you with features you don’t need.
-- ==> FUNGSI ISLOADED BARU <==
if _G.isGuiLoaded then return end
-- Konfigurasi
local BUTTON_CLAIM_TEXT = "Claim All Cash"
local BUTTON_EQUIP_BEST_TEXT = "Equip Best"
local BUTTON_SELL_ONE_TEXT = "Sell A Brainrot"
local BUTTON_SELL_ALL_TEXT = "Sell All Brainrots"
local BUTTON_ROLL_TEXT_OFF = "Auto Roll: OFF"
local BUTTON_ROLL_TEXT_ON = "Auto Roll: ON"
local ANIMATION_SPEED = 0.3
-- Senarai Nama Dice
local DICE_NAMES = {
"BasicDice", "AscendantDice", "AetherialDice", "AbyssalDice", "BlackholeDice",
"CelestialDice", "CelestialEmperorDice", "ChronoDice", "CosmicDice", "CrystalDice",
"DevilDice", "DiamondDice", "DivineDice", "EtherealDice", "GalacticDice",
"GalaxyDice", "GoldenDice", "HalloweenDice", "HeavenlyDice", "InfinityDice",
"MultiverseDice", "NebulaDice", "ParadoxDice", "PhantomDice", "PlatinumDice",
"QuantumDice", "RealityDice", "RiftDice", "SilverDice", "SingularityDice",
"SolarFlareDice", "SupernovaDice", "TimelessDice", "VoidDice"
}
-- Servis Penting
local Players = game:GetService("Players")
local MarketplaceService = game:GetService("MarketplaceService")
local TweenService = game:GetService("TweenService")
local LocalizationService = game:GetService("LocalizationService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
-- Pembolehubah untuk state
local autoRollCoroutine = nil
local isAutoRolling = false
local selectedDiceName = DICE_NAMES[1]
local isMinimized = false
local isDropdownOpen = false
local sizeBeforeMinimize = nil
local isSellWarningActive = false
-- Fungsi bantuan
local function findInstanceFromPath(path)
local current = game; for _, n in ipairs(path) do current = current:WaitForChild(n, 5); if not current then warn("Tak dapat cari:", table.concat(path, ">"), "- Gagal pada:", n); return nil end end; return current
end
-- Generator UUID v7 (Fixed)
local function generateUUIDv7()
local timestamp = DateTime.now().UnixTimestampMillis
local timestamp_hex = string.format("%012x", timestamp)
local r1, r2, r3, r4 = math.random(0, 0xFFF), math.random(0, 0xFFF), math.random(0, 0xFFF), math.random(0, 0xFFF)
local large_random_hex = string.format("%03x%03x%03x%03x", r1, r2, r3, r4)
local random_hex = string.format("%04x%s", math.random(0, 0xFFFF), large_random_hex)
return string.format("%s-%s-7%s-%x%s-%s", string.sub(timestamp_hex, 1, 8), string.sub(timestamp_hex, 9, 12), string.sub(random_hex, 1, 3), 8 + math.random(0, 3), string.sub(random_hex, 4, 6), string.sub(random_hex, 7, 18))
end
-- Laluan ke RemoteEvents/Functions
local claimCashPath = {"ReplicatedStorage", "Network", "Client", "ClaimCash"}
local equipBestPath = {"ReplicatedStorage", "Network", "Client", "EquipBestEntities"}
local sellOnePath = {"ReplicatedStorage", "Network", "Client", "SellEntity"}
local sellAllPath = {"ReplicatedStorage", "Network", "Client", "SellAllEntities"}
local rollDicePath = {"ReplicatedStorage", "Network", "Client", "RollDice"}
-- Fungsi untuk menghentikan loop
local function stopCurrentLoop() if autoRollCoroutine then coroutine.close(autoRollCoroutine); autoRollCoroutine = nil end end
-- Cipta GUI
local screenGui = Instance.new("ScreenGui"); screenGui.Name = generateUUIDv7(); screenGui.ResetOnSpawn = false; screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
-- Saiz & Posisi
local dropdownClosedSize = UDim2.new(0, 250, 0, 260)
local dropdownOpenSize = UDim2.new(0, 250, 0, 400)
local minimizedSize = UDim2.new(dropdownClosedSize.X.Scale, dropdownClosedSize.X.Offset, 0, 30)
local mainFrame = Instance.new("Frame"); mainFrame.Name = "MainFrame"; mainFrame.Size = dropdownClosedSize; mainFrame.Position = UDim2.new(0.5, -125, 0.5, -130); mainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 45); mainFrame.BorderColor3 = Color3.fromRGB(85, 85, 125); mainFrame.BorderSizePixel = 2; mainFrame.Active = true; mainFrame.Draggable = true; mainFrame.ClipsDescendants = true; mainFrame.Parent = screenGui
-- Dapatkan nama game secara dinamik
local gameTitle = game.Name -- Fallback jika pcall gagal
local s, r = pcall(function() return MarketplaceService:GetProductInfo(game.PlaceId) end)
if s and r and r.Name then gameTitle = r.Name end
local titleLabel = Instance.new("TextLabel"); titleLabel.Name = "TitleLabel"; titleLabel.Size = UDim2.new(1, 0, 0, 30); titleLabel.BackgroundColor3 = Color3.fromRGB(50, 50, 65); titleLabel.BorderColor3 = Color3.fromRGB(85, 85, 125); titleLabel.Text = gameTitle; titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255); titleLabel.Font = Enum.Font.SourceSansBold; titleLabel.TextSize = 18; titleLabel.Parent = mainFrame
local contentContainer = Instance.new("Frame"); contentContainer.Name = "ContentContainer"; contentContainer.Size = UDim2.new(1, 0, 1, -30); contentContainer.Position = UDim2.new(0, 0, 0, 30); contentContainer.BackgroundTransparency = 1; contentContainer.ClipsDescendants = true; contentContainer.Parent = mainFrame
-- Butang-butang Atas
local claimAllButton = Instance.new("TextButton"); claimAllButton.Name = "ClaimAllButton"; claimAllButton.Size = UDim2.new(0.9, 0, 0, 30); claimAllButton.Position = UDim2.new(0.05, 0, 0, 10); claimAllButton.BackgroundColor3 = Color3.fromRGB(70, 140, 70); claimAllButton.Text = BUTTON_CLAIM_TEXT; claimAllButton.TextColor3 = Color3.fromRGB(255, 255, 255); claimAllButton.Font = Enum.Font.SourceSans; claimAllButton.TextSize = 16; claimAllButton.Parent = contentContainer
local equipBestButton = Instance.new("TextButton"); equipBestButton.Name = "EquipBestButton"; equipBestButton.Size = UDim2.new(0.9, 0, 0, 30); equipBestButton.Position = UDim2.new(0.05, 0, 0, 45); equipBestButton.BackgroundColor3 = Color3.fromRGB(80, 120, 160); equipBestButton.Text = BUTTON_EQUIP_BEST_TEXT; equipBestButton.TextColor3 = Color3.fromRGB(255, 255, 255); equipBestButton.Font = Enum.Font.SourceSans; equipBestButton.TextSize = 16; equipBestButton.Parent = contentContainer
local autoRollButton = Instance.new("TextButton"); autoRollButton.Name = "AutoRollButton"; autoRollButton.Size = UDim2.new(0.9, 0, 0, 30); autoRollButton.Position = UDim2.new(0.05, 0, 0, 80); autoRollButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80); autoRollButton.Text = BUTTON_ROLL_TEXT_OFF; autoRollButton.TextColor3 = Color3.fromRGB(255, 255, 255); autoRollButton.Font = Enum.Font.SourceSans; autoRollButton.TextSize = 16; autoRollButton.Parent = contentContainer
local selectDiceButton = Instance.new("TextButton"); selectDiceButton.Name = "SelectDiceButton"; selectDiceButton.Size = UDim2.new(0.9, 0, 0, 30); selectDiceButton.Position = UDim2.new(0.05, 0, 0, 115); selectDiceButton.BackgroundColor3 = Color3.fromRGB(50, 50, 65); selectDiceButton.Text = "Selected: "..selectedDiceName; selectDiceButton.TextColor3 = Color3.fromRGB(220, 220, 220); selectDiceButton.Font = Enum.Font.SourceSans; selectDiceButton.TextSize = 16; selectDiceButton.Parent = contentContainer
-- Dropdown
local diceSelectionFrame = Instance.new("Frame"); diceSelectionFrame.Name = "DiceSelectionFrame"; diceSelectionFrame.Size = UDim2.new(0.9, 0, 0, 140); diceSelectionFrame.Position = UDim2.new(0.05, 0, 0, 150); diceSelectionFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 55); diceSelectionFrame.BorderColor3 = Color3.fromRGB(85, 85, 125); diceSelectionFrame.ClipsDescendants = true; diceSelectionFrame.Visible = false; diceSelectionFrame.Parent = contentContainer
local scrollingFrame = Instance.new("ScrollingFrame"); scrollingFrame.Name = "DiceScrollingFrame"; scrollingFrame.Size = UDim2.new(1, 0, 1, 0); scrollingFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 55); scrollingFrame.BorderSizePixel = 0; scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0); scrollingFrame.ScrollBarThickness = 6; scrollingFrame.Parent = diceSelectionFrame
local uiListLayout = Instance.new("UIListLayout"); uiListLayout.Name = "ListLayout"; uiListLayout.SortOrder = Enum.SortOrder.Name; uiListLayout.Padding = UDim.new(0, 3); uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center; uiListLayout.Parent = scrollingFrame
-- Butang-butang Bawah
local sellAllButton = Instance.new("TextButton"); sellAllButton.Name = "SellAllButton"; sellAllButton.Size = UDim2.new(0.9, 0, 0, 30); sellAllButton.AnchorPoint = Vector2.new(0.5, 1); sellAllButton.Position = UDim2.new(0.5, 0, 1, -10); sellAllButton.BackgroundColor3 = Color3.fromRGB(180, 70, 70); sellAllButton.Text = BUTTON_SELL_ALL_TEXT; sellAllButton.TextColor3 = Color3.fromRGB(255, 255, 255); sellAllButton.Font = Enum.Font.SourceSans; sellAllButton.TextSize = 16; sellAllButton.Parent = contentContainer
local sellOneButton = Instance.new("TextButton"); sellOneButton.Name = "SellOneButton"; sellOneButton.Size = UDim2.new(0.9, 0, 0, 30); sellOneButton.AnchorPoint = Vector2.new(0.5, 1); sellOneButton.Position = UDim2.new(0.5, 0, 1, -45); sellOneButton.BackgroundColor3 = Color3.fromRGB(160, 120, 80); sellOneButton.Text = BUTTON_SELL_ONE_TEXT; sellOneButton.TextColor3 = Color3.fromRGB(255, 255, 255); sellOneButton.Font = Enum.Font.SourceSans; sellOneButton.TextSize = 16; sellOneButton.Parent = contentContainer
-- ==> TOOLTIP DIPERBAIKI <==
local tooltipFrame = Instance.new("Frame"); tooltipFrame.Name = "TooltipFrame"; tooltipFrame.AutomaticSize = Enum.AutomaticSize.XY; tooltipFrame.BackgroundColor3 = Color3.new(0, 0, 0); tooltipFrame.BackgroundTransparency = 0.5; tooltipFrame.BorderColor3 = Color3.fromRGB(100, 100, 100); tooltipFrame.Visible = false; tooltipFrame.ZIndex = 20; tooltipFrame.AnchorPoint = Vector2.new(0.5, 1); tooltipFrame.Parent = screenGui
local tooltipPadding = Instance.new("UIPadding"); tooltipPadding.PaddingLeft = UDim.new(0, 5); tooltipPadding.PaddingRight = UDim.new(0, 5); tooltipPadding.PaddingTop = UDim.new(0, 2); tooltipPadding.PaddingBottom = UDim.new(0, 2); tooltipPadding.Parent = tooltipFrame
local tooltipLabel = Instance.new("TextLabel"); tooltipLabel.Name = "TooltipLabel"; tooltipLabel.BackgroundTransparency = 1; tooltipLabel.Text = "Sells the currently held brainrot."; tooltipLabel.TextColor3 = Color3.new(1, 1, 1); tooltipLabel.Font = Enum.Font.SourceSans; tooltipLabel.TextSize = 14; tooltipLabel.TextWrapped = true; tooltipLabel.AutomaticSize = Enum.AutomaticSize.XY; tooltipLabel.Parent = tooltipFrame
-- Butang Kawalan Tetingkap
local closeButton = Instance.new("TextButton"); closeButton.Name = "CloseButton"; closeButton.Size = UDim2.new(0, 20, 0, 20); closeButton.Position = UDim2.new(1, -25, 0, 5); closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50); closeButton.Text = "X"; closeButton.TextColor3 = Color3.fromRGB(255, 255, 255); closeButton.Font = Enum.Font.SourceSansBold; closeButton.TextSize = 14; closeButton.Parent = mainFrame
local minimizeButton = Instance.new("TextButton"); minimizeButton.Name = "MinimizeButton"; minimizeButton.Size = UDim2.new(0, 20, 0, 20); minimizeButton.Position = UDim2.new(1, -50, 0, 5); minimizeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 100); minimizeButton.Text = "-"; minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255); minimizeButton.Font = Enum.Font.SourceSansBold; minimizeButton.TextSize = 18; minimizeButton.Parent = mainFrame
-- GUI Pengesahan (Close)
local closeConfBg = Instance.new("Frame"); closeConfBg.Name = "CloseConfBg"; closeConfBg.Size = UDim2.new(1, 0, 1, 0); closeConfBg.BackgroundColor3 = Color3.new(0, 0, 0); closeConfBg.BackgroundTransparency = 0.75; closeConfBg.Visible = false; closeConfBg.ZIndex = 10; closeConfBg.Parent = screenGui
local closeConfDialog = Instance.new("Frame"); closeConfDialog.Name = "CloseConfDialog"; closeConfDialog.Size = UDim2.new(0, 300, 0, 150); closeConfDialog.Position = UDim2.new(0.5, -150, 0.5, -75); closeConfDialog.BackgroundColor3 = Color3.fromRGB(45, 45, 55); closeConfDialog.BorderColor3 = Color3.fromRGB(85, 85, 125); closeConfDialog.BorderSizePixel = 2; closeConfDialog.Parent = closeConfBg
local closeConfTitle = Instance.new("TextLabel"); closeConfTitle.Name = "CloseConfTitle"; closeConfTitle.Size = UDim2.new(1, 0, 0, 30); closeConfTitle.BackgroundColor3 = Color3.fromRGB(50, 50, 65); closeConfTitle.Text = gameTitle; closeConfTitle.TextColor3 = Color3.fromRGB(255, 255, 255); closeConfTitle.Font = Enum.Font.SourceSansBold; closeConfTitle.TextSize = 18; closeConfTitle.Parent = closeConfDialog
local closeConfMsg = Instance.new("TextLabel"); closeConfMsg.Name = "CloseConfMsg"; closeConfMsg.Size = UDim2.new(0.9, 0, 0.5, 0); closeConfMsg.Position = UDim2.new(0.05, 0, 0.25, 0); closeConfMsg.BackgroundTransparency = 1; closeConfMsg.TextColor3 = Color3.fromRGB(220, 220, 220); closeConfMsg.Font = Enum.Font.SourceSans; closeConfMsg.TextSize = 16; closeConfMsg.TextWrapped = true; closeConfMsg.Parent = closeConfDialog
local sT1, t1 = pcall(function() return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer) end); if sT1 and t1 then closeConfMsg.Text = t1:Translate(screenGui, "Are you sure you want to close the menu?") else closeConfMsg.Text = "Are you sure you want to close the menu?" end
local closeNoBtn = Instance.new("TextButton"); closeNoBtn.Name = "CloseNoBtn"; closeNoBtn.Size = UDim2.new(0.4, 0, 0, 35); closeNoBtn.Position = UDim2.new(0.525, 0, 0.7, 0); closeNoBtn.BackgroundColor3 = Color3.fromRGB(80, 160, 80); closeNoBtn.Text = "NO"; closeNoBtn.TextColor3 = Color3.fromRGB(255, 255, 255); closeNoBtn.Font = Enum.Font.SourceSansBold; closeNoBtn.TextSize = 16; closeNoBtn.Parent = closeConfDialog
local closeYesBtn = Instance.new("TextButton"); closeYesBtn.Name = "CloseYesBtn"; closeYesBtn.Size = UDim2.new(0.4, 0, 0, 35); closeYesBtn.Position = UDim2.new(0.075, 0, 0.7, 0); closeYesBtn.BackgroundColor3 = Color3.fromRGB(180, 70, 70); closeYesBtn.Text = "YES"; closeYesBtn.TextColor3 = Color3.fromRGB(255, 255, 255); closeYesBtn.Font = Enum.Font.SourceSansBold; closeYesBtn.TextSize = 16; closeYesBtn.Parent = closeConfDialog
-- GUI Pengesahan (Sell All)
local sellAllConfBg = Instance.new("Frame"); sellAllConfBg.Name = "SellAllConfBg"; sellAllConfBg.Size = UDim2.new(1, 0, 1, 0); sellAllConfBg.BackgroundColor3 = Color3.new(0, 0, 0); sellAllConfBg.BackgroundTransparency = 0.75; sellAllConfBg.Visible = false; sellAllConfBg.ZIndex = 11; sellAllConfBg.Parent = screenGui
local sellAllConfDialog = Instance.new("Frame"); sellAllConfDialog.Name = "SellAllConfDialog"; sellAllConfDialog.Size = UDim2.new(0, 300, 0, 150); sellAllConfDialog.Position = UDim2.new(0.5, -150, 0.5, -75); sellAllConfDialog.BackgroundColor3 = Color3.fromRGB(45, 45, 55); sellAllConfDialog.BorderColor3 = Color3.fromRGB(85, 85, 125); sellAllConfDialog.BorderSizePixel = 2; sellAllConfDialog.Parent = sellAllConfBg
local sellAllConfTitle = Instance.new("TextLabel"); sellAllConfTitle.Name = "SellAllConfTitle"; sellAllConfTitle.Size = UDim2.new(1, 0, 0, 30); sellAllConfTitle.BackgroundColor3 = Color3.fromRGB(50, 50, 65); sellAllConfTitle.Text = "CONFIRM SELL ALL"; sellAllConfTitle.TextColor3 = Color3.fromRGB(255, 255, 255); sellAllConfTitle.Font = Enum.Font.SourceSansBold; sellAllConfTitle.TextSize = 18; sellAllConfTitle.Parent = sellAllConfDialog
local sellAllConfMsg = Instance.new("TextLabel"); sellAllConfMsg.Name = "SellAllConfMsg"; sellAllConfMsg.Size = UDim2.new(0.9, 0, 0.5, 0); sellAllConfMsg.Position = UDim2.new(0.05, 0, 0.25, 0); sellAllConfMsg.BackgroundTransparency = 1; sellAllConfMsg.TextColor3 = Color3.fromRGB(220, 220, 220); sellAllConfMsg.Font = Enum.Font.SourceSans; sellAllConfMsg.TextSize = 16; sellAllConfMsg.TextWrapped = true; sellAllConfMsg.Parent = sellAllConfDialog
local sT2, t2 = pcall(function() return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer) end); if sT2 and t2 then sellAllConfMsg.Text = t2:Translate(screenGui, "This will sell ALL your brainrots. This action cannot be undone. Are you sure?") else sellAllConfMsg.Text = "This will sell ALL your brainrots. This action cannot be undone. Are you sure?" end
local sellAllNoBtn = Instance.new("TextButton"); sellAllNoBtn.Name = "SellAllNoBtn"; sellAllNoBtn.Size = UDim2.new(0.4, 0, 0, 35); sellAllNoBtn.Position = UDim2.new(0.525, 0, 0.7, 0); sellAllNoBtn.BackgroundColor3 = Color3.fromRGB(80, 160, 80); sellAllNoBtn.Text = "NO"; sellAllNoBtn.TextColor3 = Color3.fromRGB(255, 255, 255); sellAllNoBtn.Font = Enum.Font.SourceSansBold; sellAllNoBtn.TextSize = 16; sellAllNoBtn.Parent = sellAllConfDialog
local sellAllYesBtn = Instance.new("TextButton"); sellAllYesBtn.Name = "SellAllYesBtn"; sellAllYesBtn.Size = UDim2.new(0.4, 0, 0, 35); sellAllYesBtn.Position = UDim2.new(0.075, 0, 0.7, 0); sellAllYesBtn.BackgroundColor3 = Color3.fromRGB(180, 70, 70); sellAllYesBtn.Text = "YES"; sellAllYesBtn.TextColor3 = Color3.fromRGB(255, 255, 255); sellAllYesBtn.Font = Enum.Font.SourceSansBold; sellAllYesBtn.TextSize = 16; sellAllYesBtn.Parent = sellAllConfDialog
-- Fungsi untuk menguruskan animasi dropdown
local function toggleDropdown(forceState)
local shouldOpen = not isDropdownOpen; if forceState ~= nil then shouldOpen = forceState end; if shouldOpen == isDropdownOpen then return end; isDropdownOpen = shouldOpen
local tweenInfo = TweenInfo.new(ANIMATION_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
if shouldOpen then
diceSelectionFrame.Visible = true; TweenService:Create(mainFrame, tweenInfo, {Size = dropdownOpenSize}):Play()
else
local tween = TweenService:Create(mainFrame, tweenInfo, {Size = dropdownClosedSize}); tween:Play(); tween.Completed:Connect(function() if not isDropdownOpen then diceSelectionFrame.Visible = false end end)
end
end
-- Cipta butang-butang dice
for _, diceName in ipairs(DICE_NAMES) do local diceButton = Instance.new("TextButton"); diceButton.Name = diceName; diceButton.Size = UDim2.new(0.95, 0, 0, 25); diceButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80); diceButton.Text = diceName; diceButton.TextColor3 = Color3.fromRGB(255, 255, 255); diceButton.Font = Enum.Font.SourceSans; diceButton.TextSize = 14; diceButton.Parent = scrollingFrame; diceButton.MouseButton1Click:Connect(function() selectedDiceName = diceName; selectDiceButton.Text = "Selected: "..selectedDiceName; toggleDropdown(false) end) end
scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, uiListLayout.AbsoluteContentSize.Y)
-- Sambungan fungsi
claimAllButton.MouseButton1Click:Connect(function() local r = findInstanceFromPath(claimCashPath); if not r then return end; for i = 1, 10 do pcall(function() r:FireServer("PedastalHolder"..i) end) end end)
equipBestButton.MouseButton1Click:Connect(function() local r = findInstanceFromPath(equipBestPath); if r then pcall(function() r:InvokeServer() end) end end)
sellOneButton.MouseButton1Click:Connect(function()
if isSellWarningActive then return end
local char = Players.LocalPlayer.Character
if char and char:FindFirstChildOfClass("Tool") then
local remote = findInstanceFromPath(sellOnePath)
if remote then pcall(function() remote:InvokeServer() end) end
else
isSellWarningActive = true
local originalText = sellOneButton.Text
local originalColor = sellOneButton.TextColor3
sellOneButton.Text = "HOLD BRAINROT FIRST!"
sellOneButton.TextColor3 = Color3.fromRGB(255, 80, 80) -- Warna merah
task.delay(3, function()
sellOneButton.Text = originalText
sellOneButton.TextColor3 = originalColor
isSellWarningActive = false
end)
end
end)
sellAllButton.MouseButton1Click:Connect(function() sellAllConfBg.Visible = true end)
sellAllYesBtn.MouseButton1Click:Connect(function() local r = findInstanceFromPath(sellAllPath); if r then pcall(function() r:InvokeServer() end) end; sellAllConfBg.Visible = false end)
sellAllNoBtn.MouseButton1Click:Connect(function() sellAllConfBg.Visible = false end)
sellOneButton.MouseEnter:Connect(function() tooltipFrame.Visible = true end); sellOneButton.MouseLeave:Connect(function() tooltipFrame.Visible = false end)
RunService.RenderStepped:Connect(function() if tooltipFrame.Visible then local m = UserInputService:GetMouseLocation(); tooltipFrame.Position = UDim2.fromOffset(m.X, m.Y - 10) end end)
autoRollButton.MouseButton1Click:Connect(function() isAutoRolling = not isAutoRolling; if isAutoRolling then stopCurrentLoop(); autoRollButton.Text = BUTTON_ROLL_TEXT_ON; autoRollButton.BackgroundColor3 = Color3.fromRGB(70, 140, 70); local r = findInstanceFromPath(rollDicePath); if r then autoRollCoroutine = coroutine.create(function() while true do pcall(function() r:InvokeServer(selectedDiceName) end) task.wait() end end); coroutine.resume(autoRollCoroutine) else isAutoRolling = false; autoRollButton.Text = BUTTON_ROLL_TEXT_OFF; autoRollButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80) end else stopCurrentLoop(); autoRollButton.Text = BUTTON_ROLL_TEXT_OFF; autoRollButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80) end end)
selectDiceButton.MouseButton1Click:Connect(function() toggleDropdown() end)
minimizeButton.MouseButton1Click:Connect(function() isMinimized = not isMinimized; local t = TweenInfo.new(ANIMATION_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out); if isMinimized then sizeBeforeMinimize = mainFrame.Size; TweenService:Create(mainFrame, t, {Size = minimizedSize}):Play(); minimizeButton.Text = "+" else TweenService:Create(mainFrame, t, {Size = sizeBeforeMinimize or dropdownClosedSize}):Play(); minimizeButton.Text = "-" end end)
closeButton.MouseButton1Click:Connect(function() closeConfBg.Visible = true end)
closeYesBtn.MouseButton1Click:Connect(function() stopCurrentLoop(); _G.isGuiLoaded = nil; screenGui:Destroy() end)
closeNoBtn.MouseButton1Click:Connect(function() closeConfBg.Visible = false end)
-- Letak GUI dalam PlayerGui
_G.isGuiLoaded = true
screenGui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")
3. Alternative Auto Upgrade – (Simple Upgrade Loop, Lightweight)
Sometimes you don’t need a huge hub; you just need something to spam the upgrade button while you sleep. This script is exactly that—a dedicated auto-upgrader.
Feature Table
| Feature | Description |
|---|---|
| Script Name | Auto Upgrade YYHUB |
| Type | Background Loop |
| Updated On | 6 Days Ago |
| Key System | Requires Key (Simulated) |
Detailed Description
This script focuses solely on the economy side of Spin a Brainrot. Once activated, it constantly fires the remote events for “PlayerLuck” and “GlobalIncome” upgrades. This means every time you have enough cash, your stats increase automatically. It runs in the background, making it compatible with other scripts that might not have an auto-upgrade feature.
Note on Key System: This script simulates a key system interface. You will need to “copy link” and then enter the key provided in the GUI to unlock the auto-upgrader functionality.
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PurchaseUpgrade = ReplicatedStorage:WaitForChild("Network"):WaitForChild("Client"):WaitForChild("PurchaseUpgrade")
local url = "https://go.linkify.ru/2DYQ"
-- === Ключевая система === --
local function CreateKeyGui(hiddenKey)
local mainGui = Instance.new("ScreenGui")
mainGui.Name = "KeySystemGui"
mainGui.IgnoreGuiInset = true
mainGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
mainGui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 500, 0, 300)
frame.Position = UDim2.new(0.5, -250, 0.5, -150)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 15)
frame.BackgroundTransparency = 0.3
frame.BorderSizePixel = 0
frame.ZIndex = 10
frame.Parent = mainGui
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 20)
uiCorner.Parent = frame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 60)
title.Position = UDim2.new(0, 0, 0, 10)
title.Text = "🔐 ПОЛУЧЕНИЕ КЛЮЧА / GET SCRIPT KEY"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBlack
title.TextSize = 22
title.ZIndex = 11
title.Parent = frame
local description = Instance.new("TextLabel")
description.Size = UDim2.new(1, -40, 0, 100)
description.Position = UDim2.new(0, 20, 0, 80)
description.TextWrapped = true
description.Text = "Перейдите по ссылке ниже, чтобы получить ключ.\nGo to the link below to get the key."
description.TextColor3 = Color3.fromRGB(230, 230, 230)
description.BackgroundTransparency = 1
description.Font = Enum.Font.GothamSemibold
description.TextSize = 16
description.ZIndex = 11
description.Parent = frame
local urlLabel = Instance.new("TextLabel")
urlLabel.Size = UDim2.new(1, -40, 0, 30)
urlLabel.Position = UDim2.new(0, 20, 0, 190)
urlLabel.Text = url
urlLabel.TextColor3 = Color3.fromRGB(0, 180, 255)
urlLabel.BackgroundTransparency = 1
urlLabel.Font = Enum.Font.GothamBold
urlLabel.TextSize = 16
urlLabel.ZIndex = 11
urlLabel.Parent = frame
local openButton = Instance.new("TextButton")
openButton.Size = UDim2.new(0, 260, 0, 46)
openButton.Position = UDim2.new(0.5, -130, 1, -70)
openButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
openButton.TextColor3 = Color3.fromRGB(255, 255, 255)
openButton.Text = "🌐 ОТКРЫТЬ ССЫЛКУ / OPEN LINK"
openButton.Font = Enum.Font.GothamBlack
openButton.TextSize = 18
openButton.ZIndex = 12
openButton.Parent = frame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = openButton
openButton.MouseButton1Click:Connect(function()
pcall(function() setclipboard(url) end)
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "СКОПИРОВАНО / COPIED",
Text = "Ссылка скопирована. Откройте её для ключа.",
Duration = 5
})
frame:Destroy()
local keyFrame = Instance.new("Frame")
keyFrame.Size = UDim2.new(0, 400, 0, 220)
keyFrame.Position = UDim2.new(0.5, -200, 0.5, -110)
keyFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
keyFrame.BackgroundTransparency = 0.3
keyFrame.BorderSizePixel = 0
keyFrame.ZIndex = 10
keyFrame.Parent = mainGui
local keyCorner = Instance.new("UICorner")
keyCorner.CornerRadius = UDim.new(0, 18)
keyCorner.Parent = keyFrame
local keyTitle = Instance.new("TextLabel")
keyTitle.Size = UDim2.new(1, 0, 0, 50)
keyTitle.Position = UDim2.new(0, 0, 0, 15)
keyTitle.Text = "Введите ключ / Enter Key"
keyTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
keyTitle.BackgroundTransparency = 1
keyTitle.Font = Enum.Font.GothamBlack
keyTitle.TextSize = 20
keyTitle.ZIndex = 11
keyTitle.Parent = keyFrame
local keyBox = Instance.new("TextBox")
keyBox.Size = UDim2.new(0, 300, 0, 40)
keyBox.Position = UDim2.new(0.5, -150, 0.5, -20)
keyBox.PlaceholderText = "Введите ключ сюда / Enter key..."
keyBox.Text = ""
keyBox.TextColor3 = Color3.fromRGB(255, 255, 255)
keyBox.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
keyBox.Font = Enum.Font.Gotham
keyBox.TextSize = 18
keyBox.ZIndex = 12
keyBox.Parent = keyFrame
local keyBoxCorner = Instance.new("UICorner")
keyBoxCorner.CornerRadius = UDim.new(0, 10)
keyBoxCorner.Parent = keyBox
local confirmButton = Instance.new("TextButton")
confirmButton.Size = UDim2.new(0, 180, 0, 40)
confirmButton.Position = UDim2.new(0.5, -90, 1, -60)
confirmButton.BackgroundColor3 = Color3.fromRGB(0, 140, 255)
confirmButton.TextColor3 = Color3.fromRGB(255, 255, 255)
confirmButton.Text = "ПОДТВЕРДИТЬ / CONFIRM"
confirmButton.Font = Enum.Font.GothamBold
confirmButton.TextSize = 18
confirmButton.ZIndex = 12
confirmButton.Parent = keyFrame
local confirmCorner = Instance.new("UICorner")
confirmCorner.CornerRadius = UDim.new(0, 10)
confirmCorner.Parent = confirmButton
confirmButton.MouseButton1Click:Connect(function()
if keyBox.Text == hiddenKey then
mainGui:Destroy() -- закрываем GUI
-- === Запуск функции покупки апгрейдов ===
task.spawn(function()
while true do
task.wait(0.1)
pcall(function()
PurchaseUpgrade:InvokeServer("PlayerLuck")
PurchaseUpgrade:InvokeServer("GlobalIncome")
end)
end
end)
else
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "❌ НЕВЕРНЫЙ КЛЮЧ / WRONG KEY",
Text = "Попробуйте снова / Try again",
Duration = 4
})
end
end)
end)
end
-- 🔑 Настрой свой ключ здесь
local HiddenKey = "NOKEY"
CreateKeyGui(HiddenKey)
How to Execute Spin a Brainrot Scripts on PC, Mac & Mobile
Running these Spin a Brainrot script pastebin codes requires an executor. Here is the process for every device.
On PC (Windows)
- Antivirus: Temporarily disable it, as executors are often flagged.
- Executor: Download Wave, Solara, or Synapse Z.
- Inject: Launch the game, open the executor, and click “Attach.”
- Run: Copy the code, paste it into the editor, and hit “Execute.”
On Mac
- Tools: Use Hydrogen or MacSploit.
- Virtual Machine: If native apps fail, running Roblox on a Windows VM is a reliable alternative.
- Execute: Inject while in the lobby and paste the script.
On Mobile (Android/iOS)
- Android: Download a modified Roblox APK from Delta, Codex, or Arceus X.
- iOS: Use AppleWare or sideload a supported IPA.
- Menu: Tap the floating icon, paste your keyless Spin a Brainrot scripts, and enjoy.
Spin a Brainrot Beginner Guide
Luck is Everything:
The core stat in this game is Luck. Always prioritize upgrading your “Player Luck” before anything else. The higher your luck, the better your drops.
Use the Right Dice:
Don’t just auto-roll with the basic dice. Use the “Auto Roll Specific Dice” feature in scripts to target the dice that offer multipliers for the specific Brainrot you are hunting.
AFK Farming:
The best way to progress is to leave your computer on overnight with the King Gen Hub running. It will collect cash, upgrade your stats, and roll for hours without you needing to be there.
Spin a Brainrot Codes and Cheats
Codes are a great way to get free luck potions and cash. We have searched for the latest active codes for Spin a Brainrot.
Active Codes
- 10KLikes: 1 Divine Luck Potion (NEW)
- 2MVisits: 2 Ascendant Dice (NEW)
- Halloween: 2 Diamond Dice (NEW)
- HalloweenDice: 1 Halloween Dice (NEW)
(Note: Codes expire quickly. Join the game’s Discord server to catch them as soon as they drop.)
How to Redeem Spin a Brainrot Codes
If you want to get your exclusive dice, then you will need to redeem the codes for Spin a Brainrot. Here is how you can do it:
- Launch Spin a Brainrot on Roblox.
- Click on the Store option on the left side of the screen.
- Scroll down to the codes section.
- Type the active code in the text box.
- Click Redeem to claim the rewards.

Hidden Cheats
There are no button combos for cheats. The only way to get “Infinite Cash” or “Auto Roll” is by using the Spin a Brainrot script options listed above.
FAQs About Spin a Brainrot Scripts
Q: Can I get banned for using the Auto Roll feature?
A: It is unlikely. Auto-rolling is a standard feature in many RNG games, and developers rarely ban for it unless you are exploiting the server to crash it.
Q: Why does the IDKv1 script look different?
A: It uses a custom-made GUI that supports minimization and dragging. This makes it much cleaner than standard grey boxes found in other scripts.
Q: Does the King Gen Hub work on mobile?
A: Yes, it is optimized for mobile execution, though the menu might take up a large portion of a small phone screen.
Conclusion
Spin, Upgrade, Dominate!
With these Spin a Brainrot scripts, you can bypass the tedious grind and focus on building the most absurd collection of memes on Roblox. Whether you choose the all-in-one automation of King Gen Hub, the clean utility of IDKv1, or the simple upgrading of YYHUB, you are set for success.
Be sure to bookmark this page, as we constantly update our list with the latest Spin a Brainrot script pastebin codes. Now, load up your executor and let the memes roll in!