
KeylessUniversal

-- LocalScript for GUI-less Noclip
-- This script has been updated to use the Insert key instead of Delete.
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
local noclipEnabled = false
local waitingForNewKey = false
-- Default keybinds
local toggleKey = Enum.KeyCode.N
local setKeybindKey = Enum.KeyCode.Insert -- Changed from Enum.KeyCode.Delete
local toggleInputKey = Enum.KeyCode.End
-- Notification function
local function notify(title, text, duration)
StarterGui:SetCore("SendNotification", {
Title = title,
Text = text,
Duration = duration or 2
})
end
-- Function to set the noclip state
local function setNoclipState(enabled)
local char = player.Character
if not char then return end
noclipEnabled = enabled
-- Provide feedback to the user
if enabled then
notify("Noclip", "Noclip is now ON.")
else
notify("Noclip", "Noclip is now OFF.")
end
-- Set the CanCollide property for all parts in the character
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") or part:IsA("MeshPart") then
part.CanCollide = not enabled
end
end
end
-- This function runs every frame to ensure the noclip is locked
RunService.Stepped:Connect(function()
if noclipEnabled then
local char = player.Character
if char then
-- Re-apply noclip state to all parts to override game scripts
for _, part in ipairs(char:GetDescendants()) do
if (part:IsA("BasePart") or part:IsA("MeshPart")) and part.CanCollide == true then
part.CanCollide = false
end
end
end
end
end)
-- Update noclip state when character is added (after reset)
player.CharacterAdded:Connect(function()
if noclipEnabled then
setNoclipState(true)
end
end)
----------------------------------------------------------------------------------------------------
-- Main keybind handler
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
-- Check if we are waiting for a new keybind
if waitingForNewKey and input.UserInputType == Enum.UserInputType.Keyboard then
-- Set the new toggle key
toggleKey = input.KeyCode
waitingForNewKey = false
notify("Noclip", "New toggle key set to: " .. toggleKey.Name)
return
end
-- Handle the keybinds only if not waiting for a new key
if not waitingForNewKey then
-- Toggle noclip on/off
if input.KeyCode == toggleKey then
setNoclipState(not noclipEnabled)
-- Enter keybind setting mode
elseif input.KeyCode == setKeybindKey then
waitingForNewKey = true
notify("Noclip", "Press a key to set as the new noclip toggle.", 5)
end
end
end)No comments yet for this script.



