Reverse Rings parts
Key RequiredUniversal

Reverse Rings parts

Universal ScriptCryptoCodeSupremeCryptoCodeSupreme 3.9K views 1.6K executesUpdated Dec 18, 2025
Unrated
00
Lua Script•324 lines (11698 chars)
--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]]

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local SoundService = game:GetService("SoundService")
local StarterGui = game:GetService("StarterGui")
local TextChatService = game:GetService("TextChatService")

local LocalPlayer = Players.LocalPlayer
local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

-- Folder e Part para controle local
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

-- Network global
if not getgenv().Network then
    getgenv().Network = {
        BaseParts = {},
        Velocity = Vector3.new(1000, 1000, 1000) -- aumento de força global
    }
end

getgenv().Network.RetainPart = function(Part)
    if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(Workspace) then
        table.insert(getgenv().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(getgenv().Network.BaseParts) do
            if Part:IsDescendantOf(Workspace) then
                Part.Velocity = getgenv().Network.Velocity
            end
        end
    end)
end

EnablePartControl()

-- Forçar parts
local function ForcePart(v)
    if v:IsA("Part") and not v.Anchored and not v.Parent:FindFirstChild("Humanoid") and not v.Parent:FindFirstChild("Head") and v.Name ~= "Handle" then
        for _, x in next, v:GetChildren() do
            if x:IsA("BodyAngularVelocity") or x:IsA("BodyForce") or x:IsA("BodyGyro") or x:IsA("BodyPosition") or x:IsA("BodyThrust") or x:IsA("BodyVelocity") or x:IsA("RocketPropulsion") then
                x:Destroy()
            end
        end
        if v:FindFirstChild("Attachment") then v.Attachment:Destroy() end
        if v:FindFirstChild("AlignPosition") then v.AlignPosition:Destroy() end
        if v:FindFirstChild("Torque") then v.Torque:Destroy() end

        v.CanCollide = false
        local Torque = Instance.new("Torque", v)
        Torque.Torque = Vector3.new(100000, 100000, 100000)
        local AlignPosition = Instance.new("AlignPosition", v)
        local Attachment2 = Instance.new("Attachment", v)
        Torque.Attachment0 = Attachment2
        AlignPosition.MaxForce = 9999999999999999
        AlignPosition.MaxVelocity = math.huge
        AlignPosition.Responsiveness = 200
        AlignPosition.Attachment0 = Attachment2
        AlignPosition.Attachment1 = Attachment1
    end
end

-- Sound
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
playSound("2865227271")

-- GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ReverseRingsPartsGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 220, 0, 200)
MainFrame.Position = UDim2.new(0.5, -110, 0.5, -100)
MainFrame.BackgroundColor3 = Color3.fromRGB(0, 102, 204)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui

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 = "Reverse Rings Parts"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.BackgroundColor3 = Color3.fromRGB(0, 51, 102)
Title.Font = Enum.Font.Fondamento
Title.TextSize = 22
Title.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 20)
TitleCorner.Parent = Title

-- Toggle Ring Parts
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 = "Reverse Rings Off"
ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 0, 255)
ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.Font = Enum.Font.Fondamento
ToggleButton.TextSize = 18
ToggleButton.Parent = MainFrame

local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(0, 10)
ToggleCorner.Parent = ToggleButton

-- Minimize e Close
local MinimizeButton = Instance.new("TextButton")
MinimizeButton.Size = UDim2.new(0, 30, 0, 30)
MinimizeButton.Position = UDim2.new(1, -65, 0, 5)
MinimizeButton.Text = "-"
MinimizeButton.BackgroundColor3 = Color3.fromRGB(0, 51, 102)
MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeButton.Font = Enum.Font.Fondamento
MinimizeButton.TextSize = 18
MinimizeButton.Parent = MainFrame

local MinimizeCorner = Instance.new("UICorner")
MinimizeCorner.CornerRadius = UDim.new(0, 15)
MinimizeCorner.Parent = MinimizeButton

local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 30, 0, 30)
CloseButton.Position = UDim2.new(1, -30, 0, 5)
CloseButton.Text = "X"
CloseButton.BackgroundColor3 = Color3.fromRGB(255, 51, 51)
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Font = Enum.Font.Fondamento
CloseButton.TextSize = 18
CloseButton.Parent = MainFrame

local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 15)
CloseCorner.Parent = CloseButton

-- Minimize funcionalidade
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
        for _, btn in pairs(RadiusButtons or {}) do btn.Visible = false end
        RadiusDisplay.Visible = false
        Watermark.Visible = false
    else
        MainFrame:TweenSize(UDim2.new(0, 220, 0, 200), "Out", "Quad", 0.3, true)
        MinimizeButton.Text = "-"
        ToggleButton.Visible = true
        for _, btn in pairs(RadiusButtons or {}) do btn.Visible = true end
        RadiusDisplay.Visible = true
        Watermark.Visible = true
    end
    playSound("12221967")
end)

-- Close funcionalidade
CloseButton.MouseButton1Click:Connect(function()
    ScreenGui:Destroy()
end)

