
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
-- Variables
local targetPlayer = nil
local isOrbiting = false
local orbitSpeed = 1
local orbitRadius = 10
local orbitHeight = 0
local orbitTilt = 0
local isTidallyLocked = false
local isSpinMode = false
local spinSpeed = 0.5
local isReverseOrbit = false
local angle = 0
local spinAngle = 0
local dragging = false
local dragStartMouse = nil
local dragStartPos = nil
local lastOrbitTime = 0
local orbitDelay = 0.01
local currentTab = "orbit" -- "orbit" or "settings"
local espEnabled = false
local espLabels = {}
-- Create GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ORBITGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
-- Main Frame
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 320, 0, 530)
mainFrame.Position = UDim2.new(0.35, 0, 0.2, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
mainFrame.BackgroundTransparency = 0.1
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
-- Corner and Stroke
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 15)
corner.Parent = mainFrame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(255, 255, 255)
stroke.Thickness = 2
stroke.Transparency = 0.6
stroke.Parent = mainFrame
-- Drag Area (Title)
local dragArea = Instance.new("Frame")
dragArea.Name = "DragArea"
dragArea.Size = UDim2.new(1, 0, 0, 50)
dragArea.Position = UDim2.new(0, 0, 0, 0)
dragArea.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
dragArea.BackgroundTransparency = 0
dragArea.BorderSizePixel = 0
dragArea.Parent = mainFrame
local dragCorner = Instance.new("UICorner")
dragCorner.CornerRadius = UDim.new(0, 15)
dragCorner.Parent = dragArea
-- Title Text
local titleText = Instance.new("TextLabel")
titleText.Size = UDim2.new(1, -80, 1, 0)
titleText.Position = UDim2.new(0, 10, 0, 0)
titleText.BackgroundTransparency = 1
titleText.Text = "ORBIT GUI v1.05"
titleText.TextColor3 = Color3.fromRGB(255, 255, 255)
titleText.TextSize = 16
titleText.Font = Enum.Font.GothamBold
titleText.TextXAlignment = Enum.TextXAlignment.Left
titleText.Parent = dragArea
-- Minimize Button
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Name = "MinimizeBtn"
minimizeBtn.Size = UDim2.new(0, 40, 1, 0)
minimizeBtn.Position = UDim2.new(1, -80, 0, 0)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(150, 150, 200)
minimizeBtn.BackgroundTransparency = 0.3
minimizeBtn.Text = "_"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.TextSize = 18
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Parent = dragArea
local minimizeCorner = Instance.new("UICorner")
minimizeCorner.CornerRadius = UDim.new(0, 8)
minimizeCorner.Parent = minimizeBtn
-- Close Button
local closeBtn = Instance.new("TextButton")
closeBtn.Name = "CloseBtn"
closeBtn.Size = UDim2.new(0, 40, 1, 0)
closeBtn.Position = UDim2.new(1, -40, 0, 0)
closeBtn.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
closeBtn.BackgroundTransparency = 0.3
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 18
closeBtn.Font = Enum.Font.GothamBold
closeBtn.BorderSizePixel = 0
closeBtn.Parent = dragArea
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 8)
closeCorner.Parent = closeBtn
-- Tab Buttons
local orbitTabBtn = Instance.new("TextButton")
orbitTabBtn.Name = "OrbitTabBtn"
orbitTabBtn.Size = UDim2.new(0.5, -2, 0, 35)
orbitTabBtn.Position = UDim2.new(0, 0, 0, 50)
orbitTabBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
orbitTabBtn.BackgroundTransparency = 0.3
orbitTabBtn.Text = "ORBIT"
orbitTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
orbitTabBtn.TextSize = 12
orbitTabBtn.Font = Enum.Font.GothamBold
orbitTabBtn.BorderSizePixel = 0
orbitTabBtn.Parent = mainFrame
local orbitTabCorner = Instance.new("UICorner")
orbitTabCorner.CornerRadius = UDim.new(0, 8)
orbitTabCorner.Parent = orbitTabBtn
local settingsTabBtn = Instance.new("TextButton")
settingsTabBtn.Name = "SettingsTabBtn"
settingsTabBtn.Size = UDim2.new(0.5, -2, 0, 35)
settingsTabBtn.Position = UDim2.new(0.5, 2, 0, 50)
settingsTabBtn.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
settingsTabBtn.BackgroundTransparency = 0.5
settingsTabBtn.Text = "SETTINGS"
settingsTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
settingsTabBtn.TextSize = 12
settingsTabBtn.Font = Enum.Font.GothamBold
settingsTabBtn.BorderSizePixel = 0
settingsTabBtn.Parent = mainFrame
local settingsTabCorner = Instance.new("UICorner")
settingsTabCorner.CornerRadius = UDim.new(0, 8)
settingsTabCorner.Parent = settingsTabBtn
-- ===== ORBIT TAB CONTENT =====
local orbitTabFrame = Instance.new("Frame")
orbitTabFrame.Name = "OrbitTabFrame"
orbitTabFrame.Size = UDim2.new(1, 0, 1, -85)
orbitTabFrame.Position = UDim2.new(0, 0, 0, 85)
orbitTabFrame.BackgroundTransparency = 1
orbitTabFrame.BorderSizePixel = 0
orbitTabFrame.Parent = mainFrame
-- Create ScrollingFrame for orbit tab
local orbitScrollFrame = Instance.new("ScrollingFrame")
orbitScrollFrame.Size = UDim2.new(1, 0, 1, 0)
orbitScrollFrame.Position = UDim2.new(0, 0, 0, 0)
orbitScrollFrame.BackgroundTransparency = 1
orbitScrollFrame.BorderSizePixel = 0
orbitScrollFrame.ScrollBarThickness = 6
orbitScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 400)
orbitScrollFrame.Parent = orbitTabFrame
-- Player Input Label
local playerLabel = Instance.new("TextLabel")
playerLabel.Size = UDim2.new(1, -20, 0, 20)
playerLabel.Position = UDim2.new(0, 10, 0, 10)
playerLabel.BackgroundTransparency = 1
playerLabel.Text = "Player Name:"
playerLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
playerLabel.TextSize = 12
playerLabel.Font = Enum.Font.Gotham
playerLabel.TextXAlignment = Enum.TextXAlignment.Left
playerLabel.Parent = orbitScrollFrame
-- Player Input
local playerNameBox = Instance.new("TextBox")
playerNameBox.Size = UDim2.new(1, -20, 0, 35)
playerNameBox.Position = UDim2.new(0, 10, 0, 35)
playerNameBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
playerNameBox.BackgroundTransparency = 0
playerNameBox.TextColor3 = Color3.fromRGB(255, 255, 255)
playerNameBox.TextSize = 14
playerNameBox.Font = Enum.Font.Gotham
playerNameBox.PlaceholderText = "Enter username..."
playerNameBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
playerNameBox.BorderSizePixel = 0
playerNameBox.Parent = orbitScrollFrame
local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 8)
inputCorner.Parent = playerNameBox
-- Speed Label
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, -20, 0, 20)
speedLabel.Position = UDim2.new(0, 10, 0, 80)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "Speed: 1 studs/sec"
speedLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
speedLabel.TextSize = 12
speedLabel.Font = Enum.Font.Gotham
speedLabel.TextXAlignment = Enum.TextXAlignment.Left
speedLabel.Parent = orbitScrollFrame
-- Speed Input
local speedBox = Instance.new("TextBox")
speedBox.Size = UDim2.new(1, -20, 0, 35)
speedBox.Position = UDim2.new(0, 10, 0, 105)
speedBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
speedBox.BackgroundTransparency = 0
speedBox.TextColor3 = Color3.fromRGB(255, 255, 255)
speedBox.TextSize = 14
speedBox.Font = Enum.Font.Gotham
speedBox.Text = "1"
speedBox.BorderSizePixel = 0
speedBox.Parent = orbitScrollFrame
local speedCorner = Instance.new("UICorner")
speedCorner.CornerRadius = UDim.new(0, 8)
speedCorner.Parent = speedBox
-- Orbit Button
local orbitBtn = Instance.new("TextButton")
orbitBtn.Size = UDim2.new(1, -20, 0, 40)
orbitBtn.Position = UDim2.new(0, 10, 0, 150)
orbitBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
orbitBtn.BackgroundTransparency = 0.3
orbitBtn.Text = "START ORBIT"
orbitBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
orbitBtn.TextSize = 14
orbitBtn.Font = Enum.Font.GothamBold
orbitBtn.BorderSizePixel = 0
orbitBtn.Parent = orbitScrollFrame
local orbitCorner = Instance.new("UICorner")
orbitCorner.CornerRadius = UDim.new(0, 8)
orbitCorner.Parent = orbitBtn
-- Teleport Button
local teleportBtn = Instance.new("TextButton")
teleportBtn.Size = UDim2.new(1, -20, 0, 40)
teleportBtn.Position = UDim2.new(0, 10, 0, 200)
teleportBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 100)
teleportBtn.BackgroundTransparency = 0.3
teleportBtn.Text = "TELEPORT TO PLAYER"
teleportBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
teleportBtn.TextSize = 14
teleportBtn.Font = Enum.Font.GothamBold
teleportBtn.BorderSizePixel = 0
teleportBtn.Parent = orbitScrollFrame
local teleportCorner = Instance.new("UICorner")
teleportCorner.CornerRadius = UDim.new(0, 8)
teleportCorner.Parent = teleportBtn
-- Status Label
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -20, 0, 80)
statusLabel.Position = UDim2.new(0, 10, 0, 250)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Status: Waiting"
statusLabel.TextColor3 = Color3.fromRGB(150, 200, 150)
statusLabel.TextSize = 11
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextWrapped = true
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = orbitScrollFrame
-- ===== SETTINGS TAB CONTENT =====
local settingsTabFrame = Instance.new("Frame")
settingsTabFrame.Name = "SettingsTabFrame"
settingsTabFrame.Size = UDim2.new(1, 0, 1, -85)
settingsTabFrame.Position = UDim2.new(0, 0, 0, 85)
settingsTabFrame.BackgroundTransparency = 1
settingsTabFrame.BorderSizePixel = 0
settingsTabFrame.Visible = false
settingsTabFrame.Parent = mainFrame
-- Create ScrollingFrame for settings
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1, 0, 1, 0)
scrollFrame.Position = UDim2.new(0, 0, 0, 0)
scrollFrame.BackgroundTransparency = 1
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 6
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 750)
scrollFrame.Parent = settingsTabFrame
-- Distance Label
local distanceLabel = Instance.new("TextLabel")
distanceLabel.Size = UDim2.new(1, -20, 0, 20)
distanceLabel.Position = UDim2.new(0, 10, 0, 10)
distanceLabel.BackgroundTransparency = 1
distanceLabel.Text = "Orbit Distance: 10 studs"
distanceLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
distanceLabel.TextSize = 12
distanceLabel.Font = Enum.Font.Gotham
distanceLabel.TextXAlignment = Enum.TextXAlignment.Left
distanceLabel.Parent = scrollFrame
-- Distance Input
local distanceBox = Instance.new("TextBox")
distanceBox.Size = UDim2.new(1, -20, 0, 35)
distanceBox.Position = UDim2.new(0, 10, 0, 35)
distanceBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
distanceBox.BackgroundTransparency = 0
distanceBox.TextColor3 = Color3.fromRGB(255, 255, 255)
distanceBox.TextSize = 14
distanceBox.Font = Enum.Font.Gotham
distanceBox.Text = "10"
distanceBox.BorderSizePixel = 0
distanceBox.Parent = scrollFrame
local distanceCorner = Instance.new("UICorner")
distanceCorner.CornerRadius = UDim.new(0, 8)
distanceCorner.Parent = distanceBox
-- Tilt Label
local tiltLabel = Instance.new("TextLabel")
tiltLabel.Size = UDim2.new(1, -20, 0, 20)
tiltLabel.Position = UDim2.new(0, 10, 0, 80)
tiltLabel.BackgroundTransparency = 1
tiltLabel.Text = "Orbit Tilt: 0 degrees"
tiltLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
tiltLabel.TextSize = 12
tiltLabel.Font = Enum.Font.Gotham
tiltLabel.TextXAlignment = Enum.TextXAlignment.Left
tiltLabel.Parent = scrollFrame
-- Tilt Input
local tiltBox = Instance.new("TextBox")
tiltBox.Size = UDim2.new(1, -20, 0, 35)
tiltBox.Position = UDim2.new(0, 10, 0, 105)
tiltBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
tiltBox.BackgroundTransparency = 0
tiltBox.TextColor3 = Color3.fromRGB(255, 255, 255)
tiltBox.TextSize = 14
tiltBox.Font = Enum.Font.Gotham
tiltBox.Text = "0"
tiltBox.BorderSizePixel = 0
tiltBox.Parent = scrollFrame
local tiltCorner = Instance.new("UICorner")
tiltCorner.CornerRadius = UDim.new(0, 8)
tiltCorner.Parent = tiltBox
-- Height Label
local heightLabel = Instance.new("TextLabel")
heightLabel.Size = UDim2.new(1, -20, 0, 20)
heightLabel.Position = UDim2.new(0, 10, 0, 150)
heightLabel.BackgroundTransparency = 1
heightLabel.Text = "Height Offset: 0 studs"
heightLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
heightLabel.TextSize = 12
heightLabel.Font = Enum.Font.Gotham
heightLabel.TextXAlignment = Enum.TextXAlignment.Left
heightLabel.Parent = scrollFrame
-- Height Input
local heightBox = Instance.new("TextBox")
heightBox.Size = UDim2.new(1, -20, 0, 35)
heightBox.Position = UDim2.new(0, 10, 0, 175)
heightBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
heightBox.BackgroundTransparency = 0
heightBox.TextColor3 = Color3.fromRGB(255, 255, 255)
heightBox.TextSize = 14
heightBox.Font = Enum.Font.Gotham
heightBox.Text = "0"
heightBox.BorderSizePixel = 0
heightBox.Parent = scrollFrame
local heightCorner = Instance.new("UICorner")
heightCorner.CornerRadius = UDim.new(0, 8)
heightCorner.Parent = heightBox
-- Reverse Orbit Label
local reverseLabel = Instance.new("TextLabel")
reverseLabel.Size = UDim2.new(1, -20, 0, 20)
reverseLabel.Position = UDim2.new(0, 10, 0, 220)
reverseLabel.BackgroundTransparency = 1
reverseLabel.Text = "Reverse Orbit:"
reverseLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
reverseLabel.TextSize = 12
reverseLabel.Font = Enum.Font.Gotham
reverseLabel.TextXAlignment = Enum.TextXAlignment.Left
reverseLabel.Parent = scrollFrame
-- Reverse Orbit Toggle
local reverseToggle = Instance.new("TextButton")
reverseToggle.Size = UDim2.new(1, -20, 0, 35)
reverseToggle.Position = UDim2.new(0, 10, 0, 245)
reverseToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
reverseToggle.BackgroundTransparency = 0.3
reverseToggle.Text = "OFF"
reverseToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
reverseToggle.TextSize = 14
reverseToggle.Font = Enum.Font.GothamBold
reverseToggle.BorderSizePixel = 0
reverseToggle.Parent = scrollFrame
local reverseCorner = Instance.new("UICorner")
reverseCorner.CornerRadius = UDim.new(0, 8)
reverseCorner.Parent = reverseToggle
-- Reverse Orbit Info
local reverseInfo = Instance.new("TextLabel")
reverseInfo.Size = UDim2.new(1, -20, 0, 40)
reverseInfo.Position = UDim2.new(0, 10, 0, 285)
reverseInfo.BackgroundTransparency = 1
reverseInfo.Text = "Reverses orbit direction (like Triton orbiting Neptune backwards)"
reverseInfo.TextColor3 = Color3.fromRGB(150, 150, 200)
reverseInfo.TextSize = 10
reverseInfo.Font = Enum.Font.Gotham
reverseInfo.TextWrapped = true
reverseInfo.TextXAlignment = Enum.TextXAlignment.Left
reverseInfo.Parent = scrollFrame
-- Tidally Locked Label
local tidalLabel = Instance.new("TextLabel")
tidalLabel.Size = UDim2.new(1, -20, 0, 20)
tidalLabel.Position = UDim2.new(0, 10, 0, 330)
tidalLabel.BackgroundTransparency = 1
tidalLabel.Text = "Tidally Locked:"
tidalLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
tidalLabel.TextSize = 12
tidalLabel.Font = Enum.Font.Gotham
tidalLabel.TextXAlignment = Enum.TextXAlignment.Left
tidalLabel.Parent = scrollFrame
-- Tidally Locked Toggle
local tidalToggle = Instance.new("TextButton")
tidalToggle.Size = UDim2.new(1, -20, 0, 35)
tidalToggle.Position = UDim2.new(0, 10, 0, 355)
tidalToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
tidalToggle.BackgroundTransparency = 0.3
tidalToggle.Text = "OFF"
tidalToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
tidalToggle.TextSize = 14
tidalToggle.Font = Enum.Font.GothamBold
tidalToggle.BorderSizePixel = 0
tidalToggle.Parent = scrollFrame
local tidalCorner = Instance.new("UICorner")
tidalCorner.CornerRadius = UDim.new(0, 8)
tidalCorner.Parent = tidalToggle
-- Tidally Locked Info
local tidalInfo = Instance.new("TextLabel")
tidalInfo.Size = UDim2.new(1, -20, 0, 40)
tidalInfo.Position = UDim2.new(0, 10, 0, 395)
tidalInfo.BackgroundTransparency = 1
tidalInfo.Text = "Locks your character to face the target player (like the moon facing Earth)"
tidalInfo.TextColor3 = Color3.fromRGB(150, 150, 200)
tidalInfo.TextSize = 10
tidalInfo.Font = Enum.Font.Gotham
tidalInfo.TextWrapped = true
tidalInfo.TextXAlignment = Enum.TextXAlignment.Left
tidalInfo.Parent = scrollFrame
-- Spin Mode Label
local spinLabel = Instance.new("TextLabel")
spinLabel.Size = UDim2.new(1, -20, 0, 20)
spinLabel.Position = UDim2.new(0, 10, 0, 440)
spinLabel.BackgroundTransparency = 1
spinLabel.Text = "Spin Mode:"
spinLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
spinLabel.TextSize = 12
spinLabel.Font = Enum.Font.Gotham
spinLabel.TextXAlignment = Enum.TextXAlignment.Left
spinLabel.Parent = scrollFrame
-- Spin Mode Toggle
local spinToggle = Instance.new("TextButton")
spinToggle.Size = UDim2.new(1, -20, 0, 35)
spinToggle.Position = UDim2.new(0, 10, 0, 465)
spinToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
spinToggle.BackgroundTransparency = 0.3
spinToggle.Text = "OFF"
spinToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
spinToggle.TextSize = 14
spinToggle.Font = Enum.Font.GothamBold
spinToggle.BorderSizePixel = 0
spinToggle.Parent = scrollFrame
local spinToggleCorner = Instance.new("UICorner")
spinToggleCorner.CornerRadius = UDim.new(0, 8)
spinToggleCorner.Parent = spinToggle
-- Spin Speed Label
local spinSpeedLabel = Instance.new("TextLabel")
spinSpeedLabel.Size = UDim2.new(1, -20, 0, 20)
spinSpeedLabel.Position = UDim2.new(0, 10, 0, 510)
spinSpeedLabel.BackgroundTransparency = 1
spinSpeedLabel.Text = "Spin Speed: 0.5 rad/sec (Min: 0.01)"
spinSpeedLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
spinSpeedLabel.TextSize = 12
spinSpeedLabel.Font = Enum.Font.Gotham
spinSpeedLabel.TextXAlignment = Enum.TextXAlignment.Left
spinSpeedLabel.Parent = scrollFrame
-- Spin Speed Input
local spinSpeedBox = Instance.new("TextBox")
spinSpeedBox.Size = UDim2.new(1, -20, 0, 35)
spinSpeedBox.Position = UDim2.new(0, 10, 0, 535)
spinSpeedBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
spinSpeedBox.BackgroundTransparency = 0
spinSpeedBox.TextColor3 = Color3.fromRGB(255, 255, 255)
spinSpeedBox.TextSize = 14
spinSpeedBox.Font = Enum.Font.Gotham
spinSpeedBox.Text = "0.5"
spinSpeedBox.BorderSizePixel = 0
spinSpeedBox.Parent = scrollFrame
local spinSpeedCorner = Instance.new("UICorner")
spinSpeedCorner.CornerRadius = UDim.new(0, 8)
spinSpeedCorner.Parent = spinSpeedBox
-- Spin Info
local spinInfo = Instance.new("TextLabel")
spinInfo.Size = UDim2.new(1, -20, 0, 40)
spinInfo.Position = UDim2.new(0, 10, 0, 575)
spinInfo.BackgroundTransparency = 1
spinInfo.Text = "Makes your character spin around. Works best when Tidally Locked is OFF"
spinInfo.TextColor3 = Color3.fromRGB(150, 150, 200)
spinInfo.TextSize = 10
spinInfo.Font = Enum.Font.Gotham
spinInfo.TextWrapped = true
spinInfo.TextXAlignment = Enum.TextXAlignment.Left
spinInfo.Parent = scrollFrame
-- ESP Label
local espLabel = Instance.new("TextLabel")
espLabel.Size = UDim2.new(1, -20, 0, 20)
espLabel.Position = UDim2.new(0, 10, 0, 625)
espLabel.BackgroundTransparency = 1
espLabel.Text = "Player ESP:"
espLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
espLabel.TextSize = 12
espLabel.Font = Enum.Font.Gotham
espLabel.TextXAlignment = Enum.TextXAlignment.Left
espLabel.Parent = scrollFrame
-- ESP Toggle
local espToggle = Instance.new("TextButton")
espToggle.Size = UDim2.new(1, -20, 0, 35)
espToggle.Position = UDim2.new(0, 10, 0, 650)
espToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
espToggle.BackgroundTransparency = 0.3
espToggle.Text = "OFF"
espToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
espToggle.TextSize = 14
espToggle.Font = Enum.Font.GothamBold
espToggle.BorderSizePixel = 0
espToggle.Parent = scrollFrame
local espToggleCorner = Instance.new("UICorner")
espToggleCorner.CornerRadius = UDim.new(0, 8)
espToggleCorner.Parent = espToggle
-- Minimized Bar (hidden initially)
local minimizedBar = Instance.new("Frame")
minimizedBar.Name = "MinimizedBar"
minimizedBar.Size = UDim2.new(0, 150, 0, 50)
minimizedBar.Position = UDim2.new(1, -160, 1, -60)
minimizedBar.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
minimizedBar.BackgroundTransparency = 0.1
minimizedBar.BorderSizePixel = 0
minimizedBar.Visible = false
minimizedBar.Parent = screenGui
local minBarCorner = Instance.new("UICorner")
minBarCorner.CornerRadius = UDim.new(0, 12)
minBarCorner.Parent = minimizedBar
local minBarStroke = Instance.new("UIStroke")
minBarStroke.Color = Color3.fromRGB(255, 255, 255)
minBarStroke.Thickness = 2
minBarStroke.Transparency = 0.6
minBarStroke.Parent = minimizedBar
-- Minimized Bar Text
local minBarText = Instance.new("TextLabel")
minBarText.Size = UDim2.new(1, -50, 1, 0)
minBarText.Position = UDim2.new(0, 5, 0, 0)
minBarText.BackgroundTransparency = 1
minBarText.Text = "ORBIT"
minBarText.TextColor3 = Color3.fromRGB(255, 255, 255)
minBarText.TextSize = 14
minBarText.Font = Enum.Font.GothamBold
minBarText.Parent = minimizedBar
-- Restore Button (on minimized bar)
local restoreBtn = Instance.new("TextButton")
restoreBtn.Size = UDim2.new(0, 45, 1, 0)
restoreBtn.Position = UDim2.new(1, -45, 0, 0)
restoreBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
restoreBtn.BackgroundTransparency = 0.3
restoreBtn.Text = "+"
restoreBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
restoreBtn.TextSize = 18
restoreBtn.Font = Enum.Font.GothamBold
restoreBtn.BorderSizePixel = 0
restoreBtn.Parent = minimizedBar
local restoreCorner = Instance.new("UICorner")
restoreCorner.CornerRadius = UDim.new(0, 8)
restoreCorner.Parent = restoreBtn
-- DRAGGING for minimized bar
local minDragging = false
local minDragStartMouse = nil
local minDragStartPos = nil
minimizedBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
minDragging = true
minDragStartMouse = UserInputService:GetMouseLocation()
minDragStartPos = minimizedBar.Position
end
end)
minimizedBar.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
minDragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if minDragging and input.UserInputType == Enum.UserInputType.Mouse then
local currentMouse = UserInputService:GetMouseLocation()
local diff = currentMouse - minDragStartMouse
minimizedBar.Position = UDim2.new(minDragStartPos.X.Scale, minDragStartPos.X.Offset + diff.X, minDragStartPos.Y.Scale, minDragStartPos.Y.Offset + diff.Y)
end
end)
-- TAB SWITCHING
orbitTabBtn.MouseButton1Click:Connect(function()
currentTab = "orbit"
orbitTabFrame.Visible = true
settingsTabFrame.Visible = false
orbitTabBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
orbitTabBtn.BackgroundTransparency = 0.3
settingsTabBtn.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
settingsTabBtn.BackgroundTransparency = 0.5
end)
settingsTabBtn.MouseButton1Click:Connect(function()
currentTab = "settings"
orbitTabFrame.Visible = false
settingsTabFrame.Visible = true
orbitTabBtn.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
orbitTabBtn.BackgroundTransparency = 0.5
settingsTabBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
settingsTabBtn.BackgroundTransparency = 0.3
end)
-- MINIMIZE BUTTON
minimizeBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = false
minimizedBar.Visible = true
end)
-- RESTORE BUTTON
restoreBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = true
minimizedBar.Visible = false
end)
-- CLOSE BUTTON
closeBtn.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
-- ORBIT BUTTON
orbitBtn.MouseButton1Click:Connect(function()
isOrbiting = not isOrbiting
if isOrbiting then
orbitBtn.Text = "STOP ORBIT"
orbitBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 100)
if targetPlayer then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isReverseOrbit then
statusLabel.Text = statusLabel.Text .. "\n(Reversed)"
end
if isTidallyLocked then
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
end
if isSpinMode then
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
else
statusLabel.Text = "Status: No player selected"
isOrbiting = false
orbitBtn.Text = "START ORBIT"
orbitBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
end
else
orbitBtn.Text = "START ORBIT"
orbitBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
statusLabel.Text = "Status: Orbit stopped"
end
end)
-- TELEPORT BUTTON
teleportBtn.MouseButton1Click:Connect(function()
if targetPlayer and targetPlayer.Character then
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if targetHRP then
humanoidRootPart.CFrame = targetHRP.CFrame + targetHRP.CFrame.LookVector * 5
statusLabel.Text = "Status: Teleported to " .. targetPlayer.Name
else
statusLabel.Text = "Status: Target has no HumanoidRootPart"
end
else
statusLabel.Text = "Status: No player selected"
end
end)
-- SPEED BOX
speedBox.FocusLost:Connect(function()
local val = tonumber(speedBox.Text)
if val and val > 0 then
orbitSpeed = val
speedLabel.Text = "Speed: " .. orbitSpeed .. " studs/sec"
else
speedBox.Text = tostring(orbitSpeed)
end
end)
-- DISTANCE BOX (Settings)
distanceBox.FocusLost:Connect(function()
local val = tonumber(distanceBox.Text)
if val and val > 0 then
orbitRadius = val
distanceLabel.Text = "Orbit Distance: " .. orbitRadius .. " studs"
else
distanceBox.Text = tostring(orbitRadius)
end
end)
-- TILT BOX (Settings)
tiltBox.FocusLost:Connect(function()
local val = tonumber(tiltBox.Text)
if val then
orbitTilt = math.rad(val)
tiltLabel.Text = "Orbit Tilt: " .. val .. " degrees"
else
tiltBox.Text = tostring(math.deg(orbitTilt))
end
end)
-- HEIGHT BOX (Settings)
heightBox.FocusLost:Connect(function()
local val = tonumber(heightBox.Text)
if val then
orbitHeight = val
heightLabel.Text = "Height Offset: " .. orbitHeight .. " studs"
else
heightBox.Text = tostring(orbitHeight)
end
end)
-- REVERSE ORBIT TOGGLE
reverseToggle.MouseButton1Click:Connect(function()
isReverseOrbit = not isReverseOrbit
if isReverseOrbit then
reverseToggle.Text = "ON"
reverseToggle.BackgroundColor3 = Color3.fromRGB(200, 100, 200)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name .. "\n(Reversed)"
if isTidallyLocked then
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
end
if isSpinMode then
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
end
else
reverseToggle.Text = "OFF"
reverseToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isTidallyLocked then
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
end
if isSpinMode then
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
end
end
end)
-- TIDALLY LOCKED TOGGLE
tidalToggle.MouseButton1Click:Connect(function()
isTidallyLocked = not isTidallyLocked
if isTidallyLocked then
tidalToggle.Text = "ON"
tidalToggle.BackgroundColor3 = Color3.fromRGB(100, 150, 200)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isReverseOrbit then
statusLabel.Text = statusLabel.Text .. "\n(Reversed)"
end
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
if isSpinMode then
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
end
else
tidalToggle.Text = "OFF"
tidalToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isReverseOrbit then
statusLabel.Text = statusLabel.Text .. "\n(Reversed)"
end
if isSpinMode then
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
end
end
end)
-- SPIN MODE TOGGLE
spinToggle.MouseButton1Click:Connect(function()
isSpinMode = not isSpinMode
if isSpinMode then
spinToggle.Text = "ON"
spinToggle.BackgroundColor3 = Color3.fromRGB(200, 100, 150)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isReverseOrbit then
statusLabel.Text = statusLabel.Text .. "\n(Reversed)"
end
if isTidallyLocked then
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
end
statusLabel.Text = statusLabel.Text .. "\n(Spinning)"
end
else
spinToggle.Text = "OFF"
spinToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
if isOrbiting then
statusLabel.Text = "Status: Orbiting " .. targetPlayer.Name
if isReverseOrbit then
statusLabel.Text = statusLabel.Text .. "\n(Reversed)"
end
if isTidallyLocked then
statusLabel.Text = statusLabel.Text .. "\n(Tidally Locked)"
end
end
end
end)
-- SPIN SPEED BOX
spinSpeedBox.FocusLost:Connect(function()
local val = tonumber(spinSpeedBox.Text)
if val and val >= 0.01 then
spinSpeed = val
spinSpeedLabel.Text = "Spin Speed: " .. spinSpeed .. " rad/sec (Min: 0.01)"
else
spinSpeedBox.Text = tostring(spinSpeed)
spinSpeedLabel.Text = "Spin Speed: " .. spinSpeed .. " rad/sec (Min: 0.01)"
end
end)
-- ESP TOGGLE
espToggle.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
if espEnabled then
espToggle.Text = "ON"
espToggle.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
else
espToggle.Text = "OFF"
espToggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
-- Clear ESP labels
for _, label in pairs(espLabels) do
label:Destroy()
end
espLabels = {}
end
end)
-- PLAYER BOX
playerNameBox.FocusLost:Connect(function()
local name = playerNameBox.Text:lower()
targetPlayer = nil
if name == "" then
statusLabel.Text = "Status: Enter a name"
return
end
-- Search by username
for _, p in pairs(Players:GetPlayers()) do
if p.Name:lower() == name then
targetPlayer = p
statusLabel.Text = "Status: Found " .. p.Name
return
end
end
-- Search by display name
for _, p in pairs(Players:GetPlayers()) do
if p.DisplayName:lower() == name then
targetPlayer = p
statusLabel.Text = "Status: Found " .. p.Name
return
end
end
statusLabel.Text = "Status: Player not found"
end)
-- ESP UPDATE LOOP
RunService.RenderStepped:Connect(function()
if espEnabled then
local camera = workspace.CurrentCamera
for _, p in pairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local humanoidRootPart = p.Character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart then
-- Find or create ESP label for this player
local espLabel = espLabels[p]
if not espLabel then
espLabel = Instance.new("TextLabel")
espLabel.BackgroundTransparency = 1
espLabel.TextScaled = false
espLabel.TextSize = 13
espLabel.Font = Enum.Font.GothamBold
espLabel.Parent = screenGui
espLabels[p] = espLabel
end
-- Update label position and text
local screenPosition, onScreen = camera:WorldToScreenPoint(humanoidRootPart.Position)
if onScreen then
espLabel.Visible = true
espLabel.Position = UDim2.new(0, screenPosition.X - 50, 0, screenPosition.Y - 20)
espLabel.Text = p.Name .. " (" .. p.DisplayName .. ")"
-- Color based on distance
local distance = (humanoidRootPart.Position - camera.CFrame.Position).Magnitude
if distance < 50 then
espLabel.TextColor3 = Color3.fromRGB(0, 255, 0) -- Green
elseif distance < 100 then
espLabel.TextColor3 = Color3.fromRGB(255, 255, 0) -- Yellow
else
espLabel.TextColor3 = Color3.fromRGB(255, 0, 0) -- Red
end
else
espLabel.Visible = false
end
end
end
end
-- Clean up removed players
for p, label in pairs(espLabels) do
if not (p.Parent == Players) then
label:Destroy()
espLabels[p] = nil
end
end
end
end)
-- ORBIT LOOP - With tilt, reverse, tidally locked, and spin support
RunService.RenderStepped:Connect(function()
if isOrbiting and targetPlayer and targetPlayer.Character then
local currentTime = tick()
-- Only update orbit position every 0.01 seconds
if currentTime - lastOrbitTime >= orbitDelay then
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if targetHRP then
-- Calculate angle with reverse direction
local angleIncrement = (orbitSpeed / orbitRadius) / 60 * 6.28
if isReverseOrbit then
angleIncrement = -angleIncrement
end
angle = angle + angleIncrement
-- Apply tilt rotation
local x = math.cos(angle) * orbitRadius
local z = math.sin(angle) * orbitRadius
-- Apply tilt effect (like solar system)
local tiltedY = math.sin(angle) * orbitRadius * math.sin(orbitTilt)
local adjustedZ = z * math.cos(orbitTilt)
local newPos = targetHRP.Position + Vector3.new(x, orbitHeight + tiltedY, adjustedZ)
if isSpinMode then
-- Add spin rotation
spinAngle = spinAngle + spinSpeed / 60
local spinCFrame = CFrame.Angles(0, spinAngle, 0)
if isTidallyLocked then
-- Tidally locked + spinning
humanoidRootPart.CFrame = CFrame.new(newPos, targetHRP.Position) * spinCFrame
else
-- Spin only
humanoidRootPart.CFrame = CFrame.new(newPos) * spinCFrame
end
else
if isTidallyLocked then
-- Tidally locked: character faces the target player
humanoidRootPart.CFrame = CFrame.new(newPos, targetHRP.Position)
else
-- Normal mode: keep camera direction
humanoidRootPart.CFrame = CFrame.new(newPos) * (humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position)
end
end
end
lastOrbitTime = currentTime
end
end
end)
-- RESPAWN
player.CharacterAdded:Connect(function(newChar)
character = newChar
humanoidRootPart = character:WaitForChild("HumanoidRootPart")
isOrbiting = false
orbitBtn.Text = "START ORBIT"
orbitBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
statusLabel.Text = "Status: Respawned"
spinAngle = 0
end)


what ai you use
@okop i used roblox studio ai and github copilot