Is there a way to make a player automatically respawn or spawn again without dying?

How do you cause a player to automatically spawn? I would love details.

The base gamemode lets players to spawn using PlayerDeathThink and checking whether a certain time (ply.NextSpawnTime) has passed.

This is what it looks like:
[lua]function GM:PlayerDeathThink( pl )
if ( pl.NextSpawnTime and pl.NextSpawnTime > CurTime() ) then return end
if ( pl:KeyPressed( IN_ATTACK ) or pl:KeyPressed( IN_ATTACK2 ) or pl:KeyPressed( IN_JUMP ) ) then
pl:Spawn()
end
end[/lua]

If you want them to respawn straight away, no delay, and not have to press attack/jump, you could do it like:
[lua]function GM:PlayerDeathThink( pl )
pl:Spawn()
end[/lua]