Tool doesn't work when cloned

Backstory

I am working on a round based game. When a round starts, a new map is chosen, and players get a tool. The same tool.

Problem

Here comes the problem.

When I clone a Tool into a player’s Backpack, the tool breaks. I find it weird as putting it in StarterPack magically makes it work.

Relevant Code

local contestants = {};
local spawns = Workspace.Spawns:GetChildren();
	
for _, client in ipairs(Players:GetPlayers()) do
	if (client.Character and client.Character.Humanoid.Health > 0) then
		client.Character:SetPrimaryPartCFrame(table.remove(spawns, 1).CFrame);
		tool:Clone().Parent = client.Backpack;
		CollectionService:AddTag(client, IN_GAME_TAG);
		table.insert(contestants, client);
	end
end

If you need more code let me know and I will happily provide more

And tool is defined as local tool = ServerStorage:WaitForChild("Sub Machine Gun");

The console doesn’t say anything either.


Pictures of issue

In StarterPack

As you can see, the animations play, the GUI shows up, the little icon shows up too, and whilst the picture doesn’t show it, the gun shoots too.

Cloned from ServerStorage to Backpack

And here, animations don’t play, GUIs don’t show up, the icon doesn’t either, and the gun doesn’t shoot!

1 Like

Try to make the source tool turned off (put enabled on a false in properties) and in the cloning script write enabled = true

That didn’t work. I guess it’s just an issue with roblox with cloning right now?

It’s unlikely that the function is a clone, could you provide a part of the weapon code that works when weapons are equipped?

Could be how your tool script is done as my game uses a tool clone and doesn’t have this issue.
Could you send some of the code so we can help you identify the problem?

I had an issue with this a few weeks ago, I solved it by doing something along the lines of

Char.Humanoid:EquipTool(Tool)

Then I guess if u want ti in the backpack do

Tool.Enabled = false or something like that

Hey I am gonna bump this. Was working on something small. It’s an uhhh “fps” game. I have an issue with cloning still.

The place is uncopylocked:

When you first spawn in you get the weapon just fine. But when you die the tool completely breaks. The code for giving the tool is

-- I was so tired

game:GetService("Players").PlayerAdded:Connect(function(player)
	print("Player added", player)

	player.CharacterAdded:Connect(function(character)
		print("Character added", character)
		local clone = game:GetService("ServerStorage").M4:Clone()
		clone.Parent = character -- i tried humanoid:EquipTool but that doesn't work
		print("Equipped")
	end)
	
	player.CharacterRemoving:Connect(game.Destroy)
end)

In the gun scripts (the gun is located in ServerStorage) I have added print("Activated"). It works even after I die but for some reason the gun won’t shoot.

tool.Activated:Connect(function()
	print("Activated")
	if reloading then
		print("Is this the issue") -- when I press R and shoot while reloading this prints
		return
	end
	
	-- Bruh and fired print just fine
	is_down = true
	
	while is_down do
		print("BRUHHHHHHHHHH")
		remotes.Shoot:FireServer(cursor.Hit.Position)
		print("Fired")
		wait(0.1)
	end
end)

And part of the server side for the Shoot remote is

remotes.Shoot.OnServerEvent:Connect(function(player, position)
	print("remotes.Shoot fired")
end)

And it prints just fine. Literally everything is in the uncopylocked place so if you need more info it’s all in there.