--[[ Holographic Matrix | Pyro Panel (REBORN) v4.4 Bulletproof Anti-Crash Loop & Strict ScrollingFrame VIP Filter ]] local CoreGui = game:GetService("CoreGui") local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local SoundService = game:GetService("SoundService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- Safely assign parent using gethui or fallback local TargetParent = PlayerGui if gethui then TargetParent = gethui() elseif CoreGui then TargetParent = CoreGui end pcall(function() if TargetParent:FindFirstChild("PyroLiteGui") then TargetParent.PyroLiteGui:Destroy() end end) local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "PyroLiteGui" ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 999999 ScreenGui.Parent = TargetParent -- Sounds local SettingsBGM = Instance.new("Sound", SoundService) SettingsBGM.SoundId = "rbxassetid://9043887091" SettingsBGM.Volume = 0.5 SettingsBGM.Looped = true local ClickSFX = Instance.new("Sound", SoundService) ClickSFX.SoundId = "rbxassetid://6895079853" ClickSFX.Volume = 0.6 --------------------------------------------------------- -- FULLSCREEN SYSTEM SETTINGS OVERLAY --------------------------------------------------------- local SettingsOverlay = Instance.new("Frame", ScreenGui) SettingsOverlay.Size = UDim2.new(1, 0, 1, 0) SettingsOverlay.BackgroundColor3 = Color3.fromRGB(10, 40, 65) SettingsOverlay.BackgroundTransparency = 0.1 SettingsOverlay.ClipsDescendants = true SettingsOverlay.Visible = false SettingsOverlay.ZIndex = 300 local SettingsGradient = Instance.new("UIGradient", SettingsOverlay) SettingsGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 200, 240)), ColorSequenceKeypoint.new(1, Color3.fromRGB(5, 25, 45)) }) -- Gear Animations local Gear1 = Instance.new("TextLabel", SettingsOverlay) Gear1.Size = UDim2.new(0, 80, 0, 80) Gear1.Position = UDim2.new(0.05, 0, 0.1, 0) Gear1.BackgroundTransparency = 1 Gear1.Text = "⚙️" Gear1.TextSize = 60 Gear1.ZIndex = 301 task.spawn(function() local rot = 0 while true do rot = (rot + 2) % 360 Gear1.Rotation = rot task.wait(0.03) end end) -- Flying Real Roblox Avatars local avatarUserIds = {63733005, 2, 1, 156} task.spawn(function() while true do if SettingsOverlay.Visible then local flyer = Instance.new("ImageLabel", SettingsOverlay) flyer.Size = UDim2.new(0, 48, 0, 48) flyer.BackgroundTransparency = 1 flyer.Image = "rbxthumb://type=AvatarHeadShot&id=" .. avatarUserIds[math.random(1, #avatarUserIds)] .. "&w=150&h=150" flyer.ZIndex = 301 flyer.Position = UDim2.new(math.random(), 0, 1.1, 0) Instance.new("UICorner", flyer).CornerRadius = UDim.new(1, 0) local tween = TweenService:Create(flyer, TweenInfo.new(math.random(4, 7), Enum.EasingStyle.Linear), { Position = UDim2.new(math.random(), 0, -0.15, 0), Rotation = math.random(-90, 90) }) tween:Play() tween.Completed:Connect(function() flyer:Destroy() end) end task.wait(1.2) end end) local SettingsTitle = Instance.new("TextLabel", SettingsOverlay) SettingsTitle.Size = UDim2.new(1, 0, 0, 50) SettingsTitle.Position = UDim2.new(0, 0, 0, 15) SettingsTitle.BackgroundTransparency = 1 SettingsTitle.Text = "⚙️ SYSTEM SETTINGS" SettingsTitle.TextColor3 = Color3.fromRGB(255, 255, 255) SettingsTitle.Font = Enum.Font.FredokaOne SettingsTitle.TextSize = 24 SettingsTitle.ZIndex = 302 local SettingsContainer = Instance.new("Frame", SettingsOverlay) SettingsContainer.Size = UDim2.new(0, 320, 0, 240) SettingsContainer.Position = UDim2.new(0.5, -160, 0.45, -100) SettingsContainer.BackgroundTransparency = 1 SettingsContainer.ZIndex = 302 local SettingsList = Instance.new("UIListLayout", SettingsContainer) SettingsList.Padding = UDim.new(0, 6) SettingsList.HorizontalAlignment = Enum.HorizontalAlignment.Center --------------------------------------------------------- -- MAIN PANEL UI FRAME --------------------------------------------------------- local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Size = UDim2.new(0, 340, 0, 260) MainFrame.Position = UDim2.new(0.5, -170, 0.4, -130) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 65, 95) MainFrame.BackgroundTransparency = 0.25 MainFrame.Active = true MainFrame.Draggable = true MainFrame.ClipsDescendants = true local MainGradient = Instance.new("UIGradient", MainFrame) MainGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 200, 240)), ColorSequenceKeypoint.new(1, Color3.fromRGB(5, 30, 55)) }) MainGradient.Rotation = 90 Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 18) local Title = Instance.new("TextLabel", MainFrame) Title.Size = UDim2.new(1, -20, 0, 30) Title.Position = UDim2.new(0, 14, 0, 5) Title.BackgroundTransparency = 1 Title.Text = "🌐 Pyro Panel | Bulletproof Stack Edition" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.FredokaOne Title.TextSize = 13 Title.TextXAlignment = Enum.TextXAlignment.Left local ToggleOrb = Instance.new("TextButton", ScreenGui) ToggleOrb.Size = UDim2.new(0, 48, 0, 48) ToggleOrb.Position = UDim2.new(0.05, 0, 0.25, 0) ToggleOrb.BackgroundColor3 = Color3.fromRGB(0, 180, 220) ToggleOrb.Text = "🔥" ToggleOrb.TextSize = 22 ToggleOrb.Active = true ToggleOrb.Draggable = true Instance.new("UICorner", ToggleOrb).CornerRadius = UDim.new(1, 0) local createdButtons = {} local function CreateButton(text, parentFrame, layoutOrder) local Btn = Instance.new("TextButton", parentFrame) Btn.Size = UDim2.new(1, 0, 0, 30) Btn.BackgroundColor3 = Color3.fromRGB(0, 160, 220) Btn.BackgroundTransparency = 0.2 Btn.Text = text Btn.TextColor3 = Color3.fromRGB(255, 255, 255) Btn.Font = Enum.Font.SourceSansBold Btn.TextSize = 11 Btn.LayoutOrder = layoutOrder or 1 Btn.ZIndex = 303 local BtnGradient = Instance.new("UIGradient", Btn) BtnGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 230, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 90, 160)) }) BtnGradient.Rotation = 90 Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 10) Btn.MouseButton1Click:Connect(function() ClickSFX:Play() end) table.insert(createdButtons, Btn) return Btn end --------------------------------------------------------- -- PAGES --------------------------------------------------------- local MainMenuFrame = Instance.new("Frame", MainFrame) MainMenuFrame.Size = UDim2.new(1, -24, 1, -45) MainMenuFrame.Position = UDim2.new(0, 12, 0, 38) MainMenuFrame.BackgroundTransparency = 1 local MainList = Instance.new("UIListLayout", MainMenuFrame) MainList.Padding = UDim.new(0, 6) local BtnAutoGrind = CreateButton("🌾 Open Auto-Grind Engine", MainMenuFrame, 1) local BtnSystemSettings = CreateButton("⚙️ System Settings (Full Screen)", MainMenuFrame, 2) local BtnSpeed = CreateButton("⚡ Movement Speed Boost [OFF]", MainMenuFrame, 3) local GrindMenuFrame = Instance.new("Frame", MainFrame) GrindMenuFrame.Size = UDim2.new(1, -24, 1, -45) GrindMenuFrame.Position = UDim2.new(0, 12, 0, 38) GrindMenuFrame.BackgroundTransparency = 1 GrindMenuFrame.Visible = false local GrindList = Instance.new("UIListLayout", GrindMenuFrame) GrindList.Padding = UDim.new(0, 5) local BtnStartGrind = CreateButton("🚀 Start AFK Buy, Stack & Ignite Loop", GrindMenuFrame, 1) local BtnIgnite = CreateButton("💥 Master Ignite All Fuses", GrindMenuFrame, 2) local BtnBackGrind = CreateButton("⬅ Back to Main Menu", GrindMenuFrame, 3) -- System Settings Controls local BtnToggleGrindSystem = CreateButton("🔄 Auto-Grind Engine: [ ENABLED ]", SettingsContainer, 1) local BtnThemeFrutiger = CreateButton("🌐 Theme: Frutiger Aero (Cyan)", SettingsContainer, 2) local BtnThemeClassic = CreateButton("💎 Theme: Classic Aqua Glass", SettingsContainer, 3) local BtnThemeLight = CreateButton("☀️ Theme: Light Mode", SettingsContainer, 4) local BtnThemeDark = CreateButton("🌙 Theme: Dark Mode", SettingsContainer, 5) local BtnExitSettings = CreateButton("🚪 Save & Exit System Settings", SettingsContainer, 6) --------------------------------------------------------- -- THEME ENGINE --------------------------------------------------------- local function ApplyTheme(theme) if theme == "Frutiger" then MainFrame.BackgroundColor3 = Color3.fromRGB(15, 65, 95) MainFrame.BackgroundTransparency = 0.25 MainGradient.Enabled = true Title.TextColor3 = Color3.fromRGB(255, 255, 255) for _, btn in ipairs(createdButtons) do btn.BackgroundColor3 = Color3.fromRGB(0, 160, 220) btn.TextColor3 = Color3.fromRGB(255, 255, 255) if btn:FindFirstChild("UIGradient") then btn.UIGradient.Enabled = true end end elseif theme == "Classic" then MainFrame.BackgroundColor3 = Color3.fromRGB(5, 30, 45) MainFrame.BackgroundTransparency = 0.15 MainGradient.Enabled = true Title.TextColor3 = Color3.fromRGB(0, 255, 200) for _, btn in ipairs(createdButtons) do btn.BackgroundColor3 = Color3.fromRGB(10, 50, 75) btn.TextColor3 = Color3.fromRGB(0, 255, 200) if btn:FindFirstChild("UIGradient") then btn.UIGradient.Enabled = false end end elseif theme == "Light" then MainFrame.BackgroundColor3 = Color3.fromRGB(240, 245, 250) MainFrame.BackgroundTransparency = 0.05 MainGradient.Enabled = false Title.TextColor3 = Color3.fromRGB(20, 20, 30) for _, btn in ipairs(createdButtons) do btn.BackgroundColor3 = Color3.fromRGB(220, 225, 235) btn.TextColor3 = Color3.fromRGB(30, 30, 40) if btn:FindFirstChild("UIGradient") then btn.UIGradient.Enabled = false end end elseif theme == "Dark" then MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 22) MainFrame.BackgroundTransparency = 0.05 MainGradient.Enabled = false Title.TextColor3 = Color3.fromRGB(240, 240, 245) for _, btn in ipairs(createdButtons) do btn.BackgroundColor3 = Color3.fromRGB(32, 32, 40) btn.TextColor3 = Color3.fromRGB(240, 240, 245) if btn:FindFirstChild("UIGradient") then btn.UIGradient.Enabled = false end end end end BtnThemeFrutiger.MouseButton1Click:Connect(function() ApplyTheme("Frutiger") end) BtnThemeClassic.MouseButton1Click:Connect(function() ApplyTheme("Classic") end) BtnThemeLight.MouseButton1Click:Connect(function() ApplyTheme("Light") end) BtnThemeDark.MouseButton1Click:Connect(function() ApplyTheme("Dark") end) --------------------------------------------------------- -- LOGIC & ENGINES --------------------------------------------------------- local systemGrindEnabled = true local autoGrindRunning = false local returnSpot = nil BtnSystemSettings.MouseButton1Click:Connect(function() MainFrame.Visible = false SettingsOverlay.Visible = true SettingsBGM:Play() end) BtnToggleGrindSystem.MouseButton1Click:Connect(function() systemGrindEnabled = not systemGrindEnabled BtnToggleGrindSystem.Text = systemGrindEnabled and "🔄 Auto-Grind Engine: [ ENABLED ]" or "🔄 Auto-Grind Engine: [ DISABLED ]" BtnStartGrind.Text = systemGrindEnabled and "🚀 Start AFK Auto-Buy & Place Loop" or "🚫 Grind Disabled in Settings" end) BtnExitSettings.MouseButton1Click:Connect(function() SettingsOverlay.Visible = false SettingsBGM:Stop() MainFrame.Visible = true end) --------------------------------------------------------- -- STRICT UI SCANNER (THE VIP FIX) --------------------------------------------------------- local function AutoPurchaseMarketItems() for _, gui in ipairs(PlayerGui:GetChildren()) do if gui:IsA("ScreenGui") and gui.Enabled and gui.Name ~= "PyroLiteGui" then for _, desc in ipairs(gui:GetDescendants()) do if desc:IsA("TextButton") and desc.Visible then if string.upper(desc.Text or "") == "BUY" then -- Ensure button is actually green (more G than R and B) local bg = desc.BackgroundColor3 local isGreen = (bg.G > bg.R + 0.1) and (bg.G > bg.B + 0.1) -- CRITICAL FIX: The button MUST be inside a ScrollingFrame. -- The normal market uses a scrolling list. VIP pop-ups do not. local isInsideScrollingFrame = false local parentCheck = desc.Parent while parentCheck and parentCheck ~= gui do if parentCheck:IsA("ScrollingFrame") then isInsideScrollingFrame = true break end parentCheck = parentCheck.Parent end if isGreen and isInsideScrollingFrame then pcall(function() firesignal(desc.MouseButton1Click) firesignal(desc.Activated) end) task.wait(0.05) end end end end -- Look for and close any prompt that says "VIP" or "Robux" for _, desc in ipairs(gui:GetDescendants()) do if desc:IsA("TextLabel") and (string.find(string.lower(desc.Text), "vip") or string.find(string.lower(desc.Text), "robux")) then for _, closeBtn in ipairs(gui:GetDescendants()) do if closeBtn:IsA("TextButton") and (closeBtn.Text == "X" or string.find(string.lower(closeBtn.Text), "close")) then pcall(function() firesignal(closeBtn.MouseButton1Click) end) end end end end end end end BtnIgnite.MouseButton1Click:Connect(function() for _, prompt in ipairs(Workspace:GetDescendants()) do if prompt:IsA("ProximityPrompt") then fireproximityprompt(prompt) end end end) --------------------------------------------------------- -- ANTI-CRASH AUTO-GRIND LOOP --------------------------------------------------------- local function RunAutoGrindLoop() while autoGrindRunning and systemGrindEnabled do -- Safety PCall prevents the loop from silently breaking local success, err = pcall(function() local char = LocalPlayer.Character if not char then return end local hum = char:FindFirstChild("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") local backpack = LocalPlayer:FindFirstChild("Backpack") -- Wait for player to be alive and loaded if not hrp or not backpack or not hum or hum.Health <= 0 then return end if not returnSpot then returnSpot = hrp.CFrame end -- 1. TELEPORT TO SHOP local foundShop = false for _, prompt in ipairs(Workspace:GetDescendants()) do if prompt:IsA("ProximityPrompt") then local txt = string.lower((prompt.ObjectText or "") .. " " .. (prompt.ActionText or "")) if string.find(txt, "shop") or string.find(txt, "market") then hrp.CFrame = prompt.Parent:IsA("BasePart") and prompt.Parent.CFrame or hrp.CFrame task.wait(0.4) fireproximityprompt(prompt) foundShop = true break end end end if foundShop then task.wait(0.8) AutoPurchaseMarketItems() task.wait(0.4) end -- 2. RETURN TO STACK SPOT hrp.CFrame = returnSpot task.wait(0.4) -- 3. DROP STACK local toolsPlaced = 0 for _, item in ipairs(backpack:GetChildren()) do if not autoGrindRunning or not systemGrindEnabled then break end if item:IsA("Tool") and not string.find(string.lower(item.Name), "lighter") then hrp.CFrame = returnSpot task.wait(0.1) item.Parent = char task.wait(0.1) item:Activate() task.wait(0.15) toolsPlaced = toolsPlaced + 1 end end -- 4. SPAM IGNITE if toolsPlaced > 0 then task.wait(0.3) for i = 1, 3 do for _, prompt in ipairs(Workspace:GetDescendants()) do if prompt:IsA("ProximityPrompt") then local txt = string.lower(prompt.ActionText or "") if string.find(txt, "fuse") or string.find(txt, "light") or string.find(txt, "interact") then if prompt.Parent and prompt.Parent:IsA("BasePart") then if (prompt.Parent.Position - hrp.Position).Magnitude <= 20 then fireproximityprompt(prompt) end end end end end task.wait(0.15) end end end) -- If an unexpected game glitch happens, wait and try again instead of breaking if not success then task.wait(2) end task.wait(1.5) end end BtnStartGrind.MouseButton1Click:Connect(function() if not systemGrindEnabled then return end autoGrindRunning = not autoGrindRunning if autoGrindRunning then returnSpot = nil BtnStartGrind.Text = "🛑 Stop AFK Buy & Ignite Loop" task.spawn(RunAutoGrindLoop) else BtnStartGrind.Text = "🚀 Start AFK Buy, Stack & Ignite Loop" end end) local speedActive = false BtnSpeed.MouseButton1Click:Connect(function() speedActive = not speedActive local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid") if hum then hum.WalkSpeed = speedActive and 35 or 16 end BtnSpeed.Text = speedActive and "⚡ Speed Boost [ON]" or "⚡ Movement Speed Boost [OFF]" end) BtnAutoGrind.MouseButton1Click:Connect(function() MainMenuFrame.Visible = false GrindMenuFrame.Visible = true end) BtnBackGrind.MouseButton1Click:Connect(function() GrindMenuFrame.Visible = false MainMenuFrame.Visible = true end) local isOpen = true local lastPos = MainFrame.Position local fullSize = UDim2.new(0, 340, 0, 260) local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out) ToggleOrb.MouseButton1Click:Connect(function() if isOpen then lastPos = MainFrame.Position local orbCenterPos = UDim2.new( ToggleOrb.Position.X.Scale, ToggleOrb.Position.X.Offset + 5, ToggleOrb.Position.Y.Scale, ToggleOrb.Position.Y.Offset + 5 ) local shrinkTween = TweenService:Create(MainFrame, tweenInfo, { Size = UDim2.new(0, 20, 0, 20), Position = orbCenterPos, BackgroundTransparency = 1 }) shrinkTween:Play() shrinkTween.Completed:Connect(function() if not isOpen then MainFrame.Visible = false end end) isOpen = false else MainFrame.Visible = true local expandTween = TweenService:Create(MainFrame, tweenInfo, { Size = fullSize, Position = lastPos, BackgroundTransparency = 0.25 }) expandTween:Play() isOpen = true end end)