Automatic printer inf lead beta
Key Required

Automatic printer inf lead beta

Doodle Obby ✏️KrScriptKrScript 630 views 157 executesUpdated Jan 5, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•450 lines (15438 chars)
if not game:IsLoaded() then game.Loaded:Wait() end

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

-- [[ EVENTS ]] --
local DrawEvent = ReplicatedStorage:FindFirstChild("DrawEvent")
local ColorEvent = ReplicatedStorage:FindFirstChild("ChangeColorEvent")
local EraseEvent = ReplicatedStorage:FindFirstChild("EraseEvent")
local StickerEvent = ReplicatedStorage:FindFirstChild("DeleteStickerEvent")

if not DrawEvent then 
    Rayfield:Notify({Title="CRITICAL ERROR", Content="DrawEvent missing! Game updated?"}) 
    return 
end

-- [[ SETTINGS ]] --
local PrinterSettings = {
    SourceType = "Link",
    Url = "",
    FileName = "art.txt",
    Scale = 0.2,       
    BrushSize = 0.25,  
    Speed = 50,
    Running = false,
    MegaLoad = false,
    AntiDelete = false,
    NoCaps = false,
    InfInk = false,
    Trolling = false,
    LagMode = false,
    Rainbow = false
}

-- [[ PROTECTED FOLDER ]] --
if not workspace:FindFirstChild("HellfireProtected") then
    local f = Instance.new("Folder", workspace)
    f.Name = "HellfireProtected"
end
local ProtectedFolder = workspace.HellfireProtected

local Window = Rayfield:CreateWindow({
    Name = "Hellfire V6.7 | Repair Update",
    ConfigurationSaving = {Enabled = false},
    KeySystem = false, 
})

-- ==============================
-- TAB 1: PRINTER
-- ==============================
local MainTab = Window:CreateTab("Printer", 4483362458)

MainTab:CreateDropdown({
    Name = "Data Source",
    Options = {"Link (Pastebin)", "File (Workspace)"},
    CurrentOption = "Link (Pastebin)",
    Callback = function(Option)
        PrinterSettings.SourceType = (Option == "Link (Pastebin)") and "Link" or "File"
    end,
})

MainTab:CreateInput({
    Name = "Link (URL)",
    PlaceholderText = "https://pastebin.com/raw/...",
    Callback = function(Text) PrinterSettings.Url = Text end,
})

MainTab:CreateInput({
    Name = "File Name (File)",
    PlaceholderText = "art.txt",
    Callback = function(Text) PrinterSettings.FileName = Text end,
})

MainTab:CreateSlider({
    Name = "Brush Size",
    Range = {0.1, 1}, Increment = 0.05, CurrentValue = 0.25,
    Callback = function(V) PrinterSettings.BrushSize = V end,
})

MainTab:CreateSlider({
    Name = "Art Scale",
    Range = {0.05, 1}, Increment = 0.01, CurrentValue = 0.2,
    Callback = function(V) PrinterSettings.Scale = V end,
})

MainTab:CreateSlider({
    Name = "Speed (Dots per Tick)",
    Range = {10, 200}, Increment = 5, CurrentValue = 50,
    Callback = function(V) PrinterSettings.Speed = V end,
})

MainTab:CreateSection("Controls")

MainTab:CreateButton({
    Name = "🧪 TEST (Check Drawing)",
    Callback = function()
        local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
        if root then
            local pos = root.CFrame * CFrame.new(0, 0, -3)
            DrawEvent:FireServer(pos, 0.5, HttpService:GenerateGUID(false), true)
            Rayfield:Notify({Title="Test", Content="Sent 1 test line request."})
        else
            Rayfield:Notify({Title="Error", Content="Character not found."})
        end
    end,
})

