--// client bring
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local localPlayer = Players.LocalPlayer
local bringActive = false
local connection = nil
local playerAddedConn = nil
local processedPlayers = {}
local toolModeEnabled = false
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = game:GetService("CoreGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 200)
frame.Position = UDim2.new(0.5, -100, 0.5, -100)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.BackgroundTransparency = 0.3
frame.Parent = screenGui
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = frame
local dragDetector = Instance.new("UIDragDetector", frame)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.Position = UDim2.new(0, 0, 0, 5)
title.BackgroundTransparency = 1
title.Text = "Client Bring"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.Parent = frame
local inputBox = Instance.new("TextBox")
inputBox.Size = UDim2.new(0.9, 0, 0, 30)
inputBox.Position = UDim2.new(0.05, 0, 0, 40)
inputBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
inputBox.Text = ""
inputBox.PlaceholderText = "nickname, all, nonfriends"
inputBox.TextColor3 = Color3.new(1, 1, 1)
inputBox.ClearTextOnFocus = false
inputBox.Parent = frame
local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 6)
inputCorner.Parent = inputBox
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0.9, 0, 0, 35)
toggleBtn.Position = UDim2.new(0.05, 0, 0, 80)
toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggleBtn.Text = "Bring Players: OFF"
toggleBtn.TextColor3 = Color3.new(1, 1, 1)
toggleBtn.Parent = frame
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 6)
btnCorner.Parent = toggleBtn
local toolModeBtn = Instance.new("TextButton")
toolModeBtn.Size = UDim2.new(0.9, 0, 0, 35)
toolModeBtn.Position = UDim2.new(0.05, 0, 0, 125)
toolModeBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toolModeBtn.Text = "Tool Mode: OFF"
toolModeBtn.TextColor3 = Color3.new(1, 1, 1)
toolModeBtn.Parent = frame
local toolModeCorner = Instance.new("UICorner")
toolModeCorner.CornerRadius = UDim.new(0, 6)
toolModeCorner.Parent = toolModeBtn
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0, 20)
statusLabel.Position = UDim2.new(0, 0, 0, 170)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Status: Waiting..."
statusLabel.TextColor3 = Color3.new(1, 1, 1)
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 14
statusLabel.Parent = frame
local function getRoot(character)
return character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso")
end
local function disableCollision(character)
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
part.Massless = true
end
end
end
local function getPlayers(input)
local players = {}
input = string.lower(input)
if input == "all" then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer then
table.insert(players, player)
end
end
elseif input == "nonfriends" then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer then
local success, isFriend = pcall(function()
return player:IsFriendsWith(localPlayer.UserId)
end)
if not (success and isFriend) then
table.insert(players, player)
end
end
end
else
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer and (string.find(string.lower(player.Name), input) or
(player.DisplayName and string.find(string.lower(player.DisplayName), input))) then
table.insert(players, player)
end
end
end
return players
end
local function handleNewPlayer(player)
if not bringActive then return end
local input = string.lower(inputBox.Text)
local targetPlayers = getPlayers(input)
for _, targetPlayer in ipairs(targetPlayers) do
if targetPlayer == player and not processedPlayers[player] then
processedPlayers[player] = true
if player.Character then
disableCollision(player.Character)
end
player.CharacterAdded:Connect(function(character)
disableCollision(character)
end)
break
end
end
end
local function updateStatus()
local activeCount = 0
for player, _ in pairs(processedPlayers) do
if player and player.Character and player.Character:FindFirstChildOfClass("Humanoid") then
activeCount = activeCount + 1
end
end
statusLabel.Text = "Status: Bringing "..activeCount.." players"
end
local function bringPlayers()
if not localPlayer.Character then return end
local localRoot = getRoot(localPlayer.Character)
if not localRoot then return end
if toolModeEnabled then
local tool = localPlayer.Character:FindFirstChildOfClass("Tool")
if tool then
local handle = tool:FindFirstChild("Handle") or tool:FindFirstChildOfClass("BasePart")
if handle then
for player, _ in pairs(processedPlayers) do
if player and player.Character then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Sit = false
humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
local root = getRoot(player.Character)
if root then
root.Velocity = Vector3.new()
root.CFrame = CFrame.new(handle.Position + Vector3.new(0, 1, 0), handle.Position + Vector3.new(0, 1, 1))
end
end
end
end
end
else
local camera = workspace.CurrentCamera
local cameraCFrame = camera and camera.CFrame or localRoot.CFrame
for player, _ in pairs(processedPlayers) do
if player and player.Character then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Sit = false
humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
local root = getRoot(player.Character)
if root then
local offset = 3
local targetPos = localRoot.Position + (cameraCFrame.LookVector * offset) + Vector3.new(0, 2, 0)
local lookAtPos = targetPos + cameraCFrame.LookVector
root.Velocity = Vector3.new()
root.CFrame = CFrame.new(targetPos, lookAtPos)
end
end
end
end
updateStatus()
end
local function toggleToolMode()
toolModeEnabled = not toolModeEnabled
if toolModeEnabled then
toolModeBtn.Text = "Tool Mode: ON"
toolModeBtn.BackgroundColor3 = Color3.fromRGB(80, 20, 20)
else
toolModeBtn.Text = "Tool Mode: OFF"
toolModeBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
end
local function toggleBring()
bringActive = not bringActive
if bringActive then
local input = string.lower(inputBox.Text)
local players = getPlayers(input)
if #players == 0 then
statusLabel.Text = "Status: No players found!"
bringActive = false
return
end
processedPlayers = {}
for _, player in ipairs(players) do
processedPlayers[player] = true
if player.Character then
disableCollision(player.Character)
end
player.CharacterAdded:Connect(function(character)
disableCollision(character)
end)
end
if not playerAddedConn then
playerAddedConn = Players.PlayerAdded:Connect(handleNewPlayer)
end
toggleBtn.Text = "Bring Players: ON"
toggleBtn.BackgroundColor3 = Color3.fromRGB(80, 20, 20)
updateStatus()
connection = RunService.Heartbeat:Connect(function()
if bringActive then
bringPlayers()
end
end)
else
toggleBtn.Text = "Bring Players: OFF"
toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
statusLabel.Text = "Status: Stopped"
if connection then
connection:Disconnect()
connection = nil
end
if playerAddedConn then
playerAddedConn:Disconnect()
playerAddedConn = nil
end
processedPlayers = {}
end
end
toggleBtn.MouseButton1Click:Connect(toggleBring)
toolModeBtn.MouseButton1Click:Connect(toggleToolMode)
game:BindToClose(function()
if connection then connection:Disconnect() end
if playerAddedConn then playerAddedConn:Disconnect() end
end)