
Key RequiredUniversal

local player = game.Players.LocalPlayer
local root = player.Character or player.CharacterAdded:Wait()
root = root:WaitForChild("HumanoidRootPart")
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
local button = Instance.new("TextButton", gui)
button.Size, button.Position, button.Text = UDim2.new(0, 200, 0, 50), UDim2.new(0.5, -100, 0.1, 0), "Toggle Planets"
local orbiting, planets = false, {}
local function createPlanet(size, dist, name, color, speed, parent)
local p = Instance.new("Part", workspace)
p.Size, p.Shape, p.Material, p.Color, p.Anchored, p.Name = Vector3.new(size, size, size), Enum.PartType.Ball, Enum.Material.Neon, color, true, name
table.insert(planets, {part = p, dist = dist, angle = math.random(360), speed = speed, parent = parent})
end
-- **Planets & Moons**
local bodies = {
{2, 15, "Mercury", Color3.new(0.8, 0.8, 0.8), 1.5}, {3, 25, "Venus", Color3.new(1, 0.6, 0), 1.2},
{3, 40, "Earth", Color3.new(0, 0.6, 1), 1}, {1, 45, "Moon", Color3.new(0.7, 0.7, 0.7), 3, "Earth"},
{3, 60, "Mars", Color3.new(1, 0.2, 0.2), 0.8}, {5, 90, "Jupiter", Color3.new(1, 0.8, 0.4), 0.5},
{2, 100, "Europa", Color3.new(0.9, 0.9, 0.9), 2, "Jupiter"}, {1, 105, "MiniMoon", Color3.new(0.5, 0.5, 0.5), 4, "Europa"},
{6, 120, "Saturn", Color3.new(1, 0.87, 0.5), 0.4}, {5, 150, "Uranus", Color3.new(0.6, 0.8, 1), 0.3},
{4, 180, "Neptune", Color3.new(0.2, 0.2, 1), 0.25}, {10, 350, "Titan Prime", Color3.new(1, 0.4, 1), 0.1},
-- **8 New Planets**
{4, 200, "Exo-1", Color3.new(1, 0, 0), 0.2}, {5, 220, "Exo-2", Color3.new(0, 1, 0), 0.18},
{3, 240, "Exo-3", Color3.new(0, 0, 1), 0.16}, {6, 260, "Exo-4", Color3.new(1, 1, 0), 0.14},
{4, 280, "Exo-5", Color3.new(1, 0, 1), 0.12}, {5, 300, "Exo-6", Color3.new(0, 1, 1), 0.10},
{3, 320, "Exo-7", Color3.new(0.5, 0.5, 0.5), 0.08}, {6, 340, "Exo-8", Color3.new(1, 0.5, 0), 0.06}
}
for _, b in pairs(bodies) do createPlanet(unpack(b)) end
-- **Kuiper Belt (Randomized)**
for _ = 1, 30 do createPlanet(1, math.random(360, 500), "Kuiper Object", Color3.new(0.7, 0.7, 1), math.random(1, 5) / 10) end
-- **Titan Prime's Rings**
local rings = {}
for i = 0, 1 do
local r = Instance.new("Part", workspace)
r.Size, r.Shape, r.Material, r.Color, r.Anchored = Vector3.new(30 + (i * 5), 0.5, 30 + (i * 5)), Enum.PartType.Cylinder, Enum.Material.Neon, Color3.new(0.8, 0.8, 1), true
r.Orientation = Vector3.new(45, i * 30, 0)
table.insert(rings, r)
end
game:GetService("RunService").RenderStepped:Connect(function()
if orbiting then
for _, d in pairs(planets) do
local center = d.parent and workspace:FindFirstChild(d.parent) or root
if center then
d.angle = d.angle + d.speed
d.part.Position = center.Position + Vector3.new(math.cos(math.rad(d.angle)) * d.dist, 3, math.sin(math.rad(d.angle)) * d.dist)
end
end
for _, r in pairs(rings) do r.Position = workspace:FindFirstChild("Titan Prime").Position end
end
end)
button.MouseButton1Click:Connect(function()
orbiting = not orbiting
button.BackgroundColor3 = orbiting and Color3.new(0, 0.8, 0) or Color3.new(0.2, 0.2, 0.2)
if not orbiting then for _, d in pairs(planets) do d.part:Destroy() end planets = {} for _, r in pairs(rings) do r:Destroy() end end
end)



this is cool tbh. thanks for this! i might add textures to the parts to make them more like the planets. ofc not reposting just for myself if thats cool otherwise all good.
ok