
KeylessUniversal

-- Galaxy V0.1 | Execut
or Script | Fixed Billboard ESP
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
local flying = false
local flySpeed = 50
local flyConnection
local bv, bg
local espEnabled = false
local espHighlights = {}
local espBillboards = {}
local bbUpdateConn
player.CharacterAdded:Connect(function(char)
character = char
humanoidRootPart = char:WaitForChild("HumanoidRootPart")
humanoid = char:WaitForChild("Humanoid")
if flying then
flying = false
if flyConnection then flyConnection:Disconnect() flyConnection = nil end
if bv and bv.Parent then bv:Destroy() end
if bg and bg.Parent then bg:Destroy() end
end
end)
-- ==================== GUI PARENT ====================
local guiParent
local ok, hui = pcall(function() return gethui() end)
guiParent = ok and hui or game:GetService("CoreGui")
local old = guiParent:FindFirstChild("GalaxyGUI")
if old then old:Destroy() end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GalaxyGUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = guiParent
-- ==================== THEME ====================
local C = {
bg = Color3.fromRGB(11, 11, 17),
panel = Color3.fromRGB(18, 18, 26),
row = Color3.fromRGB(24, 24, 34),
rowHov = Color3.fromRGB(32, 32, 46),
border = Color3.fromRGB(50, 100, 255),
borderDim = Color3.fromRGB(30, 60, 160),
blue = Color3.fromRGB(50, 100, 255),
gray = Color3.fromRGB(48, 50, 62),
white = Color3.fromRGB(255, 255, 255),
muted = Color3.fromRGB(120, 125, 155),
dim = Color3.fromRGB(70, 73, 95),
green = Color3.fromRGB(30, 165, 70),
accent = Color3.fromRGB(90, 135, 255),
}
local TWEEN_FAST = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local TWEEN_MED = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local TWEEN_SLOW = TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
local function tw(obj, props, info)
TweenService:Create(obj, info or TWEEN_MED, props):Play()
end
local function corner(p, r)
local c = Instance.new("UICorner", p)
c.CornerRadius = r or UDim.new(0, 8)
return c
end
local function mkStroke(p, col, thick, trans)
local s = Instance.new("UIStroke", p)
s.Color = col or C.border
s.Thickness = thick or 1
s.Transparency = trans or 0
return s
end
local function lbl(parent, text, size, color, font, xa)
local l = Instance.new("TextLabel", parent)
l.BackgroundTransparency = 1
l.Text = text
l.TextSize = size or 12
l.TextColor3 = color or C.white
l.Font = font or Enum.Font.Gotham
l.TextXAlignment = xa or Enum.TextXAlignment.Left
return l
end
local function addHover(btn, normalBg, hoverBg)
btn.MouseEnter:Connect(function() tw(btn, {BackgroundColor3 = hoverBg}, TWEEN_FAST) end)
btn.MouseLeave:Connect(function() tw(btn, {BackgroundColor3 = normalBg}, TWEEN_FAST) end)
btn.MouseButton1Down:Connect(function() tw(btn, {BackgroundColor3 = C.border}, TWEEN_FAST) end)
btn.MouseButton1Up:Connect(function() tw(btn, {BackgroundColor3 = hoverBg}, TWEEN_FAST) end)
end
-- ==================== MAIN WINDOW ====================
local mainScroll = Instance.new("ScrollingFrame", screenGui)
mainScroll.Size = UDim2.new(0, 264, 0, 500)
mainScroll.Position = UDim2.new(0, 24, 0.05, 0)
mainScroll.BackgroundTransparency = 1
mainScroll.BorderSizePixel = 0
mainScroll.ScrollBarThickness = 0
mainScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
mainScroll.Active = true
local win = Instance.new("Frame", mainScroll)
win.Size = UDim2.new(1, 0, 0, 36)
win.BackgroundColor3 = C.bg
win.BorderSizePixel = 0
win.Active = true
win.ClipsDescendants = false
corner(win, UDim.new(0, 12))
local winStroke = mkStroke(win, C.border, 1.5)
local pulseUp = true
task.spawn(function()
while true do
tw(winStroke, {Transparency = pulseUp and 0.3 or 0.65}, TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut))
task.wait(1.5)
pulseUp = not pulseUp
end
end)
local titleBar = Instance.new("Frame", win)
titleBar.Size = UDim2.new(1, 0, 0, 36)
titleBar.BackgroundColor3 = C.panel
titleBar.BorderSizePixel = 0
corner(titleBar, UDim.new(0, 12))
local titleFix = Instance.new("Frame", titleBar)
titleFix.Size = UDim2.new(1, 0, 0.5, 0)
titleFix.Position = UDim2.new(0, 0, 0.5, 0)
titleFix.BackgroundColor3 = C.panel
titleFix.BorderSizePixel = 0
local titleAccent = Instance.new("Frame", titleBar)
titleAccent.Size = UDim2.new(0, 3, 0, 18)
titleAccent.Position = UDim2.new(0, 10, 0.5, -9)
titleAccent.BackgroundColor3 = C.border
titleAccent.BorderSizePixel = 0
corner(titleAccent, UDim.new(0, 2))
local titleTxt = lbl(titleBar, " Galaxy V0.1", 13, C.white, Enum.Font.GothamBold)
titleTxt.Size = UDim2.new(1, -50, 1, 0)
titleTxt.Position = UDim2.new(0, 10, 0, 0)
local minBtn = Instance.new("TextButton", titleBar)
minBtn.Size = UDim2.new(0, 26, 0, 20)
minBtn.Position = UDim2.new(1, -32, 0.5, -10)
minBtn.BackgroundColor3 = C.gray
minBtn.BorderSizePixel = 0
minBtn.Text = "—"
minBtn.TextColor3 = C.muted
minBtn.TextSize = 11
minBtn.Font = Enum.Font.GothamBold
corner(minBtn, UDim.new(0, 5))
addHover(minBtn, C.gray, C.rowHov)
local titleLine = Instance.new("Frame", win)
titleLine.Size = UDim2.new(1, -20, 0, 1)
titleLine.Position = UDim2.new(0, 10, 0, 36)
titleLine.BackgroundColor3 = C.border
titleLine.BorderSizePixel = 0
titleLine.BackgroundTransparency = 0.65
local body = Instance.new("Frame", win)
body.Size = UDim2.new(1, 0, 0, 0)
body.Position = UDim2.new(0, 0, 0, 40)
body.BackgroundTransparency = 1
body.BorderSizePixel = 0
body.ClipsDescendants = false
local bodyLayout = Instance.new("UIListLayout", body)
bodyLayout.SortOrder = Enum.SortOrder.LayoutOrder
bodyLayout.Padding = UDim.new(0, 2)
local bodyPad = Instance.new("UIPadding", body)
bodyPad.PaddingLeft = UDim.new(0, 8)
bodyPad.PaddingRight = UDim.new(0, 8)
bodyPad.PaddingTop = UDim.new(0, 6)
bodyPad.PaddingBottom = UDim.new(0, 10)
local function resizeWin()
local h = bodyLayout.AbsoluteContentSize.Y + 22
body.Size = UDim2.new(1, 0, 0, h)
tw(win, {Size = UDim2.new(1, 0, 0, 40 + h)}, TWEEN_SLOW)
mainScroll.CanvasSize = UDim2.new(0, 0, 0, 40 + h)
mainScroll.Size = UDim2.new(0, 264, 0, math.min(40 + h, 580))
end
local draggingWin, dragStart, startPos = false, nil, nil
titleBar.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
draggingWin = true dragStart = i.Position startPos = mainScroll.Position
end
end)
titleBar.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then draggingWin = false end
end)
UserInputService.InputChanged:Connect(function(i)
if draggingWin and i.UserInputType == Enum.UserInputType.MouseMovement then
local d = i.Position - dragStart
mainScroll.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
end)
local minimized = false
minBtn.MouseButton1Click:Connect(function()
minimized = not minimized
body.Visible = not minimized
minBtn.Text = minimized and "+" or "—"
if minimized then
tw(win, {Size = UDim2.new(1, 0, 0, 36)}, TWEEN_SLOW)
mainScroll.Size = UDim2.new(0, 264, 0, 36)
else
resizeWin()
end
end)
-- ==================== SECTION BUILDER ====================
local function makeSection(title, order)
local sec = Instance.new("Frame", body)
sec.BackgroundTransparency = 1
sec.BorderSizePixel = 0
sec.LayoutOrder = order
sec.ClipsDescendants = false
sec.Size = UDim2.new(1, 0, 0, 10)
local secLayout = Instance.new("UIListLayout", sec)
secLayout.SortOrder = Enum.SortOrder.LayoutOrder
secLayout.Padding = UDim.new(0, 4)
local hdr = Instance.new("Frame", sec)
hdr.Size = UDim2.new(1, 0, 0, 24)
hdr.BackgroundTransparency = 1
hdr.LayoutOrder = 0
local ab = Instance.new("Frame", hdr)
ab.Size = UDim2.new(0, 2, 0, 14)
ab.Position = UDim2.new(0, 0, 0.5, -7)
ab.BackgroundColor3 = C.border
ab.BorderSizePixel = 0
corner(ab, UDim.new(0, 1))
local hl = lbl(hdr, title, 10, C.accent, Enum.Font.GothamBold)
hl.Size = UDim2.new(1, -10, 1, 0)
hl.Position = UDim2.new(0, 8, 0, 0)
local line = Instance.new("Frame", hdr)
line.Size = UDim2.new(1, 0, 0, 1)
line.Position = UDim2.new(0, 0, 1, -1)
line.BackgroundColor3 = C.border
line.BorderSizePixel = 0
line.BackgroundTransparency = 0.72
local function autoSize()
sec.Size = UDim2.new(1, 0, 0, secLayout.AbsoluteContentSize.Y)
resizeWin()
end
secLayout.Changed:Connect(autoSize)
return sec, autoSize
end
local function makeToggleRow(parent, text, keyDefault, order)
local row = Instance.new("Frame", parent)
row.Size = UDim2.new(1, 0, 0, 36)
row.BackgroundColor3 = C.row
row.BorderSizePixel = 0
row.LayoutOrder = order
corner(row, UDim.new(0, 8))
local ra = Instance.new("Frame", row)
ra.Size = UDim2.new(0, 2, 0, 20)
ra.Position = UDim2.new(0, 0, 0.5, -10)
ra.BackgroundColor3 = C.borderDim
ra.BorderSizePixel = 0
corner(ra, UDim.new(0, 1))
local rl = lbl(row, text, 11, C.white, Enum.Font.Gotham)
rl.Size = UDim2.new(1, -106, 1, 0)
rl.Position = UDim2.new(0, 10, 0, 0)
rl.TextTruncate = Enum.TextTruncate.AtEnd
local keyBtn = Instance.new("TextButton", row)
keyBtn.Size = UDim2.new(0, 34, 0, 22)
keyBtn.Position = UDim2.new(1, -82, 0.5, -11)
keyBtn.BackgroundColor3 = C.gray
keyBtn.BorderSizePixel = 0
keyBtn.Text = keyDefault
keyBtn.TextColor3 = C.muted
keyBtn.TextSize = 10
keyBtn.Font = Enum.Font.GothamBold
corner(keyBtn, UDim.new(0, 5))
addHover(keyBtn, C.gray, C.rowHov)
local togBtn = Instance.new("TextButton", row)
togBtn.Size = UDim2.new(0, 44, 0, 22)
togBtn.Position = UDim2.new(1, -44, 0.5, -11)
togBtn.BackgroundColor3 = C.gray
togBtn.BorderSizePixel = 0
togBtn.Text = "OFF"
togBtn.TextColor3 = C.muted
togBtn.TextSize = 10
togBtn.Font = Enum.Font.GothamBold
corner(togBtn, UDim.new(0, 5))
return row, togBtn, keyBtn, ra
end
-- ==================== MOVEMENT ====================
local movSec, movResize = makeSection("MOVEMENT", 1)
local _, flyTog, flyKey, flyAccent = makeToggleRow(movSec, "✈ Fly", "F", 1)
local spdRow = Instance.new("Frame", movSec)
spdRow.Size = UDim2.new(1, 0, 0, 32)
spdRow.BackgroundColor3 = C.row
spdRow.BorderSizePixel = 0
spdRow.LayoutOrder = 2
corner(spdRow, UDim.new(0, 8))
local spdA = Instance.new("Frame", spdRow)
spdA.Size = UDim2.new(0, 2, 0, 16)
spdA.Position = UDim2.new(0, 0, 0.5, -8)
spdA.BackgroundColor3 = C.borderDim
spdA.BorderSizePixel = 0
corner(spdA, UDim.new(0, 1))
local spdLbl = lbl(spdRow, "Speed 50", 11, C.muted, Enum.Font.Gotham)
spdLbl.Size = UDim2.new(0, 74, 1, 0)
spdLbl.Position = UDim2.new(0, 10, 0, 0)
local sliderBg = Instance.new("Frame", spdRow)
sliderBg.Size = UDim2.new(1, -92, 0, 5)
sliderBg.Position = UDim2.new(0, 84, 0.5, -2)
sliderBg.BackgroundColor3 = C.gray
sliderBg.BorderSizePixel = 0
corner(sliderBg, UDim.new(0, 3))
mkStroke(sliderBg, C.border, 1, 0.75)
local sliderFill = Instance.new("Frame", sliderBg)
sliderFill.Size = UDim2.new(0.5, 0, 1, 0)
sliderFill.BackgroundColor3 = C.blue
sliderFill.BorderSizePixel = 0
corner(sliderFill, UDim.new(0, 3))
local sliderThumb = Instance.new("Frame", sliderBg)
sliderThumb.Size = UDim2.new(0, 10, 0, 10)
sliderThumb.Position = UDim2.new(0.5, -5, 0.5, -5)
sliderThumb.BackgroundColor3 = C.white
sliderThumb.BorderSizePixel = 0
corner(sliderThumb, UDim.new(0, 5))
mkStroke(sliderThumb, C.border, 1.5, 0)
movResize()
-- ==================== VISUALS ====================
local visSec, visResize = makeSection("VISUALS", 2)
local _, espTog, espKey, espAccent = makeToggleRow(visSec, "👁 Player ESP", "C", 1)
visResize()
-- ==================== TELEPORT ====================
local tpSec, tpResize = makeSection("TELEPORT", 3)
local dropBtn = Instance.new("TextButton", tpSec)
dropBtn.Size = UDim2.new(1, 0, 0, 34)
dropBtn.BackgroundColor3 = C.row
dropBtn.BorderSizePixel = 0
dropBtn.Text = " Select Player ▾"
dropBtn.TextColor3 = C.muted
dropBtn.TextSize = 11
dropBtn.Font = Enum.Font.Gotham
dropBtn.TextXAlignment = Enum.TextXAlignment.Left
dropBtn.LayoutOrder = 1
corner(dropBtn, UDim.new(0, 8))
mkStroke(dropBtn, C.border, 1, 0.7)
addHover(dropBtn, C.row, C.rowHov)
local dropContainer = Instance.new("Frame", tpSec)
dropContainer.Size = UDim2.new(1, 0, 0, 0)
dropContainer.BackgroundColor3 = C.panel
dropContainer.BorderSizePixel = 0
dropContainer.ClipsDescendants = true
dropContainer.Visible = false
dropContainer.LayoutOrder = 2
corner(dropContainer, UDim.new(0, 8))
mkStroke(dropContainer, C.border, 1, 0.5)
local dropScroll = Instance.new("ScrollingFrame", dropContainer)
dropScroll.Size = UDim2.new(1, 0, 1, 0)
dropScroll.BackgroundTransparency = 1
dropScroll.BorderSizePixel = 0
dropScroll.ScrollBarThickness = 3
dropScroll.ScrollBarImageColor3 = C.blue
dropScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
local dropLayout = Instance.new("UIListLayout", dropScroll)
dropLayout.SortOrder = Enum.SortOrder.LayoutOrder
dropLayout.Padding = UDim.new(0, 1)
dropLayout.Changed:Connect(function()
dropScroll.CanvasSize = UDim2.new(0, 0, 0, dropLayout.AbsoluteContentSize.Y)
end)
local tpExecBtn = Instance.new("TextButton", tpSec)
tpExecBtn.Size = UDim2.new(1, 0, 0, 34)
tpExecBtn.BackgroundColor3 = C.row
tpExecBtn.BorderSizePixel = 0
tpExecBtn.Text = "Teleport [T]"
tpExecBtn.TextColor3 = C.white
tpExecBtn.TextSize = 11
tpExecBtn.Font = Enum.Font.GothamBold
tpExecBtn.LayoutOrder = 3
corner(tpExecBtn, UDim.new(0, 8))
mkStroke(tpExecBtn, C.blue, 1, 0.4)
addHover(tpExecBtn, C.row, C.rowHov)
tpResize()
-- ==================== FLY ====================
local function stopFly()
flying = false
if flyConnection then flyConnection:Disconnect() flyConnection = nil end
if bv and bv.Parent then bv:Destroy() end
if bg and bg.Parent then bg:Destroy() end
if humanoid then humanoid.PlatformStand = false end
tw(flyTog, {BackgroundColor3 = C.gray}, TWEEN_MED)
tw(flyAccent, {BackgroundColor3 = C.borderDim}, TWEEN_MED)
flyTog.Text = "OFF" flyTog.TextColor3 = C.muted
end
local function startFly()
if not character or not humanoidRootPart then return end
humanoid.PlatformStand = true
bv = Instance.new("BodyVelocity", humanoidRootPart)
bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bv.Velocity = Vector3.zero
bg = Instance.new("BodyGyro", humanoidRootPart)
bg.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
bg.P = 1e4
bg.CFrame = humanoidRootPart.CFrame
flyConnection = RunService.RenderStepped:Connect(function()
if not flying then return end
local cam = workspace.CurrentCamera
local moveDir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir -= Vector3.new(0,1,0) end
bv.Velocity = moveDir.Magnitude > 0 and moveDir.Unit * flySpeed or Vector3.zero
bg.CFrame = cam.CFrame
end)
tw(flyTog, {BackgroundColor3 = C.green}, TWEEN_MED)
tw(flyAccent, {BackgroundColor3 = C.green}, TWEEN_MED)
flyTog.Text = "ON" flyTog.TextColor3 = C.white
end
flyTog.MouseButton1Click:Connect(function()
flying = not flying
if flying then startFly() else stopFly() end
end)
-- ==================== SLIDER ====================
local sliderDragging = false
local function updateSlider(rel)
rel = math.clamp(rel, 0, 1)
tw(sliderFill, {Size = UDim2.new(rel, 0, 1, 0)}, TWEEN_FAST)
tw(sliderThumb, {Position = UDim2.new(rel, -5, 0.5, -5)}, TWEEN_FAST)
flySpeed = math.floor(rel * 190 + 10)
spdLbl.Text = "Speed " .. flySpeed
end
sliderBg.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
sliderDragging = true
tw(sliderThumb, {Size = UDim2.new(0, 13, 0, 13)}, TWEEN_FAST)
updateSlider((i.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X)
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
sliderDragging = false
tw(sliderThumb, {Size = UDim2.new(0, 10, 0, 10)}, TWEEN_FAST)
end
end)
UserInputService.InputChanged:Connect(function(i)
if sliderDragging and i.UserInputType == Enum.UserInputType.MouseMovement then
updateSlider((i.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X)
end
end)
-- ==================== ESP ====================
-- KEY FIX: attach billboard to Head, not HumanoidRootPart
-- Use ExtentsOffsetWorldSpace so it sits above the head regardless of camera angle
local function makeBillboard(p)
local char = p.Character
if not char then return end
local head = char:FindFirstChild("Head")
local hum = char:FindFirstChildOfClass("Humanoid")
if not head or not hum then return end
if head:FindFirstChild("_GalaxyBB") then return end
local bb = Instance.new("BillboardGui")
bb.Name = "_GalaxyBB"
bb.Size = UDim2.new(0, 130, 0, 52)
-- ExtentsOffsetWorldSpace keeps it above the head in world space at ANY camera angle
bb.ExtentsOffsetWorldSpace = Vector3.new(0, 0.6, 0)
bb.AlwaysOnTop = true
bb.LightInfluence = 0
bb.MaxDistance = 500
bb.ResetOnSpawn = false
bb.Adornee = head
bb.Parent = head
-- Name
local nameTag = Instance.new("TextLabel", bb)
nameTag.Name = "NameTag"
nameTag.Size = UDim2.new(1, 0, 0, 18)
nameTag.Position = UDim2.new(0, 0, 0, 0)
nameTag.BackgroundTransparency = 1
nameTag.Text = p.Name
nameTag.TextColor3 = Color3.fromRGB(255, 255, 255)
nameTag.TextSize = 13
nameTag.Font = Enum.Font.GothamBold
nameTag.TextStrokeTransparency = 0.2
nameTag.TextXAlignment = Enum.TextXAlignment.Center
-- Distance
local distTag = Instance.new("TextLabel", bb)
distTag.Name = "DistTag"
distTag.Size = UDim2.new(1, 0, 0, 13)
distTag.Position = UDim2.new(0, 0, 0, 19)
distTag.BackgroundTransparency = 1
distTag.Text = "0m"
distTag.TextColor3 = Color3.fromRGB(140, 185, 255)
distTag.TextSize = 10
distTag.Font = Enum.Font.Gotham
distTag.TextStrokeTransparency = 0.3
distTag.TextXAlignment = Enum.TextXAlignment.Center
-- HP bar background
local hpBg = Instance.new("Frame", bb)
hpBg.Name = "HPBg"
hpBg.Size = UDim2.new(0.85, 0, 0, 5)
hpBg.Position = UDim2.new(0.075, 0, 0, 35)
hpBg.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
hpBg.BorderSizePixel = 0
corner(hpBg, UDim.new(0, 3))
local hpFill = Instance.new("Frame", hpBg)
hpFill.Name = "HPFill"
hpFill.Size = UDim2.new(1, 0, 1, 0)
hpFill.BackgroundColor3 = Color3.fromRGB(30, 200, 80)
hpFill.BorderSizePixel = 0
corner(hpFill, UDim.new(0, 3))
-- HP number
local hpNum = Instance.new("TextLabel", bb)
hpNum.Name = "HPNum"
hpNum.Size = UDim2.new(1, 0, 0, 11)
hpNum.Position = UDim2.new(0, 0, 0, 41)
hpNum.BackgroundTransparency = 1
hpNum.Text = "100hp"
hpNum.TextColor3 = Color3.fromRGB(190, 190, 190)
hpNum.TextSize = 9
hpNum.Font = Enum.Font.Gotham
hpNum.TextStrokeTransparency = 0.4
hpNum.TextXAlignment = Enum.TextXAlignment.Center
table.insert(espBillboards, bb)
end
local function clearAllESP()
for _, h in ipairs(espHighlights) do
if h and h.Parent then h:Destroy() end
end
espHighlights = {}
for _, bb in ipairs(espBillboards) do
if bb and bb.Parent then bb:Destroy() end
end
espBillboards = {}
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local head = p.Character:FindFirstChild("Head")
if head then
local bb = head:FindFirstChild("_GalaxyBB")
if bb then bb:Destroy() end
end
local h = p.Character:FindFirstChild("_GalaxyESP")
if h then h:Destroy() end
end
end
if bbUpdateConn then bbUpdateConn:Disconnect() bbUpdateConn = nil end
end
local function applyHighlight(char)
if not char or char:FindFirstChild("_GalaxyESP") then return end
local h = Instance.new("Highlight")
h.Name = "_GalaxyESP"
h.FillColor = Color3.fromRGB(140, 0, 255)
h.OutlineColor = Color3.fromRGB(180, 80, 255)
h.FillTransparency = 0.55
h.OutlineTransparency = 0
h.Adornee = char
h.Parent = char
table.insert(espHighlights, h)
end
local function enableFullESP()
clearAllESP()
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player then
applyHighlight(p.Character)
makeBillboard(p)
p.CharacterAdded:Connect(function(char)
if not espEnabled then return end
task.wait(0.5)
applyHighlight(char)
makeBillboard(p)
end)
end
end
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function(char)
if not espEnabled then return end
task.wait(0.5)
applyHighlight(char)
makeBillboard(p)
end)
end)
-- Update distance + health every frame
bbUpdateConn = RunService.RenderStepped:Connect(function()
local myHRP = character and character:FindFirstChild("HumanoidRootPart")
for _, p in ipairs(Players:GetPlayers()) do
if p == player then continue end
local char2 = p.Character
if not char2 then continue end
local head2 = char2:FindFirstChild("Head")
local hrp2 = char2:FindFirstChild("HumanoidRootPart")
local hum2 = char2:FindFirstChildOfClass("Humanoid")
if not head2 or not hrp2 or not hum2 then continue end
local bb = head2:FindFirstChild("_GalaxyBB")
if not bb then
makeBillboard(p)
bb = head2:FindFirstChild("_GalaxyBB")
if not bb then continue end
end
-- Distance from our HRP to theirs
local dist = myHRP and math.floor((myHRP.Position - hrp2.Position).Magnitude) or 0
local distTag = bb:FindFirstChild("DistTag")
if distTag then distTag.Text = dist .. "m" end
-- Health bar smooth update
local maxHp = hum2.MaxHealth > 0 and hum2.MaxHealth or 100
local pct = math.clamp(hum2.Health / maxHp, 0, 1)
local hpBg = bb:FindFirstChild("HPBg")
local hpFill = hpBg and hpBg:FindFirstChild("HPFill")
local hpNum = bb:FindFirstChild("HPNum")
if hpFill then
TweenService:Create(hpFill, TWEEN_FAST, {
Size = UDim2.new(pct, 0, 1, 0),
BackgroundColor3 = Color3.fromRGB(
math.floor(255 * (1 - pct)),
math.floor(220 * pct),
40
)
}):Play()
end
if hpNum then
hpNum.Text = math.floor(hum2.Health) .. "hp"
end
end
end)
end
espTog.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
if espEnabled then
enableFullESP()
tw(espTog, {BackgroundColor3 = C.green}, TWEEN_MED)
tw(espAccent, {BackgroundColor3 = C.green}, TWEEN_MED)
espTog.Text = "ON" espTog.TextColor3 = C.white
else
clearAllESP()
tw(espTog, {BackgroundColor3 = C.gray}, TWEEN_MED)
tw(espAccent, {BackgroundColor3 = C.borderDim}, TWEEN_MED)
espTog.Text = "OFF" espTog.TextColor3 = C.muted
end
end)
-- ==================== TELEPORT ====================
local selectedPlayer = nil
local dropOpen = false
local ROW_H = 32
local MAX_ROWS = 5
local function closeDropdown()
dropOpen = false
tw(dropContainer, {Size = UDim2.new(1, 0, 0, 0)}, TWEEN_MED)
task.delay(0.25, function()
dropContainer.Visible = false
tpResize()
end)
dropBtn.Text = selectedPlayer and (" " .. selectedPlayer.Name .. " ▾") or " Select Player ▾"
end
local function refreshDrop()
for _, c in ipairs(dropScroll:GetChildren()) do
if c:IsA("TextButton") or c:IsA("TextLabel") then c:Destroy() end
end
local others = {}
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player then table.insert(others, p) end
end
if #others == 0 then
local none = Instance.new("TextLabel", dropScroll)
none.Size = UDim2.new(1, 0, 0, ROW_H)
none.BackgroundTransparency = 1
none.Text = " No other players"
none.TextColor3 = C.dim
none.TextSize = 11
none.Font = Enum.Font.Gotham
none.TextXAlignment = Enum.TextXAlignment.Left
else
for i, p in ipairs(others) do
local btn = Instance.new("TextButton", dropScroll)
btn.Size = UDim2.new(1, 0, 0, ROW_H)
btn.BackgroundTransparency = 1
btn.BorderSizePixel = 0
btn.Text = " " .. p.Name
btn.TextColor3 = C.white
btn.TextSize = 11
btn.Font = Enum.Font.Gotham
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.LayoutOrder = i
btn.MouseEnter:Connect(function()
tw(btn, {BackgroundColor3 = C.rowHov}, TWEEN_FAST)
btn.BackgroundTransparency = 0
end)
btn.MouseLeave:Connect(function()
btn.BackgroundTransparency = 1
end)
btn.MouseButton1Click:Connect(function()
selectedPlayer = p
closeDropdown()
end)
end
end
local count = math.max(#others, 1)
local targetH = math.min(count, MAX_ROWS) * ROW_H + 4
dropContainer.Size = UDim2.new(1, 0, 0, 0)
dropContainer.Visible = true
tw(dropContainer, {Size = UDim2.new(1, 0, 0, targetH)}, TWEEN_MED)
tpResize()
end
dropBtn.MouseButton1Click:Connect(function()
dropOpen = not dropOpen
if dropOpen then refreshDrop() else closeDropdown() end
end)
local function doTeleport()
if not selectedPlayer then
tpExecBtn.Text = "Pick a player first!"
tw(tpExecBtn, {BackgroundColor3 = Color3.fromRGB(140, 30, 30)}, TWEEN_FAST)
task.delay(1.5, function()
tpExecBtn.Text = "Teleport [T]"
tw(tpExecBtn, {BackgroundColor3 = C.row}, TWEEN_MED)
end)
return
end
local tc = selectedPlayer.Character
if tc and tc:FindFirstChild("HumanoidRootPart") then
humanoidRootPart.CFrame = tc.HumanoidRootPart.CFrame + Vector3.new(3, 0, 0)
tpExecBtn.Text = "✅ Teleported!"
tw(tpExecBtn, {BackgroundColor3 = C.green}, TWEEN_FAST)
else
tpExecBtn.Text = "❌ Not found"
tw(tpExecBtn, {BackgroundColor3 = Color3.fromRGB(140, 30, 30)}, TWEEN_FAST)
end
task.delay(1.5, function()
tpExecBtn.Text = "Teleport [T]"
tw(tpExecBtn, {BackgroundColor3 = C.row}, TWEEN_MED)
end)
end
tpExecBtn.MouseButton1Click:Connect(doTeleport)
-- ==================== KEYBINDS ====================
local bindingFly, bindingESP = false, false
local flyKeyCode = Enum.KeyCode.F
local espKeyCode = Enum.KeyCode.C
flyKey.MouseButton1Click:Connect(function()
bindingFly = true
flyKey.Text = "..."
tw(flyKey, {BackgroundColor3 = C.blue}, TWEEN_FAST)
flyKey.TextColor3 = C.white
end)
espKey.MouseButton1Click:Connect(function()
bindingESP = true
espKey.Text = "..."
tw(espKey, {BackgroundColor3 = C.blue}, TWEEN_FAST)
espKey.TextColor3 = C.white
end)
UserInputService.InputBegan:Connect(function(input, gpe)
if input.UserInputType ~= Enum.UserInputType.Keyboard then return end
if bindingFly then
flyKeyCode = input.KeyCode
flyKey.Text = input.KeyCode.Name:sub(1, 3)
tw(flyKey, {BackgroundColor3 = C.gray}, TWEEN_FAST)
flyKey.TextColor3 = C.muted
bindingFly = false return
end
if bindingESP then
espKeyCode = input.KeyCode
espKey.Text = input.KeyCode.Name:sub(1, 3)
tw(espKey, {BackgroundColor3 = C.gray}, TWEEN_FAST)
espKey.TextColor3 = C.muted
bindingESP = false return
end
if gpe then return end
if input.KeyCode == flyKeyCode then
flying = not flying
if flying then startFly() else stopFly() end
end
if input.KeyCode == espKeyCode then
espEnabled = not espEnabled
if espEnabled then
enableFullESP()
tw(espTog, {BackgroundColor3 = C.green}, TWEEN_MED)
tw(espAccent, {BackgroundColor3 = C.green}, TWEEN_MED)
espTog.Text = "ON" espTog.TextColor3 = C.white
else
clearAllESP()
tw(espTog, {BackgroundColor3 = C.gray}, TWEEN_MED)
tw(espAccent, {BackgroundColor3 = C.borderDim}, TWEEN_MED)
espTog.Text = "OFF" espTog.TextColor3 = C.muted
end
end
if input.KeyCode == Enum.KeyCode.T then doTeleport() end
end)
print("✅ Galaxy V0.1 loaded!")



Ima try
Patched, would try if you fix it..