Auto painter
Key Required Verified

Auto painter

Color by number CraXCraX 97.9K views 131 executesUpdated Aug 2, 2022
5.0/ 5(3 votes)
30100% Positive
Lua Script•52 lines (2136 chars)
-- Huge shoutout and thanks to Votteq https://v3rmillion.net/showthread.php?tid=1164422
local plr = "LocalPlayer" -- Leave to LocalPlayer to paint your own, change name to paint others
local maxDelay = 15 -- 15 is a good value, make higher if you're getting lag issues
local plrPing = game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()

function GetOwner()
	local stringy
	
	for i,v in pairs(game:GetService("Workspace").Map.Blocks:GetDescendants()) do
		if v.Name == "OwnerFace" and v.Parent.Name == "SpawnLocation" then 
			if v:FindFirstChild("SurfaceGui"):FindFirstChild("ImageLabel").Image == tostring("rbxthumb://type=AvatarHeadShot&id="..game:GetService("Players")[plr].UserId.."&w=420&h=420") then
				stringy = tostring("rbxthumb://type=AvatarHeadShot&id="..game:GetService("Players")[plr].UserId.."&w=420&h=420")
			end
		end
	end

	for i,v in pairs(game:GetService("Workspace").Map.Blocks:GetDescendants()) do
		if v.Name == "OwnerFace" and v.Parent.Name == "SpawnLocation" then 
			if v:FindFirstChild("SurfaceGui"):FindFirstChild("ImageLabel").Image == stringy then
				stringy = v
			end
		end
	end
	return stringy.Parent.Parent
end

local usrPlot = GetOwner()

local R = false

function Build()
    if R == false then 
        R = true
	    local remote = game:GetService("ReplicatedStorage").Knit.Services.PixelGeneratorService.RF.DrawPixel
	    for i,v in pairs(usrPlot:WaitForChild("Draw"):GetChildren()) do -- Replace WaitForChild with FindFirstChild if you want it to run per-execute
	        task.spawn(function()
		    if v.Name == "Part" and v:FindFirstChild("Texture").Transparency == 0 then
		        v:FindFirstChild("Texture").Transparency = 0.5 -- To avoid re-painting this and lagging out
	            task.wait(math.random(0,maxDelay)/2) -- I suggest leaving the max on 15. Lower may lag out, higher will take too long.
                if plrPing > 1000 then
                repeat task.wait()
                until plrPing < 800 end
                task.wait(math.random(0,maxDelay)/2)
			    remote:InvokeServer(v)
		    end
	        end)
	    end
    end
    R = false
end

Build()

Features & Information

Most of the base code was made by Votteq on v3rm https://v3rmillion.net/showthread.php?tid=1164422 so huge credit to them for giving me somewhere to start from. Can be a little janky at times, may require executing more than once. How to use: - Load a painting and execute it (will only paint when standing on the canvas) - Change the name on line 2 for co-op/painting on others areas, and change the delay on line 3 if you're having lag.
#auto#paint#pixel#automatic#farm

Community Comments (4)

ArcturusArcturusadminAug 2, 2022(edited)

Literally just change the size of your roller and you have a mega paint brush

LetsgoayeLetsgoayeAug 2, 2022(edited)

It doesnt auto execute all u gotta execute each individually

LetsgoayeLetsgoayeAug 2, 2022(edited)

Nvm works now vouch

MoCapMoCapAug 3, 2022(edited)

@Valenity can you make it and then post it ?

More Scripts for Color by number