-- ============================================================ -- paneer's Menu — WindUI -- Todos los exploits confirmados integrados -- ============================================================ -- Cargar WindUI local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))() -- Servicios local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CollectionService = game:GetService("CollectionService") local LP = Players.LocalPlayer local RS = ReplicatedStorage -- Packet library del juego local Packets = require(RS.Utils.Packets) -- Estado global local state = { m1Auto = false, abilitySpam = false, dashSpam = false, blockSpam = false, wheelSpinSpam = false, confettiSpam = false, rainbowPortal = false, espEnabled = false, fovEnabled = false, zoomEnabled = false, } local espObjects = {} local requestId = 0 -- ============================================================ -- FUNCIONES AUXILIARES -- ============================================================ local function getChar() local char = LP.Character if not char then return nil end return char, char:FindFirstChildOfClass("Humanoid"), char:FindFirstChild("HumanoidRootPart") end local function getClosestEnemy(range) range = range or 12 local char = LP.Character if not char then return nil end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return nil end local closest, minDist = nil, range for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character then local php = p.Character:FindFirstChild("HumanoidRootPart") local phum = p.Character:FindFirstChildOfClass("Humanoid") if php and phum and phum.Health > 0 then local dist = (php.Position - hrp.Position).Magnitude if dist < minDist then closest, minDist = php, dist end end end end return closest end local function hsvToHex(h, s, v) return "#" .. Color3.fromHSV(h, s, v):ToHex() end -- ============================================================ -- CREAR VENTANA -- ============================================================ local Window = WindUI:CreateWindow({ Title = "paneer's Hub", Icon = "crown", Author = "by paneer", Folder = "paneersHub", Size = UDim2.fromOffset(580, 420), Transparent = true, Theme = "Dark", Resizable = true, SideBarWidth = 180, HideSearchBar = true, ScrollBarEnabled = false, }) -- Tabs local MainTab = Window:Tab({ Title = "Principal", Icon = "home" }) local CombatTab = Window:Tab({ Title = "Combate", Icon = "sword" }) local ExploitsTab = Window:Tab({ Title = "Exploits", Icon = "zap" }) local VisualsTab = Window:Tab({ Title = "Visuales", Icon = "eye" }) local RewardsTab = Window:Tab({ Title = "Recompensas", Icon = "gift" }) -- ============================================================ -- TAB PRINCIPAL -- ============================================================ local mainSection = MainTab:Section({ Title = "Estado", Opened = true }) mainSection:Button({ Title = "Ver Morteys", Desc = "Busca el contador en la GUI", Callback = function() local PlayerGui = LP:WaitForChild("PlayerGui") local found = false local function scan(inst, path, depth) if depth > 10 then return end path = path or "" if inst:IsA("TextLabel") or inst:IsA("TextButton") then local txt = inst.Text if txt and txt:match("^[%d,]+$") and #txt >= 3 then print("[paneer] NUMERO: " .. path .. "." .. inst.Name .. " = " .. txt) found = true end end for _, c in ipairs(inst:GetChildren()) do scan(c, path .. "." .. inst.Name, depth + 1) end end scan(PlayerGui, "PlayerGui", 0) if not found then print("[paneer] No se encontraron números grandes en la GUI") end end, }) mainSection:Button({ Title = "Ver Inventario", Desc = "Muestra habilidades y gun models poseídos", Callback = function() for _, folderName in ipairs({"OwnedSpecials", "OwnedUltimates", "OwnedGunModels"}) do local folder = LP:FindFirstChild(folderName) if folder then print("[paneer] === " .. folderName .. " ===") for _, v in ipairs(folder:GetChildren()) do if v:IsA("BoolValue") and v.Value then print(" ✓ " .. v.Name) end end end end end, }) -- ============================================================ -- TAB COMBATE -- ============================================================ local combatSection = CombatTab:Section({ Title = "Auto M1", Opened = true }) combatSection:Toggle({ Title = "M1 Auto + Aim", Desc = "Ataca automáticamente y se gira al enemigo más cercano", Value = false, Callback = function(v) state.m1Auto = v end, }) combatSection:Slider({ Title = "Rango de Aim", Desc = "Distancia para apuntar", Step = 1, Value = { Min = 5, Max = 50, Default = 12 }, Callback = function(v) state.m1Range = v end, }) local abilitySection = CombatTab:Section({ Title = "Habilidades", Opened = true }) abilitySection:Toggle({ Title = "Spam de Habilidades", Desc = "Activa Special y Ultimate continuamente", Value = false, Callback = function(v) state.abilitySpam = v end, }) local dashSection = CombatTab:Section({ Title = "Dash y Block", Opened = true }) dashSection:Toggle({ Title = "Spam de Dash", Desc = "Dash front continuo", Value = false, Callback = function(v) state.dashSpam = v end, }) dashSection:Toggle({ Title = "Spam de Block", Desc = "Toggle rápido de bloqueo", Value = false, Callback = function(v) state.blockSpam = v end, }) -- ============================================================ -- TAB EXPLOITS -- ============================================================ local packetSection = ExploitsTab:Section({ Title = "Packets", Opened = true }) packetSection:Toggle({ Title = "WheelSpin Infinito", Desc = "Gira la ruleta sin límite — CONFIRMADO", Value = false, Callback = function(v) state.wheelSpinSpam = v end, }) packetSection:Toggle({ Title = "Confetti a Todos", Desc = "Emite confetti global — CONFIRMADO", Value = false, Callback = function(v) state.confettiSpam = v end, }) packetSection:Button({ Title = "Disparar Confetti (una vez)", Desc = "Emite confetti inmediatamente", Callback = function() pcall(function() Packets.Conffeti.Emit:Fire() end) end, }) local portalSection = ExploitsTab:Section({ Title = "Portal", Opened = true }) portalSection:Toggle({ Title = "Portal Arcoíris", Desc = "Cambia el color del portal en ciclo HSV", Value = false, Callback = function(v) state.rainbowPortal = v end, }) portalSection:Slider({ Title = "Velocidad Arcoíris", Desc = "Segundos por tick (más bajo = más rápido)", Step = 0.01, Value = { Min = 0.03, Max = 0.5, Default = 0.08 }, Callback = function(v) state.rainbowSpeed = v end, }) portalSection:Button({ Title = "Equipar Portal", Desc = "Fuerza la creación de un portal", Callback = function() local PortalSlotAction = RS.Functions:FindFirstChild("PortalSlotAction") if PortalSlotAction then pcall(function() PortalSlotAction:InvokeServer("Equip") end) end end, }) local codeSection = ExploitsTab:Section({ Title = "Códigos", Opened = false }) codeSection:Button({ Title = "Probar Códigos Comunes", Desc = "Prueba una wordlist de códigos potenciales", Callback = function() local codes = {"FREE", "MORTY", "RICK", "PORTAL", "SUMMER", "BETH", "JERRY", "EVILMORTY", "PRIME", "C137", "BIRD", "PICKLE", "TINY"} for _, code in ipairs(codes) do pcall(function() local a, b = Packets.Codes.RedeemCode:Fire(code) if type(a) == "table" then print("[paneer] Code " .. code .. " -> " .. tostring(a[1]) .. " | " .. tostring(a[2])) end end) task.wait(0.8) end end, }) -- ============================================================ -- TAB VISUALES -- ============================================================ local espSection = VisualsTab:Section({ Title = "ESP", Opened = true }) espSection:Toggle({ Title = "ESP de Jugadores", Desc = "Cajas y nombres sobre enemigos", Value = false, Callback = function(v) state.espEnabled = v if not v then for _, objs in pairs(espObjects) do objs.box:Remove() objs.name:Remove() end espObjects = {} end end, }) local fovSection = VisualsTab:Section({ Title = "Cámara", Opened = true }) fovSection:Toggle({ Title = "FOV Hack", Desc = "Forza el FieldOfView localmente (client-side)", Value = false, Callback = function(v) state.fovEnabled = v end, }) fovSection:Slider({ Title = "FOV", Desc = "Valor del FieldOfView", Step = 1, Value = { Min = 70, Max = 140, Default = 120 }, Callback = function(v) state.fovValue = v end, }) fovSection:Toggle({ Title = "Zoom Extendido", Desc = "MaxZoomDistance = 1000", Value = false, Callback = function(v) state.zoomEnabled = v if v then LP.CameraMaxZoomDistance = 1000 end end, }) -- ============================================================ -- TAB RECOMPENSAS -- ============================================================ local rewardSection = RewardsTab:Section({ Title = "Recompensas", Opened = true }) rewardSection:Button({ Title = "Reclamar Todo (Playtime + Daily)", Desc = "Envía los packets de todas las recompensas", Callback = function() for i = 1, 7 do pcall(function() Packets.PlaytimeRewards.ClaimReward:Fire(i) end) task.wait(0.3) end for i = 1, 7 do pcall(function() Packets.DailyRewards.ClaimReward:Fire(i) end) task.wait(0.3) end pcall(function() Packets.FriendReward.ClaimReward:Fire() end) pcall(function() Packets.GroupReward.ClaimReward:Fire() end) WindUI:Notify({ Title = "Recompensas", Content = "Todos los packets enviados", Duration = 3 }) end, }) rewardSection:Button({ Title = "Verificar Pases", Desc = "Muestra si tienes los gamepasses", Callback = function() local passIds = { ["Custom Portal Color"] = 1979288487, ["VIP"] = 1853711135, ["Teleporter"] = 1853549088, ["x2 Speed"] = 1853099131, } for name, id in pairs(passIds) do pcall(function() local owned = Packets.Marketplace.CheckPassOwned:Fire(id, name) print("[paneer] " .. name .. ": " .. tostring(owned)) end) task.wait(0.3) end end, }) -- ============================================================ -- LOOPS DE EJECUCIÓN -- ============================================================ -- M1 Auto + Aim task.spawn(function() while task.wait(0.15) do if state.m1Auto then local char, hum, hrp = getChar() if char and hum and hum.Health > 0 and hrp then local target = getClosestEnemy(state.m1Range or 12) if target then local lookPos = Vector3.new(target.Position.X, hrp.Position.Y, target.Position.Z) hrp.CFrame = CFrame.lookAt(hrp.Position, lookPos) end requestId = requestId + 1 local CombatEvent = RS.Events.Combat:FindFirstChild("CombatEvent") if CombatEvent then pcall(function() CombatEvent:FireServer({ action = "Start", gunMode = false, requestId = requestId, finisher = nil, predictedStage = 1, rootCFrame = hrp.CFrame, sentAt = workspace:GetServerTimeNow() }) end) end end end end end) -- Ability Spam task.spawn(function() while task.wait(1.5) do if state.abilitySpam then local AbilityAction = RS.Functions:FindFirstChild("AbilityAction") if AbilityAction then for _, ability in ipairs({"Special", "Ultimate"}) do local ok, res = pcall(function() return AbilityAction:InvokeServer("Activate", ability) end) if ok and type(res) == "table" and res.serial then task.wait(0.3) pcall(function() AbilityAction:InvokeServer("Release", ability, res.serial) end) end task.wait(0.3) end end end end end) -- Dash Spam task.spawn(function() while task.wait(1.5) do if state.dashSpam then local DashEvent = RS.Events.Combat:FindFirstChild("DashEvent") if DashEvent then requestId = requestId + 1 pcall(function() DashEvent:FireServer("Start", "Front", requestId) end) end end end end) -- Block Spam task.spawn(function() while task.wait(0.2) do if state.blockSpam then local BlockEvent = RS.Events.Combat:FindFirstChild("BlockEvent") if BlockEvent then pcall(function() BlockEvent:FireServer(true) end) task.wait(0.05) pcall(function() BlockEvent:FireServer(false) end) end end end end) -- WheelSpin Spam task.spawn(function() while task.wait(1) do if state.wheelSpinSpam then pcall(function() Packets.WheelSpin.Spin:Fire() end) end end end) -- Confetti Spam task.spawn(function() while task.wait(1.5) do if state.confettiSpam then pcall(function() Packets.Conffeti.Emit:Fire() end) end end end) -- Rainbow Portal task.spawn(function() local hue = 0 while true do local speed = state.rainbowSpeed or 0.08 if state.rainbowPortal then hue = (hue + 0.008) % 1 local hex = hsvToHex(hue, 1, 1) pcall(function() Packets.Settings.SavePortalColor:Fire(hex) end) end task.wait(speed) end end) -- ESP local cam = workspace.CurrentCamera local function createESP(player) if player == LP or espObjects[player] then return end local box = Drawing.new("Square") box.Thickness = 1; box.Color = Color3.fromRGB(255, 0, 0); box.Filled = false; box.Visible = false local name = Drawing.new("Text") name.Size = 14; name.Center = true; name.Outline = true name.Color = Color3.fromRGB(255, 255, 255); name.Visible = false espObjects[player] = {box = box, name = name} end for _, p in ipairs(Players:GetPlayers()) do createESP(p) end Players.PlayerAdded:Connect(createESP) Players.PlayerRemoving:Connect(function(p) if espObjects[p] then espObjects[p].box:Remove(); espObjects[p].name:Remove(); espObjects[p] = nil end end) RunService.RenderStepped:Connect(function() if not state.espEnabled then for _, objs in pairs(espObjects) do objs.box.Visible = false; objs.name.Visible = false end return end for player, objs in pairs(espObjects) do local char = player.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChildOfClass("Humanoid") if hrp and hum and hum.Health > 0 then local pos, onScreen = cam:WorldToViewportPoint(hrp.Position) if onScreen then local head = char:FindFirstChild("Head") if head then local headPos = cam:WorldToViewportPoint(head.Position + Vector3.new(0, 1, 0)) local height = math.abs(headPos.Y - pos.Y) * 1.8 local width = height / 2 objs.box.Size = Vector2.new(width, height) objs.box.Position = Vector2.new(pos.X - width/2, pos.Y - height/2) objs.box.Visible = true objs.name.Text = player.Name .. " [" .. math.floor(hum.Health) .. "]" objs.name.Position = Vector2.new(pos.X, pos.Y - height/2 - 20) objs.name.Visible = true end else objs.box.Visible = false; objs.name.Visible = false end else objs.box.Visible = false; objs.name.Visible = false end end end) -- FOV + Zoom RunService.RenderStepped:Connect(function() if state.fovEnabled and cam then local targetFOV = state.fovValue or 120 if cam.FieldOfView ~= targetFOV then cam.FieldOfView = targetFOV end end if state.zoomEnabled then if LP.CameraMaxZoomDistance ~= 1000 then LP.CameraMaxZoomDistance = 1000 end end end) -- ============================================================ -- NOTIFICACIÓN -- ============================================================ WindUI:Notify({ Title = "paneer's Hub", Content = "Menú cargado. Todos los exploits activos.", Duration = 5, }) print("[paneer] Menú definitivo cargado")