So I’ve made my wave manager script… and it works- until it doesn’t. When cloning multiple zombies, they break and go crazy.
Here’s a video.
Yeah I don’t even know were to begin.
At first I though something was wrong with my pathfinding- but I tested it separately and it worked perfectly fine.
So then I though it was my wave manager script. It looks like this.
local serverScriptService = game:GetService("ServerScriptService")
local replicatedStorage = game:GetService("ReplicatedStorage")
local serverStorage = game:GetService("ServerStorage")
local roundStartedEvent = serverScriptService:WaitForChild("roundStarted")
local gameSettings = require(replicatedStorage:WaitForChild("gameSettings"))
local zombieFolder = serverStorage:WaitForChild("zombies")
local zombies = workspace:WaitForChild("zombies")
function startNewWave()
if not gameSettings.waveInProgress and not gameSettings.intermission then
gameSettings.waveInProgress = true
gameSettings.waveNumber += 1
print("Wave number "..gameSettings.waveNumber.." has started!")
for i = 1, 40 + gameSettings.waveNumber do
local zombie = zombieFolder.Zombie:Clone()
zombie.Parent = zombies
zombie.HumanoidRootPart.Position = Vector3.new(0, 25, 0)
zombie.Humanoid.Died:Connect(function()
gameSettings.numberOfEnemies -= 1
end)
end
gameSettings.numberOfEnemies = #zombies:GetChildren()
repeat task.wait() until gameSettings.numberOfEnemies == 0
gameSettings.waveInProgress = false
print("Wave number "..gameSettings.waveNumber.." has ended!")
gameSettings.intermission = true
print("Intermission...")
task.wait(15)
gameSettings.intermission = false
print("Intermission ended!")
end
end
roundStartedEvent.Event:Connect(function()
gameSettings.waveNumber = 0
task.wait(10)
while gameSettings.roundInProgress do
startNewWave()
end
end)
I think the problem is on the for loop. No console errors.