
KeylessUniversal

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TS = game:GetService("TweenService")
local RS = game:GetService("RunService")
local LP = Players.LocalPlayer
local rgb, udim, offset = Color3.fromRGB, UDim2.new, UDim2.fromOffset
local white = Color3.new(1, 1, 1)
local inkCol = rgb(30, 30, 36)
local bgCol, lineCol, accent, offCol = rgb(255, 255, 255), rgb(210, 210, 218), rgb(149, 92, 215), rgb(205, 205, 212)
local cartoon = Enum.Font.FredokaOne
local fast = TweenInfo.new(0.15)
local popTi = TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
local sizes = {main = 138, settings = 178}
local pieceKeys = {"hl", "bb", "boxGui", "line"}
local espColor = rgb(255, 0, 0)
local teamColor = rgb(60, 100, 255)
local isOn, hlOn, unOn, tnOn, boxOn, tracerOn, teamOn = false, true, true, false, false, false, false
local isOpen, curTab = true, "main"
local espData, woahjConns, pickers = {}, {}, {}
local addConn, remConn, lineConn, lpTeamConn
local onMove, held
local woahj
local presetColors = {rgb(255, 0, 0), rgb(255, 140, 0), rgb(255, 230, 0), rgb(0, 255, 120), rgb(0, 220, 255), rgb(60, 100, 255), rgb(149, 92, 215), rgb(30, 30, 36)}
local moveConn = UIS.InputChanged:Connect(function(m)
if onMove and (m.UserInputType == Enum.UserInputType.MouseMovement or m.UserInputType == Enum.UserInputType.Touch) then
onMove(m)
end
end)
local endConn = UIS.InputEnded:Connect(function(i)
if held and (i == held or (i.UserInputType == Enum.UserInputType.MouseButton1 and held.UserInputType == Enum.UserInputType.MouseButton1)) then
onMove, held = nil, nil
end
end)
local function isPress(i)
return i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch
end
local function startDrag(i, fn)
held = i
onMove = function(m)
if m == i or m.UserInputType == Enum.UserInputType.MouseMovement then
fn(m)
end
end
end
local function make(class, props, par)
local o = Instance.new(class)
for k, val in props do
o[k] = val
end
o.Parent = par
return o
end
local function corner(o, a, b)
make("UICorner", {CornerRadius = UDim.new(a, b or 0)}, o)
end
local function stroke(o, c, t, tr)
return make("UIStroke", {Color = c, Thickness = t or 1, Transparency = tr or 0}, o)
end
local function makeToggle(par, pos)
local b = make("TextButton", {AnchorPoint = Vector2.new(0, 0.5), Size = offset(44, 22), Position = pos, BackgroundColor3 = offCol, Text = "", AutoButtonColor = false, BorderSizePixel = 0}, par)
local k = make("Frame", {Size = offset(16, 16), Position = udim(0, 3, 0.5, -8), BackgroundColor3 = white, BorderSizePixel = 0}, b)
corner(b, 1)
corner(k, 1)
return b, k
end
local function skin(b, k, state, instant)
local col = state and accent or offCol
local pos = state and udim(1, -19, 0.5, -8) or udim(0, 3, 0.5, -8)
if instant then
b.BackgroundColor3 = col
k.Position = pos
else
TS:Create(b, fast, {BackgroundColor3 = col}):Play()
TS:Create(k, fast, {Position = pos}):Play()
end
end
local function rowLabel(par, txt, pos)
return make("TextLabel", {AnchorPoint = Vector2.new(0, 0.5), Size = offset(80, 22), Position = pos, BackgroundTransparency = 1, Text = txt, Font = cartoon, TextSize = 14, TextColor3 = rgb(50, 50, 58), TextXAlignment = Enum.TextXAlignment.Left}, par)
end
local function makeKnob(par, z, col)
local k = make("Frame", {AnchorPoint = Vector2.new(0.5, 0.5), Size = offset(16, 16), BackgroundColor3 = col, BorderSizePixel = 0, ZIndex = z}, par)
corner(k, 1)
stroke(k, inkCol, 2.5)
return k
end
local function colorFor(player)
if teamOn and player.Team ~= LP.Team then
return teamColor
end
return espColor
end
local function teamText(player)
return player.Team and player.Team.Name or "No team"
end
local gui = make("ScreenGui", {Name = "ESPUI", ResetOnSpawn = false, IgnoreGuiInset = true, DisplayOrder = 999, ZIndexBehavior = Enum.ZIndexBehavior.Sibling})
local tracerGui = make("ScreenGui", {Name = "ESPLines", ResetOnSpawn = false, IgnoreGuiInset = true, DisplayOrder = 998, ZIndexBehavior = Enum.ZIndexBehavior.Sibling})
local idkFolder = make("Folder", {}, gui)
local frame = make("Frame", {Size = offset(190, sizes.main), Position = udim(0.5, -95, 0.35, 0), BackgroundColor3 = bgCol, BorderSizePixel = 0, Visible = false}, gui)
local head = make("Frame", {Size = udim(1, -64, 0, 30), BackgroundTransparency = 1}, frame)
local content = make("Frame", {Size = udim(1, 0, 1, -30), Position = offset(0, 30), BackgroundTransparency = 1}, frame)
local tabRow = make("Frame", {Size = udim(1, 0, 0, 26), BackgroundTransparency = 1}, content)
local tabMain = make("TextButton", {Size = offset(84, 22), Position = offset(10, 2), BackgroundColor3 = accent, Text = "main", Font = cartoon, TextSize = 13, TextColor3 = white, AutoButtonColor = false, BorderSizePixel = 0}, tabRow)
local tabSet = make("TextButton", {Size = offset(84, 22), Position = offset(96, 2), BackgroundColor3 = rgb(238, 238, 243), Text = "settings", Font = cartoon, TextSize = 13, TextColor3 = rgb(90, 90, 100), AutoButtonColor = false, BorderSizePixel = 0}, tabRow)
local mainBody = make("Frame", {Size = udim(1, 0, 0, 80), Position = offset(0, 28), BackgroundTransparency = 1}, content)
local setBody = make("ScrollingFrame", {Size = udim(1, 0, 0, 120), Position = offset(0, 28), BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = offset(0, 200), ScrollBarThickness = 3, ScrollBarImageColor3 = rgb(190, 190, 200), ScrollingDirection = Enum.ScrollingDirection.Y, Active = true, Visible = false}, content)
local toggleBtn, knob = makeToggle(mainBody, udim(0, 96, 0, 20))
local teamBtn, teamKnob = makeToggle(mainBody, udim(0, 96, 0, 60))
local hlBtn, hlKnob = makeToggle(setBody, udim(1, -58, 0, 20))
local unBtn, unKnob = makeToggle(setBody, udim(1, -58, 0, 60))
local tnBtn, tnKnob = makeToggle(setBody, udim(1, -58, 0, 100))
local boxBtn, boxKnob = makeToggle(setBody, udim(1, -58, 0, 140))
local trBtn, trKnob = makeToggle(setBody, udim(1, -58, 0, 180))
local welcome = make("Frame", {Name = "WelcomePopup", Size = offset(360, 180), Position = udim(0.5, -180, 0.5, -90), BackgroundColor3 = rgb(22, 22, 26), BorderSizePixel = 0, ZIndex = 100}, gui)
local welcomeTitle = make("TextLabel", {Size = udim(1, -30, 0, 28), Position = offset(15, 18), BackgroundTransparency = 1, Text = "hello hi this is made by", TextColor3 = white, Font = Enum.Font.Cartoon, TextSize = 20, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 101}, welcome)
local welcomeLink = make("TextLabel", {Size = udim(1, -20, 0, 40), Position = offset(10, 52), BackgroundTransparency = 1, Text = "https://scriptblox.com/u/indistiputed", TextColor3 = white, Font = Enum.Font.Cartoon, TextSize = 15, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 101}, welcome)
local okBtn = make("TextButton", {Size = offset(100, 34), Position = udim(0.5, -50, 1, -48), BackgroundColor3 = rgb(35, 35, 40), BorderSizePixel = 0, Text = "OK", TextColor3 = white, Font = Enum.Font.Cartoon, TextSize = 16, AutoButtonColor = false, ZIndex = 101}, welcome)
local function circleBtn(txt, x, size)
local b = make("TextButton", {Size = offset(24, 24), Position = udim(1, x, 0, 3), BackgroundColor3 = rgb(238, 238, 243), Text = txt, Font = cartoon, TextSize = size, TextColor3 = rgb(60, 60, 70), BorderSizePixel = 0}, frame)
corner(b, 1)
return b
end
local minimizeBtn, closeBtn = circleBtn("-", -56, 16), circleBtn("x", -28, 14)
make("TextLabel", {Size = udim(1, -12, 1, 0), Position = offset(12, 0), BackgroundTransparency = 1, Text = "simple lil esp", Font = cartoon, TextSize = 16, TextColor3 = inkCol, TextXAlignment = Enum.TextXAlignment.Left}, head)
rowLabel(mainBody, "Player ESP", udim(0, 14, 0, 20))
rowLabel(mainBody, "Team based", udim(0, 14, 0, 60))
rowLabel(setBody, "Highlight", udim(0, 14, 0, 20))
rowLabel(setBody, "Usernames", udim(0, 14, 0, 60))
rowLabel(setBody, "Team name", udim(0, 14, 0, 100))
rowLabel(setBody, "Box", udim(0, 14, 0, 140))
rowLabel(setBody, "Tracers", udim(0, 14, 0, 180))
corner(frame, 0, 10)
stroke(frame, lineCol)
corner(tabMain, 0, 8)
corner(tabSet, 0, 8)
corner(welcome, 0, 12)
stroke(welcome, rgb(48, 48, 55), 1)
corner(okBtn, 0, 8)
skin(hlBtn, hlKnob, hlOn, true)
skin(unBtn, unKnob, unOn, true)
local ok = pcall(function()
local par = (gethui and gethui()) or game:GetService("CoreGui")
gui.Parent = par
tracerGui.Parent = par
end)
if not ok then
gui.Parent = LP:WaitForChild("PlayerGui")
tracerGui.Parent = LP:WaitForChild("PlayerGui")
end
local function makePicker(par, pos, startColor, onChange)
local api = {}
local h, s, v = startColor:ToHSV()
local color = startColor
local open, queued = false, false
local swatch = make("TextButton", {AnchorPoint = Vector2.new(0, 0.5), Size = offset(26, 26), Position = pos, BackgroundColor3 = color, Text = "", AutoButtonColor = false, BorderSizePixel = 0}, par)
local pop = make("Frame", {AnchorPoint = Vector2.new(0.5, 0), Size = offset(190, 196), Position = udim(0.5, 0, 1, 6), BackgroundColor3 = bgCol, BorderSizePixel = 0, Visible = false}, frame)
local popBase = stroke(pop, rgb(225, 225, 232), 2)
local popStroke = stroke(pop, white, 2)
local popGrad = make("UIGradient", {Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0.5), NumberSequenceKeypoint.new(0.48, 0),
NumberSequenceKeypoint.new(0.5, 1), NumberSequenceKeypoint.new(0.75, 0.5), NumberSequenceKeypoint.new(0.98, 0), NumberSequenceKeypoint.new(1, 1),
})}, popStroke)
local popScale = make("UIScale", {}, pop)
local svBox = make("Frame", {Size = offset(170, 96), Position = offset(10, 10), BackgroundColor3 = white, BorderSizePixel = 0, Active = true}, pop)
local svGrad = make("UIGradient", {}, svBox)
local darkOverlay = make("Frame", {Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(0, 0, 0), BorderSizePixel = 0, ZIndex = 2}, svBox)
local hueSlider = make("Frame", {Size = offset(170, 20), Position = offset(10, 112), BackgroundTransparency = 1, Active = true}, pop)
local hueBar = make("Frame", {Size = udim(1, 0, 0, 10), Position = udim(0, 0, 0.5, -5), BackgroundColor3 = white, BorderSizePixel = 0}, hueSlider)
local previewDot = make("Frame", {Size = offset(24, 24), Position = offset(10, 162), BackgroundColor3 = color, BorderSizePixel = 0}, pop)
local rgbInput = make("TextBox", {Size = offset(130, 24), Position = offset(50, 162), BackgroundColor3 = rgb(238, 238, 243), BorderSizePixel = 0, Font = cartoon, TextSize = 13, TextColor3 = inkCol, PlaceholderText = "255, 0, 0", PlaceholderColor3 = rgb(150, 150, 160), ClearTextOnFocus = false, Text = "255, 0, 0"}, pop)
local svKnob, hueKnob = makeKnob(svBox, 3, color), makeKnob(hueSlider, 2, color)
local inputStroke = stroke(rgbInput, lineCol, 1.5)
local spinTween = TS:Create(popGrad, TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.In, -1), {Rotation = 360})
make("UIGradient", {Transparency = NumberSequence.new(1, 0), Rotation = 90}, darkOverlay)
make("UIGradient", {Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, rgb(255, 0, 0)), ColorSequenceKeypoint.new(1 / 6, rgb(255, 255, 0)), ColorSequenceKeypoint.new(2 / 6, rgb(0, 255, 0)),
ColorSequenceKeypoint.new(3 / 6, rgb(0, 255, 255)), ColorSequenceKeypoint.new(4 / 6, rgb(0, 0, 255)), ColorSequenceKeypoint.new(5 / 6, rgb(255, 0, 255)), ColorSequenceKeypoint.new(1, rgb(255, 0, 0)),
})}, hueBar)
corner(swatch, 0, 8)
stroke(swatch, inkCol, 1.5, 0.6)
corner(pop, 0, 12)
corner(svBox, 0, 8)
corner(darkOverlay, 0, 8)
corner(hueBar, 1)
corner(previewDot, 1)
stroke(previewDot, inkCol, 1, 0.6)
corner(rgbInput, 0, 8)
local function paint()
color = Color3.fromHSV(h, s, v)
swatch.BackgroundColor3 = color
previewDot.BackgroundColor3 = color
svKnob.BackgroundColor3 = color
hueKnob.BackgroundColor3 = Color3.fromHSV(h, 1, 1)
svGrad.Color = ColorSequence.new(white, Color3.fromHSV(h, 1, 1))
popGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, accent), ColorSequenceKeypoint.new(0.48, color), ColorSequenceKeypoint.new(0.5, accent),
ColorSequenceKeypoint.new(0.98, color), ColorSequenceKeypoint.new(1, accent),
})
svKnob.Position = UDim2.fromScale(s, 1 - v)
hueKnob.Position = UDim2.fromScale(h, 0.5)
rgbInput.Text = string.format("%d, %d, %d", math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255))
end
local function changed()
if queued then
return
end
queued = true
task.defer(function()
queued = false
paint()
onChange(color)
end)
end
for i, c in presetColors do
local chip = make("TextButton", {Size = offset(16, 16), Position = offset(10 + (i - 1) * 22, 138), BackgroundColor3 = c, Text = "", AutoButtonColor = false, BorderSizePixel = 0}, pop)
corner(chip, 1)
stroke(chip, inkCol, 1, 0.6)
chip.Activated:Connect(function()
h, s, v = c:ToHSV()
changed()
end)
end
local function idk(i, name)
if name == "sv" then
s = math.clamp((i.Position.X - svBox.AbsolutePosition.X) / svBox.AbsoluteSize.X, 0, 1)
v = 1 - math.clamp((i.Position.Y - svBox.AbsolutePosition.Y) / svBox.AbsoluteSize.Y, 0, 1)
else
h = math.clamp((i.Position.X - hueSlider.AbsolutePosition.X) / hueSlider.AbsoluteSize.X, 0, 0.999)
end
changed()
end
local function bindSlider(fr, name)
fr.InputBegan:Connect(function(i)
if not isPress(i) then
return
end
idk(i, name)
startDrag(i, function(m)
idk(m, name)
end)
end)
end
bindSlider(svBox, "sv")
bindSlider(hueSlider, "hue")
rgbInput.Focused:Connect(function()
TS:Create(inputStroke, fast, {Color = accent}):Play()
end)
rgbInput.FocusLost:Connect(function()
TS:Create(inputStroke, fast, {Color = lineCol}):Play()
local r, g, b = rgbInput.Text:match("(%d+)%D+(%d+)%D+(%d+)")
if r then
h, s, v = rgb(math.clamp(tonumber(r), 0, 255), math.clamp(tonumber(g), 0, 255), math.clamp(tonumber(b), 0, 255)):ToHSV()
end
changed()
end)
local function WHAT(state)
open = state
if state then
for _, p in pickers do
if p ~= api then
p.close()
end
end
pop.Visible = true
popScale.Scale = 0.9
pop.Position = udim(0.5, 0, 1, -4)
popStroke.Transparency = 1
popBase.Transparency = 1
popGrad.Rotation = 0
TS:Create(popScale, popTi, {Scale = 1}):Play()
TS:Create(pop, popTi, {Position = udim(0.5, 0, 1, 6)}):Play()
TS:Create(popStroke, popTi, {Transparency = 0}):Play()
TS:Create(popBase, popTi, {Transparency = 0}):Play()
spinTween:Play()
else
pop.Visible = false
spinTween:Cancel()
end
end
swatch.Activated:Connect(function()
WHAT(not open)
end)
api.close = function()
WHAT(false)
end
table.insert(pickers, api)
paint()
return api
end
local mainPicker = makePicker(mainBody, udim(0, 148, 0, 20), espColor, function(c)
espColor = c
woahj()
end)
local teamPicker = makePicker(mainBody, udim(0, 148, 0, 60), teamColor, function(c)
teamColor = c
woahj()
end)
local function closePickers()
for _, p in pickers do
p.close()
end
end
woahj = function()
for player, d in espData do
local c = colorFor(player)
if d.hl then
d.hl.FillColor = c
d.hl.OutlineColor = c
end
if d.tag then
d.tag.TextColor3 = c
end
if d.teamTag then
d.teamTag.TextColor3 = c
end
if d.boxStroke then
d.boxStroke.Color = c
end
if d.line then
d.line.BackgroundColor3 = c
end
end
end
lpTeamConn = LP:GetPropertyChangedSignal("Team"):Connect(function()
woahj()
end)
local function paintTab(b, active)
TS:Create(b, fast, {BackgroundColor3 = active and accent or rgb(238, 238, 243), TextColor3 = active and white or rgb(90, 90, 100)}):Play()
end
local function showTab(name)
curTab = name
mainBody.Visible = name == "main"
setBody.Visible = name == "settings"
closePickers()
paintTab(tabMain, name == "main")
paintTab(tabSet, name == "settings")
if isOpen then
TS:Create(frame, fast, {Size = offset(190, sizes[name])}):Play()
end
end
local function clearEsp(player)
local d = espData[player]
if d then
for _, k in pieceKeys do
if d[k] then
d[k]:Destroy()
end
end
espData[player] = nil
end
end
local function sync(player)
local d = espData[player]
if not d then
return
end
local c = colorFor(player)
if isOn and hlOn then
if not d.hl then
d.hl = make("Highlight", {Adornee = d.char, FillColor = c, OutlineColor = c, FillTransparency = 0.5, DepthMode = Enum.HighlightDepthMode.AlwaysOnTop}, idkFolder)
end
elseif d.hl then
d.hl:Destroy()
d.hl = nil
end
local key = (isOn and unOn and 1 or 0) + (isOn and tnOn and 2 or 0)
if key ~= d.key and (key == 0 or d.hd) then
if d.bb then
d.bb:Destroy()
d.bb, d.tag, d.teamTag = nil, nil, nil
end
d.key = key
if key > 0 then
local both = key == 3
d.bb = make("BillboardGui", {Adornee = d.hd, Size = offset(120, both and 40 or 20), StudsOffset = Vector3.new(0, both and 3 or 2.5, 0), AlwaysOnTop = true}, idkFolder)
if key >= 2 then
d.teamTag = make("TextLabel", {Size = udim(1, 0, 0, 20), BackgroundTransparency = 1, Text = teamText(player), Font = cartoon, TextSize = 13, TextColor3 = c, TextStrokeTransparency = 0.4}, d.bb)
end
if key % 2 == 1 then
d.tag = make("TextLabel", {Size = udim(1, 0, 0, 20), Position = offset(0, both and 20 or 0), BackgroundTransparency = 1, Text = player.DisplayName, Font = cartoon, TextSize = 14, TextColor3 = c, TextStrokeTransparency = 0.4}, d.bb)
end
end
end
if isOn and boxOn then
if d.root and not d.boxGui then
d.boxGui = make("BillboardGui", {Adornee = d.root, Size = UDim2.new(4.5, 0, 6, 0), AlwaysOnTop = true}, idkFolder)
d.boxStroke = stroke(make("Frame", {Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1}, d.boxGui), c, 1.5)
end
elseif d.boxGui then
d.boxGui:Destroy()
d.boxGui, d.boxStroke = nil, nil
end
if isOn and tracerOn then
if d.root and not d.line then
d.line = make("Frame", {AnchorPoint = Vector2.new(0.5, 0.5), Size = offset(2, 0), BackgroundColor3 = c, BorderSizePixel = 0, Visible = false}, tracerGui)
end
elseif d.line then
d.line:Destroy()
d.line, d.px, d.py = nil, nil, nil
end
end
local function setup(player, char)
clearEsp(player)
local d = {char = char}
espData[player] = d
sync(player)
d.root = char:WaitForChild("HumanoidRootPart", 5)
d.hd = char:WaitForChild("Head", 5)
if espData[player] == d then
sync(player)
end
end
local function dropConns(player)
local t = woahjConns[player]
if t then
for _, c in t do
c:Disconnect()
end
woahjConns[player] = nil
end
end
local function trackPlayer(player)
if player == LP then
return
end
woahjConns[player] = {
player.CharacterAdded:Connect(function(char)
setup(player, char)
end),
player:GetPropertyChangedSignal("Team"):Connect(function()
local d = espData[player]
if d and d.teamTag then
d.teamTag.Text = teamText(player)
end
woahj()
end),
}
if player.Character then
task.spawn(setup, player, player.Character)
end
end
local function updateLines()
local cam = workspace.CurrentCamera
local vs = cam.ViewportSize
local ax, ay = vs.X / 2, vs.Y
for _, d in espData do
local line = d.line
if line then
local rt = d.root
local show = false
if rt and rt.Parent then
local p = cam:WorldToViewportPoint(rt.Position)
if p.Z > 0 then
show = true
if d.px ~= p.X or d.py ~= p.Y then
d.px, d.py = p.X, p.Y
local dx, dy = p.X - ax, p.Y - ay
line.Position = offset(ax + dx / 2, ay + dy / 2)
line.Size = offset(2, math.sqrt(dx * dx + dy * dy))
line.Rotation = math.deg(math.atan2(dy, dx)) - 90
end
else
d.px = nil
end
end
if line.Visible ~= show then
line.Visible = show
end
end
end
end
local function refresh()
if isOn then
if addConn then
for player in espData do
sync(player)
end
else
for _, player in Players:GetPlayers() do
trackPlayer(player)
end
addConn = Players.PlayerAdded:Connect(trackPlayer)
remConn = Players.PlayerRemoving:Connect(function(player)
dropConns(player)
clearEsp(player)
end)
end
elseif addConn then
addConn:Disconnect()
remConn:Disconnect()
addConn, remConn = nil, nil
for player in woahjConns do
dropConns(player)
end
for player in espData do
clearEsp(player)
end
end
if isOn and tracerOn and not lineConn then
lineConn = RS.RenderStepped:Connect(updateLines)
elseif not (isOn and tracerOn) and lineConn then
lineConn:Disconnect()
lineConn = nil
end
end
toggleBtn.Activated:Connect(function()
isOn = not isOn
skin(toggleBtn, knob, isOn)
refresh()
end)
teamBtn.Activated:Connect(function()
teamOn = not teamOn
skin(teamBtn, teamKnob, teamOn)
woahj()
end)
hlBtn.Activated:Connect(function()
hlOn = not hlOn
skin(hlBtn, hlKnob, hlOn)
refresh()
end)
unBtn.Activated:Connect(function()
unOn = not unOn
skin(unBtn, unKnob, unOn)
refresh()
end)
tnBtn.Activated:Connect(function()
tnOn = not tnOn
skin(tnBtn, tnKnob, tnOn)
refresh()
end)
boxBtn.Activated:Connect(function()
boxOn = not boxOn
skin(boxBtn, boxKnob, boxOn)
refresh()
end)
trBtn.Activated:Connect(function()
tracerOn = not tracerOn
skin(trBtn, trKnob, tracerOn)
refresh()
end)
tabMain.Activated:Connect(function()
showTab("main")
end)
tabSet.Activated:Connect(function()
showTab("settings")
end)
minimizeBtn.Activated:Connect(function()
isOpen = not isOpen
content.Visible = isOpen
closePickers()
TS:Create(frame, fast, {Size = isOpen and offset(190, sizes[curTab]) or offset(190, 30)}):Play()
end)
closeBtn.Activated:Connect(function()
isOn = false
refresh()
closePickers()
lpTeamConn:Disconnect()
moveConn:Disconnect()
endConn:Disconnect()
gui:Destroy()
tracerGui:Destroy()
end)
okBtn.MouseEnter:Connect(function()
okBtn.BackgroundColor3 = rgb(48, 48, 54)
end)
okBtn.MouseLeave:Connect(function()
okBtn.BackgroundColor3 = rgb(35, 35, 40)
end)
okBtn.MouseButton1Click:Connect(function()
welcome:Destroy()
frame.Visible = true
end)
head.InputBegan:Connect(function(i)
if not isPress(i) then
return
end
local start, sp = i.Position, frame.Position
local dragged = false
startDrag(i, function(m)
local d = m.Position - start
if not dragged and d.Magnitude >= 8 then
dragged = true
end
if dragged then
frame.Position = udim(sp.X.Scale, sp.X.Offset + d.X, sp.Y.Scale, sp.Y.Offset + d.Y)
end
end)
end)

![Sir Meme Hub | [16 GAMES] [$14.99 LIFETIME] | FARM/AIM/ESP](https://scriptblox.com/images/script/-1-1791044877945.webp)

Finally, a simple script without any unnecessary junk, W