
KeylessUniversal

--!strict
-- Configuration
local CONFIG = {
TOGGLE_KEY = Enum.KeyCode.X,
DEFAULT_SPEED = 16,
BOOSTED_SPEED = 48,
SOUND_ID = "rbxassetid://942127495",
INVISIBILITY_POSITION = Vector3.new(-25.95, 84, 3537.55),
NOTIFICATION_DURATION = 3,
-- UI Colors
BACKGROUND_COLOR = Color3.fromRGB(25, 25, 25),
ACCENT_COLOR = Color3.fromRGB(45, 45, 45),
PRIMARY_COLOR = Color3.fromRGB(0, 170, 255),
SUCCESS_COLOR = Color3.fromRGB(46, 204, 113),
DANGER_COLOR = Color3.fromRGB(231, 76, 60),
WARNING_COLOR = Color3.fromRGB(241, 196, 15),
TEXT_COLOR = Color3.fromRGB(255, 255, 255),
SECONDARY_TEXT_COLOR = Color3.fromRGB(189, 195, 199),
}
-- Types
type PlayerState = {
isInvisible: boolean,
isSpeedBoosted: boolean,
originalSpeed: number,
}
-- Services
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
-- Variables
local player = Players.LocalPlayer
local playerState: PlayerState = {
isInvisible = false,
isSpeedBoosted = false,
originalSpeed = CONFIG.DEFAULT_SPEED,
}
-- GUI Elements
local screenGui: ScreenGui
local mainFrame: Frame
local toggleButton: TextButton
local speedButton: TextButton
local closeButton: TextButton
local signatureLabel: TextLabel
local sound: Sound
-- Utility Functions
local function createNotification(title: string, text: string): ()
StarterGui:SetCore("SendNotification", {
Title = title,
Text = text,
Duration = CONFIG.NOTIFICATION_DURATION,
})
end
local function setCharacterTransparency(character: Model, transparency: number): ()
for _, descendant in character:GetDescendants() do
if descendant:IsA("BasePart") or descendant:IsA("Decal") then
descendant.Transparency = transparency
end
end
end
local function getHumanoid(): Humanoid?
local character = player.Character
if not character then
return nil
end
return character:FindFirstChild("Humanoid") :: Humanoid?
end
local function getHumanoidRootPart(): BasePart?
local character = player.Character
if not character then
return nil
end
return character:FindFirstChild("HumanoidRootPart") :: BasePart?
end
local function playSound(): ()
if sound then
sound:Play()
end
end
-- Core Functions
local function toggleInvisibility(): ()
if not player.Character then
warn("Character not found")
return
end
playerState.isInvisible = not playerState.isInvisible
playSound()
if playerState.isInvisible then
local humanoidRootPart = getHumanoidRootPart()
if not humanoidRootPart then
warn("HumanoidRootPart not found")
return
end
local savedPosition = humanoidRootPart.CFrame
-- Move to invisibility position
player.Character:MoveTo(CONFIG.INVISIBILITY_POSITION)
task.wait(0.15)
-- Create invisible seat
local seat = Instance.new("Seat")
seat.Name = "invischair"
seat.Anchored = false
seat.CanCollide = false
seat.Transparency = 1
seat.Position = CONFIG.INVISIBILITY_POSITION
seat.Parent = workspace
-- Weld seat to character
local weld = Instance.new("Weld")
weld.Part0 = seat
weld.Part1 = player.Character:FindFirstChild("Torso") or player.Character:FindFirstChild("UpperTorso")
weld.Parent = seat
task.wait()
seat.CFrame = savedPosition
-- Set character transparency
setCharacterTransparency(player.Character, 0.5)
-- Update button appearance
toggleButton.BackgroundColor3 = CONFIG.SUCCESS_COLOR
toggleButton.Text = "VISIBLE"
if _G.statusLabel then
_G.statusLabel.Text = "Invisible Mode Active"
_G.statusLabel.TextColor3 = CONFIG.SUCCESS_COLOR
end
createNotification("Invisibility ON", "You are now invisible")
else
-- Remove invisible chair
local invisChair = workspace:FindFirstChild("invischair")
if invisChair then
invisChair:Destroy()
end
-- Restore character visibility
if player.Character then
setCharacterTransparency(player.Character, 0)
end
-- Update button appearance
toggleButton.BackgroundColor3 = CONFIG.PRIMARY_COLOR
toggleButton.Text = "INVISIBLE"
if _G.statusLabel then
_G.statusLabel.Text = "Visible Mode Active"
_G.statusLabel.TextColor3 = CONFIG.SECONDARY_TEXT_COLOR
end
createNotification("Invisibility OFF", "You are now visible")
end
end
local function toggleSpeedBoost(): ()
local humanoid = getHumanoid()
if not humanoid then
warn("Humanoid not found")
return
end
playerState.isSpeedBoosted = not playerState.isSpeedBoosted
playSound()
if playerState.isSpeedBoosted then
humanoid.WalkSpeed = CONFIG.BOOSTED_SPEED
speedButton.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
speedButton.Text = "SPEED ON"
createNotification("Speed Boost ON", `Speed: {CONFIG.BOOSTED_SPEED}`)
else
humanoid.WalkSpeed = playerState.originalSpeed
speedButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
speedButton.Text = "SPEED BOOST"
createNotification("Speed Boost OFF", `Speed: {playerState.originalSpeed}`)
end
end
local function resetPlayerState(): ()
playerState.isInvisible = false
playerState.isSpeedBoosted = false
-- Reset button appearances
if toggleButton then
toggleButton.BackgroundColor3 = CONFIG.PRIMARY_COLOR
toggleButton.Text = "INVISIBLE"
end
if speedButton then
speedButton.BackgroundColor3 = CONFIG.DANGER_COLOR
speedButton.Text = "SPEED BOOST"
end
-- Reset status
if _G.statusLabel then
_G.statusLabel.Text = "Ready"
_G.statusLabel.TextColor3 = CONFIG.SECONDARY_TEXT_COLOR
end
end
-- GUI Creation
local function createGUI(): ()
-- Main ScreenGui
screenGui = Instance.new("ScreenGui")
screenGui.Name = "InvisibilityGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
-- Main Frame
mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 160, 0, 180)
mainFrame.Position = UDim2.new(0.5, -80, 0.5, -90)
mainFrame.BackgroundColor3 = CONFIG.BACKGROUND_COLOR
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
-- Add corner rounding and shadow effect
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = mainFrame
-- Add stroke for better definition
local stroke = Instance.new("UIStroke")
stroke.Color = CONFIG.ACCENT_COLOR
stroke.Thickness = 2
stroke.Parent = mainFrame
-- Title Label
local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "TitleLabel"
titleLabel.Size = UDim2.new(1, -20, 0, 25)
titleLabel.Position = UDim2.new(0, 10, 0, 10)
titleLabel.Text = "INVISIBILITY TOOL"
titleLabel.BackgroundTransparency = 1
titleLabel.TextColor3 = CONFIG.TEXT_COLOR
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 12
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame
-- Toggle Button
toggleButton = Instance.new("TextButton")
toggleButton.Name = "ToggleButton"
toggleButton.Size = UDim2.new(1, -20, 0, 35)
toggleButton.Position = UDim2.new(0, 10, 0, 45)
toggleButton.Text = "INVISIBLE"
toggleButton.BackgroundColor3 = CONFIG.PRIMARY_COLOR
toggleButton.TextColor3 = CONFIG.TEXT_COLOR
toggleButton.Font = Enum.Font.GothamBold
toggleButton.TextScaled = true
toggleButton.BorderSizePixel = 0
toggleButton.Parent = mainFrame
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 8)
toggleCorner.Parent = toggleButton
-- Add hover effect for toggle button
local toggleStroke = Instance.new("UIStroke")
toggleStroke.Color = Color3.fromRGB(255, 255, 255)
toggleStroke.Thickness = 0
toggleStroke.Transparency = 0.8
toggleStroke.Parent = toggleButton
-- Speed Button
speedButton = Instance.new("TextButton")
speedButton.Name = "SpeedButton"
speedButton.Size = UDim2.new(1, -20, 0, 35)
speedButton.Position = UDim2.new(0, 10, 0, 90)
speedButton.Text = "SPEED BOOST"
speedButton.BackgroundColor3 = CONFIG.DANGER_COLOR
speedButton.TextColor3 = CONFIG.TEXT_COLOR
speedButton.Font = Enum.Font.GothamBold
speedButton.TextScaled = true
speedButton.BorderSizePixel = 0
speedButton.Parent = mainFrame
local speedCorner = Instance.new("UICorner")
speedCorner.CornerRadius = UDim.new(0, 8)
speedCorner.Parent = speedButton
-- Add hover effect for speed button
local speedStroke = Instance.new("UIStroke")
speedStroke.Color = Color3.fromRGB(255, 255, 255)
speedStroke.Thickness = 0
speedStroke.Transparency = 0.8
speedStroke.Parent = speedButton
-- Close Button
closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 25, 0, 25)
closeButton.Position = UDim2.new(1, -30, 0, 5)
closeButton.Text = "×"
closeButton.BackgroundColor3 = CONFIG.DANGER_COLOR
closeButton.TextColor3 = CONFIG.TEXT_COLOR
closeButton.Font = Enum.Font.GothamBold
closeButton.TextSize = 16
closeButton.BorderSizePixel = 0
closeButton.Parent = mainFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeButton
-- Status Indicator
local statusFrame = Instance.new("Frame")
statusFrame.Name = "StatusFrame"
statusFrame.Size = UDim2.new(1, -20, 0, 20)
statusFrame.Position = UDim2.new(0, 10, 0, 135)
statusFrame.BackgroundColor3 = CONFIG.ACCENT_COLOR
statusFrame.BorderSizePixel = 0
statusFrame.Parent = mainFrame
local statusCorner = Instance.new("UICorner")
statusCorner.CornerRadius = UDim.new(0, 6)
statusCorner.Parent = statusFrame
local statusLabel = Instance.new("TextLabel")
statusLabel.Name = "StatusLabel"
statusLabel.Size = UDim2.new(1, -10, 1, 0)
statusLabel.Position = UDim2.new(0, 5, 0, 0)
statusLabel.Text = "Ready"
statusLabel.BackgroundTransparency = 1
statusLabel.TextColor3 = CONFIG.SECONDARY_TEXT_COLOR
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 10
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = statusFrame
-- Signature Label
signatureLabel = Instance.new("TextLabel")
signatureLabel.Name = "SignatureLabel"
signatureLabel.Size = UDim2.new(1, -20, 0, 15)
signatureLabel.Position = UDim2.new(0, 10, 1, -20)
signatureLabel.Text = "By: xXHaNdEROXx TG@MK14CFG"
signatureLabel.BackgroundTransparency = 1
signatureLabel.TextColor3 = CONFIG.SECONDARY_TEXT_COLOR
signatureLabel.Font = Enum.Font.Gotham
signatureLabel.TextSize = 8
signatureLabel.TextTransparency = 0.5
signatureLabel.TextXAlignment = Enum.TextXAlignment.Center
signatureLabel.Parent = mainFrame
-- Sound
sound = Instance.new("Sound")
sound.Name = "ToggleSound"
sound.SoundId = CONFIG.SOUND_ID
sound.Volume = 0.5
sound.Parent = screenGui
-- Store status label for updates
_G.statusLabel = statusLabel
end
-- Event Connections
local function connectEvents(): ()
-- Button connections
toggleButton.MouseButton1Click:Connect(toggleInvisibility)
speedButton.MouseButton1Click:Connect(toggleSpeedBoost)
closeButton.MouseButton1Click:Connect(function()
screenGui.Enabled = false
end)
-- Keyboard input
UserInputService.InputBegan:Connect(function(input: InputObject, gameProcessed: boolean)
if gameProcessed then
return
end
if input.KeyCode == CONFIG.TOGGLE_KEY then
toggleInvisibility()
end
end)
-- Character respawn handling
player.CharacterAdded:Connect(function(character: Model)
resetPlayerState()
local humanoid = character:WaitForChild("Humanoid") :: Humanoid
playerState.originalSpeed = humanoid.WalkSpeed
humanoid.WalkSpeed = CONFIG.DEFAULT_SPEED
-- Clean up any existing invisible chairs
local invisChair = workspace:FindFirstChild("invischair")
if invisChair then
invisChair:Destroy()
end
end)
-- Handle player leaving
Players.PlayerRemoving:Connect(function(leavingPlayer: Player)
if leavingPlayer == player then
local invisChair = workspace:FindFirstChild("invischair")
if invisChair then
invisChair:Destroy()
end
end
end)
end
-- Initialize
local function initialize(): ()
-- Wait for character to load
if not player.Character then
player.CharacterAdded:Wait()
end
-- Store original speed
local humanoid = getHumanoid()
if humanoid then
playerState.originalSpeed = humanoid.WalkSpeed
end
-- Create GUI and connect events
createGUI()
connectEvents()
print("Enhanced Invisibility Script loaded successfully!")
end
-- Start the script
initialize()



Great script Gang But iDk if is posible make a script of invisibility thats allows you to attack When invisible like hide your body underGrownd but still hitbox up?
@teslacueto on run hide fight there a gun when you use this script you still can kill people with ur gun or weapon also maybe can work on other game
nice
Great script, but SOMETIMES it doesn't work(In your screen it says invisible) while other people can still see you at the place you clicked the "invisible" button and you're just frozen there. Otherwise, this script is goated people can't even see you in spectator
i have a script iit still gets players while invisble but when a dev uses A hitbox is a whole new issue
plus hes using the same method i am using and released same moth as i am feels weird and code feels weird just names
Is this chatgpt?
@Joyful_PizzaPartyl nope i got some source on github and i modify it
@SCRIPTBLOXSECURITY then if you modified the script what if person who made the script used chatgpt
@Joyful_PizzaPartyl so what purpose you commenting this script?
Noone uses that stupid -- comment
On every variable and parts
Hey guys there is no script that supports ALL pvp games and support invisibility kill, sadly your hrp gets teleported too.
@Joyful_PizzaPartyl who said all pvp games tho its actually support invisbillity kill based on your rage and game
@SCRIPTBLOXSECURITY yeah like mm2 but there's no thing that supports ALL pvp games..