
Key Required

-- PANA HUB PREMIUM - EDICIÓN MULTILINGÜE (PC & MOBILE)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")
local SoundService = game:GetService("SoundService")
local player = Players.LocalPlayer
-- Variables de Estado
_G.Jump = false; _G.Hit = false; _G.Insta = false; _G.Plat = false; _G.GodMode = false; _G.Speed = 16; _G.pPart = nil
_G.PotenciaSalvado = 500 -- Potencia exclusiva para el sistema de Auto-Salvado
-- Variable global para controlar el objeto de sonido actual
local CurrentSound = nil
-- Carga del Menú Rayfield
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "👻 Pana Hub Premium",
LoadingTitle = "👻 Iniciando Full Power...",
LoadingSubtitle = "by fabi_pana_hub",
Theme = "Default",
DisableRayfieldPrompts = true, DisableBuildWarnings = true,
ConfigurationSaving = { Enabled = false }, Discord = { Enabled = false }
})
-- =======================================================
-- 🔥 PESTAÑA 1: IMPORTANTES
-- =======================================================
local Tab1 = Window:CreateTab("🔥 Importantes", nil)
local SecMovimiento = Tab1:CreateSection("Movimiento y Agilidad", true)
Tab1:CreateToggle({Name = "🚀 Salto Infinito", CurrentValue = false, Callback = function(v) _G.Jump = v end})
Tab1:CreateButton({
Name = "☄️ Salto Impulso (Cohete)",
Info = "Potencia fija de 500 (No tocar).",
Callback = function()
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char.HumanoidRootPart:ApplyImpulse(Vector3.new(0, 500, 0))
end
end
})
local SecVentaja = Tab1:CreateSection("Ajustes de Ventaja", true)
Tab1:CreateToggle({Name = "🎯 Hitbox Expand", CurrentValue = false, Callback = function(v) _G.Hit = v end})
Tab1:CreateSlider({Name = "⚙️ Velocidad", Range = {16, 200}, Increment = 1, CurrentValue = 16, Callback = function(v) _G.Speed = v end})
-- =======================================================
-- ⚡ PESTAÑA 2: OPCIONES OP
-- =======================================================
local Tab2 = Window:CreateTab("⚡ Opciones OP", nil)
local SectionFunciones = Tab2:CreateSection("Cheats Activos", true)
Tab2:CreateToggle({Name = "🛡️ Modo Dios (Anti-Muerte)", CurrentValue = false, Callback = function(v) _G.GodMode = v end})
Tab2:CreateToggle({Name = "⚡ Insta-Interact", CurrentValue = false, Callback = function(v) _G.Insta = v end})
Tab2:CreateToggle({Name = "🪂 Plataforma Estática", CurrentValue = false, Callback = function(v) _G.Plat = v end})
local SectionUI = Tab2:CreateSection("Botones Flotantes", true)
Tab2:CreateToggle({Name = "📲 Botón Plataforma", CurrentValue = false, Callback = function(v) if _G.PlatBtn then _G.PlatBtn.Visible = v end end})
Tab2:CreateToggle({Name = "📲 Botón Salto Cohete", CurrentValue = false, Callback = function(v) if _G.JumpBtn then _G.JumpBtn.Visible = v end end})
local SectionExtra = Tab2:CreateSection("Seguridad", true)
Tab2:CreateButton({Name = "🔄 Re-unirse al Servidor (CUIDADO)", Callback = function() TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, player) end})
-- =======================================================
-- 🎵 PESTAÑA 3: APARTADO DE MÚSICA
-- =======================================================
local TabMusic = Window:CreateTab("🎵 Music Player", nil)
local SecMusic = TabMusic:CreateSection("Audio Settings", true)
local InputAudioID = "0"
TabMusic:CreateInput({
Name = "🆔 Enter Music ID",
PlaceholderText = "Paste Roblox Audio ID here...",
RemoveTextAfterFocusLost = false,
Callback = function(text)
InputAudioID = text
end,
})
TabMusic:CreateButton({
Name = "▶️ Play Music",
Callback = function()
if CurrentSound then
CurrentSound:Stop()
CurrentSound:Destroy()
CurrentSound = nil
end
local success, err = pcall(function()
CurrentSound = Instance.new("Sound")
CurrentSound.SoundId = "rbxassetid://" .. InputAudioID
CurrentSound.Volume = 1
CurrentSound.Looped = true
CurrentSound.Parent = SoundService
CurrentSound:Play()
end)
if not success then
Rayfield:Notify({Title = "🎵 Audio Error", Content = "Invalid ID or Audio not available.", Duration = 3})
end
end
})
TabMusic:CreateButton({
Name = "⏸️ Stop Music",
Callback = function()
if CurrentSound then
CurrentSound:Stop()
CurrentSound:Destroy()
CurrentSound = nil
end
end
})
-- =======================================================
-- 🛠️ PESTAÑA 4: HERRAMIENTAS PRO
-- =======================================================
local TabPro = Window:CreateTab("🛠️ Herramientas Pro", nil)
local SecPro = TabPro:CreateSection("Sistema de Auto-Salvado", true)
TabPro:CreateSlider({
Name = "🛡️ Potencia de Salvado (Bloques)",
Range = {100, 1500}, Increment = 50, CurrentValue = 500,
Callback = function(v) _G.PotenciaSalvado = v end
})
TabPro:CreateToggle({Name = "⚡ Auto-Salvado Activo", CurrentValue = false, Callback = function(v) _G.AutoSalvado = v end})
-- =======================================================
-- 🛠️ CREACIÓN DE BOTONES FLOTANTES TÁCTICOS
-- =======================================================
local ScreenGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
ScreenGui.Name = "FabiHUD"; ScreenGui.ResetOnSpawn = false
local function CrearBoton(name, text, pos)
local btn = Instance.new("TextButton", ScreenGui)
btn.Name = name; btn.Size = UDim2.new(0, 55, 0, 55); btn.Position = pos
btn.BackgroundColor3 = Color3.fromRGB(255, 30, 70); btn.BackgroundTransparency = 0.3
btn.Text = text; btn.TextSize = 25; btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.SourceSansBold; btn.Visible = false; btn.Active = true; btn.Draggable = true
Instance.new("UICorner", btn).CornerRadius = UDim.new(1, 0)
local s = Instance.new("UIStroke", btn)
s.Thickness = 2; s.Color = Color3.fromRGB(255, 255, 255); s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
return btn
end
_G.PlatBtn = CrearBoton("PlatBtn", "🪂", UDim2.new(0.85, 0, 0.4, 0))
_G.JumpBtn = CrearBoton("JumpBtn", "🚀", UDim2.new(0.85, 0, 0.55, 0))
_G.PlatBtn.MouseButton1Click:Connect(function()
_G.Plat = not _G.Plat
_G.PlatBtn.BackgroundColor3 = _G.Plat and Color3.fromRGB(30, 255, 100) or Color3.fromRGB(255, 30, 70)
end)
_G.JumpBtn.MouseButton1Click:Connect(function()
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char.HumanoidRootPart:ApplyImpulse(Vector3.new(0, 500, 0))
_G.JumpBtn.BackgroundColor3 = Color3.fromRGB(30, 255, 100)
task.delay(0.1, function() _G.JumpBtn.BackgroundColor3 = Color3.fromRGB(255, 30, 70) end)
end
end)
-- =======================================================
-- ⚙️ MOTOR PRINCIPAL
-- =======================================================
RunService.RenderStepped:Connect(function()
local char = player.Character; if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
if _G.GodMode and hum then
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
if hum.Health > 0 and hum.Health < 15 then hum.Health = hum.MaxHealth end
elseif hum then hum:SetStateEnabled(Enum.HumanoidStateType.Dead, true) end
if hum then hum.WalkSpeed = _G.Speed end
if _G.Hit then for _, v in pairs(Players:GetPlayers()) do if v ~= player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then v.Character.HumanoidRootPart.Size = Vector3.new(6, 6, 6) end end end
if _G.Insta then for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.HoldDuration = 0 end end end
if _G.Plat then
if not _G.pPart or not _G.pPart.Parent then _G.pPart = Instance.new("Part", workspace); _G.pPart.Size = Vector3.new(5, 0.5, 5); _G.pPart.Anchored = true; _G.pPart.Transparency = 0.7; _G.pPart.CanCollide = true end
local root = char:FindFirstChild("HumanoidRootPart")
if root then _G.pPart.CFrame = root.CFrame * CFrame.new(0, -3.5, 0) end
elseif _G.pPart then _G.pPart:Destroy(); _G.pPart = nil end
end)
UserInputService.JumpRequest:Connect(function() if _G.Jump and player.Character then player.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end end)
Rayfield:Notify({Title = "Pana Hub", Content = "¡Estructura optimizada y ordenada, mano!", Duration = 3})
-- =======================================================
-- 💬 SISTEMA DE NOTIFICACIONES PERMANENTES (4 MENSAJES)
-- =======================================================
task.spawn(function()
local mensajes = {
"Bienvenido de vuelta, " .. player.Name .. ". ¿Qué tal tu día?",
"Sistema Pana Hub listo. ¡Hoy vamos a dominar la partida, mano!",
"Arsenal táctico cargado y listo para la acción. ¡No dejes ni uno en pie!",
"¡Pana Hub activo! Si las cosas se ponen feas, recuerda: activa el salvado y a volar."
}
local i = 1
while i <= #mensajes do
if i == 1 then
task.wait(2)
else
task.wait(120)
end
-- Verifica de forma segura el estado de salud antes de mandar el aviso
local char = player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
-- Si el personaje existe y tiene más de 50 de vida (más de la mitad), manda el aviso de forma segura
if hum and hum.Health >= 50 then
Rayfield:Notify({
Title = "👻 Pana Hub Info",
Content = mensajes[i],
Duration = 3
})
i = i + 1 -- Avanza al siguiente mensaje solo si se pudo mostrar
else
-- Si estás muerto o con poca vida, espera 5 segundos extras en silencio y vuelve a chequear
task.wait(3)
end
end
end)No comments yet for this script.