Run it
Copy the script and paste it into your executor.
local RunService = :()
Players = :()
lp = Players.LocalPlayer
radius =
partCount =
spinSpeed =
pulseSpeed =
ringParts = {}
isSpinning =
()
tool = lp.Character lp.Character:()
tool tool:() tool.SyncAPI:()
()
remote = ()
remote
root = lp.Character.HumanoidRootPart
phi = .pi * ( - .())
i = , partCount
y = - (i / (partCount - )) *
r = .( - y * y)
theta = phi * i
vec = .(.(theta) * r, y, .(theta) * r)
part = remote:(, , .(root.Position + vec * radius), )
part
remote:(, {{Part = part, = part.CFrame, Size = .(, , )}})
remote:(, {{Part = part, DecorationType = }})
.(ringParts, {part = part, vec = vec})
i % == .()
isSpinning =
timePassed =
RunService.Heartbeat:((dt)
isSpinning #ringParts ==
remote = ()
root = lp.Character lp.Character:()
remote root
timePassed = timePassed + dt
wave = (.(timePassed * pulseSpeed) + ) /
moveData = {}
fireData = {}
colorData = {}
rotationCFrame = .(, timePassed * spinSpeed, timePassed * (spinSpeed/))
_, data (ringParts)
p = data.part
p p.Parent
finalPos = root.Position + (rotationCFrame * data.vec * radius)
.(moveData, {Part = p, = .(finalPos, root.Position)})
.(colorData, {
Part = p,
Color = .(, wave * , wave),
UnionColoring =
})
.(fireData, {
Part = p,
DecorationType = ,
Size = + (wave * ),
Color = .(, , )
})
remote:(, moveData)
remote:(, colorData)
remote:(, fireData)
)
()uhh this is AI so expect nothing but slop, what this script does is it creates parts around you like a dyson sphere and then uhhh i cant explain it but yeah you'll see when you execute the script this is for ( Make A Server ) creds to secretbacon for providing the functions

Universal