
Key Required VerifiedUniversal

local players = game:GetService("Players")
local lighting = game:GetService("Lighting")
local tweenService = game:GetService("TweenService")
local userInputService = game:GetService("UserInputService")
local lp = players.LocalPlayer
local pgui = lp:WaitForChild("PlayerGui")
local camera = workspace.CurrentCamera
task.wait(3)
local Theme = {
Main = Color3.fromRGB(20, 20, 23),
Accent = Color3.fromRGB(0, 190, 255),
Secondary = Color3.fromRGB(30, 30, 35),
Text = Color3.fromRGB(255, 255, 255),
Font = Enum.Font.GothamBold
}
local introGui = Instance.new("ScreenGui")
introGui.Name = "IntroGui"
introGui.IgnoreGuiInset = true
introGui.Parent = pgui
local introLabel = Instance.new("TextLabel")
introLabel.Size = UDim2.new(1, 0, 1, 0)
introLabel.BackgroundTransparency = 1
introLabel.Text = "Made By LunaTheCat"
introLabel.TextColor3 = Theme.Text
introLabel.Font = Theme.Font
introLabel.TextSize = 0
introLabel.TextTransparency = 1
introLabel.Parent = introGui
local blur = Instance.new("BlurEffect")
blur.Size = 0
blur.Parent = lighting
tweenService:Create(blur, TweenInfo.new(1.5), {Size = 25}):Play()
tweenService:Create(introLabel, TweenInfo.new(1.2, Enum.EasingStyle.Back), {TextSize = 55, TextTransparency = 0}):Play()
task.wait(4.5)
tweenService:Create(blur, TweenInfo.new(1.5), {Size = 0}):Play()
local fade = tweenService:Create(introLabel, TweenInfo.new(1, Enum.EasingStyle.Quart), {TextSize = 80, TextTransparency = 1})
fade:Play()
fade.Completed:Connect(function() introGui:Destroy() blur:Destroy() end)
local function createCorner(parent, radius)
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, radius or 10)
corner.Parent = parent
end
local function applyGradient(parent)
local grad = Instance.new("UIGradient")
grad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 180, 180))
})
grad.Rotation = 45
grad.Parent = parent
end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LunaHub_V15"
screenGui.ResetOnSpawn = false
screenGui.Parent = pgui
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 65, 0, 65)
toggleBtn.Position = UDim2.new(0, 30, 0.5, -32)
toggleBtn.BackgroundColor3 = Theme.Main
toggleBtn.Text = "LUNA"
toggleBtn.TextColor3 = Theme.Accent
toggleBtn.Font = Theme.Font
toggleBtn.TextSize = 14
toggleBtn.Parent = screenGui
createCorner(toggleBtn, 100)
local stroke = Instance.new("UIStroke")
stroke.Thickness = 2
stroke.Color = Theme.Accent
stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
stroke.Parent = toggleBtn
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 340, 0, 480)
frame.Position = UDim2.new(0.5, -170, 0.5, -240)
frame.BackgroundColor3 = Theme.Main
frame.Visible = false
frame.ClipsDescendants = true
frame.Parent = screenGui
createCorner(frame, 15)
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 50)
header.BackgroundColor3 = Theme.Secondary
header.Parent = frame
createCorner(header, 15)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 1, 0)
title.Position = UDim2.new(0, 20, 0, 0)
title.Text = "LUNA HUB"
title.TextColor3 = Theme.Text
title.Font = Theme.Font
title.TextSize = 18
title.TextXAlignment = Enum.TextXAlignment.Left
title.BackgroundTransparency = 1
title.Parent = header
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -20, 1, -70)
scroll.Position = UDim2.new(0, 10, 0, 60)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 2
scroll.ScrollBarImageColor3 = Theme.Accent
scroll.Parent = frame
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 10)
layout.Parent = scroll
local function createPlayerRow(p)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 50)
row.BackgroundColor3 = Theme.Secondary
row.Parent = scroll
createCorner(row, 8)
local name = Instance.new("TextLabel")
name.Size = UDim2.new(0.4, 0, 1, 0)
name.Position = UDim2.new(0, 15, 0, 0)
name.Text = p.DisplayName
name.TextColor3 = Theme.Text
name.Font = Enum.Font.GothamMedium
name.TextSize = 14
name.TextXAlignment = Enum.TextXAlignment.Left
name.BackgroundTransparency = 1
name.Parent = row
local function createActionBtn(text, color, posX)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.18, 0, 0.6, 0)
btn.Position = UDim2.new(posX, 0, 0.2, 0)
btn.BackgroundColor3 = color
btn.Text = text
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Theme.Font
btn.TextSize = 11
btn.Parent = row
createCorner(btn, 6)
applyGradient(btn)
return btn
end
local tp = createActionBtn("TP", Color3.fromRGB(0, 120, 255), 0.42)
local view = createActionBtn("VIEW", Color3.fromRGB(70, 70, 80), 0.62)
local esp = createActionBtn("ESP", Color3.fromRGB(160, 30, 220), 0.82)
local function btnAnimate(b, color)
b.MouseEnter:Connect(function() tweenService:Create(b, TweenInfo.new(0.3), {BackgroundColor3 = b.BackgroundColor3:Lerp(Color3.new(1,1,1), 0.2)}):Play() end)
b.MouseLeave:Connect(function() tweenService:Create(b, TweenInfo.new(0.3), {BackgroundColor3 = color}):Play() end)
end
btnAnimate(tp, Color3.fromRGB(0, 120, 255))
btnAnimate(view, Color3.fromRGB(70, 70, 80))
btnAnimate(esp, Color3.fromRGB(160, 30, 220))
tp.MouseButton1Click:Connect(function()
if p.Character then lp.Character.HumanoidRootPart.CFrame = p.Character.HumanoidRootPart.CFrame end
end)
view.MouseButton1Click:Connect(function()
if camera.CameraSubject == p.Character.Humanoid then
camera.CameraSubject = lp.Character.Humanoid
view.Text = "VIEW"
else
camera.CameraSubject = p.Character.Humanoid
view.Text = "STOP"
end
end)
end
toggleBtn.MouseButton1Click:Connect(function()
if frame.Visible then
frame:TweenSize(UDim2.new(0, 340, 0, 0), "Out", "Quart", 0.4, true, function() frame.Visible = false end)
else
frame.Size = UDim2.new(0, 340, 0, 0)
frame.Visible = true
frame:TweenSize(UDim2.new(0, 340, 0, 480), "Out", "Back", 0.5, true)
end
end)
local function makeDraggable(obj)
local dragging, dragInput, dragStart, startPos
obj.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true dragStart = input.Position startPos = obj.Position
end
end)
userInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
obj.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)
end
makeDraggable(frame)
makeDraggable(toggleBtn)
for _, p in pairs(players:GetPlayers()) do
if p ~= lp then createPlayerRow(p) end
endNo comments yet for this script.



