-- 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!")