Checkpoint System with PlayerStart object - Always respawning at the wrong checkpoint

Hey folks I’m trying to create a checkpoint system for a platforming game. The pieces that I have are

  • A checkpoint trigger box, when the player overlaps with it it sends info to GameMode to store its location

  • On gamemode I have a custom script on FindPlayerStart - It checks if a checkpoint is active and, if it isn’t, just calls the parent function, if it is it finds a new checkpoint,

  • On the PlayerCharacter blueprint, on OnDestroyed, I call FindPlayerStart and RestartPlayerAtPlayerStart with the new checkpoint,

The problem is that I’m not respawning on the new checkpoint. I’m always respawning on the old one (which is the first one I placed in the level). I’m not really sure what I’m doing wrong but here are some questions

  • Are FindPLayerStart and ChosePlayerStart only called at the start of the game?
  • I tried storing some info on a custom GameState that I made, but then my controller simply didn’t possess my pawn. I’m inheriting from the base GameState (which works fine) but I’m not sure where to hook up the controller to the pawn
  • It is a single player game, so I won’t have multiple players in the same session

Thank you very much folks!

HI @gabriellcarpes ,
You can try doing something like this

BP_GameMode

BP_CheckPoint


BP_PlayerCharacter

Let me know if it worked for you!