AI slop paint bucket gear script
Key RequiredUniversal

AI slop paint bucket gear script

Universal Scriptdolteddowndolteddown 839 views 307 executesUpdated Jan 29, 2026
Unrated
00
Lua Script•108 lines (3255 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local pGui = player:WaitForChild("PlayerGui")

-- --- CONFIGURATION ---
local paintToolName = "PaintBucket"
local REQUIRED_SPEED, REQUIRED_JUMP = 180, 90
local partsPerFrame = 670 -- Adjusted for high-speed map coverage
local sounds = {"12222200", "12222242", "130767759", "142376088", "5168097232"}

-- --- LOCALIZATION ---
local random = math.random
local v3Color = Color3.new
local insert = table.insert
local clear = table.clear

-- --- STATE ---
local mapParts = {}
local currentIndex = 1

-- --- 1. ROBUST MOVEMENT ENFORCEMENT ---
-- Forces speed every frame to override game scripts
RunService.Stepped:Connect(function()
    local char = player.Character
    local hum = char and char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = REQUIRED_SPEED
        hum.JumpPower = REQUIRED_JUMP
        hum.UseJumpPower = true
    end
end)

-- --- 2. MAP SCANNER ---
local function cacheMap()
    clear(mapParts)
    local desc = workspace:GetDescendants()
    for i = 1, #desc do
        local v = desc[i]
        if v:IsA("BasePart") and v.Transparency < 1 and not v:IsA("Terrain") and not v:FindFirstAncestorOfClass("Character") then
            insert(mapParts, v)
        end
    end
    currentIndex = 1
end
cacheMap()

-- --- 3. MAIN EXECUTION LOOP ---
RunService.Heartbeat:Connect(function()
    local char = player.Character
    if not char then return end

    -- A. ANTI-DROP / AUTO-EQUIP
    local tool = player.Backpack:FindFirstChild(paintToolName) or char:FindFirstChild(paintToolName)
    if tool then
        if tool.Parent ~= char then 
            tool.Parent = char 
        end
    else
        return -- Exit if tool is missing from inventory entirely
    end

    local remote = tool:FindFirstChild("Remotes") and tool.Remotes:FindFirstChild("ServerControls")
    if not remote then return end

    -- B. INSTANT GUI CLEANUP
    local palette = pGui:FindFirstChild("PaletteGui", true)
    if palette then palette:Destroy() end

    -- C. BATCHED MAP PAINTING
    for _ = 1, partsPerFrame do
        if currentIndex > #mapParts then
            currentIndex = 1
            break 
        end

        local part = mapParts[currentIndex]
        if part and part.Parent then
            pcall(function()
                remote:InvokeServer("PaintPart", {
                    Part = part,
                    Color = v3Color(random(), random(), random())
                })
            end)
        end
        currentIndex = currentIndex + 1
    end
end)

-- --- 4. SOUND & CACHE REFRESH ---
task.spawn(function()
    while true do
        -- Sound logic
        pcall(function()
            local radio = player:FindFirstChild("Radio", true) or pGui:FindFirstChild("Radio", true)
            if radio then
                local sRemote = radio:FindFirstChild("Remote")
                if sRemote then
                    sRemote:FireServer("Play", sounds[random(#sounds)], "", "")
                end
            end
        end)
        
        task.wait(2) -- Refresh delay
        if currentIndex == 1 then cacheMap() end -- Only re-scan map when a sweep finishes
    end
end)

Features & Information

if you want to use this, all you need to get is that one roblox gear called Paint Bucket. this will rapidly screw up the map of any game. THIS ALSO HAS LEFTOVER AUDIO PLAY FUNCTIONALITY
#gear#tools#color

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts