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)