starving artists script

These scripts are different from any other Roblox scripts we shared previously. You will need to pay attention and download a program for the ability to upload any image as artwork in the game.

Starving Artists Image Upload Script

The script code alone will not work you will need to download a program BitMapper and Microsoft .Net Runtime for success.

Download Bitmapper Here

Download Microsoft Runtime Here

Now Follow This Video by NukevsCity YouTuber and copy-paste the below script as described by him.

local function color_pixel(index,color)
local connection = (getconnections(UI[tostring(index)].MouseButton1Click))[1]
setupvalue(connection.Function,9,color)
connection.Function()
end
local low_quality = 25

lq=low_quality
for i=1,1024 do
   v=imageBytes[i]
   if not v  or not v.R or not v.G or not v.B then continue end
  -- if v.R == 0 and v.G == 0 and v.B == 0 then v = {R=255,G=255,B=255} end
  local r,g,b = v.R or 0,v.G or 0,v.B or 0
  print(i, r-(r%lq),g-(g%lq),b-(b%lq))
  color_pixel(i,Color3.fromRGB(r-(r%lq),g-(g%lq),b-(b%lq)))
end

Starving Artists Artwork Clone Script

The below script is separate from others provided here, this script is made by Fuu and is capable of cloning the artwork paintings.

local collectionService = game:GetService("CollectionService")
local player = game.Players.LocalPlayer
_G.refreshing = true
local cloneGui = {}

function cloneGui.buildRoot()
   local paintFrame = player.PlayerGui.MainGui.PaintFrame
   local cloneFrame = paintFrame:Clone()
   
   -- Initialize root frame.
   cloneFrame.Name = 'CloneFrame'
   cloneFrame.Parent = paintFrame
   cloneFrame.ToolsFrame:Destroy()
   cloneFrame.ColorFrame:Destroy()
   cloneFrame.NextButton:Destroy()
   cloneFrame.UIAspectRatioConstraint:Destroy()
   cloneFrame.Grid:Destroy()
   cloneFrame.Confirmation:Destroy()
   cloneFrame.AnchorPoint = Vector2.new(0, 0.5)
   cloneFrame.Position = UDim2.new(1, 10, 0.5, 0)
   cloneFrame.Size = UDim2.new(0.5, 0, 1, 0)
   cloneFrame.Visible = true
   
   paintFrame.Position = UDim2.new(0.5, -((cloneFrame.AbsoluteSize.X / 2) + 5), 0.5, 0)
   
   cloneGui.root = cloneFrame
end

function cloneGui.buildButtons()
   local nextButton = player.PlayerGui.MainGui.PaintFrame.NextButton
   local copyButton = nextButton:Clone()
   local cloneButton = nextButton:Clone()
   local buttonSize = UDim2.new(0.4, 0, 0.09, 0)
   
   -- Initialize copy button.
   copyButton.Parent = cloneGui.root
   copyButton.Size = buttonSize
   copyButton.Position = UDim2.new(0.28, 0, 0.895)
   copyButton.Label.Text = 'COPY'
   copyButton.Name = 'CopyButton'
   
   -- Initialize clone button.
   cloneButton.Parent = cloneGui.root
   cloneButton.Size = buttonSize
   cloneButton.Position = UDim2.new(0.72, 0, 0.895)
   cloneButton.Label.Text = 'CLONE'
   cloneButton.Name = 'CloneButton'

   -- Animation functions.
   for i, button in pairs({cloneButton, copyButton}) do
       button.MouseEnter:Connect(function()
           button:TweenSize(UDim2.new(buttonSize.X.Scale + 0.015, 0, buttonSize.Y.Scale + 0.015, 0), 'Out', 'Quad', 0.2, true)
       end)
       
       button.MouseLeave:Connect(function()
           button:TweenSize(buttonSize, 'Out', 'Quad', 0.2, true)
       end)
   end
   
   -- Button actions.
   copyButton.MouseButton1Click:Connect(copyGrid)
   
   cloneButton.MouseButton1Click:Connect(cloneGrid)
end

