--// 🐼 PANDA NEXTBOT + CONSOLA DE AUDIO --// LocalScript → StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") --================================================== -- CONFIGURACIÓN --================================================== local PANDA_IMAGE_ID = "73578215981408" -- 😱 Sustos local SCARE_SOUND_1 = "7991927928" local SCARE_SOUND_2 = "5993515228" -- 🐼 Loop del panda local PANDA_SOUND_ID = "108402206159079" local pandaEnabled = true local pandaVolume = 1 local root = nil local pandaGui = nil local pandaSound = nil local arrivalRunning = false --================================================== -- GUI PRINCIPAL --================================================== local gui = Instance.new("ScreenGui") gui.Name = "PandaAudioGui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = playerGui --================================================== -- CONSOLA --================================================== local console = Instance.new("Frame") console.Name = "AudioConsole" console.Size = UDim2.fromOffset(330, 230) console.Position = UDim2.new(0, 25, 0.5, -115) console.BackgroundColor3 = Color3.fromRGB(25, 25, 29) console.BorderSizePixel = 0 console.Parent = gui local consoleCorner = Instance.new("UICorner") consoleCorner.CornerRadius = UDim.new(0, 14) consoleCorner.Parent = console local consoleStroke = Instance.new("UIStroke") consoleStroke.Color = Color3.fromRGB(80, 80, 88) consoleStroke.Thickness = 1.5 consoleStroke.Parent = console --================================================== -- BARRA SUPERIOR --================================================== local header = Instance.new("Frame") header.Name = "Header" header.Size = UDim2.new(1, 0, 0, 48) header.BackgroundColor3 = Color3.fromRGB(35, 35, 40) header.BorderSizePixel = 0 header.Parent = console local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 14) headerCorner.Parent = header local headerFix = Instance.new("Frame") headerFix.Size = UDim2.new(1, 0, 0, 14) headerFix.Position = UDim2.new(0, 0, 1, -14) headerFix.BackgroundColor3 = Color3.fromRGB(35, 35, 40) headerFix.BorderSizePixel = 0 headerFix.Parent = header --================================================== -- TÍTULO --================================================== local title = Instance.new("TextLabel") title.BackgroundTransparency = 1 title.Position = UDim2.fromOffset(16, 4) title.Size = UDim2.new(1, -65, 0, 23) title.Font = Enum.Font.GothamBold title.Text = "🐼 PANDA AUDIO" title.TextColor3 = Color3.fromRGB(240, 240, 245) title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local status = Instance.new("TextLabel") status.BackgroundTransparency = 1 status.Position = UDim2.fromOffset(17, 27) status.Size = UDim2.new(1, -70, 0, 16) status.Font = Enum.Font.Gotham status.Text = "● PREPARANDO..." status.TextColor3 = Color3.fromRGB(220, 180, 80) status.TextSize = 10 status.TextXAlignment = Enum.TextXAlignment.Left status.Parent = header --================================================== -- BOTÓN CERRAR --================================================== local closeButton = Instance.new("TextButton") closeButton.Name = "Close" closeButton.Size = UDim2.fromOffset(30, 30) closeButton.Position = UDim2.new(1, -38, 0, 9) closeButton.BackgroundColor3 = Color3.fromRGB(55, 55, 62) closeButton.BorderSizePixel = 0 closeButton.Text = "×" closeButton.TextColor3 = Color3.fromRGB(230, 230, 235) closeButton.TextSize = 20 closeButton.Font = Enum.Font.GothamBold closeButton.AutoButtonColor = false closeButton.Parent = header local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(1, 0) closeCorner.Parent = closeButton closeButton.MouseButton1Click:Connect(function() console.Visible = false end) --================================================== -- BOTÓN PANDA ON/OFF --================================================== local pandaButton = Instance.new("TextButton") pandaButton.Name = "PandaToggle" pandaButton.Size = UDim2.fromOffset(125, 45) pandaButton.Position = UDim2.fromOffset(16, 65) pandaButton.BackgroundColor3 = Color3.fromRGB(48, 48, 55) pandaButton.BorderSizePixel = 0 pandaButton.Text = "🐼 PANDA ON" pandaButton.TextColor3 = Color3.fromRGB(245, 245, 245) pandaButton.TextSize = 14 pandaButton.Font = Enum.Font.GothamBold pandaButton.AutoButtonColor = false pandaButton.Parent = console local pandaCorner = Instance.new("UICorner") pandaCorner.CornerRadius = UDim.new(0, 10) pandaCorner.Parent = pandaButton local pandaStroke = Instance.new("UIStroke") pandaStroke.Color = Color3.fromRGB(75, 75, 85) pandaStroke.Thickness = 1 pandaStroke.Parent = pandaButton --================================================== -- PLAY / PAUSE --================================================== local playButton = Instance.new("TextButton") playButton.Name = "PlayPause" playButton.Size = UDim2.fromOffset(125, 45) playButton.Position = UDim2.fromOffset(151, 65) playButton.BackgroundColor3 = Color3.fromRGB(48, 48, 55) playButton.BorderSizePixel = 0 playButton.Text = "▶ PLAY" playButton.TextColor3 = Color3.fromRGB(245, 245, 245) playButton.TextSize = 14 playButton.Font = Enum.Font.GothamBold playButton.AutoButtonColor = false playButton.Parent = console local playCorner = Instance.new("UICorner") playCorner.CornerRadius = UDim.new(0, 10) playCorner.Parent = playButton local playStroke = Instance.new("UIStroke") playStroke.Color = Color3.fromRGB(75, 75, 85) playStroke.Thickness = 1 playStroke.Parent = playButton --================================================== -- VOLUMEN --================================================== local volumeTitle = Instance.new("TextLabel") volumeTitle.BackgroundTransparency = 1 volumeTitle.Position = UDim2.fromOffset(17, 126) volumeTitle.Size = UDim2.fromOffset(100, 22) volumeTitle.Font = Enum.Font.GothamBold volumeTitle.Text = "🔊 VOLUMEN" volumeTitle.TextColor3 = Color3.fromRGB(210, 210, 215) volumeTitle.TextSize = 12 volumeTitle.TextXAlignment = Enum.TextXAlignment.Left volumeTitle.Parent = console local percentLabel = Instance.new("TextLabel") percentLabel.BackgroundTransparency = 1 percentLabel.Position = UDim2.new(1, -70, 0, 126) percentLabel.Size = UDim2.fromOffset(52, 22) percentLabel.Font = Enum.Font.GothamBold percentLabel.Text = "100%" percentLabel.TextColor3 = Color3.fromRGB(235, 235, 240) percentLabel.TextSize = 12 percentLabel.TextXAlignment = Enum.TextXAlignment.Right percentLabel.Parent = console --================================================== -- BARRA DE VOLUMEN --================================================== local volumeBar = Instance.new("Frame") volumeBar.Name = "VolumeBar" volumeBar.Size = UDim2.new(1, -34, 0, 8) volumeBar.Position = UDim2.fromOffset(17, 154) volumeBar.BackgroundColor3 = Color3.fromRGB(55, 55, 62) volumeBar.BorderSizePixel = 0 volumeBar.Parent = console local volumeCorner = Instance.new("UICorner") volumeCorner.CornerRadius = UDim.new(1, 0) volumeCorner.Parent = volumeBar local volumeFill = Instance.new("Frame") volumeFill.Size = UDim2.new(0.2, 0, 1, 0) volumeFill.BackgroundColor3 = Color3.fromRGB(220, 220, 225) volumeFill.BorderSizePixel = 0 volumeFill.Parent = volumeBar local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = volumeFill local volumeKnob = Instance.new("Frame") volumeKnob.Size = UDim2.fromOffset(16, 16) volumeKnob.AnchorPoint = Vector2.new(0.5, 0.5) volumeKnob.Position = UDim2.new(0.2, 0, 0.5, 0) volumeKnob.BackgroundColor3 = Color3.fromRGB(245, 245, 245) volumeKnob.BorderSizePixel = 0 volumeKnob.Parent = volumeBar local knobCorner = Instance.new("UICorner") knobCorner.CornerRadius = UDim.new(1, 0) knobCorner.Parent = volumeKnob --================================================== -- BOTONES - / + --================================================== local minusButton = Instance.new("TextButton") minusButton.Size = UDim2.fromOffset(55, 35) minusButton.Position = UDim2.fromOffset(17, 177) minusButton.BackgroundColor3 = Color3.fromRGB(48, 48, 55) minusButton.BorderSizePixel = 0 minusButton.Text = "−" minusButton.TextColor3 = Color3.fromRGB(235, 235, 240) minusButton.TextSize = 20 minusButton.Font = Enum.Font.GothamBold minusButton.AutoButtonColor = false minusButton.Parent = console local minusCorner = Instance.new("UICorner") minusCorner.CornerRadius = UDim.new(0, 9) minusCorner.Parent = minusButton local plusButton = Instance.new("TextButton") plusButton.Size = UDim2.fromOffset(55, 35) plusButton.Position = UDim2.new(1, -72, 0, 177) plusButton.BackgroundColor3 = Color3.fromRGB(48, 48, 55) plusButton.BorderSizePixel = 0 plusButton.Text = "+" plusButton.TextColor3 = Color3.fromRGB(235, 235, 240) plusButton.TextSize = 20 plusButton.Font = Enum.Font.GothamBold plusButton.AutoButtonColor = false plusButton.Parent = console local plusCorner = Instance.new("UICorner") plusCorner.CornerRadius = UDim.new(0, 9) plusCorner.Parent = plusButton --================================================== -- ARRASTRE DE LA CONSOLA -- MOUSE + TÁCTIL --================================================== local dragging = false local dragStart local startPosition local function updateDrag(input) local delta = input.Position - dragStart console.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = console.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) header.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then if dragging then updateDrag(input) end end end) --================================================== -- VOLUMEN --================================================== local function setVolume(value) value = math.clamp(value, 0, 5) pandaVolume = value percentLabel.Text = math.floor(value * 100) .. "%" volumeFill.Size = UDim2.new( value / 5, 0, 1, 0 ) volumeKnob.Position = UDim2.new( value / 5, 0, 0.5, 0 ) if pandaSound then pandaSound.Volume = pandaVolume end end minusButton.MouseButton1Click:Connect(function() setVolume(pandaVolume - 0.1) end) plusButton.MouseButton1Click:Connect(function() setVolume(pandaVolume + 0.1) end) --================================================== -- SLIDER DE VOLUMEN --================================================== local volumeDragging = false local function setVolumeFromInput(input) local x = input.Position.X local startX = volumeBar.AbsolutePosition.X local width = volumeBar.AbsoluteSize.X local percentage = math.clamp( (x - startX) / width, 0, 1 ) setVolume(percentage * 5) end volumeBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then volumeDragging = true setVolumeFromInput(input) end end) UserInputService.InputChanged:Connect(function(input) if volumeDragging then if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then setVolumeFromInput(input) end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then volumeDragging = false end end) --================================================== -- EFECTOS DE BOTONES --================================================== local function buttonEffect(button) button.MouseButton1Down:Connect(function() button.Size = UDim2.fromOffset( button.Size.X.Offset - 2, button.Size.Y.Offset - 2 ) end) button.MouseButton1Up:Connect(function() button.Size = UDim2.fromOffset( button.Size.X.Offset + 2, button.Size.Y.Offset + 2 ) end) end buttonEffect(pandaButton) buttonEffect(playButton) buttonEffect(minusButton) buttonEffect(plusButton) --================================================== -- CREAR SONIDO --================================================== local function createSound(name, id, volume) if not root then return nil end local sound = Instance.new("Sound") sound.Name = name sound.SoundId = "rbxassetid://" .. id sound.Volume = volume sound.Looped = false sound.Parent = root return sound end --================================================== -- ESPERAR A QUE CARGUE UN SONIDO --================================================== local function waitForSound(sound) if not sound then return false end if sound.IsLoaded then return true end local loaded = false local connection connection = sound.Loaded:Connect(function() loaded = true end) local startTime = os.clock() while not loaded and not sound.IsLoaded do if os.clock() - startTime >= 8 then break end task.wait() end if connection then connection:Disconnect() end return sound.IsLoaded end --================================================== -- REPRODUCIR Y ESPERAR --================================================== local function playAndWait(sound) if not sound then return end if not waitForSound(sound) then warn("No se pudo cargar el sonido: " .. sound.SoundId) sound:Destroy() return end sound:Play() while sound.IsPlaying do task.wait() end end --================================================== -- LOOP DEL PANDA --================================================== local function startPandaLoop() if not root then return end -- Eliminar loop anterior if pandaSound then pandaSound:Stop() pandaSound:Destroy() pandaSound = nil end pandaSound = Instance.new("Sound") pandaSound.Name = "PandaLoop" pandaSound.SoundId = "rbxassetid://" .. PANDA_SOUND_ID pandaSound.Volume = pandaVolume pandaSound.Looped = true pandaSound.PlaybackSpeed = 1 pandaSound.Parent = root if waitForSound(pandaSound) then if pandaEnabled then pandaSound:Play() playButton.Text = "⏸ PAUSE" status.Text = "● REPRODUCIENDO" status.TextColor3 = Color3.fromRGB(110, 220, 125) end else warn("No se pudo cargar el loop del panda.") status.Text = "● ERROR DE AUDIO" status.TextColor3 = Color3.fromRGB(220, 90, 90) end end --================================================== -- 😱 SECUENCIA DE APARICIÓN --================================================== local function playPandaArrival() if arrivalRunning then return end if not root then return end arrivalRunning = true status.Text = "● SUSTO 1" status.TextColor3 = Color3.fromRGB(220, 90, 90) -- SUSTO 1 local scare1 = createSound( "PandaScare1", SCARE_SOUND_1, 1 ) playAndWait(scare1) if scare1 then scare1:Destroy() end -- Si el panda fue apagado mientras sonaba if not pandaEnabled or not root then arrivalRunning = false return end status.Text = "● SUSTO 2" status.TextColor3 = Color3.fromRGB(220, 90, 90) -- SUSTO 2 local scare2 = createSound( "PandaScare2", SCARE_SOUND_2, 1 ) playAndWait(scare2) if scare2 then scare2:Destroy() end -- Comprobar otra vez if not pandaEnabled or not root then arrivalRunning = false return end -- Ahora comienza el loop status.Text = "● PANDA LOOP" status.TextColor3 = Color3.fromRGB(110, 220, 125) startPandaLoop() arrivalRunning = false end --================================================== -- PLAY / PAUSA --================================================== playButton.MouseButton1Click:Connect(function() if not pandaSound then startPandaLoop() return end if pandaSound.IsPlaying then pandaSound:Pause() playButton.Text = "▶ PLAY" status.Text = "● PAUSADO" status.TextColor3 = Color3.fromRGB(220, 180, 80) else pandaSound:Resume() playButton.Text = "⏸ PAUSE" status.Text = "● REPRODUCIENDO" status.TextColor3 = Color3.fromRGB(110, 220, 125) end end) --================================================== -- PANDA ON / OFF --================================================== pandaButton.MouseButton1Click:Connect(function() pandaEnabled = not pandaEnabled if pandaEnabled then pandaButton.Text = "🐼 PANDA ON" if pandaGui then pandaGui.Enabled = true end if pandaSound then pandaSound:Resume() playButton.Text = "⏸ PAUSE" status.Text = "● REPRODUCIENDO" status.TextColor3 = Color3.fromRGB(110, 220, 125) else task.spawn(function() startPandaLoop() end) end else pandaButton.Text = "🐼 PANDA OFF" if pandaGui then pandaGui.Enabled = false end if pandaSound then pandaSound:Pause() end status.Text = "● PANDA OFF" status.TextColor3 = Color3.fromRGB(160, 160, 165) end end) --================================================== -- CREAR PANDA --================================================== local function createPanda(character) -- Cancelar estado anterior arrivalRunning = false -- Limpiar sonido anterior if pandaSound then pandaSound:Stop() pandaSound:Destroy() pandaSound = nil end -- Limpiar panda anterior if pandaGui then pandaGui:Destroy() pandaGui = nil end root = character:WaitForChild("HumanoidRootPart") -- Ocultar avatar localmente for _, object in ipairs(character:GetDescendants()) do if object:IsA("BasePart") then object.LocalTransparencyModifier = 1 elseif object:IsA("Decal") then object.Transparency = 1 end end -- Crear panda pandaGui = Instance.new("BillboardGui") pandaGui.Name = "PandaBillboard" pandaGui.Adornee = root pandaGui.Size = UDim2.fromOffset(170, 170) pandaGui.StudsOffset = Vector3.new(0, 2.5, 0) pandaGui.AlwaysOnTop = true pandaGui.Parent = root local image = Instance.new("ImageLabel") image.Size = UDim2.fromScale(1, 1) image.BackgroundTransparency = 1 image.Image = "rbxassetid://" .. PANDA_IMAGE_ID image.Parent = pandaGui if pandaEnabled then status.Text = "● APARECIENDO..." status.TextColor3 = Color3.fromRGB(220, 180, 80) -- 😱 Susto 1 → 😱 Susto 2 → 🐼 Loop task.spawn(function() playPandaArrival() end) else pandaGui.Enabled = false end end --================================================== -- RESPAWN --================================================== player.CharacterAdded:Connect(function(character) task.wait(0.5) createPanda(character) end) --================================================== -- PERSONAJE ACTUAL --================================================== if player.Character then task.wait(0.5) createPanda(player.Character) end --================================================== -- VOLUMEN INICIAL --================================================== setVolume(1)