Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
SoundService = :()
StarterGui = :()
TextChatService = :()
Workspace = :()
LocalPlayer = Players.LocalPlayer
(soundId)
(()
sound = .()
sound.SoundId = .. soundId
sound.Parent = SoundService
sound:()
sound.Ended:(() sound:() )
)
()
().Network
().Network = {
BaseParts = {},
Velocity = .(, , )
}
Network.RetainPart = (Part)
(Part) == Part:() Part:(Workspace)
.(Network.BaseParts, Part)
Part.CustomPhysicalProperties = PhysicalProperties.(, , , , )
Part.CanCollide =
()
LocalPlayer.ReplicationFocus = Workspace
RunService.Heartbeat:(()
(()
(LocalPlayer, , .huge)
_, Part (Network.BaseParts)
Part:(Workspace)
Part.Velocity = Network.Velocity
)
)
()
(v)
v:() v.Anchored v.Parent:() v.Parent:() v.Name ~=
_, x , v:()
x:() x:() x:() x:() x:() x:() x:()
x:()
v:() v:():()
v:() v:():()
v:() v:():()
v.CanCollide =
Torque = .(, v)
Torque.Torque = .(, , )
AlignPosition = .(, v)
Attachment2 = .(, v)
Torque.Attachment0 = Attachment2
AlignPosition.MaxForce =
AlignPosition.MaxVelocity = .huge
AlignPosition.Responsiveness =
AlignPosition.Attachment0 = Attachment2
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.Parent = LocalPlayer:()
MainFrame = .()
MainFrame.Size = .(, , , )
MainFrame.Position = .(, -, , -)
MainFrame.BackgroundColor3 = .(, , )
MainFrame.BorderSizePixel =
MainFrame.Parent = ScreenGui
UICorner = .()
UICorner.CornerRadius = .(, )
UICorner.Parent = MainFrame
Title = .()
Title.Size = .(, , , )
Title.Position = .(, , , )
Title.Text =
Title.TextColor3 = .(, , )
Title.BackgroundColor3 = .(, , )
Title.Font = .Font.Fondamento
Title.TextSize =
Title.Parent = MainFrame
TitleCorner = .()
TitleCorner.CornerRadius = .(, )
TitleCorner.Parent = Title
ToggleButton = .()
ToggleButton.Size = .(, , , )
ToggleButton.Position = .(, , , )
ToggleButton.Text =
ToggleButton.BackgroundColor3 = .(, , )
ToggleButton.TextColor3 = .(, , )
ToggleButton.Font = .Font.Fondamento
ToggleButton.TextSize =
ToggleButton.Parent = MainFrame
ToggleCorner = .()
ToggleCorner.CornerRadius = .(, )
ToggleCorner.Parent = ToggleButton
DecreaseRadius = .()
DecreaseRadius.Size = .(, , , )
DecreaseRadius.Position = .(, , , )
DecreaseRadius.Text =
DecreaseRadius.BackgroundColor3 = .(, , )
DecreaseRadius.TextColor3 = .(, , )
DecreaseRadius.Font = .Font.Fondamento
DecreaseRadius.TextSize =
DecreaseRadius.Parent = MainFrame
DecreaseCorner = .()
DecreaseCorner.CornerRadius = .(, )
DecreaseCorner.Parent = DecreaseRadius
IncreaseRadius = .()
IncreaseRadius.Size = .(, , , )
IncreaseRadius.Position = .(, , , )
IncreaseRadius.Text =
IncreaseRadius.BackgroundColor3 = .(, , )
IncreaseRadius.TextColor3 = .(, , )
IncreaseRadius.Font = .Font.Fondamento
IncreaseRadius.TextSize =
IncreaseRadius.Parent = MainFrame
IncreaseCorner = .()
IncreaseCorner.CornerRadius = .(, )
IncreaseCorner.Parent = IncreaseRadius
RadiusDisplay = .()
RadiusDisplay.Size = .(, , , )
RadiusDisplay.Position = .(, , , )
RadiusDisplay.Text =
RadiusDisplay.BackgroundColor3 = .(, , )
RadiusDisplay.TextColor3 = .(, , )
RadiusDisplay.Font = .Font.Fondamento
RadiusDisplay.TextSize =
RadiusDisplay.Parent = MainFrame
RadiusCorner = .()
RadiusCorner.CornerRadius = .(, )
RadiusCorner.Parent = RadiusDisplay
Watermark = .()
Watermark.Size = .(, , , )
Watermark.Position = .(, , , -)
Watermark.Text =
Watermark.TextColor3 = .(, , )
Watermark.BackgroundTransparency =
Watermark.Font = .Font.Fondamento
Watermark.TextSize =
Watermark.Parent = MainFrame
MinimizeButton = .()
MinimizeButton.Size = .(, , , )
MinimizeButton.Position = .(, -, , )
MinimizeButton.Text =
MinimizeButton.BackgroundColor3 = .(, , )
MinimizeButton.TextColor3 = .(, , )
MinimizeButton.Font = .Font.Fondamento
MinimizeButton.TextSize =
MinimizeButton.Parent = MainFrame
MinimizeCorner = .()
MinimizeCorner.CornerRadius = .(, )
MinimizeCorner.Parent = MinimizeButton
minimized =
MinimizeButton.MouseButton1Click:(()
minimized = minimized
minimized
MainFrame:(.(, , , ), , , , )
MinimizeButton.Text =
ToggleButton.Visible =
DecreaseRadius.Visible =
IncreaseRadius.Visible =
RadiusDisplay.Visible =
Watermark.Visible =
MainFrame:(.(, , , ), , , , )
MinimizeButton.Text =
ToggleButton.Visible =
DecreaseRadius.Visible =
IncreaseRadius.Visible =
RadiusDisplay.Visible =
Watermark.Visible =
()
)
dragging
dragInput
dragStart
startPos
(input)
delta = input.Position - dragStart
MainFrame.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
MainFrame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
MainFrame.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
(input)
)
radius =
height =
rotationSpeed =
attractionStrength =
ringPartsEnabled =
(Part)
Part:() Part.Anchored Part:(Workspace)
Part.Parent == LocalPlayer.Character Part:(LocalPlayer.Character)
Part.CustomPhysicalProperties = PhysicalProperties.(, , , , )
Part.CanCollide =
parts = {}
(part)
(part)
.(parts, part)
.(parts, part)
(part)
index = .(parts, part)
index
.(parts, index)
_, part (Workspace:())
(part)
Workspace.DescendantAdded:(addPart)
Workspace.DescendantRemoving:(removePart)
()
list = {}
_, pl (Players:())
pl.Character pl.Character:() pl.Character:() pl.Character.Humanoid.Health >
.(list, pl)
list
RunService.Heartbeat:(()
ringPartsEnabled
playersList = ()
pcount = #playersList
pcount ==
now = ()
omega = rotationSpeed * * .pi /
i, part (parts)
part part.Parent part.Anchored part:(Workspace)
part.Parent == LocalPlayer.Character part:(LocalPlayer.Character)
playerIndex = ((i - ) % pcount) +
pl = playersList[playerIndex]
pl pl.Character pl.Character:()
center = pl.Character.HumanoidRootPart.Position
baseAngle = ((i - ) / .(, #parts)) * * .pi
angle = baseAngle + (now * omega)
targetPos = .(
center.X,
center.Y + .(angle) * radius,
center.Z + .(angle) * radius
)
directionToTarget = (targetPos - part.Position)
dist = directionToTarget.Magnitude
dist >
dirUnit = directionToTarget.unit
forceVec = dirUnit * .(attractionStrength, dist * )
(()
part.Velocity = forceVec
)
)
ToggleButton.MouseButton1Click:(()
ringPartsEnabled = ringPartsEnabled
ToggleButton.Text = ringPartsEnabled
ToggleButton.BackgroundColor3 = ringPartsEnabled .(, , ) .(, , )
()
)
DecreaseRadius.MouseButton1Click:(()
radius = .(, radius - )
RadiusDisplay.Text = .. radius
()
)
IncreaseRadius.MouseButton1Click:(()
radius = .(, radius + )
RadiusDisplay.Text = .. radius
()
)
.(()
success, userId = (()
Players:()
)
success (userId) ==
ok, content = (()
Players:(userId, .ThumbnailType.HeadShot, .ThumbnailSize.Size420x420)
)
ok (content) ==
(()
StarterGui:(, {
Title = ,
Text = ,
Icon = content,
Duration =
})
)
(()
StarterGui:(, {
Title = ,
Text = ,
Duration =
})
)
)()
(message)
(()
TextChatService TextChatService.ChatVersion == .ChatVersion.TextChatService
textChannel = TextChatService.TextChannels.RBXGeneral
textChannel
textChannel:(message)
repl = :()
repl:() repl.DefaultChatSystemChatEvents:()
repl.DefaultChatSystemChatEvents.SayMessageRequest:(message, )
)
(() () )
This script is an alternative version of Lukas' ring; the difference is that instead of creating rings for each user, it creates rings for all players on the server. The created ring is vertical.

Universal