--// 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)