local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local remote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("explodeRocket") local explosionRadius = 100 local isSending = false local visualZone = nil local connection = nil local autoRankUp = false local autoSell = false local rankUpConnection = nil local sellConnection = nil local baseArgs = { 1766939568.6610703, nil, Vector3.new(0, 0, 0), nil } local function getRequiredObjects() local success, backpack = pcall(function() return player:WaitForChild("Backpack") end) if not success then return false end local success2, launcher = pcall(function() return backpack:WaitForChild("Launcher") end) if not success2 then return false end local success3, stats = pcall(function() return launcher:WaitForChild("Stats") end) local success4, rocket = pcall(function() return launcher:WaitForChild("Assets"):WaitForChild("Rocket") end) if not success4 then return false end local success5, boom = pcall(function() return rocket:WaitForChild("Boom") end) if success3 and success5 then baseArgs[2] = stats baseArgs[4] = boom return true end return false end local function createVisualZone() if visualZone then pcall(function() visualZone:Destroy() end) end visualZone = Instance.new("Part") visualZone.Name = "ExplosionZoneVisual" visualZone.Size = Vector3.new(explosionRadius * 2, explosionRadius * 2, explosionRadius * 2) visualZone.Shape = Enum.PartType.Ball visualZone.Anchored = true visualZone.CanCollide = false visualZone.Transparency = 0.3 visualZone.Material = Enum.Material.Neon local surfaceGui = Instance.new("SurfaceGui") surfaceGui.Face = Enum.NormalId.Top surfaceGui.AlwaysOnTop = true surfaceGui.Parent = visualZone local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundColor3 = Color3.fromRGB(200, 0, 255) frame.BackgroundTransparency = 0.2 frame.Parent = surfaceGui local pointLight = Instance.new("PointLight") pointLight.Brightness = 1 pointLight.Range = explosionRadius * 3 pointLight.Color = Color3.fromRGB(200, 0, 255) pointLight.Parent = visualZone local particleEmitter = Instance.new("ParticleEmitter") particleEmitter.Texture = "rbxassetid://242880393" particleEmitter.Color = ColorSequence.new(Color3.fromRGB(200, 0, 255), Color3.fromRGB(150, 0, 200)) particleEmitter.Size = NumberSequence.new(1, 3) particleEmitter.Transparency = NumberSequence.new(0.5, 1) particleEmitter.Lifetime = NumberRange.new(1, 2) particleEmitter.Rate = 50 particleEmitter.Speed = NumberRange.new(2, 5) particleEmitter.Parent = visualZone visualZone.Parent = workspace if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then visualZone.Position = player.Character.HumanoidRootPart.Position end return visualZone end local function sendExplodeAtPosition(position) if not getRequiredObjects() then return end baseArgs[3] = position pcall(function() remote:FireServer(unpack(baseArgs)) end) end local lastPlayerPosition = Vector3.new(0, 0, 0) local function getFastRandomPosition() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then lastPlayerPosition = player.Character.HumanoidRootPart.Position if visualZone then pcall(function() visualZone.Position = lastPlayerPosition end) end end local offset = Vector3.new( (math.random() * 2 - 1) * explosionRadius, (math.random() * 2 - 1) * explosionRadius * 0.3, (math.random() * 2 - 1) * explosionRadius ) return lastPlayerPosition + offset end local function startExplosions() if isSending then return end isSending = true createVisualZone() connection = RunService.Heartbeat:Connect(function() if not getRequiredObjects() then return end for i = 1, 25 do task.spawn(function() local position = getFastRandomPosition() pcall(function() sendExplodeAtPosition(position) end) end) end end) end local function stopExplosions() isSending = false if connection then pcall(function() connection:Disconnect() end) connection = nil end if visualZone then pcall(function() visualZone:Destroy() end) visualZone = nil end end local function changeRadius(amount) explosionRadius = math.clamp(explosionRadius + amount, 10, 500) if visualZone then pcall(function() visualZone.Size = Vector3.new(explosionRadius * 2, explosionRadius * 2, explosionRadius * 2) if visualZone:FindFirstChild("PointLight") then visualZone.PointLight.Range = explosionRadius * 3 end if visualZone:FindFirstChild("ParticleEmitter") then visualZone.ParticleEmitter.Rate = math.floor(explosionRadius * 0.5) end end) end return explosionRadius end local function startAutoRankUp() if autoRankUp then return end autoRankUp = true local rankUpEvent = ReplicatedStorage.Remotes.rankUp rankUpConnection = RunService.Heartbeat:Connect(function() task.wait(0.1) pcall(function() rankUpEvent:FireServer() end) end) end local function stopAutoRankUp() autoRankUp = false if rankUpConnection then pcall(function() rankUpConnection:Disconnect() end) rankUpConnection = nil end end local function startAutoSell() if autoSell then return end autoSell = true local sellEvent = ReplicatedStorage.Remotes.sellBricks sellConnection = RunService.Heartbeat:Connect(function() task.wait(0.1) pcall(function() sellEvent:FireServer() end) end) end local function stopAutoSell() autoSell = false if sellConnection then pcall(function() sellConnection:Disconnect() end) sellConnection = nil end end local function activateBoost(boostType, duration, multiplier) pcall(function() ReplicatedStorage.Remotes.generateBoost:FireServer(boostType, duration, multiplier) end) end local function clearAllBoosts() pcall(function() ReplicatedStorage.Remotes.generateBoost:FireServer("SuperJump", -36000, 2) ReplicatedStorage.Remotes.generateBoost:FireServer("ExtraSpeed", -36000, 2) ReplicatedStorage.Remotes.generateBoost:FireServer("CoinBoost", -36000, 1000000) ReplicatedStorage.Remotes.generateBoost:FireServer("XPBoost", -36000, 1000000) ReplicatedStorage.Remotes.generateBoost:FireServer("BrickBoost", -36000, 1000000) ReplicatedStorage.Remotes.generateBoost:FireServer("Levels", 180, 10) end) end local repo = "https://raw.githubusercontent.com/deividcomsono/Obsidian/main/" local Library = loadstring(game:HttpGet(repo .. "Library.lua"))() local ThemeManager = loadstring(game:HttpGet(repo .. "addons/ThemeManager.lua"))() local SaveManager = loadstring(game:HttpGet(repo .. "addons/SaveManager.lua"))() local Window = Library:CreateWindow({ Title = "by RobloxMAN", Footer = "v1.0", Icon = 95816097006870, ShowCustomCursor = true, }) local Tabs = { Main = Window:AddTab("Main", "user"), Boosts = Window:AddTab("Boosts", "zap"), ["UI Settings"] = Window:AddTab("UI Settings", "settings"), } local LeftGroupBox = Tabs.Main:AddLeftGroupbox("Explosion Control", "bomb") LeftGroupBox:AddToggle("ExplosionToggle", { Text = "Enable Explosions", Default = false, Callback = function(Value) if Value then startExplosions() else stopExplosions() end end, }) LeftGroupBox:AddButton({ Text = "Increase Radius", Func = function() changeRadius(10) end, }) LeftGroupBox:AddButton({ Text = "Decrease Radius", Func = function() changeRadius(-10) end, }) LeftGroupBox:AddSlider("RadiusSlider", { Text = "Radius Size", Default = 100, Min = 10, Max = 500, Rounding = 0, Callback = function(Value) explosionRadius = Value if visualZone then pcall(function() visualZone.Size = Vector3.new(explosionRadius * 2, explosionRadius * 2, explosionRadius * 2) if visualZone:FindFirstChild("PointLight") then visualZone.PointLight.Range = explosionRadius * 3 end end) end end, }) LeftGroupBox:AddSlider("SpeedSlider", { Text = "Explosion Speed", Default = 25, Min = 5, Max = 100, Rounding = 0, }) local RightGroupBox = Tabs.Main:AddRightGroupbox("Auto Features", "refresh-cw") RightGroupBox:AddToggle("AutoRankUpToggle", { Text = "Auto Rank UP", Default = false, Callback = function(Value) if Value then startAutoRankUp() else stopAutoRankUp() end end, }) RightGroupBox:AddToggle("AutoSellToggle", { Text = "Auto Sell", Default = false, Callback = function(Value) if Value then startAutoSell() else stopAutoSell() end end, }) local VisualGroupBox = Tabs.Main:AddRightGroupbox("Visuals", "eye") VisualGroupBox:AddToggle("VisualZoneToggle", { Text = "Show Zone", Default = true, Callback = function(Value) if Value then if isSending and not visualZone then createVisualZone() end else if visualZone then pcall(function() visualZone:Destroy() end) visualZone = nil end end end, }) VisualGroupBox:AddLabel("Zone Color"):AddColorPicker("ZoneColor", { Default = Color3.fromRGB(200, 0, 255), Title = "Zone Color", Callback = function(Value) if visualZone then pcall(function() if visualZone:FindFirstChild("SurfaceGui") then local frame = visualZone.SurfaceGui:FindFirstChild("Frame") if frame then frame.BackgroundColor3 = Value end end if visualZone:FindFirstChild("PointLight") then visualZone.PointLight.Color = Value end if visualZone:FindFirstChild("ParticleEmitter") then visualZone.ParticleEmitter.Color = ColorSequence.new(Value, Color3.fromRGB( math.floor(Value.R * 150), math.floor(Value.G * 150), math.floor(Value.B * 150) )) end end) end end, }) VisualGroupBox:AddSlider("TransparencySlider", { Text = "Zone Transparency", Default = 0.3, Min = 0, Max = 1, Rounding = 1, Callback = function(Value) if visualZone then pcall(function() visualZone.Transparency = Value if visualZone:FindFirstChild("SurfaceGui") then local frame = visualZone.SurfaceGui:FindFirstChild("Frame") if frame then frame.BackgroundTransparency = Value + 0.2 end end end) end end, }) local BoostsLeftGroupBox = Tabs.Boosts:AddLeftGroupbox("Boost Activation", "zap") BoostsLeftGroupBox:AddButton({ Text = "Super Jump (10h)", Func = function() activateBoost("SuperJump", 36000, 2) end, }) BoostsLeftGroupBox:AddButton({ Text = "Extra Speed (10h)", Func = function() activateBoost("ExtraSpeed", 36000, 2) end, }) BoostsLeftGroupBox:AddButton({ Text = "Coin Boost (x1M)", Func = function() activateBoost("CoinBoost", 36000, 1000000) end, }) BoostsLeftGroupBox:AddButton({ Text = "XP Boost (x1M)", Func = function() activateBoost("XPBoost", 36000, 1000000) end, }) BoostsLeftGroupBox:AddButton({ Text = "Brick Boost (x1M)", Func = function() activateBoost("BrickBoost", 36000, 1000000) end, }) local BoostsRightGroupBox = Tabs.Boosts:AddRightGroupbox("Level & Clear", "trending-up") BoostsRightGroupBox:AddButton({ Text = "Level Up (+10)", Func = function() pcall(function() ReplicatedStorage.Remotes.generateBoost:FireServer("Levels", 180, 10) end) end, }) BoostsRightGroupBox:AddButton({ Text = "Clear All Boosts", Func = function() clearAllBoosts() end, }) Library:OnUnload(function() stopExplosions() stopAutoRankUp() stopAutoSell() end) local MenuGroup = Tabs["UI Settings"]:AddLeftGroupbox("Menu") MenuGroup:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { Default = "RightShift", NoUI = true, Text = "Menu keybind" }) MenuGroup:AddButton("Unload", function() Library:Unload() end) Library.ToggleKeybind = Options.MenuKeybind ThemeManager:SetLibrary(Library) SaveManager:SetLibrary(Library) SaveManager:IgnoreThemeSettings() SaveManager:SetIgnoreIndexes({ "MenuKeybind" }) SaveManager:BuildConfigSection(Tabs["UI Settings"]) ThemeManager:ApplyToTab(Tabs["UI Settings"]) SaveManager:LoadAutoloadConfig() game:GetService("Players").LocalPlayer.CharacterAdded:Connect(function() task.wait(1) if isSending and visualZone then pcall(function() visualZone:Destroy() end) visualZone = nil createVisualZone() end end) game:GetService("Players").LocalPlayer.CharacterRemoving:Connect(function() if visualZone then pcall(function() visualZone:Destroy() end) visualZone = nil end end) local function onInputBegan(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.RightControl then Library:Unload() end end game:GetService("UserInputService").InputBegan:Connect(onInputBegan)