Super Ring Parts BLAMER OPEN SOURCE
Key Required

Super Ring Parts BLAMER OPEN SOURCE

The Chosen OneThaiExploiterThaiExploiter 3.7K views 2.1K executesUpdated Apr 17, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•385 lines (11387 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--// =========================
--// SERVICES
--// =========================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local SoundService = game:GetService("SoundService")
local StarterGui = game:GetService("StarterGui")
local UserInputService = game:GetService("UserInputService")

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

--// =========================
--// CLEAR OLD UI
--// =========================
if PlayerGui:FindFirstChild("SuperRingPartsGUI") then
    PlayerGui.SuperRingPartsGUI:Destroy()
end

--// =========================
--// NETWORK
--// =========================
if not getgenv().Network then
    getgenv().Network = {
        BaseParts = {},
        Velocity = Vector3.new(14.4626,14.4626,14.4626)
    }

    Network.RetainPart = function(p)
        if p:IsA("BasePart") and p:IsDescendantOf(workspace) then
            table.insert(Network.BaseParts,p)
            p.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
            p.CanCollide = false
        end
    end

    RunService.Heartbeat:Connect(function()
        sethiddenproperty(LocalPlayer,"SimulationRadius",math.huge)
        for _,p in ipairs(Network.BaseParts) do
            if p:IsDescendantOf(workspace) then
                p.Velocity = Network.Velocity
            end
        end
    end)
end

--// =========================
--// SOUND
--// =========================
local function play(id)
    local s = Instance.new("Sound",SoundService)
    s.SoundId = "rbxassetid://"..id
    s:Play()
    s.Ended:Once(function() s:Destroy() end)
end

play("2865227271")

--// =========================
--// STATE
--// =========================
local PlayerState = {}
local OrbitRadius = {}
local parts = {}

--// =========================
--// PART COLLECTION
--// =========================
local function valid(p)
    return p:IsA("BasePart")
        and not p.Anchored
        and not p:IsDescendantOf(LocalPlayer.Character)
end

for _,d in ipairs(workspace:GetDescendants()) do
    if valid(d) then table.insert(parts,d) end
end

workspace.DescendantAdded:Connect(function(p)
    if valid(p) then table.insert(parts,p) end
end)

--// =========================
--// GUI ROOT
--// =========================
local gui = Instance.new("ScreenGui", PlayerGui)
gui.Name = "SuperRingPartsGUI"
gui.ResetOnSpawn = false

local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0,260,0,360)
main.Position = UDim2.new(0.05,0,0.5,-180)
main.BackgroundColor3 = Color3.fromRGB(0,102,51)
main.BorderSizePixel = 0
Instance.new("UICorner", main).CornerRadius = UDim.new(0,20)

--// =========================
--// TITLE
--// =========================
local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1,0,0,40)
title.Text = "Super Ring Parts v8.3"
title.Font = Enum.Font.Fondamento
title.TextSize = 22
title.TextColor3 = Color3.new(1,1,1)
title.BackgroundColor3 = Color3.fromRGB(0,153,76)
Instance.new("UICorner", title)

--// =========================
--// MINIMIZE
--// =========================
local minimize = Instance.new("TextButton", title)
minimize.Size = UDim2.new(0,30,0,30)
minimize.Position = UDim2.new(1,-35,0.5,-15)
minimize.Text = "-"
minimize.Font = Enum.Font.Fondamento
minimize.TextSize = 22
minimize.BackgroundColor3 = Color3.fromRGB(0,120,60)
Instance.new("UICorner", minimize)

local collapsed = Instance.new("TextButton", gui)
collapsed.Size = UDim2.new(0,40,0,40)
collapsed.Position = UDim2.new(0,10,1,-50)
collapsed.Text = "-"
collapsed.Font = Enum.Font.Fondamento
collapsed.TextSize = 26
collapsed.BackgroundColor3 = Color3.fromRGB(0,102,51)
collapsed.Visible = false
Instance.new("UICorner", collapsed)

local lastPos = main.Position

minimize.MouseButton1Click:Connect(function()
    lastPos = main.Position
    main.Visible = false
    collapsed.Visible = true
end)

