Double respawn bug

Hi, I’m using the ShooterGame respawn system, but if I use a custom projectile, instead of an instant hit, the player dies and it respawn two new players: one that dies instantly with ragdoll, and one alive. Why with the instant hit it works, and with the projectile it doesn’t? What can it be?

Game designer here.

I’m bumping this thread as we have yet to fix this extremely annoying bug.
Our first post is incorrect. The probably dosen’t seem to be due the projectiles. It happens frequently using all types of weapons in the game (both projectile and line trace).

As far as I can see (I could be wrong) it looks like a replication problem.

We made this quick video to illustrate:

Does it happen on the server and clients, or just on clients? Do you have custom respawn code or is it just the plain engine code?

We use DetachFromControllerPendingDestroy() like ShooterGame for the respawn.

After having performed various test we have found that the problem only occurs on the dedicated server.

The respawn works fine in a listen server! Why?!

When using the dedicated server, do you see the same double respawn on ALL of the clients? I’m just wondering if the server is spawning a copy which gets replicated while another copy is spawned locally on the clients. If this is the case I would expect to see the same double spawn on all clients at the same time.

The other option would be that what you are seeing is the character you have just destroyed come back… You could try putting something in the Tick function to display the name of the pawns - if you see 2 different names after respawn then at least you know they are 2 completely new pawns, otherwise your issue is incomplete destruction.

How can I get the player names?

From memory there is a GetName() or GetLabel() method in AActor.

Hey, I’m interested in looking into this. Is there a fast way to reproduce this in a new project or in ShooterGame?

Yes. Use DetachFromControllerPendingDestroy() function to die, and in your gamemode class, change the value of MinRespawnDelay to set the respawn time.

We have fixed this issue :slight_smile:

Congrats! Any tips in case I end up in the same position?