Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
StarterGui = :()
HttpService = :()
LocalPlayer = Players.LocalPlayer
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.GothamBold
Title.TextSize =
Title.Parent = MainFrame
TitleCorner = .()
TitleCorner.CornerRadius = .(, )
TitleCorner.Parent = Title
MinimizeButton = .()
MinimizeButton.Size = .(, , , )
MinimizeButton.Position = .(, -, , )
MinimizeButton.Text =
MinimizeButton.BackgroundColor3 = .(, , )
MinimizeButton.TextColor3 = .(, , )
MinimizeButton.Font = .Font.GothamBold
MinimizeButton.TextSize =
MinimizeButton.Parent = MainFrame
MinimizeCorner = .()
MinimizeCorner.CornerRadius = .(, )
MinimizeCorner.Parent = MinimizeButton
CloseButton = .()
CloseButton.Size = .(, , , )
CloseButton.Position = .(, -, , )
CloseButton.Text =
CloseButton.BackgroundColor3 = .(, , )
CloseButton.TextColor3 = .(, , )
CloseButton.Font = .Font.GothamBold
CloseButton.TextSize =
CloseButton.Parent = MainFrame
CloseCorner = .()
CloseCorner.CornerRadius = .(, )
CloseCorner.Parent = CloseButton
CloseButton.MouseButton1Click:(()
ScreenGui:()
)
ContentFrame = .()
ContentFrame.Size = .(, -, , -)
ContentFrame.Position = .(, , , )
ContentFrame.BackgroundTransparency =
ContentFrame.Parent = MainFrame
config = {
enabled = ,
radius = ,
height = ,
rotationSpeed = ,
attractionStrength = ,
targetMode = ,
targetPlayer = ,
targetPart = ,
orbitPattern = ,
spiralGrowth = ,
ellipseRatio = ,
figure8Scale = ,
starPoints = ,
starInnerRadius = ,
color = .(, , )
}
partSelectionActive =
currentOutline =
()
configStr = HttpService:(config)
(, configStr)
()
()
configStr = ()
loadedConfig = HttpService:(configStr)
(loadedConfig) ==
key, value (loadedConfig)
config[key] = value
()
orbitPatterns = {
circle = ,
ellipse = ,
figure8 = ,
spiral = ,
helix = ,
wave = ,
star = ,
flower = ,
infinity = ,
random =
}
RingToggleButton = .()
RingToggleButton.Size = .(, , , )
RingToggleButton.Position = .(, , , )
RingToggleButton.Text = config.enabled
RingToggleButton.BackgroundColor3 = config.enabled .(, , ) .(, , )
RingToggleButton.TextColor3 = .(, , )
RingToggleButton.Font = .Font.GothamBold
RingToggleButton.TextSize =
RingToggleButton.Parent = ContentFrame
RingToggleCorner = .()
RingToggleCorner.CornerRadius = .(, )
RingToggleCorner.Parent = RingToggleButton
RingToggleButton.MouseButton1Click:(()
config.enabled = config.enabled
RingToggleButton.Text = config.enabled
RingToggleButton.BackgroundColor3 = config.enabled .(, , ) .(, , )
()
)
ModeToggleButton = .()
ModeToggleButton.Size = .(, , , )
ModeToggleButton.Position = .(, , , )
ModeToggleButton.BackgroundColor3 = config.targetMode == .(, , ) .(, , )
ModeToggleButton.BorderSizePixel =
ModeToggleButton.Image = config.targetMode ==
ModeToggleButton.Parent = ContentFrame
ModeToggleCorner = .()
ModeToggleCorner.CornerRadius = .(, )
ModeToggleCorner.Parent = ModeToggleButton
ModeToggleButton.MouseButton1Click:(()
config.targetMode ==
config.targetMode =
ModeToggleButton.Image =
ModeToggleButton.BackgroundColor3 = .(, , )
config.targetMode =
ModeToggleButton.Image =
ModeToggleButton.BackgroundColor3 = .(, , )
()
()
)
PlayerNameBox = .()
PlayerNameBox.Size = .(, -, , )
PlayerNameBox.Position = .(, , , )
PlayerNameBox.Text = config.targetPlayer config.targetPlayer.Name
PlayerNameBox.PlaceholderText =
PlayerNameBox.BackgroundColor3 = .(, , )
PlayerNameBox.TextColor3 = .(, , )
PlayerNameBox.Font = .Font.Gotham
PlayerNameBox.TextSize =
PlayerNameBox.Visible = config.targetMode ==
PlayerNameBox.Parent = ContentFrame
PlayerNameBoxCorner = .()
PlayerNameBoxCorner.CornerRadius = .(, )
PlayerNameBoxCorner.Parent = PlayerNameBox
PlayerNameBox.FocusLost:(()
config.targetPlayer = (PlayerNameBox.Text)
()
)
PartSelectionButton = .()
PartSelectionButton.Size = .(, -, , )
PartSelectionButton.Position = .(, , , )
PartSelectionButton.Text = config.targetPart ( .. config.targetPart.Name)
PartSelectionButton.BackgroundColor3 = .(, , )
PartSelectionButton.TextColor3 = .(, , )
PartSelectionButton.Font = .Font.Gotham
PartSelectionButton.TextSize =
PartSelectionButton.Visible = config.targetMode ==
PartSelectionButton.Parent = ContentFrame
PartSelectionButtonCorner = .()
PartSelectionButtonCorner.CornerRadius = .(, )
PartSelectionButtonCorner.Parent = PartSelectionButton
PartSelectionButton.MouseButton1Click:(()
partSelectionActive =
PartSelectionButton.Text =
PartSelectionButton.BackgroundColor3 = .(, , )
)
PatternLabel = .()
PatternLabel.Size = .(, , , )
PatternLabel.Position = .(, , , )
PatternLabel.Text =
PatternLabel.TextColor3 = .(, , )
PatternLabel.BackgroundTransparency =
PatternLabel.Font = .Font.Gotham
PatternLabel.TextSize =
PatternLabel.TextXAlignment = .TextXAlignment.Left
PatternLabel.Parent = ContentFrame
PatternDropdown = .()
PatternDropdown.Size = .(, , , )
PatternDropdown.Position = .(, , , )
PatternDropdown.Text = orbitPatterns[config.orbitPattern]
PatternDropdown.BackgroundColor3 = .(, , )
PatternDropdown.TextColor3 = .(, , )
PatternDropdown.Font = .Font.Gotham
PatternDropdown.TextSize =
PatternDropdown.ZIndex =
PatternDropdown.Parent = ContentFrame
PatternDropdownCorner = .()
PatternDropdownCorner.CornerRadius = .(, )
PatternDropdownCorner.Parent = PatternDropdown
PatternList = .()
PatternList.Size = .(, , , )
PatternList.Position = .(, , , )
PatternList.BackgroundColor3 = .(, , )
PatternList.BorderSizePixel =
PatternList.Visible =
PatternList.ScrollBarThickness =
PatternList.ZIndex =
PatternList.Parent = ContentFrame
PatternListCorner = .()
PatternListCorner.CornerRadius = .(, )
PatternListCorner.Parent = PatternList
patternY =
patternKey, patternName (orbitPatterns)
PatternOption = .()
PatternOption.Size = .(, -, , )
PatternOption.Position = .(, , , patternY)
PatternOption.Text = patternName
PatternOption.BackgroundColor3 = .(, , )
PatternOption.TextColor3 = .(, , )
PatternOption.Font = .Font.Gotham
PatternOption.TextSize =
PatternOption.ZIndex =
PatternOption.Parent = PatternList
PatternOptionCorner = .()
PatternOptionCorner.CornerRadius = .(, )
PatternOptionCorner.Parent = PatternOption
PatternOption.MouseButton1Click:(()
config.orbitPattern = patternKey
PatternDropdown.Text = patternName
PatternList.Visible =
()
()
)
patternY = patternY +
PatternList.CanvasSize = .(, , , patternY)
PatternDropdown.MouseButton1Click:(()
PatternList.Visible = PatternList.Visible
)
ColorLabel = .()
ColorLabel.Size = .(, , , )
ColorLabel.Position = .(, , , )
ColorLabel.Text =
ColorLabel.TextColor3 = .(, , )
ColorLabel.BackgroundTransparency =
ColorLabel.Font = .Font.Gotham
ColorLabel.TextSize =
ColorLabel.TextXAlignment = .TextXAlignment.Left
ColorLabel.Parent = ContentFrame
ColorButton = .()
ColorButton.Size = .(, , , )
ColorButton.Position = .(, , , )
ColorButton.Text =
ColorButton.BackgroundColor3 = config.color
ColorButton.BorderSizePixel =
ColorButton.Parent = ContentFrame
ColorButtonCorner = .()
ColorButtonCorner.CornerRadius = .(, )
ColorButtonCorner.Parent = ColorButton
ColorButton.MouseButton1Click:(()
colors = {
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , )
}
currentIndex =
i, color (colors)
(color.R - config.color.R) < (color.G - config.color.G) < (color.B - config.color.B) <
currentIndex = i
nextIndex = (currentIndex % #colors) +
config.color = colors[nextIndex]
ColorButton.BackgroundColor3 = config.color
()
)
currentY =
(name, color, labelText, defaultValue, callback, column)
xPos = column ==
Container = .()
Container.Size = .(, , , )
Container.Position = .(, xPos, , currentY)
Container.BackgroundColor3 = .(, , )
Container.BorderSizePixel =
Container.Parent = ContentFrame
ContainerCorner = .()
ContainerCorner.CornerRadius = .(, )
ContainerCorner.Parent = Container
Label = .()
Label.Size = .(, -, , )
Label.Position = .(, , , )
Label.Text = labelText
Label.TextColor3 = .(, , )
Label.BackgroundTransparency =
Label.Font = .Font.Gotham
Label.TextSize =
Label.TextXAlignment = .TextXAlignment.Left
Label.Parent = Container
DecreaseButton = .()
DecreaseButton.Size = .(, , , )
DecreaseButton.Position = .(, , , )
DecreaseButton.Text =
DecreaseButton.BackgroundColor3 = color
DecreaseButton.TextColor3 = .(, , )
DecreaseButton.Font = .Font.GothamBold
DecreaseButton.TextSize =
DecreaseButton.Parent = Container
DecreaseCorner = .()
DecreaseCorner.CornerRadius = .(, )
DecreaseCorner.Parent = DecreaseButton
ValueBox = .()
ValueBox.Size = .(, , , )
ValueBox.Position = .(, , , )
ValueBox.Text = (defaultValue)
ValueBox.PlaceholderText =
ValueBox.BackgroundColor3 = .(, , )
ValueBox.TextColor3 = .(, , )
ValueBox.Font = .Font.Gotham
ValueBox.TextSize =
ValueBox.Parent = Container
ValueBoxCorner = .()
ValueBoxCorner.CornerRadius = .(, )
ValueBoxCorner.Parent = ValueBox
IncreaseButton = .()
IncreaseButton.Size = .(, , , )
IncreaseButton.Position = .(, , , )
IncreaseButton.Text =
IncreaseButton.BackgroundColor3 = color
IncreaseButton.TextColor3 = .(, , )
IncreaseButton.Font = .Font.GothamBold
IncreaseButton.TextSize =
IncreaseButton.Parent = Container
IncreaseCorner = .()
IncreaseCorner.CornerRadius = .(, )
IncreaseCorner.Parent = IncreaseButton
DecreaseButton.MouseButton1Click:(()
value = (ValueBox.Text) defaultValue
minValue = name == -
value = .(minValue, value - )
ValueBox.Text = (value)
(value)
()
)
IncreaseButton.MouseButton1Click:(()
value = (ValueBox.Text) defaultValue
value = .(, value + )
ValueBox.Text = (value)
(value)
()
)
ValueBox.FocusLost:((enterPressed)
enterPressed
newValue = (ValueBox.Text)
newValue
minValue = name == -
newValue = .(newValue, minValue, )
ValueBox.Text = (newValue)
(newValue)
()
ValueBox.Text = (defaultValue)
)
()
PlayerNameBox.Visible = config.targetMode ==
PartSelectionButton.Visible = config.targetMode ==
PatternDropdown.Text = orbitPatterns[config.orbitPattern]
_, child (ContentFrame:())
child:() child.Position.Y.Offset >=
child:()
currentY =
(, .(, , ), , config.radius, (value)
config.radius = value
, )
(, .(, , ), , config.rotationSpeed, (value)
config.rotationSpeed = value
, )
currentY =
(, .(, , ), , config.height, (value)
config.height = value
, )
(, .(, , ), , config.attractionStrength, (value)
config.attractionStrength = value
, )
currentY =
config.orbitPattern ==
(, .(, , ), , config.ellipseRatio * , (value)
config.ellipseRatio = value /
, )
config.orbitPattern ==
(, .(, , ), , config.figure8Scale * , (value)
config.figure8Scale = value /
, )
config.orbitPattern ==
(, .(, , ), , config.spiralGrowth * , (value)
config.spiralGrowth = value /
, )
config.orbitPattern ==
(, .(, , ), , config.helixHeight , (value)
config.helixHeight = value
, )
config.orbitPattern ==
(, .(, , ), , config.waveAmplitude , (value)
config.waveAmplitude = value
, )
config.orbitPattern ==
(, .(, , ), , config.starPoints , (value)
config.starPoints = value
, )
(, .(, , ), , config.starInnerRadius * , (value)
config.starInnerRadius = value /
, )
config.orbitPattern ==
(, .(, , ), , config.flowerPetals , (value)
config.flowerPetals = value
, )
config.orbitPattern ==
(, .(, , ), , config.infinityScale , (value)
config.infinityScale = value
, )
()
minimized =
MinimizeButton.MouseButton1Click:(()
minimized = minimized
minimized
MainFrame:(.(, , , ), , , , )
MinimizeButton.Text =
ContentFrame.Visible =
MainFrame:(.(, , , ), , , , )
MinimizeButton.Text =
ContentFrame.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)
)
(name)
name ==
LocalPlayer
name = name:()
_, player (Players:())
player.Name:():(name) player.DisplayName:():(name)
player
LocalPlayer
Mouse = LocalPlayer:()
Mouse.Button1Down:(()
partSelectionActive
target = Mouse.Target
target target:()
config.targetPart = target
partSelectionActive =
()
currentOutline
currentOutline:()
currentOutline = .()
currentOutline.Adornee = target
currentOutline.LineThickness =
currentOutline.Color3 = config.color
currentOutline.Parent = target
)
().Network
().Network = {
BaseParts = {},
Velocity = .(, , )
}
Network.RetainPart = (Part)
(Part) == Part:() Part:()
.(Network.BaseParts, Part)
Part.CustomPhysicalProperties = PhysicalProperties.(, , , , )
()
LocalPlayer.ReplicationFocus =
RunService.Heartbeat:(()
(LocalPlayer, , .huge)
_, Part (Network.BaseParts)
Part:()
Part.Velocity = Network.Velocity
)
()
trackedParts = {}
originalCollisions = {}
(part)
part:() part.Anchored part:()
part.Parent == LocalPlayer.Character part:(LocalPlayer.Character)
part.CustomPhysicalProperties = PhysicalProperties.(, , , , )
(part)
(part)
trackedParts[part]
trackedParts[part] =
originalCollisions[part] = part.CanCollide
(part)
trackedParts[part]
trackedParts[part] =
originalCollisions[part] =
.(()
_, part (:())
(part)
)
.DescendantAdded:(addPart)
.DescendantRemoving:(removePart)
(partPos, targetCenter, time)
angleIncrement = .(config.rotationSpeed)
angle = .(partPos.Z - targetCenter.Z, partPos.X - targetCenter.X)
newAngle = angle + angleIncrement
targetPos
config.orbitPattern ==
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * config.radius
)
config.orbitPattern ==
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * config.radius * config.ellipseRatio
)
config.orbitPattern ==
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle * ) * config.radius * config.figure8Scale
)
config.orbitPattern ==
spiralRadius = config.radius + (time % ) * config.spiralGrowth
targetPos = .(
targetCenter.X + .(newAngle) * spiralRadius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * spiralRadius
)
config.orbitPattern ==
helixHeight = config.height + .(newAngle * ) * (config.helixHeight )
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + helixHeight,
targetCenter.Z + .(newAngle) * config.radius
)
config.orbitPattern ==
waveHeight = config.height + .(newAngle * ) * (config.waveAmplitude )
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + waveHeight,
targetCenter.Z + .(newAngle) * config.radius
)
config.orbitPattern ==
points = config.starPoints
innerRadius = config.radius * (config.starInnerRadius )
angleStep = (.pi * ) / points
pointIndex = .(newAngle / angleStep) % points
nextPointIndex = (pointIndex + ) % points
localAngle = newAngle % angleStep
t = localAngle / angleStep
radius = innerRadius
pointIndex % ==
radius = innerRadius + (config.radius - innerRadius) * ( - .(t * - ))
radius = config.radius - (config.radius - innerRadius) * ( - .(t * - ))
targetPos = .(
targetCenter.X + .(newAngle) * radius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * radius
)
config.orbitPattern ==
petals = config.flowerPetals
petalFrequency = petals /
radiusVariation = .(newAngle * petalFrequency) * +
targetPos = .(
targetCenter.X + .(newAngle) * config.radius * radiusVariation,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * config.radius * radiusVariation
)
config.orbitPattern ==
scale = config.infinityScale
t = newAngle / .pi
targetPos = .(
targetCenter.X + config.radius * .(newAngle) / ( + .(newAngle) * .(newAngle)),
targetCenter.Y + config.height,
targetCenter.Z + config.radius * .(newAngle) * .(newAngle) / ( + .(newAngle) * .(newAngle)) * scale
)
config.orbitPattern ==
randomOffset = .(
.(-, ),
.(-, ),
.(-, )
)
targetPos = .(
targetCenter.X + .(newAngle) * config.radius + randomOffset.X,
targetCenter.Y + config.height + randomOffset.Y,
targetCenter.Z + .(newAngle) * config.radius + randomOffset.Z
)
targetPos = .(
targetCenter.X + .(newAngle) * config.radius,
targetCenter.Y + config.height,
targetCenter.Z + .(newAngle) * config.radius
)
targetPos
RunService.Heartbeat:(()
config.enabled
targetCenter
config.targetMode ==
targetPlayer = config.targetPlayer LocalPlayer
targetPlayer.Character targetPlayer.Character:()
targetCenter = targetPlayer.Character.HumanoidRootPart.Position
config.targetMode ==
config.targetPart config.targetPart.Parent
targetCenter = config.targetPart.Position
targetCenter
humanoidRootPart = LocalPlayer.Character LocalPlayer.Character:()
humanoidRootPart
targetCenter = humanoidRootPart.Position
effectiveRadius = config.radius
maxDistance = effectiveRadius *
currentTime = ()
part, _ (trackedParts)
part part.Parent part.Anchored
partPos = part.Position
distanceFromTarget = (partPos - targetCenter).Magnitude
distanceFromTarget > maxDistance
targetPos = (partPos, targetCenter, currentTime)
directionToTarget = (targetPos - partPos).unit
part.Velocity = directionToTarget * config.attractionStrength
part.CanCollide =
)IMPROVEMENT - 60 FPS SUPER RING you wont lag using this script if lag ur device is sucks - so many feature that op - strong lifting objects - OPEN SOURCE HAPPY SKIDDERS DAY - WITHOUT CHATGPT