kir hub
Key RequiredUniversal

kir hub

Universal Scriptdif240121dif240121 275 views 426 executesUpdated Sep 8, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•266 lines (6890 chars)
--// PANEL DE PRUEBAS - ROBLOX STUDIO
--// Coloca este LocalScript en:
--// StarterPlayer > StarterPlayerScripts

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

-- CONFIGURACIÓN
local NORMAL_SPEED = 30
local FAST_SPEED = 100

local noclip = false
local speedEnabled = false

--// GUI
local gui = Instance.new("ScreenGui")
gui.Name = "TestPanel"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

-- Botón para volver a abrir
local openButton = Instance.new("TextButton")
openButton.Name = "OpenButton"
openButton.Size = UDim2.new(0, 110, 0, 40)
openButton.Position = UDim2.new(0, 20, 1, -60)
openButton.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
openButton.TextColor3 = Color3.new(1, 1, 1)
openButton.Text = "ABRIR GUI"
openButton.TextSize = 16
openButton.Visible = false
openButton.Parent = gui

local cornerOpen = Instance.new("UICorner")
cornerOpen.CornerRadius = UDim.new(0, 8)
cornerOpen.Parent = openButton

-- Panel principal
local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 260, 0, 260)
frame.Position = UDim2.new(0.5, -130, 0.5, -130)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
frame.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = frame

-- Título
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -45, 0, 45)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Text = "⚙ PANEL DE PRUEBAS"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = frame

-- Botón X
local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 35, 0, 35)
close.Position = UDim2.new(1, -40, 0, 5)
close.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
close.Text = "X"
close.TextColor3 = Color3.new(1, 1, 1)
close.TextSize = 18
close.Font = Enum.Font.GothamBold
close.Parent = frame

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 8)
closeCorner.Parent = close

-- Función para crear botones
local function createButton(text, y)
	local button = Instance.new("TextButton")
	button.Size = UDim2.new(1, -30, 0, 45)
	button.Position = UDim2.new(0, 15, 0, y)
	button.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
	button.TextColor3 = Color3.new(1, 1, 1)
	button.Text = text
	button.TextSize = 16
	button.Font = Enum.Font.Gotham
	button.Parent = frame

	local c = Instance.new("UICorner")
	c.CornerRadius = UDim.new(0, 8)
	c.Parent = button

	return button
end

local speedButton = createButton("⚡ Velocidad: OFF", 55)
local noclipButton = createButton("👻 Noclip: OFF", 110)
local balanceButton = createButton("💰 Saldo infinito", 165)

--// VELOCIDAD
speedButton.MouseButton1Click:Connect(function()
	speedEnabled = not speedEnabled

	local character = player.Character
	local humanoid = character and character:FindFirstChildOfClass("Humanoid")

	if humanoid then
		if speedEnabled then
			humanoid.WalkSpeed = FAST_SPEED
			speedButton.Text = "⚡ Velocidad: ON"
			speedButton.BackgroundColor3 = Color3.fromRGB(40, 150, 70)
		else
			humanoid.WalkSpeed = NORMAL_SPEED
			speedButton.Text = "⚡ Velocidad: OFF"
			speedButton.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
		end
	end
end)

--// NOCLIP
RunService.Stepped:Connect(function()
	if not noclip then
		return
	end

	local character = player.Character
	if not character then
		return
	end

	for _, part in ipairs(character:GetDescendants()) do
		if part:IsA("BasePart") then
			part.CanCollide = false
		end
	end
end)

noclipButton.MouseButton1Click:Connect(function()
	noclip = not noclip

	if noclip then
		noclipButton.Text = "👻 Noclip: ON"
		noclipButton.BackgroundColor3 = Color3.fromRGB(40, 150, 70)
	else
		noclipButton.Text = "👻 Noclip: OFF"
		noclipButton.BackgroundColor3 = Color3.fromRGB(45, 45, 55)

		local character = player.Character
		if character then
			for _, part in ipairs(character:GetDescendants()) do
				if part:IsA("BasePart") then
					part.CanCollide = true
				end
			end
		end
	end
end)

--// SALDO INFINITO
-- Esto busca un leaderstats llamado "Saldo" o "Balance".
-- Para un sistema real, el cambio debe hacerse en un Script del servidor.

balanceButton.MouseButton1Click:Connect(function()
	local leaderstats = player:FindFirstChild("leaderstats")

	if not leaderstats then
		balanceButton.Text = "❌ No existe leaderstats"
		task.wait(2)
		balanceButton.Text = "💰 Saldo infinito"
		return
	end

	local saldo = leaderstats:FindFirstChild("Saldo")
		or leaderstats:FindFirstChild("Balance")
		or leaderstats:FindFirstChild("Money")
		or leaderstats:FindFirstChild("Coins")

	if saldo and (saldo:IsA("IntValue") or saldo:IsA("NumberValue")) then
		saldo.Value = math.huge
		balanceButton.Text = "💰 Saldo: INFINITO"
		balanceButton.BackgroundColor3 = Color3.fromRGB(40, 150, 70)
	else
		balanceButton.Text = "❌ No encontré el saldo"
		task.wait(2)
		balanceButton.Text = "💰 Saldo infinito"
	end
end)

--// CERRAR GUI
close.MouseButton1Click:Connect(function()
	frame.Visible = false
	openButton.Visible = true
end)

--// ABRIR GUI
openButton.MouseButton1Click:Connect(function()
	frame.Visible = true
	openButton.Visible = false
end)

--// HACER EL GUI ARRASTRABLE
local dragging = false
local dragStart
local startPosition

title.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = true
		dragStart = input.Position
		startPosition = frame.Position
	end
end)

title.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = false
	end
end)

title.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch then

		local connection
		connection = input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
				connection:Disconnect()
			end
		end)
	end
end)

game:GetService("UserInputService").InputChanged:Connect(function(input)
	if not dragging then
		return
	end

	if input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch then

		local delta = input.Position - dragStart

		frame.Position = UDim2.new(
			startPosition.X.Scale,
			startPosition.X.Offset + delta.X,
			startPosition.Y.Scale,
			startPosition.Y.Offset + delta.Y
		)
	end
end)

--// REAPLICAR VELOCIDAD DESPUÉS DE MORIR
player.CharacterAdded:Connect(function(character)
	local humanoid = character:WaitForChild("Humanoid")

	if speedEnabled then
		humanoid.WalkSpeed = FAST_SPEED
	else
		humanoid.WalkSpeed = NORMAL_SPEED
	end
end)

Features & Information

2 script:)

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts