
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
-- // Settings
local Settings = {
Enabled = true,
Boxes = true,
Names = true,
TeamCheck = true,
BoxColor = Color3.fromRGB(255, 0, 0),
NameColor = Color3.fromRGB(255, 255, 255),
MenuKey = Enum.KeyCode.Insert
}
-- // UI Creation (Simple Toggle Menu)
local ScreenGui = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local ToggleBox = Instance.new("TextButton")
local ToggleName = Instance.new("TextButton")
local StatusLabel = Instance.new("TextLabel")
ScreenGui.Name = "ESPMenus"
ScreenGui.Parent = (game:GetService("CoreGui") or game:GetService("Players").LocalPlayer.PlayerGui)
ScreenGui.ResetOnSpawn = false
MainFrame.Name = "MainFrame"
MainFrame.Parent = ScreenGui
MainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
MainFrame.BorderSizePixel = 0
MainFrame.Position = UDim2.new(0.05, 0, 0.05, 0)
MainFrame.Size = UDim2.new(0, 200, 0, 180)
MainFrame.Active = true
MainFrame.Draggable = true
Title.Name = "Title"
Title.Parent = MainFrame
Title.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
Title.BorderSizePixel = 0
Title.Size = UDim2.new(1, 0, 0, 30)
Title.Font = Enum.Font.SourceSansBold
Title.Text = "ESP MENU"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 18
local function CreateButton(name, text, pos, callback)
local btn = Instance.new("TextButton")
btn.Name = name
btn.Parent = MainFrame
btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
btn.BorderSizePixel = 0
btn.Position = pos
btn.Size = UDim2.new(0.8, 0, 0, 30)
btn.AnchorPoint = Vector2.new(0.5, 0)
btn.Position = UDim2.new(0.5, 0, pos.Y.Scale, pos.Y.Offset)
btn.Font = Enum.Font.SourceSans
btn.Text = text .. ": ON"
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.TextSize = 16
btn.MouseButton1Click:Connect(function()
local newState = callback()
btn.Text = text .. (newState and ": ON" or ": OFF")
btn.BackgroundColor3 = newState and Color3.fromRGB(50, 80, 50) or Color3.fromRGB(80, 50, 50)
end)
return btn
end
CreateButton("BoxToggle", "Box ESP", UDim2.new(0, 0, 0, 45), function()
Settings.Boxes = not Settings.Boxes
return Settings.Boxes
end)
CreateButton("NameToggle", "Name ESP", UDim2.new(0, 0, 0, 85), function()
Settings.Names = not Settings.Names
return Settings.Names
end)
StatusLabel.Parent = MainFrame
StatusLabel.Size = UDim2.new(1, 0, 0, 20)
StatusLabel.Position = UDim2.new(0, 0, 1, -25)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "[Ins] to Toggle Menu"
StatusLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
StatusLabel.TextSize = 12
UserInputService.InputBegan:Connect(function(input, gpe)
if not gpe and input.KeyCode == Settings.MenuKey then
MainFrame.Visible = not MainFrame.Visible
end
end)
-- // ESP Logic using Drawing Library
local function CreateESP(Player)
local Box = Drawing.new("Square")
Box.Visible = false
Box.Color = Settings.BoxColor
Box.Thickness = 1
Box.Transparency = 1
Box.Filled = false
local Name = Drawing.new("Text")
Name.Visible = false
Name.Color = Settings.NameColor
Name.Size = 16
Name.Center = true
Name.Outline = true
local function Updater()
local Connection
Connection = RunService.RenderStepped:Connect(function()
if Settings.Enabled and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") and Player.Character:FindFirstChild("Humanoid") and Player.Character.Humanoid.Health > 0 then
if Settings.TeamCheck and Player.Team == LocalPlayer.Team then
Box.Visible = false
Name.Visible = false
return
end
local RootPart = Player.Character.HumanoidRootPart
local Head = Player.Character:FindFirstChild("Head")
if not Head then return end
local RootPos, OnScreen = Camera:WorldToViewportPoint(RootPart.Position)
local HeadPos = Camera:WorldToViewportPoint(Head.Position + Vector3.new(0, 0.5, 0))
local LegPos = Camera:WorldToViewportPoint(RootPart.Position - Vector3.new(0, 3, 0))
if OnScreen then
if Settings.Boxes then
local Height = math.abs(HeadPos.Y - LegPos.Y)
local Width = Height / 1.5
Box.Size = Vector2.new(Width, Height)
Box.Position = Vector2.new(RootPos.X - Width / 2, RootPos.Y - Height / 2)
Box.Visible = true
else
Box.Visible = false
end
if Settings.Names then
Name.Text = Player.Name
Name.Position = Vector2.new(RootPos.X, RootPos.Y - (math.abs(HeadPos.Y - LegPos.Y) / 2) - 15)
Name.Visible = true
else
Name.Visible = false
end
else
Box.Visible = false
Name.Visible = false
end
else
Box.Visible = false
Name.Visible = false
if not Player.Parent then
Box:Remove()
Name:Remove()
Connection:Disconnect()
end
end
end)
end
coroutine.wrap(Updater)()
end
for _, v in pairs(Players:GetPlayers()) do
if v ~= LocalPlayer then
CreateESP(v)
end
end
Players.PlayerAdded:Connect(function(v)
CreateESP(v)
end)No comments yet for this script.



