Respawn System #
This is our quick walkthrough of the respawn system:
We also have a tutorial on our Udemy course within our survival framework on how to setup a basic respawn system for multiplayer cases from scratch.
Integration #
Inheritance structure #
To get an overview of this system I will show you a hierarchical structure.
- AC_Respawn_Location_Abstract
- AC_Respawn_Location_OpenWorld
- BP_Respawn_Location_Buildable
- BP_Respawn_Location_OpenWorld
- AC_Respawn_Location_Arena
- BP_Respawn_Location_Arena
- AC_Respawn_Location_OpenWorld
- AC_Respawn_Manager_Abstract
- AC_Respawn_Manager_OpenWorld
- BP_Basic_ThirdPersonCharacter_Respawn_OpenWorld
- AC_Respawn_Manager_Arena
- BP_Basic_ThirdPersonCharacter_Respawn_Team
- BP_Basic_ThirdPersonCharacter_Respawn_FreeForAll
- AC_Respawn_Manager_OpenWorld
- AC_Respawn_Handler
- BP_GameMode_Respawn
- AC_Respawn_GameMode_Abstract
- AC_Respawn_GameMode_OpenWorld
- BP_GameMode_Respawn
- AC_Respawn_GameMode_Arena
- BP_GameMode_Respawn
- AC_Respawn_GameMode_OpenWorld
Components #
- It does not matter which system you use as a target project or the order you migrate them. Just make sure that the required project settings and plugins are set properly.
- If you do want to integrate this system into your own character, please follow the instructions below.
The components that you’d want to add are different per game type.- Character:
Based on your type of game, you should add one of the following components to your character:
- Character:

-
- GameMode:
You should always add the respawn handler component to your GameMode to be able to respawn at all. In the Respawn Handler you can select the game type you want to use (e.g., Free for all, open world, arena).

Core Principles of the Respawn System #
The respawn system is split into 2 sections: Open World and Arena based respawning. I will first show the generic logic, and after that show the logic from the different sections.
Generic #
Respawn Handler #
The respawn handler is in control of spawning the player. It will spawn the correct character based on your game type and set it to a location given by your respawn manager. It will then transfer some variables over and reinitialize some components. This is because some components need a controller which it doesn’t have when being spawned into the world. The core of the spawning is here:

The respawn handler is also in control of transferring the inventory over to the new character (if enabled)
When spawning for the first time we’ve created a character that you can place in the world. This character will become the camera that will show when entering the game. Simply add the BP_StartCameraViewOnStart actor to your world and set the correct position. You can make this easier by piloting the actor.

Enums #
- Game Type
- I’ve defined an Enum that holds all the game types. You can edit this file but do know that you must implement your own logic. Currently I’ve implemented Open World, Team Deathmatch, and Free for All. To add your own game type, you can add an index and create a new component for the game mode. This way you can handle the logic modularly.
- Player Spawn Type
- This Enum will hold all the possible player spawn type. These are: Team01, Team02, Free for All, and Open World. This way we can handle different logic for each one. To add your own spawn type, you can add an index and add logic for that index (you probably want to add something to the other Enums too).
- Zone Name
- To create respawn zones I’ve used an Enum. This brings more structure to the system then using strings. You’re also less likely to make mistakes. For this system I’ve created the Forest, and Beach. To create new zones, you only have to add an index and assign it to your location.
Open World #
Respawn Manager + UI #
When you die, the UI will show. In this UI widget you can select the location that you wish to spawn at. In the case of open world, you will see your placed respawn locations, and your respawn zones. These buttons are created dynamically based on the number of locations saved.
For the zone locations, we create a button for every different zone location. This means that if there are multiple locations with the same zone type, we only create 1 button. Later we choose a random location using that Enum index.


After you’ve pressed a respawn button it will initialize respawn based on the clicked location. If the button you pressed is a zone button, it will spawn on a random location within that zone.

When you respawn, you can choose if you want to transfer your inventory or not. Enabling this will transfer your entire inventory to the new player. If you have this disabled a loot bag will spawn with your inventory items inside. You can change some variables of this bag. For instance, the time it takes for that bag to get destroyed.

Respawn Location #
The respawn location is an actor component that you can respawn on. I’ve also added a blueprint for respawn locations. That is because I’ve added some visual aspects to make setting up such a location easier.

I’ve also created a blueprint that makes it possible to build respawn locations when playing. This is done through the building system. If you want to create your own respawn locations, you have to use BP_Respawn_Location_Buildable and set the correct actor inside of the buildables data table. Sometimes you also need to change the spawn location.
Respawn GameMode #
The game mode will get a specific component based on the selected game mode in the respawn handler. This component handles the spawning specifically for open world type games. On initialization we’re showing the spawn UI. This way you can select where you initially want to spawn.

This component also holds all the zone spawn locations and will give you the location to spawn on when given a zone.
Arena #
Respawn Manager + UI #
The respawn manager from the arena version has 2 options: Team based, and Free for All. They mostly work the same way, but the initialization is different. With the team based you can select your team, and with free for all you will instantly spawn at a free for all location.
When you die, the UI will show. In this UI widget you can press a button to respawn at a random location from the spawn type that you have.
Respawn Location #
An arena respawn location has spawn type logic. This way you can select a spawn location based on its spawn type.

For arena I’ve also created a blueprint that you can use to create spawn locations. In this location you only need to set the spawn type and you’re set!

Respawn GameMode #
For arena respawn you also have a component that will automatically be added by the respawn handler. This game mode handles the spawning of team based and free for all.
It will save all the possible spawning locations spawned in the world and when you’re requesting a respawn it will spawn you on a location within your spawn type.

