
Key RequiredUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local SoundService = game:GetService("SoundService")
local StarterGui = game:GetService("StarterGui")
local LocalPlayer = Players.LocalPlayer
-- Sound Effects
local function playSound(soundId)
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://" .. soundId
sound.Parent = SoundService
sound:Play()
sound.Ended:Connect(function()
sound:Destroy()
end)
end
-- Play initial sound
playSound("2865227271")
-- GUI Creation
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SuperRingPartsGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 220, 0, 220)
MainFrame.Position = UDim2.new(0.5, -110, 0.5, -110)
MainFrame.BackgroundColor3 = Color3.fromRGB(0, 255, 255)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui
-- Make the GUI round
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 20)
UICorner.Parent = MainFrame
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 40)
Title.Position = UDim2.new(0, 0, 0, 0)
Title.Text = "Super Ring Parts V6 - Safe Version"
Title.TextColor3 = Color3.fromRGB(0, 0, 0)
Title.BackgroundColor3 = Color3.fromRGB(0, 204, 204)
Title.Font = Enum.Font.Fondamento
Title.TextSize = 18
Title.Parent = MainFrame
-- Round the title
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 20)
TitleCorner.Parent = Title
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(0.8, 0, 0, 35)
ToggleButton.Position = UDim2.new(0.1, 0, 0.3, 0)
ToggleButton.Text = "Ring Off"
ToggleButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
ToggleButton.TextColor3 = Color3.fromRGB(0, 0, 0)
ToggleButton.Font = Enum.Font.Fondamento
ToggleButton.TextSize = 18
ToggleButton.Parent = MainFrame
-- Round the toggle button
local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(0, 10)
ToggleCorner.Parent = ToggleButton
local DecreaseRadius = Instance.new("TextButton")
DecreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
DecreaseRadius.Position = UDim2.new(0.1, 0, 0.6, 0)
DecreaseRadius.Text = "-"
DecreaseRadius.BackgroundColor3 = Color3.fromRGB(153, 153, 0)
DecreaseRadius.TextColor3 = Color3.fromRGB(0, 0, 0)
DecreaseRadius.Font = Enum.Font.Fondamento
DecreaseRadius.TextSize = 18
DecreaseRadius.Parent = MainFrame
-- Round the decrease button
local DecreaseCorner = Instance.new("UICorner")
DecreaseCorner.CornerRadius = UDim.new(0, 10)
DecreaseCorner.Parent = DecreaseRadius
local IncreaseRadius = Instance.new("TextButton")
IncreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
IncreaseRadius.Position = UDim2.new(0.7, 0, 0.6, 0)
IncreaseRadius.Text = "+"
IncreaseRadius.BackgroundColor3 = Color3.fromRGB(153, 153, 0)
IncreaseRadius.TextColor3 = Color3.fromRGB(0, 0, 0)
IncreaseRadius.Font = Enum.Font.Fondamento
IncreaseRadius.TextSize = 18
IncreaseRadius.Parent = MainFrame
-- Round the increase button
local IncreaseCorner = Instance.new("UICorner")
IncreaseCorner.CornerRadius = UDim.new(0, 10)
IncreaseCorner.Parent = IncreaseRadius
local RadiusDisplay = Instance.new("TextLabel")
RadiusDisplay.Size = UDim2.new(0.4, 0, 0, 35)
RadiusDisplay.Position = UDim2.new(0.3, 0, 0.6, 0)
RadiusDisplay.Text = "Radius: 50"
RadiusDisplay.BackgroundColor3 = Color3.fromRGB(255, 153, 51)
RadiusDisplay.TextColor3 = Color3.fromRGB(0, 0, 0)
RadiusDisplay.Font = Enum.Font.Fondamento
RadiusDisplay.TextSize = 15
RadiusDisplay.Parent = MainFrame
-- Round the radius display
local RadiusCorner = Instance.new("UICorner")
RadiusCorner.CornerRadius = UDim.new(0, 10)
RadiusCorner.Parent = RadiusDisplay
-- Add TextBox for radius input
local RadiusTextBox = Instance.new("TextBox")
RadiusTextBox.Size = UDim2.new(0.8, 0, 0, 30)
RadiusTextBox.Position = UDim2.new(0.1, 0, 0.8, 0)
RadiusTextBox.PlaceholderText = "Enter Radius"
RadiusTextBox.BackgroundColor3 = Color3.fromRGB(0, 0, 255)
RadiusTextBox.TextColor3 = Color3.fromRGB(0, 0, 0)
RadiusTextBox.Font = Enum.Font.Fondamento
RadiusTextBox.TextSize = 18
RadiusTextBox.Parent = MainFrame
-- Round the TextBox
local TextBoxCorner = Instance.new("UICorner")
TextBoxCorner.CornerRadius = UDim.new(0, 10)
TextBoxCorner.Parent = RadiusTextBox
local Watermark = Instance.new("TextLabel")
Watermark.Size = UDim2.new(1, 0, 0, 20)
Watermark.Position = UDim2.new(0, 0, 1, -20)
Watermark.Text = "Click Textbox to Edit Radius!"
Watermark.TextColor3 = Color3.fromRGB(0, 0, 0)
Watermark.BackgroundTransparency = 1
Watermark.Font = Enum.Font.Fondamento
Watermark.TextSize = 14
Watermark.Parent = MainFrame
-- Add minimize button
local MinimizeButton = Instance.new("TextButton")
MinimizeButton.Size = UDim2.new(0, 30, 0, 30)
MinimizeButton.Position = UDim2.new(1, -35, 0, 5)
MinimizeButton.Text = "-"
MinimizeButton.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
MinimizeButton.TextColor3 = Color3.fromRGB(0, 0, 0)
MinimizeButton.Font = Enum.Font.Fondamento
MinimizeButton.TextSize = 15
MinimizeButton.Parent = MainFrame
-- Round the minimize button
local MinimizeCorner = Instance.new("UICorner")
MinimizeCorner.CornerRadius = UDim.new(0, 15)
MinimizeCorner.Parent = MinimizeButton
-- Minimize functionality
local minimized = false
MinimizeButton.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
MainFrame:TweenSize(UDim2.new(0, 220, 0, 40), "Out", "Quad", 0.3, true)
MinimizeButton.Text = "+"
ToggleButton.Visible = false
DecreaseRadius.Visible = false
IncreaseRadius.Visible = false
RadiusDisplay.Visible = false
RadiusTextBox.Visible = false
Watermark.Visible = false
else
MainFrame:TweenSize(UDim2.new(0, 220, 0, 220), "Out", "Quad", 0.3, true)
MinimizeButton.Text = "-"
ToggleButton.Visible = true
DecreaseRadius.Visible = true
IncreaseRadius.Visible = true
RadiusDisplay.Visible = true
RadiusTextBox.Visible = true
Watermark.Visible = true
end
playSound("12221967")
end)
-- Make GUI draggable
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
MainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
MainFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
-- Ring Parts Claim
local Workspace = game:GetService("Workspace")
local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local Folder = Instance.new("Folder", Workspace)
local Part = Instance.new("Part", Folder)
local Attachment1 = Instance.new("Attachment", Part)
Part.Anchored = true
Part.CanCollide = false
Part.Transparency = 1
if not getgenv().Network then
getgenv().Network = {
BaseParts = {},
Velocity = Vector3.new(14.46262424, 14.46262424, 14.46262424)
}
Network.RetainPart = function(Part)
if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(Workspace) then
table.insert(Network.BaseParts, Part)
Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
Part.CanCollide = false
end
end
local function EnablePartControl()
LocalPlayer.ReplicationFocus = Workspace
RunService.Heartbeat:Connect(function()
sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
for _, Part in pairs(Network.BaseParts) do
if Part:IsDescendantOf(Workspace) then
Part.Velocity = Network.Velocity
end
end
end)
end
EnablePartControl()
end
-- Edits
local radius = 50
local height = 5
local rotationSpeed = 0.25
local attractionStrength = 750
local ringPartsEnabled = false
local function RetainPart(Part)
if Part:IsA("BasePart") and not Part.Anchored and Part:IsDescendantOf(workspace) then
if Part.Parent == LocalPlayer.Character or Part:IsDescendantOf(LocalPlayer.Character) then
return false
end
Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
Part.CanCollide = false
return true
end
return false
end
local parts = {}
local function addPart(part)
if RetainPart(part) then
if not table.find(parts, part) then
table.insert(parts, part)
end
end
end
local function removePart(part)
local index = table.find(parts, part)
if index then
table.remove(parts, index)
end
end
for _, part in pairs(workspace:GetDescendants()) do
addPart(part)
end
workspace.DescendantAdded:Connect(addPart)
workspace.DescendantRemoving:Connect(removePart)
RunService.Heartbeat:Connect(function()
if not ringPartsEnabled then return end
local humanoidRootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart then
local tornadoCenter = humanoidRootPart.Position
for _, part in pairs(parts) do
if part.Parent and not part.Anchored then
local pos = part.Position
local distance = (Vector3.new(pos.X, tornadoCenter.Y, pos.Z) - tornadoCenter).Magnitude
local angle = math.atan2(pos.Z - tornadoCenter.Z, pos.X - tornadoCenter.X)
local newAngle = angle + math.rad(rotationSpeed)
local targetPos = Vector3.new(
tornadoCenter.X + math.cos(newAngle) * math.min(radius, distance),
tornadoCenter.Y + (height * (math.abs(math.sin((pos.Y - tornadoCenter.Y) / height)))),
tornadoCenter.Z + math.sin(newAngle) * math.min(radius, distance)
)
local directionToTarget = (targetPos - part.Position).unit
part.Velocity = directionToTarget * attractionStrength
end
end
end
end)
-- Button functionality
ToggleButton.MouseButton1Click:Connect(function()
ringPartsEnabled = not ringPartsEnabled
ToggleButton.Text = ringPartsEnabled and "Tornado On" or "Tornado Off"
ToggleButton.BackgroundColor3 = ringPartsEnabled and Color3.fromRGB(50, 205, 50) or Color3.fromRGB(160, 82, 45)
playSound("12221967")
end)
DecreaseRadius.MouseButton1Click:Connect(function()
radius = math.max(0, radius - 10)
RadiusDisplay.Text = "Radius: " .. radius
playSound("12221967")
end)
IncreaseRadius.MouseButton1Click:Connect(function()
radius = math.min(100000, radius + 10)
RadiusDisplay.Text = "Radius: " .. radius
playSound("12221967")
end)
RadiusTextBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
local newRadius = tonumber(RadiusTextBox.Text)
if newRadius then
radius = math.clamp(newRadius, 0, 10000)
RadiusDisplay.Text = "Radius: " .. radius
RadiusTextBox.Text = ""
playSound("12221967")
else
RadiusTextBox.Text = ""
end
end
end)
-- Safe notification (no chat spam)
StarterGui:SetCore("SendNotification", {
Title = "Ring Parts Loaded!",
Text = "Safe version - No chat spam!",
Duration = 5
})
print("Super Ring Parts V6 - Safe Version Loaded Successfully!")



N0tgui's ring system cooler
@content_deleted12363 like i said i didnt make this i just removed the key system
@castlecrasher0420 ikik i wasnt tryna be rude or anything