Bring All Spirits
Key Required

Bring All Spirits

Anime Monster Collectorfrenzycorefrenzycore 2.6K views 324 executesUpdated Mar 27, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•105 lines (3015 chars)
local player = game.Players.LocalPlayer
local runService = game:GetService("RunService")

local gui = Instance.new("ScreenGui", player.PlayerGui)
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 280, 0, 130)
frame.Position = UDim2.new(0.5, -140, 0.6, 0)
frame.BackgroundColor3 = Color3.fromRGB(18, 18, 18)
frame.Active = true
frame.Draggable = true
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 18)

local stroke = Instance.new("UIStroke", frame)
stroke.Thickness = 2

local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1, 0, 0, 35)
title.BackgroundTransparency = 1
title.Text = "FIER X VX HUB"
title.TextScaled = true

local button = Instance.new("TextButton", frame)
button.Size = UDim2.new(1, -20, 0, 50)
button.Position = UDim2.new(0, 10, 0, 55)
button.Text = "Spirit Control"
button.TextScaled = true
Instance.new("UICorner", button)

task.spawn(function()
    local hue = 0
    while true do
        hue = hue + 0.01
        if hue > 1 then hue = 0 end
        local color = Color3.fromHSV(hue, 1, 1)
        title.TextColor3 = color
        stroke.Color = color
        button.BackgroundColor3 = color:Lerp(Color3.new(), 0.6)
        task.wait(0.05)
    end
end)

local active = false
local spirits = {}

local function resetSpirits()
    for _, part in pairs(spirits) do
        if part and part.Parent then
            part.CanCollide = true
            part.Anchored = false
        end
    end
    spirits = {}
end

button.MouseButton1Click:Connect(function()
    active = not active
    button.Text = active and "ABSORBING..." or "Spirit Control"
    if not active then
        resetSpirits()
    end
end)

task.spawn(function()
    while true do
        if active then
            local folder = workspace:FindFirstChild("ActiveSpirits")
            local newList = {}
            if folder then
                for _, child in pairs(folder:GetChildren()) do
                    local part = child:IsA("BasePart") and child or child:FindFirstChildWhichIsA("BasePart")
                    if part then
                        part.CanCollide = false
                        part.Anchored = true
                        table.insert(newList, part)
                    end
                end
            end
            spirits = newList
        end
        task.wait(0.4)
    end
end)

runService.Heartbeat:Connect(function()
    if not active then return end

    local character = player.Character
    local rootPart = character and character:FindFirstChild("HumanoidRootPart")
    if not rootPart then return end

    local radius = 6
    local center = rootPart.CFrame

    for i, spirit in pairs(spirits) do
        if spirit and spirit.Parent then
            local angle = i * 0.5
            local x = math.sin(angle) * radius
            local z = math.cos(angle) * radius
            local targetCFrame = center * CFrame.new(x, 0, z)
            spirit.CFrame = spirit.CFrame:Lerp(targetCFrame, 0.35)
        end
    end
end)

-- Hello, World!

Features & Information

Let the spirit circle around your character in a smooth loop (with a radius of 6 studs). This will make it easier for you to catch the spirit and help you complete the mission faster!
#anime monster collector#spirit#orbit#absorb#hub

Community Comments (2)

nexxinynexxinyMar 31, 2026

fake script.

Replying to @nexxiny
frenzycorefrenzycoreApr 2, 2026(edited)

@nexxiny no, it's no fake, it's real. all u need to do is join the game then enter the portal and run the script, then activate it by clicking on the panel. u can see how to use it in this video. btw he's the original creator, but i've perfected it ❤ sc: https://youtu.be/-5sBgt50Hlg?si=ajXV3n5iZyGNYXDD ~ If u change ur mind, feel free to take back ur dislike! :D

More Scripts for Anime Monster Collector