
Keyless

--[[
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)No comments yet for this script.