--// CONFIGURACIÓN local DEFAULT_SPEED = 16 local DEFAULT_JUMP = 50 --// SERVICIOS local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer --// PERSONAJE local character local humanoid local function setupCharacter(char) character = char humanoid = char:WaitForChild("Humanoid") humanoid.WalkSpeed = DEFAULT_SPEED humanoid.UseJumpPower = true humanoid.JumpPower = DEFAULT_JUMP end if player.Character then setupCharacter(player.Character) end player.CharacterAdded:Connect(setupCharacter) --// GUI local gui = Instance.new("ScreenGui") gui.Name = "AdminControlGUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") --// BOTÓN PRINCIPAL local openButton = Instance.new("TextButton") openButton.Size = UDim2.fromOffset(55, 55) openButton.Position = UDim2.new(0, 20, 0.5, -25) openButton.Text = "MENU" openButton.TextScaled = true openButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) openButton.TextColor3 = Color3.new(1, 1, 1) openButton.Parent = gui Instance.new("UICorner", openButton).CornerRadius = UDim.new(0, 12) --// VENTANA local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(280, 330) frame.Position = UDim2.new(0.5, -140, 0.5, -165) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.Visible = true frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 15) --// TÍTULO local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 45) title.BackgroundTransparency = 1 title.Text = "⚙️ CONTROLES" title.TextColor3 = Color3.new(1, 1, 1) title.TextScaled = true title.Parent = frame --// CREAR CAJA local function createBox(text, y) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -30, 0, 25) label.Position = UDim2.fromOffset(15, y) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.new(1, 1, 1) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local box = Instance.new("TextBox") box.Size = UDim2.new(1, -30, 0, 35) box.Position = UDim2.fromOffset(15, y + 25) box.BackgroundColor3 = Color3.fromRGB(45, 45, 45) box.TextColor3 = Color3.new(1, 1, 1) box.PlaceholderText = "Escribe un número" box.Text = "" box.ClearTextOnFocus = false box.Parent = frame Instance.new("UICorner", box).CornerRadius = UDim.new(0, 8) return box end local speedBox = createBox("⚡ Velocidad", 55) local jumpBox = createBox("🦘 Salto", 120) --// BOTÓN NOCLIP local noclipButton = Instance.new("TextButton") noclipButton.Size = UDim2.new(1, -30, 0, 40) noclipButton.Position = UDim2.fromOffset(15, 190) noclipButton.Text = "👻 Noclip: OFF" noclipButton.TextScaled = true noclipButton.BackgroundColor3 = Color3.fromRGB(170, 50, 50) noclipButton.TextColor3 = Color3.new(1, 1, 1) noclipButton.Parent = frame Instance.new("UICorner", noclipButton).CornerRadius = UDim.new(0, 8) --// BOTÓN APLICAR local applyButton = Instance.new("TextButton") applyButton.Size = UDim2.new(1, -30, 0, 40) applyButton.Position = UDim2.fromOffset(15, 240) applyButton.Text = "✅ Aplicar" applyButton.TextScaled = true applyButton.BackgroundColor3 = Color3.fromRGB(50, 150, 80) applyButton.TextColor3 = Color3.new(1, 1, 1) applyButton.Parent = frame Instance.new("UICorner", applyButton).CornerRadius = UDim.new(0, 8) --// SALDO local moneyButton = Instance.new("TextButton") moneyButton.Size = UDim2.new(1, -30, 0, 35) moneyButton.Position = UDim2.fromOffset(15, 285) moneyButton.Text = "💰 Añadir saldo de prueba" moneyButton.TextScaled = true moneyButton.BackgroundColor3 = Color3.fromRGB(180, 140, 30) moneyButton.TextColor3 = Color3.new(1, 1, 1) moneyButton.Parent = frame Instance.new("UICorner", moneyButton).CornerRadius = UDim.new(0, 8) --// APLICAR VELOCIDAD Y SALTO applyButton.MouseButton1Click:Connect(function() if not humanoid then return end local speed = tonumber(speedBox.Text) local jump = tonumber(jumpBox.Text) if speed then humanoid.WalkSpeed = math.clamp(speed, 0, 500) end if jump then humanoid.JumpPower = math.clamp(jump, 0, 500) end end) --// NOCLIP local noclip = false noclipButton.MouseButton1Click:Connect(function() noclip = not noclip if noclip then noclipButton.Text = "👻 Noclip: ON" noclipButton.BackgroundColor3 = Color3.fromRGB(50, 170, 80) else noclipButton.Text = "👻 Noclip: OFF" noclipButton.BackgroundColor3 = Color3.fromRGB(170, 50, 50) end end) RunService.Stepped:Connect(function() if noclip and character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) --// ABRIR / CERRAR GUI openButton.MouseButton1Click:Connect(function() frame.Visible = not frame.Visible end) --// HACER OBJETO ARRASTRABLE local function makeDraggable(object) local dragging = false local dragStart local startPosition object.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = object.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) 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 object.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) end makeDraggable(frame) makeDraggable(openButton) --// SALDO DE PRUEBA -- IMPORTANTE: -- Este botón NO puede cambiar de forma segura el dinero real -- del servidor desde un LocalScript. -- Conecta aquí un RemoteEvent de TU propio sistema de dinero. moneyButton.MouseButton1Click:Connect(function() print("Botón de saldo de prueba pulsado.") end)