When someone dies, it puts them in a queue with other dead people until the respawn timer goes down, and when that happens the dead players respawn at the same time.
Yes, let me write a simple example for you.
--run this after some time you expect to some or all players be dead. for _,v in pairs(game:GetService("Players"):GetPlayers()) do if v.Character and v.Character.Humanoid.Health == 0 then v:LoadCharacter() end end
you may want to disable CharacterAutoLoads or increase the respawn delay by a large number. Heres a example from Developer Forum: Link
I'll write a little bit of pseudo code for you. Now this won't contain everything, but should be enough for a basic understanding.
listen to player died event, add player to queued players table, listen to round ended event, loop through all players and respawn them.
You're pretty much adding the players to a table
and looping through that table with pairs
when the round has ended or whenever you need them to respawn.