Game Part Summary: So in my game, when someone dies all the contents of their backpack are thrown into the workspace as ammo pickups, including the amount of ammo they have.
So here is the script that does that:
local player = game.Players.LocalPlayer
while player.Character == nil do wait(1) print "Waiting for character... " end --Waits for character
local char = player.Character
print "Character Found!"
char:WaitForChild("Humanoid") --Waits for humanoid
char.Humanoid.Died:connect(function() --Waits for humanoid to die
print "Someone died"
char.Humanoid:UnequipTools()--Puts tools in backpack
local backpack = player.Backpack:GetChildren()
for i = 1, #backpack do --Loops through player's backpack and puts it into the workspace as an ammo pickup
if backpack[i] ~= script and backpack[i]:IsA("Tool") == true then
print("Dropping "..backpack[i].Name.." tool")
backpack[i].Handle.Position = char.Torso.Position
backpack[i].Handle.Name = "AmmoPickup"
backpack[i].AmmoPickup.Script.Disabled = false
backpack[i].AmmoPickup.Parent = workspace
end
end
print ("Spitting out "..script.Parent.Ammo.Value.." rockets")
for i = 1, script.Parent.Ammo.Value do --Spits out the amount of rockets the player had
local clone = game.ReplicatedStorage.Rocket:Clone()
clone.Position = char.Torso.Position
clone.Parent = workspace
end
end)
Script Location:
This script starts in the StarterPack, and as expected, is cloned to other player's Backpacks. This is a LocalScript
Problem:
This script works when players are on a "Spectator" team (i'll change that later; the spectating area fills up with rockets otherwise <_>) but doesn't work when the player is killed so they can be moved to another team. Once they are on that team, the Died event never fires when they are killed by resetting or being hit by a rocket (the print functions show me so.) If they move back to Spectators it no longer works. Basically, the event is only ever fired once.
So what am I doing wrong and how can I fix it?
