M
Description
Eraser Pen Sliding circle Slots.
GAME[NEW] Anomaly Cafe
UPDATEDOct 10, 2026
ACCESSKey System
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. 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 BloxScripts 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)
endReview the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place