Lyra Player Respawn Management Help

Hey,
I’m currently working on creating my own experience using the Lyra starter game. I’m modeling it after a standard Free-For-All game mode that you would see in most modern shooters. I want to add custom logic to the respawn component as the component that comes with Lyra doesn’t seem to handle respawning players when more than two teams are in the game. IE) I find myself spawning next to players on the opposite team a majority of the time.
I don’t really have any idea where to begin with this task and I’m looking for whatever guidance I can get. The current Spawn management plugin inherits from a C++ class and doesn’t expose anything to BP from what I can tell.
Again any advice or help on this topic is much appreciated!

2 Likes

Having a similar problem. Did you find a workaround? I tried creating a blueprint from the base classes for the team spawning blueprint, but they are all blank and seem to operate the same as the team spawning blueprint.

I dissected the Lyra ShooterCore plugin, hopefully my notes will help you figure out how that stuff is done.

There is information in here pertinent to the number and configuration of teams, and also how the spawning is done. You should be able to easily modify both.

2 Likes

These notes are pretty useful. It almost makes me think I have my teams set up wrong as the logic in TeamSpawningRules looks like it should work for my case. I’ll poke around with this a bit more and see what I can come up with. Thanks for the response!

2 Likes

Just a quick update on this thread. I was able to add some code to help prevent players spawning next to other enemy players. It’s not perfect, but as a first pass it will work.

In TDM_PlayerSpawningManagmentComponent.h I added a double variable called “MinPlayerDistance”, exposed to blueprints, that allows me to set a minimum distance to check for enemy players. I set the default to roughly 1000.
Then inside TDM_PlayerSpawningManagmentComponent.cpp I only allow the local variable “BestPlayerStart” to be set if the there is not another enemy player inside “MinPlayerDistance”.
This combined with better player start placement inside my level helped reduce the amount of times I was spawning next to enemy players.

I’ll continue to update this thread as I refine my solution. Again, I’m always open to help and feedback with this issue!

3 Likes