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!"})