NO FE Good night old friend v2
Key RequiredUniversal

NO FE Good night old friend v2

Universal ScriptThecalebnoseThecalebnose 821 views 1.2K executesUpdated Oct 7, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•821 lines (19182 chars)
--// 🐼 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)

Features & Information

It's a funny script that turns you into a panda meme

Community Comments (5)

QueueSherlockQueueSherlockOct 11, 2026

op script!!

voltexvoltexOct 11, 2026

try posting less!

ZeroPointZeroPointOct 12, 2026

wow this is so cool

CYGRUSCYGRUSOct 13, 2026

vou testar, e da minha opinião

Replying to @CYGRUS
CYGRUSCYGRUSOct 13, 2026

3,1

More Scripts for Universal Scripts