So, I’m a little confused myself here with what you are trying to do but I’m going to assume what I picked up and you can correct me later on if need be;
Assuming you have the tools stored inside of a folder specific to each player;
When the round starts simply run through each of the folders inside of ServerStorage where you have these kept with for i, v in pairs loop
Example:
for _, player in pairs(game:GetService('Players'):GetPlayers()) do --// Getting each of the players
if player:IsA('Player') then --// Making sure each player instance is actually a player
for _, folder in pairs(game:GetService('ServerStorage'):FindFirstChild('YOUR_TOOL_HOLDING_FOLDERS', true):GetChildren()) do --// Get all of the folders, replace the second string with your folder
if folder:IsA('Folder') then --// Making sure that folder is a folder
if string.lower(tostring(folder.Name)) == string.lower(tostring(player.Name)) then --// Converting both player name and folder name to lowercase and checking if they are the same
for _, tool in pairs(folder:GetChildren()) do --// Getting each tool in the folder
if tool:IsA('Tool') then --// Making sure that the tool is a tool
if player:FindFirstChild('Backpack', false) then --// Finding the players backpack
local tool_clone = tool:Clone().Parent == player:FindFirstChild('Backpack', false) --// Cloning the tool and setting the parent to the players backpack
end;
end;
end;
end;
end;
end;
end;
end;
--// Side note the Semi-Colons ';' mean nothing in lua and it's just a habit of mine, you do NOT need them for this to work.
Assuming you don’t have the tools stored inside of a folder specific to each player;
Inside of your initial script you will need to create a folder pertaining to each person for when they select the tool, if there is already a folder just remove the old tool and replace it with the new tool. If there isn’t just create a folder inside of your script and then parent the tool clone to it.
Example:
if game:GetService('ServerStorage'):FindFirstChild('YOUR_HOLDING_FOLDERS', true):FindFirstChild(plr.Name) then
local folder = game:GetService('ServerStorage'):FindFirstChild('YOUR_HOLDING_FOLDERS', true):FindFirstChild(plr.Name)
if folder:FindFirstChildOfClass('Tool') then
folder:FindFirstChildOfClass('Tool'):Destroy()
local tool_clone = ('HOWEVER YOU PARENT YOUR TOOLS'):Clone().Parent == folder
end
else
local player_folder = Instance.new('Folder').Parent == game:GetService('ServerStorage'):FindFirstChild('YOUR_HOLDING_FOLDERS', true)
local tool_clone = ('HOWEVER YOU PARENT YOUR TOOLS'):Clone().Parent == player_folder
end;
--// Then this is how you would give the players their tools in game
for _, player in pairs(game:GetService('Players'):GetPlayers()) do --// Getting each of the players
if player:IsA('Player') then --// Making sure each player instance is actually a player
for _, folder in pairs(game:GetService('ServerStorage'):FindFirstChild('YOUR_TOOL_HOLDING_FOLDERS', true):GetChildren()) do --// Get all of the folders, replace the second string with your folder
if folder:IsA('Folder') then --// Making sure that folder is a folder
if string.lower(tostring(folder.Name)) == string.lower(tostring(player.Name)) then --// Converting both player name and folder name to lowercase and checking if they are the same
for _, tool in pairs(folder:GetChildren()) do --// Getting each tool in the folder
if tool:IsA('Tool') then --// Making sure that the tool is a tool
if player:FindFirstChild('Backpack', false) then --// Finding the players backpack
local tool_clone = tool:Clone().Parent == player:FindFirstChild('Backpack', false) --// Cloning the tool and setting the parent to the players backpack
end;
end;
end;
end;
end;
end;
end;
end;
The main code I provided would be ran AFTER the game is starting