Roblox starving artists script is here on this site
Starving Artists is a Roblox game about creating and selling paintings. We all enjoy painting, and we all try our hardest to create great art of something, whether it’s a place or an object, but we all fail to complete our painting dreams.
The Roblox OP Starving Artists script is a LUA code tool that will copy and clone any artwork you select into your inventory. The fantastic code was created by Xyba and is available on the best Roblox scripts forum, v3rmillion.
Another excellent addition to this list of script codes is the Starvin Artists Upload any Image Art Script created by YouTuber nukevscity. He wrote script code that allows you to use any image as artwork in the game.
Starving Artists Script Features
- COPY SELECTED PAINTING
- CLONE VIA REMOTE
- AUTO CAPTURE NEW PAINTINGS IN THE WORKSPACE
- and more
Starving Artists Script Pastebin
1 ;
local function assemblePayload(targetEasel) local grid = targetEasel.Canvas.SurfaceGui.Grid local payload = {} return(payload) local function clonePainting(targetEasel) local mouse = game.Players.LocalPlayer:GetMouse() mouse.Button1Down:Connect(function() mouse.Button1Up:Connect(function()
local cells = {}
local name = targetEasel.ArtInfo.Frame.Info.ArtName.Text
local frameColor = targetEasel.ArtInfo.Frame.Info.Frame.BackgroundColor3:ToHex()
for i = 1, 1024 do
cells[i] = grid[i].BackgroundColor3:ToHex()
end
payload[“FrameColor”] = frameColor
payload[“Name”] = name
payload[“Cells”] = cells
end
local payload = assemblePayload(targetEasel)
local remote = game.ReplicatedStorage.Remotes.CreateArt
remote:InvokeServer(payload)
end
local debounce = false
if (mouse.Target) then
if (mouse.Target.Name == “Canvas” and not debounce) then
clonePainting(mouse.Target.Parent)
debounce = true
end
end
end)
if (debounce) then
debounce = false
end
end)
2 ;
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
3 ;
4 ;