Bring Parts Universal Script

Script
local Gui = Instance.new("ScreenGui")
local Main = Instance.new("Frame")
local Box = Instance.new("TextBox")
local UITextSizeConstraint = Instance.new("UITextSizeConstraint")
local Label = Instance.new("TextLabel")
local UITextSizeConstraint_2 = Instance.new("UITextSizeConstraint")
local Button = Instance.new("TextButton")
local UITextSizeConstraint_3 = Instance.new("UITextSizeConstraint")

--Properties:

Gui.Name = "Gui"
Gui.Parent = gethui()
Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Main.Name = "Main"
Main.Parent = Gui
Main.BackgroundColor3 = Color3.fromRGB(75, 75, 75)
Main.BorderColor3 = Color3.fromRGB(0, 0, 0)
Main.BorderSizePixel = 0
Main.Position = UDim2.new(0.335954279, 0, 0.542361975, 0)
Main.Size = UDim2.new(0.240350261, 0, 0.166880623, 0)
Main.Active = true
Main.Draggable = true

Box.Name = "Box"
Box.Parent = Main
Box.BackgroundColor3 = Color3.fromRGB(95, 95, 95)
Box.BorderColor3 = Color3.fromRGB(0, 0, 0)
Box.BorderSizePixel = 0
Box.Position = UDim2.new(0.0980926454, 0, 0.218712583, 0)
Box.Size = UDim2.new(0.801089942, 0, 0.364963502, 0)
Box.FontFace = Font.new("rbxasset://fonts/families/SourceSansSemibold.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
Box.PlaceholderText = "Player here"
Box.Text = ""
Box.TextColor3 = Color3.fromRGB(255, 255, 255)
Box.TextScaled = true
Box.TextSize = 31.000
Box.TextWrapped = true

UITextSizeConstraint.Parent = Box
UITextSizeConstraint.MaxTextSize = 31

Label.Name = "Label"
Label.Parent = Main
Label.BackgroundColor3 = Color3.fromRGB(95, 95, 95)
Label.BorderColor3 = Color3.fromRGB(0, 0, 0)
Label.BorderSizePixel = 0
Label.Size = UDim2.new(1, 0, 0.160583943, 0)
Label.FontFace = Font.new("rbxasset://fonts/families/Nunito.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
Label.Text = "Bring Parts | t.me/arceusxscripts"
Label.TextColor3 = Color3.fromRGB(255, 255, 255)
Label.TextScaled = true
Label.TextSize = 14.000
Label.TextWrapped = true

UITextSizeConstraint_2.Parent = Label
UITextSizeConstraint_2.MaxTextSize = 21

Button.Name = "Button"
Button.Parent = Main
Button.BackgroundColor3 = Color3.fromRGB(95, 95, 95)
Button.BorderColor3 = Color3.fromRGB(0, 0, 0)
Button.BorderSizePixel = 0
Button.Position = UDim2.new(0.183284417, 0, 0.656760991, 0)
Button.Size = UDim2.new(0.629427791, 0, 0.277372271, 0)
Button.Font = Enum.Font.Nunito
Button.Text = "Bring | Off"
Button.TextColor3 = Color3.fromRGB(255, 255, 255)
Button.TextScaled = true
Button.TextSize = 28.000
Button.TextWrapped = true

UITextSizeConstraint_3.Parent = Button
UITextSizeConstraint_3.MaxTextSize = 28

-- Scripts:

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local StarterGui = game:GetService("StarterGui")

mainStatus = true
UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
	if input.KeyCode == Enum.KeyCode.RightControl and not gameProcessedEvent then
		mainStatus = not mainStatus
		Main.Visible = mainStatus
	end
end)

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 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

local function ForcePart(v, targetPosition)
	if v:IsA("BasePart") and not v.Anchored and not v.Parent:FindFirstChildOfClass("Humanoid") and not v.Parent:FindFirstChild("Head") and v.Name ~= "Handle" then
		-- Check distance to target position (2000 studs max)
		local distance = (v.Position - targetPosition).Magnitude
		if distance > 2000 then return end -- Skip if too far
		
		for _, x in ipairs(v:GetChildren()) do
			if x:IsA("BodyMover") or x:IsA("RocketPropulsion") then
				x:Destroy()
			end
		end
		if v:FindFirstChild("Attachment") then
			v:FindFirstChild("Attachment"):Destroy()
		end
		if v:FindFirstChild("AlignPosition") then
			v:FindFirstChild("AlignPosition"):Destroy()
		end
		if v:FindFirstChild("Torque") then
			v:FindFirstChild("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 = math.huge
		AlignPosition.MaxVelocity = math.huge
		AlignPosition.Responsiveness = 200
		AlignPosition.Attachment0 = Attachment2
		AlignPosition.Attachment1 = Attachment1
	end
end

local blackHoleActive = false
local DescendantAddedConnection
local player = nil
local invisibilitySeat = nil
local originalCameraSubject = nil

local function setCharacterTransparency(character, transparency)
	for _, descendant in character:GetDescendants() do
		if descendant:IsA("BasePart") then
			descendant.Transparency = transparency
		elseif descendant:IsA("Decal") then
			descendant.Transparency = transparency
		end
	end
end

local function spectatePlayer(targetPlayer)
	if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
		-- Store original camera subject
		if not originalCameraSubject then
			originalCameraSubject = workspace.CurrentCamera.CameraSubject
		end
		
		-- Spectate the player
		workspace.CurrentCamera.CameraSubject = targetPlayer.Character.HumanoidRootPart
	end
end

local function restoreCamera()
	if originalCameraSubject then
		workspace.CurrentCamera.CameraSubject = originalCameraSubject
		originalCameraSubject = nil
	end
end

local function makeInvisible()
	if not LocalPlayer.Character then return end
	
	local humanoidRootPart = LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
	if not humanoidRootPart then return end

	local savedPosition = humanoidRootPart.CFrame

	-- Move to invisibility position
	LocalPlayer.Character:MoveTo(Vector3.new(0, -5000, 0))
	task.wait(0.15)

	-- Create invisible seat
	invisibilitySeat = Instance.new("Seat")
	invisibilitySeat.Name = "invischair"
	invisibilitySeat.Anchored = true
	invisibilitySeat.CanCollide = false
	invisibilitySeat.Transparency = 1
	invisibilitySeat.Position = Vector3.new(0, -5000, 0)
	invisibilitySeat.Parent = workspace

	-- Weld seat to character
	local torso = LocalPlayer.Character:FindFirstChild("Torso") or LocalPlayer.Character:FindFirstChild("UpperTorso")
	if torso then
		local weld = Instance.new("Weld")
		weld.Part0 = invisibilitySeat
		weld.Part1 = torso
		weld.Parent = invisibilitySeat
	end

	task.wait()
	invisibilitySeat.CFrame = savedPosition

	-- Set character transparency to 0.5 for you, but make it invisible to others
	setCharacterTransparency(LocalPlayer.Character, 0.5)
	
	-- Also make the invisibility seat invisible to others
	invisibilitySeat.Transparency = 1
end

local function teleportToPlayer()
	if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
		local targetPosition = player.Character.HumanoidRootPart.Position
		if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
			LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(targetPosition)
		end
	end
end

local function toggleBlackHole()
	blackHoleActive = not blackHoleActive
	if blackHoleActive then
		Button.Text = "Bring Parts | On"
		
		-- Teleport to player and make invisible
		teleportToPlayer()
		makeInvisible()
		
		-- Auto spectate the selected player
		spectatePlayer(player)
		
		-- Get target position for distance checking
		local targetPosition = player.Character.HumanoidRootPart.Position
		
		-- Only process parts within 2000 studs
		for _, v in ipairs(Workspace:GetDescendants()) do
			if v:IsA("BasePart") then
				local distance = (v.Position - targetPosition).Magnitude
				if distance <= 2000 then
					ForcePart(v, targetPosition)
				end
			end
		end

		DescendantAddedConnection = Workspace.DescendantAdded:Connect(function(v)
			if blackHoleActive and v:IsA("BasePart") then
				local distance = (v.Position - targetPosition).Magnitude
				if distance <= 2000 then
					ForcePart(v, targetPosition)
				end
			end
		end)

		-- Use Heartbeat instead of RenderStepped for better performance
		spawn(function()
			local connection
			connection = RunService.Heartbeat:Connect(function()
				if blackHoleActive and player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
					Attachment1.WorldCFrame = player.Character.HumanoidRootPart.CFrame
				elseif not blackHoleActive then
					connection:Disconnect()
				end
			end)
		end)
	else
		Button.Text = "Bring Parts | Off"
		if DescendantAddedConnection then
			DescendantAddedConnection:Disconnect()
		end
		
		-- Remove invisible chair if exists
		if invisibilitySeat then
			invisibilitySeat:Destroy()
			invisibilitySeat = nil
		end
		
		-- Restore character visibility
		if LocalPlayer.Character then
			setCharacterTransparency(LocalPlayer.Character, 0)
		end
		
		-- Restore camera to original view
		restoreCamera()
	end
end

local function getPlayer(name)
	local lowerName = string.lower(name)
	for _, p in pairs(Players:GetPlayers()) do
		local lowerPlayer = string.lower(p.Name)
		if string.find(lowerPlayer, lowerName) then
			return p
		elseif string.find(string.lower(p.DisplayName), lowerName) then
			return p
		end
	end
end

local function VDOYZQL_fake_script() -- Box.Script 
	local script = Instance.new('Script', Box)

	script.Parent.FocusLost:Connect(function(enterPressed)
		if enterPressed then
			player = getPlayer(Box.Text)
			if player then
				Box.Text = player.Name
				print("Player found:", player.Name)
			else
				print("Player not found")
			end
		end
	end)
end
coroutine.wrap(VDOYZQL_fake_script)()
local function JUBNQKI_fake_script() -- Button.Script 
	local script = Instance.new('Script', Button)

	script.Parent.MouseButton1Click:Connect(function()
		if player then
			toggleBlackHole()
		else
			print("Player is not selected")
		end
	end)
end
coroutine.wrap(JUBNQKI_fake_script)()

Comments

Available Games