MainTab:CreateButton({
    Name = "🎯 DRAW (START)",
    Callback = function()
        if PrinterSettings.Running then return end
        PrinterSettings.Running = true
        
        task.spawn(function()
            local Pixels = nil
            local rawData = ""
            
            -- 1. LOAD DATA
            if PrinterSettings.SourceType == "Link" then
                if PrinterSettings.Url == "" then
                     Rayfield:Notify({Title="Error", Content="No URL provided!"})
                     PrinterSettings.Running = false return
                end
                local s, r = pcall(game.HttpGet, game, PrinterSettings.Url)
                if s then rawData = r else 
                    Rayfield:Notify({Title="Error", Content="Failed to fetch URL (HTTP 404)"})
                    PrinterSettings.Running = false return 
                end
            else
                if PrinterSettings.FileName == "" then
                     Rayfield:Notify({Title="Error", Content="No Filename provided!"})
                     PrinterSettings.Running = false return
                end
                local s, r = pcall(readfile, PrinterSettings.FileName)
                if s then rawData = r else 
                    Rayfield:Notify({Title="Error", Content="File not found in workspace!"})
                    PrinterSettings.Running = false return 
                end
            end

            -- 2. DECODE JSON
            local s2, p = pcall(HttpService.JSONDecode, HttpService, rawData)
            if not s2 or not p then
                Rayfield:Notify({Title="JSON Error", Content="Invalid Data Format."})
                PrinterSettings.Running = false return
            end
            Pixels = p

            if not Pixels or #Pixels == 0 then 
                Rayfield:Notify({Title="Error", Content="Pixel list is empty!"})
                PrinterSettings.Running = false return 
            end

            local Char = LocalPlayer.Character
            local Root = Char and Char:FindFirstChild("HumanoidRootPart")
            if not Root then PrinterSettings.Running = false return end
            
            -- 3. MATH
            local StartCFrame = Root.CFrame
            local lv = StartCFrame.LookVector
            local rv = StartCFrame.RightVector
            
            local FlatLookVector = Vector3.new(lv.X, 0, lv.Z).Unit
            local FlatRightVector = Vector3.new(rv.X, 0, rv.Z).Unit
            
            if FlatLookVector.Magnitude == 0 then FlatLookVector = Vector3.new(0,0,-1) end
            if FlatRightVector.Magnitude == 0 then FlatRightVector = Vector3.new(1,0,0) end

            local OriginPos = Root.Position + (FlatLookVector * 5) + Vector3.new(0, 5, 0)
            local FixedRight = FlatRightVector
            local FixedUp = Vector3.new(0, 1, 0)
            
            local lastColor = nil 
            local counter = 0
            local limit = PrinterSettings.MegaLoad and 500 or PrinterSettings.Speed 
            
            Rayfield:Notify({Title="Start", Content="Total Pixels: " .. #Pixels})

            -- 4. DRAW LOOP
            for i, p in ipairs(Pixels) do
                if not PrinterSettings.Running then break end
                
                -- SMART PARSER
                local x = p.x or p.X or p[1]
                local y = p.y or p.Y or p[2]
                
                if not x or not y then continue end
                
                -- Color Logic
                if not PrinterSettings.Rainbow and ColorEvent then
                    local r = p.r or p.R or (p[3] and p[3].r)
                    local g = p.g or p.G or (p[3] and p[3].g)
                    local b = p.b or p.B or (p[3] and p[3].b)
                    
                    if r and g and b then
                        local newColor = Color3.fromRGB(r, g, b)
                        if newColor ~= lastColor then
                            ColorEvent:FireServer(newColor)
                            lastColor = newColor
                        end
                    end
                end

                local TargetPos = OriginPos + (FixedRight * (x * PrinterSettings.Scale)) - (FixedUp * (y * PrinterSettings.Scale))
                DrawEvent:FireServer(CFrame.new(TargetPos), PrinterSettings.BrushSize, HttpService:GenerateGUID(false), false)
                
                counter = counter + 1
                if counter >= limit then
                    counter = 0
                    if PrinterSettings.MegaLoad then task.wait() else RunService.Heartbeat:Wait() end
                end
            end
            PrinterSettings.Running = false
            Rayfield:Notify({Title="Done", Content="Drawing Finished!"})
        end)
    end,
})

MainTab:CreateButton({
    Name = "STOP",
    Callback = function() PrinterSettings.Running = false end,
})

-- ==============================
-- TAB 2: FUN
-- ==============================
local FunTab = Window:CreateTab("Fun", 4483362458)

FunTab:CreateSection("Color (RGB)")

task.spawn(function()
    local hue = 0
    while true do
        if PrinterSettings.Rainbow and ColorEvent then
            hue = hue + 0.02
            if hue > 1 then hue = 0 end
            local color = Color3.fromHSV(hue, 1, 1)
            pcall(function() ColorEvent:FireServer(color) end)
            task.wait(0.1)
        else
            task.wait(1)
        end
    end
end)

FunTab:CreateToggle({
    Name = "🌈 Rainbow Pencil (RGB)",
    CurrentValue = false,
    Flag = "Rainbow",
    Callback = function(Value) PrinterSettings.Rainbow = Value end,
})

FunTab:CreateSection("Troll Players (Cage)")

task.spawn(function()
    while true do
        if PrinterSettings.Trolling then
            pcall(function()
                for _, player in pairs(Players:GetPlayers()) do
                    if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
                        local root = player.Character.HumanoidRootPart
                        local dist = 3.5 
                        local wallPos = root.CFrame * CFrame.new(0, 0, -dist)
                        
                        if PrinterSettings.LagMode then
                            for i = 1, 5 do DrawEvent:FireServer(wallPos, 0.5, HttpService:GenerateGUID(false), true) end
                        else
                            for h = -2, 2, 1.5 do
                                local hPos = wallPos * CFrame.new(0, h, 0)
                                DrawEvent:FireServer(hPos, 4, HttpService:GenerateGUID(false), true)
                            end
                            local vertRot = wallPos * CFrame.Angles(0, 0, math.rad(90))
                            for v = -2, 2, 1.5 do
                                local vPos = vertRot * CFrame.new(0, v, 0)
                                DrawEvent:FireServer(vPos, 4, HttpService:GenerateGUID(false), true)
                            end
                        end
                    end
                end
            end)
            task.wait(PrinterSettings.LagMode and 0.05 or 0.2)
        else
            task.wait(1)
        end
    end
end)

FunTab:CreateToggle({
    Name = "🧱 Troll Cage (Auto-Trap)",
    CurrentValue = false,
    Flag = "TrollWall",
    Callback = function(Value)
        PrinterSettings.Trolling = Value
        if Value then Rayfield:Notify({Title="Troll", Content="Cage Activated!"}) 
        else PrinterSettings.LagMode = false end
    end,
})

FunTab:CreateToggle({
    Name = "☠️ Lag Mode (Danger!)",
    CurrentValue = false,
    Flag = "LagMode",
    Callback = function(Value)
        PrinterSettings.LagMode = Value
        if Value then Rayfield:Notify({Title="DANGER", Content="Server might crash!"}) end
    end,
})

FunTab:CreateSection("Ink")

task.spawn(function()
    while true do
        if PrinterSettings.InfInk then
            LocalPlayer:SetAttribute("MaxLead", 999999999)
            LocalPlayer:SetAttribute("Lead", 999999999)
        end
        task.wait(0.5)
    end
end)

local InfToggle = FunTab:CreateToggle({
    Name = "♾️ Infinite Ink",
    CurrentValue = false,
    Flag = "InfInk",
    Callback = function(Value) PrinterSettings.InfInk = Value end,
})

FunTab:CreateInput({
    Name = "Set Custom Amount",
    PlaceholderText = "Example: 50000",
    Callback = function(Text)
        local val = tonumber(Text)
        if val then
            PrinterSettings.InfInk = false
            InfToggle:Set(false) 
            LocalPlayer:SetAttribute("MaxLead", val)
            task.wait()
            LocalPlayer:SetAttribute("Lead", val)
            Rayfield:Notify({Title="Success", Content="Ink set to: " .. val})
        end
    end,
})

FunTab:CreateSection("Global Wipe")

FunTab:CreateButton({
    Name = "🗑️ Delete ALL Stickers (Global)",
    Callback = function()
        if workspace:FindFirstChild("Stickers") and StickerEvent then
            local count = 0
            for _, v in pairs(workspace.Stickers:GetChildren()) do
                StickerEvent:FireServer(v)
                count = count + 1
            end
            Rayfield:Notify({Title="Stickers", Content="Deleted: " .. count})
        end
    end,
})

FunTab:CreateButton({
    Name = "⚠️ Erase ALL Drawings (Server)",
    Callback = function()
        if workspace:FindFirstChild("Track") and EraseEvent then
            local count = 0
            Rayfield:Notify({Title="Warning", Content="Wiping map..."})
            for _, v in pairs(workspace.Track:GetChildren()) do
                EraseEvent:FireServer(v)
                count = count + 1
                if count % 200 == 0 then task.wait() end 
            end
            Rayfield:Notify({Title="Done", Content="Erase requests sent."})
        end
    end,
})

-- ==============================
-- TAB 3: OPTIMIZATION
-- ==============================
local OptTab = Window:CreateTab("Optimization", 4483362458)

OptTab:CreateToggle({
    Name = "⚡ No Caps (Max FPS)",
    CurrentValue = false,
    Flag = "NoCaps", 
    Callback = function(Value)
        PrinterSettings.NoCaps = Value
        if Value then
            task.spawn(function()
                while PrinterSettings.NoCaps do
                    if workspace:FindFirstChild("Caps") then workspace.Caps:ClearAllChildren() end
                    task.wait(0.5)
                end
            end)
            if workspace:FindFirstChild("Caps") then
                workspace.Caps.ChildAdded:Connect(function(c)
                    if PrinterSettings.NoCaps then task.wait() c:Destroy() end
                end)
            end
        end
    end,
})

-- ==============================
-- TAB 4: SPECIAL
-- ==============================
local SpecialTab = Window:CreateTab("Special", 4483362458)

SpecialTab:CreateToggle({
    Name = "🔥 Mega Load (Fast Mode)",
    CurrentValue = false,
    Flag = "MegaLoad", 
    Callback = function(Value) PrinterSettings.MegaLoad = Value end,
})

SpecialTab:CreateToggle({
    Name = "🛡️ Anti-Delete (Local)",
    CurrentValue = false,
    Flag = "AntiDelete", 
    Callback = function(Value) PrinterSettings.AntiDelete = Value end,
})

if workspace:FindFirstChild("Track") then
    workspace.Track.ChildRemoved:Connect(function(child)
        if PrinterSettings.AntiDelete and child:IsA("BasePart") then
            local clone = child:Clone()
            clone.Parent = ProtectedFolder
            clone.Anchored = true
            clone.CanCollide = false
            for _, v in pairs(clone:GetChildren()) do
                if v:IsA("Script") or v:IsA("LocalScript") then v:Destroy() end
            end
        end
    end)
end

-- ==============================
-- TAB 5: UTILS
-- ==============================
local UtilsTab = Window:CreateTab("Utils", 4483362458)

UtilsTab:CreateButton({
    Name = "Clear Anti-Delete Copies",
    Callback = function() ProtectedFolder:ClearAllChildren() end,
})

Rayfield:Notify({Title="Hellfire V6.7", Content="Systems Online!"})

Features & Information

The script allows you to print images of any color, but in order to print an image you need JSON file This is a test version, I will give links to pictures soon. ATTENTION SCRIPT ABSOLUTELY MY SYSTEM KEY WILL NOT BE AND DO NOT EVER STEAL IT ATTENTION, PLAY ON WEAK DEVICES. I DO NOT RECOMMEND PRINTING IF YOU ARE SET UP ON THE SMALLEST DETAILS. I AM NOT RESPONSIBLE FOR WHAT YOU HAVE SMARTPHONE
#Op#Inf#Drawing#No key#Free

Community Comments (6)

KrScriptKrScriptJan 5, 2026

Please delete your comment, it's pointless.

KrScriptKrScriptJan 5, 2026

https://pastebin.com/raw/r373diLz

Replying to @KrScript
KrScriptKrScriptJan 5, 2026

Use for drawing

KrScriptKrScriptJan 5, 2026

The script is not visual

catchazzcatchazzJan 5, 2026

ewa

number_1_erlcdevnumber_1_erlcdevJan 5, 2026(edited)

@ScrlptBloxR ur "deobfusactor" btw is a leaked source of a dumper, nice skidding

More Scripts for Doodle Obby ✏️