-- Radius display
local RadiusDisplay = Instance.new("TextLabel")
RadiusDisplay.Size = UDim2.new(0.6, 0, 0, 30)
RadiusDisplay.Position = UDim2.new(0.2, 0, 0.6, 0)
RadiusDisplay.Text = "Area: 99999999999"
RadiusDisplay.BackgroundColor3 = Color3.fromRGB(0, 51, 102)
RadiusDisplay.TextColor3 = Color3.fromRGB(255, 255, 255)
RadiusDisplay.Font = Enum.Font.Fondamento
RadiusDisplay.TextSize = 16
RadiusDisplay.Parent = MainFrame

local RadiusCorner = Instance.new("UICorner")
RadiusCorner.CornerRadius = UDim.new(0, 10)
RadiusCorner.Parent = RadiusDisplay

-- Watermark
local Watermark = Instance.new("TextLabel")
Watermark.Size = UDim2.new(1, 0, 0, 20)
Watermark.Position = UDim2.new(0, 0, 1, -20)
Watermark.Text = "By CryptoCodeSupreme"
Watermark.TextColor3 = Color3.fromRGB(255, 255, 255)
Watermark.BackgroundTransparency = 1
Watermark.Font = Enum.Font.Fondamento
Watermark.TextSize = 14
Watermark.Parent = MainFrame

-- Botões de alcance fixos
local radiusOptions = {999999999, 100, 50, 25, 10, 1}
local RadiusButtons = {}

local function createRadiusButton(value,posX)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0.12, 0, 0, 30)
    btn.Position = UDim2.new(posX,0,0.75,0)
    btn.Text = tostring(value)
    btn.BackgroundColor3 = Color3.fromRGB(0,0,255)
    btn.TextColor3 = Color3.fromRGB(255,255,255)
    btn.Font = Enum.Font.Fondamento
    btn.TextSize = 14
    btn.Parent = MainFrame
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0,5)
    corner.Parent = btn
    btn.MouseButton1Click:Connect(function()
        radius = value
        RadiusDisplay.Text = "Area: "..value
        playSound("12221967")
    end)
    table.insert(RadiusButtons,btn)
end

for i,value in ipairs(radiusOptions) do
    local posX = 0.05 + (i-1)*0.16
    createRadiusButton(value,posX)
end

-- Parts logic (Reverse / repulsão)
local ringPartsEnabled = false
local parts = {}

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 function addPart(part)
    if RetainPart(part) and not table.find(parts,part) then
        table.insert(parts,part)
    end
end

local function removePart(part)
    local index = table.find(parts,part)
    if index then table.remove(parts,index) end
end

for _,p in pairs(Workspace:GetDescendants()) do addPart(p) end
Workspace.DescendantAdded:Connect(addPart)
Workspace.DescendantRemoving:Connect(removePart)

-- RunService Heartbeat modificado (só desanchored)
RunService.Heartbeat:Connect(function()
    if not ringPartsEnabled then return end
    local humanoidRootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if humanoidRootPart then
        local center = humanoidRootPart.Position
        for _, part in pairs(parts) do
            if part.Parent and not part.Anchored then  -- só desanchored
                local pos = part.Position
                local distance = (Vector3.new(pos.X, center.Y, pos.Z) - center).Magnitude
                local angle = math.atan2(pos.Z - center.Z, pos.X - center.X)
                local newAngle = angle + math.rad(5)

                local radiusValue = math.max(radius or 999999999, distance)
                local targetPos = Vector3.new(
                    center.X + math.cos(newAngle) * radiusValue,
                    center.Y + (100 * math.abs(math.sin((pos.Y - center.Y)/100))),
                    center.Z + math.sin(newAngle) * radiusValue
                )

                local direction = (pos - targetPos).Unit
                local pushStrength = 5000
                part.Velocity = direction * pushStrength * (distance/10)
            end
        end
    end
end)

ToggleButton.MouseButton1Click:Connect(function()
    ringPartsEnabled = not ringPartsEnabled
    ToggleButton.Text = ringPartsEnabled and "Reverse Rings On" or "Reverse Rings Off"
    ToggleButton.BackgroundColor3 = ringPartsEnabled and Color3.fromRGB(50,205,50) or Color3.fromRGB(0,0,255)
    playSound("12221967")
end)

-- Notificação
StarterGui:SetCore("SendNotification",{ Title="Reverse Rings Parts", Text="Enjoy", Duration=5 })

-- Chat
local function SendChatMessage(message)
    if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
        local textChannel = TextChatService.TextChannels.RBXGeneral
        textChannel:SendAsync(message)
    else
        game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(message,"All")
    end
end

SendChatMessage("Reverse Rings Parts By CryptoCodeSupreme")

Features & Information

The reverse rings and the modified version of the super rings, instead of pulling the parts, push the parts.
#super rings parts#Super rings#Op#super ring#Natural disaster

Community Comments (2)

STING3RSTING3RDec 18, 2025

Why put watermark when gpt made it lmfaooo also holy ui corner

ohmydaysohmydaysDec 18, 2025

HOLY GUI my eyes are burning

More Scripts for Universal Scripts