collapsed.MouseButton1Click:Connect(function()
    main.Position = lastPos
    main.Visible = true
    collapsed.Visible = false
end)

--// =========================
--// DRAG
--// =========================
do
    local dragging, dragStart, startPos

    title.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = main.Position
        end
    end)

    title.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            local delta = input.Position - dragStart
            main.Position = UDim2.new(
                startPos.X.Scale,
                startPos.X.Offset + delta.X,
                startPos.Y.Scale,
                startPos.Y.Offset + delta.Y
            )
        end
    end)
end

--// =========================
--// SEARCH BAR
--// =========================
local search = Instance.new("TextBox", main)
search.Size = UDim2.new(0.9,0,0,28)
search.Position = UDim2.new(0.05,0,0.13,0)
search.PlaceholderText = "Search player..."
search.Text = ""
search.Font = Enum.Font.Fondamento
search.TextSize = 14
search.BackgroundColor3 = Color3.fromRGB(90,90,90)
search.TextColor3 = Color3.new(1,1,1)
Instance.new("UICorner", search)

--// =========================
--// PLAYER LIST
--// =========================
local list = Instance.new("ScrollingFrame", main)
list.Position = UDim2.new(0.05,0,0.22,0)
list.Size = UDim2.new(0.9,0,0,170)
list.ScrollBarImageTransparency = 0.3

local layout = Instance.new("UIListLayout", list)
layout.Padding = UDim.new(0,6)

local buttons = {}

--// =========================
--// CONFIRM GUI
--// =========================
local confirm = Instance.new("Frame", gui)
confirm.Size = UDim2.new(0,260,0,140)
confirm.Position = UDim2.new(0.5,-130,0.5,-70)
confirm.BackgroundColor3 = Color3.fromRGB(40,40,40)
confirm.Visible = false
Instance.new("UICorner", confirm)

local cText = Instance.new("TextLabel", confirm)
cText.Size = UDim2.new(1,0,0,70)
cText.BackgroundTransparency = 1
cText.TextWrapped = true
cText.Font = Enum.Font.Fondamento
cText.TextSize = 18
cText.TextColor3 = Color3.new(1,1,1)

local yes = Instance.new("TextButton", confirm)
yes.Size = UDim2.new(0.4,0,0,30)
yes.Position = UDim2.new(0.05,0,0.6,0)
yes.Text = "YES"
yes.BackgroundColor3 = Color3.fromRGB(0,200,0)
Instance.new("UICorner", yes)

local no = Instance.new("TextButton", confirm)
no.Size = UDim2.new(0.4,0,0,30)
no.Position = UDim2.new(0.55,0,0.6,0)
no.Text = "NO"
no.BackgroundColor3 = Color3.fromRGB(200,0,0)
Instance.new("UICorner", no)

--// =========================
--// RADIUS UI
--// =========================
local currentRadius = 50

local dec = Instance.new("TextButton", main)
dec.Size = UDim2.new(0.2,0,0,30)
dec.Position = UDim2.new(0.05,0,0.75,0)
dec.Text = "<"
dec.Font = Enum.Font.Fondamento
dec.TextSize = 18
dec.BackgroundColor3 = Color3.fromRGB(255,255,0)
Instance.new("UICorner", dec)

local inc = Instance.new("TextButton", main)
inc.Size = UDim2.new(0.2,0,0,30)
inc.Position = UDim2.new(0.75,0,0.75,0)
inc.Text = ">"
inc.Font = Enum.Font.Fondamento
inc.TextSize = 18
inc.BackgroundColor3 = Color3.fromRGB(255,255,0)
Instance.new("UICorner", inc)

local radiusLabel = Instance.new("TextLabel", main)
radiusLabel.Size = UDim2.new(0.4,0,0,30)
radiusLabel.Position = UDim2.new(0.3,0,0.75,0)
radiusLabel.Text = "Radius: 50"
radiusLabel.Font = Enum.Font.Fondamento
radiusLabel.TextSize = 15
radiusLabel.BackgroundColor3 = Color3.fromRGB(255,255,0)
Instance.new("UICorner", radiusLabel)

