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!