local player = game.Players.LocalPlayer local screenGui = Instance.new("ScreenGui") screenGui.ResetOnSpawn = false -- Asegura que la interfaz no se reinicie con el personaje screenGui.Parent = player:WaitForChild("PlayerGui") -- Botón "Noclip" local noclipButton = Instance.new("TextButton") noclipButton.Size = UDim2.new(0.05, 0, 0.05, 0) -- Tamaño pequeño noclipButton.Position = UDim2.new(0.4, 0, 0.4, 0) noclipButton.Text = "Noclip" noclipButton.BackgroundColor3 = Color3.new(0.5, 0.5, 0.5) -- Gris noclipButton.BackgroundTransparency = 0.48 -- 48% transparente noclipButton.Parent = screenGui -- Variable para alternar noclip local noclipActive = false local noclipConnection = nil -- Para gestionar la conexión de Stepped -- Función para activar/desactivar noclip local function toggleNoclip() noclipActive = not noclipActive noclipButton.Text = noclipActive and "Clip" or "Noclip" -- Cambia el texto del botón if noclipActive then -- Activa noclip noclipConnection = game:GetService("RunService").Stepped:Connect(function() for _, part in ipairs(player.Character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end) else -- Desactiva noclip if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end -- Restaura la colisión for _, part in ipairs(player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end -- Conectar la función al botón noclipButton.MouseButton1Click:Connect(toggleNoclip) -- Botón "Remove" local removeButton = Instance.new("TextButton") removeButton.Size = UDim2.new(0.05, 0, 0.05, 0) -- Tamaño pequeño removeButton.Position = UDim2.new(0.45, 0, 0.4, 0) -- Junto al botón "Noclip" removeButton.Text = "Remove" removeButton.BackgroundColor3 = Color3.new(1, 0, 0) -- Rojo removeButton.BackgroundTransparency = 0.48 -- 48% transparente removeButton.Parent = screenGui -- Función para quitar la interfaz y activar Clip removeButton.MouseButton1Click:Connect(function() if noclipActive then toggleNoclip() -- Desactiva noclip si está activo end screenGui:Destroy() -- Quita la interfaz end) -- Hacer que los botones sean movibles local dragging = false local dragStart = nil local startPos = nil local function updateButtonPosition(input) local delta = input.Position - dragStart local newPosition = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) -- Actualiza la posición del botón "Noclip" noclipButton.Position = newPosition -- Actualiza la posición del botón "Remove" basado en la posición del botón "Noclip" removeButton.Position = UDim2.new(newPosition.X.Scale + 0.05, newPosition.X.Offset, newPosition.Y.Scale, newPosition.Y.Offset) end local function startDragging(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = noclipButton.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end noclipButton.InputBegan:Connect(startDragging) removeButton.InputBegan:Connect(startDragging) noclipButton.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateButtonPosition(input) end end) removeButton.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateButtonPosition(input) end end)