function cloneGui.buildScrollingFrame()
   local scrollingFrame = Instance.new('ScrollingFrame')
   local uiListLayout = Instance.new('UIListLayout')
   local uiPadding = Instance.new('UIPadding')
   
   -- Initialize scrolling frame.
   scrollingFrame.Parent = cloneGui.root
   scrollingFrame.AnchorPoint = Vector2.new(0.5, 0)
   scrollingFrame.Position = UDim2.new(0.5, 0, 0.05, 0)
   scrollingFrame.Size = UDim2.new(0.8, 0, 0.75, 0)
   scrollingFrame.BackgroundTransparency = 1
   scrollingFrame.BorderSizePixel = 0
   scrollingFrame.ScrollBarImageColor3 = Color3.new((210 / 255), (76 / 255), (71 / 255))
   scrollingFrame.ScrollBarThickness = 4
   scrollingFrame.ZIndex = 3
   
   -- Configure layout.
   uiListLayout.Parent = scrollingFrame
   uiListLayout.Padding = UDim.new(0, 10)
   uiPadding.Parent = scrollingFrame
   uiPadding.PaddingLeft = UDim.new(0.08, 0)
   uiPadding.PaddingRight = UDim.new(0.08, 0)
   uiPadding.PaddingTop = UDim.new(0, 5)
   
   uiListLayout.Changed:Connect(function()
       scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, uiListLayout.AbsoluteContentSize.Y + 10)
   end)
   
   cloneGui.scrollingFrame = scrollingFrame
end

function cloneGui.addGrid(grid)
   local UIStroke = player.PlayerGui.MainGui.PaintFrame.Grid.UIStroke:Clone()
   local container = Instance.new('Frame')
   local preview = grid:Clone()
   
   -- Initialize new container.
   container.Parent = cloneGui.scrollingFrame
   container.Size = UDim2.new(1, 0, 1, 0)
   container.SizeConstraint = Enum.SizeConstraint.RelativeXX
   container.BackgroundTransparency = 0.8
   container.ZIndex = 4
   UIStroke.Thickness = 4.5
   UIStroke.Parent = container
   UIStroke.Enabled = false
   
   -- Clone grid into container.
   preview.Parent = container
   
   if (cloneGui.selected == nil) then
       cloneGui.selected = container
       UIStroke.Enabled = true
   end
   
   container.InputBegan:Connect(function(userInput)
       if (userInput.UserInputType == Enum.UserInputType.MouseButton1) then
           cloneGui.selected.UIStroke.Enabled = false
           UIStroke.Enabled = true
           cloneGui.selected = container
       end
   end)
end

function copyGrid()
   if (cloneGui.selected ~= nil) then
       local target = cloneGui.selected.Grid
       local destination = player.PlayerGui.MainGui.PaintFrame.Grid
       
       for i = 1, 1024 do
           destination[i].BackgroundColor3 = target[i].BackgroundColor3
       end
   end
end

function cloneGrid()
   local remote = game.ReplicatedStorage.Remotes.CreateArt
   local frameColor = "ffffff"
   local frame = "Starter Frame"
   local name = "a"
   local cells = {}
   
   local grid = cloneGui.selected.Grid
   for i = 1, 1024 do
      cells[i] = grid[i].BackgroundColor3:ToHex()
   end
 
   local payload = {}
   payload["FrameColor"] = frameColor
   payload["Frame"] = frame
   payload["Name"] = name
   payload["Cells"] = cells
   
   remote:InvokeServer(payload)
end

function refreshGrids()
   local objects = game.Workspace.Plots:GetDescendants()
   for i, v in ipairs(objects) do
       if (v.Name == 'Grid' and v.ClassName == 'Frame' and not collectionService:HasTag(v, 'cloned')) then
           if (#v:GetChildren() == 1027) then
               collectionService:AddTag(v, 'cloned')
               cloneGui.addGrid(v)
           end
       end
   end
end

cloneGui.buildRoot()
cloneGui.buildButtons()
cloneGui.buildScrollingFrame()

while (_G.refreshing) do
   refreshGrids()
   wait(0.1)
end