Chroma Orbit GUI
Key RequiredUniversal

Chroma Orbit GUI

Universal ScriptSkeleSkele 4.2K views 801 executesUpdated Jun 12, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•120 lines (3647 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local orbiting = false
local orbitSpeed = 500
local orbitRadius = 3
local orbitConnection
local currentTarget
local humanoidRootPart

local function rainbow()
	return Color3.fromHSV((tick() * 0.5) % 1, 1, 1)
end

local function getNearestTarget()
	local nearest = nil
	local minDist = math.huge
	if not humanoidRootPart then return end
	for _, p in pairs(Players:GetPlayers()) do
		if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
			local dist = (humanoidRootPart.Position - p.Character.HumanoidRootPart.Position).Magnitude
			if dist < minDist then
				minDist = dist
				nearest = p.Character.HumanoidRootPart
			end
		end
	end
	return nearest
end

local function toggleOrbit()
	orbiting = not orbiting
	if orbiting then
		currentTarget = getNearestTarget()
		if currentTarget then
			if orbitConnection then orbitConnection:Disconnect() end
			orbitConnection = RunService.RenderStepped:Connect(function()
				if not humanoidRootPart or not humanoidRootPart.Parent then return end
				if not currentTarget or not currentTarget.Parent then return end
				local angle = tick() * orbitSpeed
				local offset = Vector3.new(math.cos(angle) * orbitRadius, 0, math.sin(angle) * orbitRadius)
				local orbitPos = currentTarget.Position + offset
				humanoidRootPart.CFrame = CFrame.lookAt(orbitPos, currentTarget.Position)
				local targetHumanoid = currentTarget.Parent:FindFirstChild("Humanoid")
				if targetHumanoid then
					camera.CameraSubject = targetHumanoid
				end
			end)
		end
	else
		if orbitConnection then orbitConnection:Disconnect() end
		camera.CameraSubject = player.Character and player.Character:FindFirstChild("Humanoid")
	end
end

local function onCharacterAdded(char)
	humanoidRootPart = char:WaitForChild("HumanoidRootPart")
	if not orbiting then
		camera.CameraSubject = char:FindFirstChild("Humanoid")
	end
end

if player.Character then
	onCharacterAdded(player.Character)
end
player.CharacterAdded:Connect(onCharacterAdded)

local function createOrbitGui()
	local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
	gui.Name = "MobileOrbitGui"
	gui.ResetOnSpawn = false

	local frame = Instance.new("Frame")
	frame.Name = "OrbitFrame"
	frame.Size = UDim2.new(0, 200, 0, 100)
	frame.Position = UDim2.new(0.5, -100, 0.5, -50)
	frame.BackgroundColor3 = Color3.new(1, 1, 1)
	frame.AnchorPoint = Vector2.new(0.5, 0.5)
	frame.Active = true
	frame.Draggable = true
	frame.Parent = gui

	local uicorner = Instance.new("UICorner", frame)
	uicorner.CornerRadius = UDim.new(0, 12)

	local title = Instance.new("TextLabel")
	title.Size = UDim2.new(1, 0, 0.3, 0)
	title.Position = UDim2.new(0, 0, 0, 0)
	title.BackgroundTransparency = 1
	title.Text = "Orbit Controller"
	title.Font = Enum.Font.GothamBold
	title.TextScaled = true
	title.TextColor3 = Color3.new(1, 1, 1)
	title.Parent = frame

	local button = Instance.new("TextButton")
	button.Size = UDim2.new(0.6, 0, 0.4, 0)
	button.Position = UDim2.new(0.2, 0, 0.5, 0)
	button.Text = "Orbit"
	button.Font = Enum.Font.Gotham
	button.TextScaled = true
	button.TextColor3 = Color3.new(1, 1, 1)
	button.BackgroundColor3 = Color3.fromHSV(0, 1, 1)
	button.Parent = frame

	local btnCorner = Instance.new("UICorner", button)
	btnCorner.CornerRadius = UDim.new(0, 10)

	button.MouseButton1Click:Connect(toggleOrbit)

	RunService.RenderStepped:Connect(function()
		local c = rainbow()
		frame.BackgroundColor3 = c
		button.BackgroundColor3 = c
	end)
end

createOrbitGui()

Features & Information

Features: • Orbits the nearest player with the speed of 500. ———————————— How do I change the speed?: Since the script is Open Sourced, you can easily change the orbit speed by modifying this line near the top of the script: local orbitSpeed = 500

Community Comments (1)

errorvirus817errorvirus817Dec 14, 2025

a good gui silly to

More Scripts for Universal Scripts