i tryed doing it but i just failed so i just made zombies spawn evry bit i need help makeing them in waves and add more zombies hears my script
local Path = game:GetService("PathfindingService"):ComputeSmoothPathAsync(workspace.Start.Position,workspace.Wall.Position + Vector3.new(3,0,0),500) local Positions = Path:GetPointCoordinates() math.randomseed(os.time()) local EnemyGroup = game:GetService("PhysicsService"):CreateCollisionGroup("Enemies") local PlayerGroup = game:GetService("PhysicsService"):CreateCollisionGroup("Players") game:GetService("PhysicsService"):CollisionGroupSetCollidable("Enemies","Players",false) game:GetService("PhysicsService"):CollisionGroupSetCollidable("Enemies","Enemies",false) game:GetService("PhysicsService"):CollisionGroupSetCollidable("Players","Players",false) local function Bounty(Enemy) local Total = Enemy.Bounty.Value for i,Tag in pairs(Enemy.Credit:GetChildren()) do local Player = game.Players:FindFirstChild(Tag.Name) if Player then local Percent = Tag.Value / Enemy.MaxHealth.Value local Reward = math.ceil(Total * Percent) Player.leaderstats.Cash.Value = Player.leaderstats.Cash.Value + Reward end end end
local function SpawnEnemy(Type) local Enemy = game.ServerStorage.Enemies:FindFirstChild(Type):Clone() local Alive = true Enemy.Parent = workspace.Enemies
for i,Child in pairs(Enemy:GetChildren()) do
if Child:IsA("BasePart") then
Child.CanCollide = false
end
end
local Objective
Enemy.HumanoidRootPart.CFrame = workspace.Spawn.CFrame + Vector3.new(math.random(-4,4),0,math.random(-4,4))
local Index = 0
local function NextObjective(Success)
if Success then
Index = Index + 1
end
if Positions[Index] then
Enemy.Humanoid:MoveTo(Positions[Index])
Objective = Positions[Index]
else
local Explode = Instance.new("Explosion",workspace)
Explode.Position = Enemy.HumanoidRootPart.Position
Explode.BlastPressure = 0
workspace.Wall.Health.Value = workspace.Wall.Health.Value - Enemy.Damage.Value
Alive = false
Enemy:Destroy()
end
end
NextObjective(true)
Enemy.Humanoid.MoveToFinished:connect(function(Reached)
-- if they are *close enough* consider it as good as the real deal?
if not Reached then
if (Enemy.HumanoidRootPart.Position - Objective).magnitude < 4 then
print("Reached override")
Reached = true
end
end
NextObjective(Reached)
end)
Enemy.Health.Changed:connect(function()
if Enemy.Health.Value < 0.1 then
if Alive then
Enemy:BreakJoints()
Alive = false
if Enemy.Head:FindFirstChild("Death") then
Enemy.Head.Death:Play()
end
Bounty(Enemy)
Enemy:Destroy()
end
game.Debris:AddItem(Enemy,1)
end
Enemy.Humanoid.Health = (Enemy.Health.Value/Enemy.MaxHealth.Value) * 100
end)
for i,Part in pairs(Enemy:GetChildren()) do
if Part:IsA("BasePart") then
game:GetService("PhysicsService"):SetPartCollisionGroup(Part,"Enemies")
end
end
if Enemy:FindFirstChild("WalkAnim") then
local Track = Enemy.Humanoid:LoadAnimation(Enemy.WalkAnim)
Track:Play()
-- Enemy.WalkAnim:Play()
end
end
wait(1)
for i,Wall in pairs(workspace.Path.Walls:GetChildren()) do if Wall.Name == "Wall" and Wall:IsA("BasePart") then Wall.Transparency = 1 Wall.CanCollide = false end end
while true do -- its right hear i need help with! wait(1) local Chance = math.random(1,10) if Chance == 7 then SpawnEnemy("strong zombie") else SpawnEnemy("zombie") end
end

4 comments
Mind making sure the question is more clear?
uh sorry it kind of choped up my script
it wont let me fix it
its at the bottom i need help with