-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --// SMALL DRAGGABLE STICKER DRAWING EDITOR --// LocalScript -> StarterGui local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -------------------------------------------------- -- KEY SYSTEM -------------------------------------------------- local CORRECT_KEY = "like-2023" local keyGui = Instance.new("ScreenGui") keyGui.Name = "KeySystem" keyGui.ResetOnSpawn = false keyGui.Parent = playerGui local keyFrame = Instance.new("Frame") keyFrame.Size = UDim2.fromOffset(300, 160) keyFrame.Position = UDim2.fromScale(0.5, 0.5) keyFrame.AnchorPoint = Vector2.new(0.5, 0.5) keyFrame.BackgroundColor3 = Color3.fromRGB(20,20,20) keyFrame.Parent = keyGui local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,40) title.Text = "KEY SYSTEM" title.TextScaled = true title.TextColor3 = Color3.new(1,1,1) title.BackgroundTransparency = 1 title.Parent = keyFrame local keyBox = Instance.new("TextBox") keyBox.Size = UDim2.new(1,-30,0,38) keyBox.Position = UDim2.fromOffset(15,50) keyBox.PlaceholderText = "Enter key..." keyBox.Text = "" keyBox.TextScaled = true keyBox.Parent = keyFrame local enter = Instance.new("TextButton") enter.Size = UDim2.new(1,-30,0,38) enter.Position = UDim2.fromOffset(15,100) enter.Text = "ENTER" enter.TextScaled = true enter.Parent = keyFrame local unlocked = false enter.MouseButton1Click:Connect(function() if keyBox.Text == CORRECT_KEY then unlocked = true keyGui:Destroy() else keyBox.Text = "" keyBox.PlaceholderText = "Wrong key!" end end) repeat task.wait() until unlocked -------------------------------------------------- -- MAIN GUI -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "SmallStickerEditor" gui.ResetOnSpawn = false gui.Parent = playerGui -------------------------------------------------- -- BLACK EDITOR -------------------------------------------------- local editor = Instance.new("Frame") editor.Size = UDim2.fromOffset(500,360) editor.Position = UDim2.fromScale(0.5,0.5) editor.AnchorPoint = Vector2.new(0.5,0.5) editor.BackgroundColor3 = Color3.fromRGB(20,20,20) editor.Parent = gui -------------------------------------------------- -- DRAG BAR -------------------------------------------------- local dragBar = Instance.new("TextButton") dragBar.Size = UDim2.new(1,0,0,25) dragBar.Position = UDim2.fromOffset(0,0) dragBar.BackgroundColor3 = Color3.fromRGB(35,35,35) dragBar.Text = "✦ STICKER EDITOR ✦" dragBar.TextScaled = true dragBar.TextColor3 = Color3.new(1,1,1) dragBar.AutoButtonColor = false dragBar.Parent = editor local dragging = false local dragStart local startPosition dragBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = editor.Position end end) UIS.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart editor.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) -------------------------------------------------- -- WHITE CANVAS -------------------------------------------------- local canvas = Instance.new("Frame") canvas.Size = UDim2.fromOffset(300,250) canvas.Position = UDim2.fromOffset(180,35) canvas.BackgroundColor3 = Color3.new(1,1,1) canvas.BorderSizePixel = 0 canvas.ClipsDescendants = true canvas.Parent = editor -------------------------------------------------- -- SETTINGS -------------------------------------------------- local penSize = 10 local penColor = Color3.fromRGB(0,0,0) local erasing = false local drawing = false -------------------------------------------------- -- PEN -------------------------------------------------- local pen = Instance.new("TextButton") pen.Size = UDim2.fromOffset(65,32) pen.Position = UDim2.fromOffset(15,35) pen.Text = "PEN" pen.TextScaled = true pen.Parent = editor pen.MouseButton1Click:Connect(function() erasing = false end) -------------------------------------------------- -- ERASER -------------------------------------------------- local eraser = Instance.new("TextButton") eraser.Size = UDim2.fromOffset(90,32) eraser.Position = UDim2.fromOffset(85,35) eraser.Text = "ERASER" eraser.TextScaled = true eraser.Parent = editor eraser.MouseButton1Click:Connect(function() erasing = true end) -------------------------------------------------- -- COLORS -------------------------------------------------- local colors = { Color3.fromRGB(0,0,0), Color3.fromRGB(255,0,0), Color3.fromRGB(255,0,170), Color3.fromRGB(0,100,255), Color3.fromRGB(0,200,100), Color3.fromRGB(255,200,0), Color3.fromRGB(150,0,255), Color3.fromRGB(255,120,0) } for i,color in ipairs(colors) do local button = Instance.new("TextButton") button.Size = UDim2.fromOffset(30,30) button.Position = UDim2.fromOffset( 15 + ((i-1)%2)*40, 80 + math.floor((i-1)/2)*38 ) button.BackgroundColor3 = color button.Text = "" button.Parent = editor button.MouseButton1Click:Connect(function() penColor = color erasing = false end) end -------------------------------------------------- -- SIZE SLIDER -------------------------------------------------- local slider = Instance.new("Frame") slider.Size = UDim2.fromOffset(140,6) slider.Position = UDim2.fromOffset(20,285) slider.BackgroundColor3 = Color3.fromRGB(120,120,120) slider.Parent = editor local circle = Instance.new("TextButton") circle.Size = UDim2.fromOffset(18,18) circle.Position = UDim2.fromOffset(70,-6) circle.Text = "" circle.BackgroundColor3 = Color3.new(1,1,1) circle.Parent = slider local sliding = false circle.MouseButton1Down:Connect(function() sliding = true end) UIS.InputChanged:Connect(function(input) if sliding and input.UserInputType == Enum.UserInputType.MouseMovement then local x = math.clamp( input.Position.X - slider.AbsolutePosition.X, 0, slider.AbsoluteSize.X ) circle.Position = UDim2.fromOffset(x-9,-6) penSize = math.floor( 3 + (x/slider.AbsoluteSize.X)*27 ) end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliding = false end end) -------------------------------------------------- -- DRAWING -------------------------------------------------- local function eraseAt(position) local x = position.X - canvas.AbsolutePosition.X local y = position.Y - canvas.AbsolutePosition.Y for _,dot in ipairs(canvas:GetChildren()) do if dot:IsA("Frame") then local dx = dot.Position.X.Offset - x local dy = dot.Position.Y.Offset - y if math.sqrt(dx*dx + dy*dy) < penSize*1.5 then dot:Destroy() end end end end local function draw(position) local x = position.X - canvas.AbsolutePosition.X local y = position.Y - canvas.AbsolutePosition.Y if erasing then eraseAt(position) return end local dot = Instance.new("Frame") dot.BorderSizePixel = 0 dot.BackgroundColor3 = penColor dot.Size = UDim2.fromOffset( penSize, penSize ) dot.Position = UDim2.fromOffset( x-penSize/2, y-penSize/2 ) dot.Parent = canvas end canvas.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then drawing = true draw(input.Position) end end) canvas.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then drawing = false end end) canvas.InputChanged:Connect(function(input) if drawing and input.UserInputType == Enum.UserInputType.MouseMovement then draw(input.Position) end end) -------------------------------------------------- -- SAVES -------------------------------------------------- local saves = {} local lastClick = {} local function captureDrawing() local result = {} for _,dot in ipairs(canvas:GetChildren()) do if dot:IsA("Frame") then table.insert(result,{ x = dot.Position.X.Offset, y = dot.Position.Y.Offset, size = dot.Size.X.Offset, color = dot.BackgroundColor3 }) end end return result end -------------------------------------------------- -- STICKER ON HEAD -------------------------------------------------- local activeSticker local function showSticker(data) if activeSticker then activeSticker:Destroy() end local character = player.Character if not character then return end local head = character:FindFirstChild("Head") if not head then return end local sticker = Instance.new("BillboardGui") sticker.Name = "DrawingSticker" sticker.Adornee = head sticker.Size = UDim2.fromOffset(300,250) sticker.StudsOffset = Vector3.new(0,0.2,0) sticker.AlwaysOnTop = true sticker.LightInfluence = 0 sticker.Parent = playerGui activeSticker = sticker for _,info in ipairs(data) do local dot = Instance.new("Frame") dot.BorderSizePixel = 0 dot.BackgroundColor3 = info.color dot.Size = UDim2.fromOffset( info.size, info.size ) dot.Position = UDim2.fromOffset( info.x, info.y ) dot.Parent = sticker end task.delay(5,function() if activeSticker == sticker then sticker:Destroy() activeSticker = nil end end) end -------------------------------------------------- -- 4 SAVE SLOTS -------------------------------------------------- for i = 1,4 do local save = Instance.new("TextButton") save.Size = UDim2.fromOffset(105,32) save.Position = UDim2.fromOffset( 10+(i-1)*120, 315 ) save.Text = "SAVE "..i save.TextScaled = true save.Parent = editor lastClick[i] = 0 save.MouseButton1Click:Connect(function() local now = os.clock() if now-lastClick[i] <= 0.45 then if saves[i] and #saves[i] > 0 then showSticker(saves[i]) save.Text = "STICKER!" end else saves[i] = captureDrawing() save.Text = "SAVED!" task.delay(0.8,function() if save.Parent then save.Text = "SAVE "..i end end) end lastClick[i] = now end) end