Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Server-side While do counter detects ChildAdded but ignores ChildRemoved?

Asked by 3 years ago

I made an NPC spawner script that puts a cap on how many zombies can spawn, but I can't figure out how to tell it to spawn more when the cap decreases/a player kills one, it seems to ignore ChildRemoved and stop spawning them even after I cut them from the spawner in Run mode.

local child = game.workspace.Spawn.ChildAdded:Connect(function(child)
end)
local abortion = game.workspace.Spawn.ChildRemoved:Connect(function(abortion)

end)

local ZombieCount = 0
local NPC = game.ReplicatedStorage.Zombie
local spawner = game.workspace.Spawn
while ZombieCount <5 do
local Clone = NPC:Clone()
    Clone.Parent = spawner
    Clone.Torso.CFrame = spawner.CFrame
    wait(1)
    if child then ZombieCount = ZombieCount +1
    elseif abortion then ZombieCount = ZombieCount  -1
    end
    end

Is there a better method than ChildRemoved or am I just using it wrong?

Is the counter even supposed to be in the while do loop?

0
You're using it wrong. Promise. User#6546 35 — 3y
0
Okay, so... What should I use then? Humanoid.Died or something? Or by using it wrong do you mean the function call is wrong...? dank_mayonaise7 4 — 3y

1 answer

Log in to vote
0
Answered by 3 years ago
Edited 3 years ago

If you want to spawn a zombie every time one is killed, try the following:

game.Workspace.Spawn.ChildRemoved:Connect(function()
    local clone = NPC:clone()
    clone.parent = spawner
    Clone.Torso.CFrame = Vector3.new(spawner.Position)
    ZombieCount += 1
end)

Bear in mind that this will spawn a new NPC every time any child of Spawn is destroyed or removed. If you intend to store other objects under Spawn that are not zombies, then try checking first whether it's an NPC that's been removed.

Ad

Answer this question