inc.MouseButton1Click:Connect(function()
    currentRadius += 5
    radiusLabel.Text = "Radius: "..currentRadius
end)

dec.MouseButton1Click:Connect(function()
    currentRadius = math.max(5, currentRadius - 5)
    radiusLabel.Text = "Radius: "..currentRadius
end)

--// =========================
--// PLAYER LIST LOGIC
--// =========================
local function rebuild(filter)
    for _,b in pairs(buttons) do b:Destroy() end
    table.clear(buttons)

    for _,plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            local name = (plr.DisplayName.." "..plr.Name):lower()
            if filter and not name:find(filter) then continue end

            PlayerState[plr] = PlayerState[plr] or "Idle"

            local btn = Instance.new("TextButton", list)
            btn.Size = UDim2.new(1,0,0,32)
            btn.Text = plr.DisplayName.." ("..plr.Name..")"
            btn.Font = Enum.Font.Fondamento
            btn.TextSize = 14
            Instance.new("UICorner", btn)

            local function update()
                btn.BackgroundColor3 =
                    PlayerState[plr] == "Orbiting"
                    and Color3.fromRGB(200,0,0)
                    or Color3.fromRGB(70,70,70)
            end

            update()

            btn.MouseButton1Click:Connect(function()
                if PlayerState[plr] == "Orbiting" then
                    cText.Text = "Deorbit "..plr.DisplayName.."?"
                    confirm.Visible = true

                    yes.MouseButton1Click:Once(function()
                        PlayerState[plr] = "Idle"
                        confirm.Visible = false
                        update()
                    end)

                    no.MouseButton1Click:Once(function()
                        confirm.Visible = false
                    end)
                else
                    PlayerState[plr] = "Orbiting"
                    OrbitRadius[plr] = currentRadius
                    update()
                end
            end)

            table.insert(buttons, btn)
        end
    end

    list.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 10)
end

search:GetPropertyChangedSignal("Text"):Connect(function()
    rebuild(search.Text:lower())
end)

Players.PlayerAdded:Connect(function()
    rebuild(search.Text:lower())
end)

Players.PlayerRemoving:Connect(function(plr)
    PlayerState[plr] = nil
    OrbitRadius[plr] = nil
    rebuild(search.Text:lower())
end)

rebuild()

--// =========================
--// ORBIT LOOP
--// =========================
RunService.Heartbeat:Connect(function()
    for plr,state in pairs(PlayerState) do
        if state == "Orbiting" then
            local hrp = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                local center = hrp.Position
                local radius = OrbitRadius[plr] or currentRadius
                for _,part in ipairs(parts) do
                    local pos = part.Position
                    local angle = math.atan2(pos.Z-center.Z,pos.X-center.X) + 0.02
                    local target = Vector3.new(
                        center.X + math.cos(angle)*radius,
                        center.Y,
                        center.Z + math.sin(angle)*radius
                    )
                    part.Velocity = (target - pos).Unit * 1200
                end
            end
        end
    end
end)

StarterGui:SetCore("SendNotification",{
    Title="Super Ring Parts v8.3",
    Text="Upgrade it too! showcase if you can",
    Duration=5
})

Features & Information

This is "Partially" Universal, but its best with "The Chosen One" What does this Script do exactly? First off, unlike the original Super Ring Parts, There is NO chat. Secondly This one is Open source Code, And thirdly. unlike other Super rings where it just orbit yourself, now the part can orbit other people that you chose to, Which means...YOU CAN BLAME THEM FOR CHEATING. even if they weren't cheating, Pretty Mischievous Script And This Script is also tested btw: XL server: works (people mad too) Normal Server: Works (people confuse and mad lol) OG server: Untested (Sorry)
#The Chosen One#TCO#Nuker#Super Ring Parts#The Chosen

Community Comments (2)

Niejen11Niejen11Jul 12, 2026

I gotta be honest I will start learning lua I don't wanna use ai anymore but thanks for the support if I learned lua I promise I will pay your kindness

Replying to @Niejen11
ThaiExploiterThaiExploiterJul 15, 2026(edited)

@Niejen11 No problem! thx

More Scripts for The Chosen One