Rejoining a Game Is Broken - Respawn Verse (GAME BREAKING BUG)

Summary

When rejoining a game that you have been called to respawn via Verse (during your first visit). The game will no longer consider you a player in the game.

You will not appear on the Fortnite scoreboard.
You will not receive items via Fortnite devices.
You will become apart of another players team (even if set to FFA).

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Steps to Reproduce

  1. Call the built in Respawn() function on a player.
  2. Have them leave and join back (same session)
  3. Once they join, look at scoreboard, try granting them items via Item Granter.

Expected Result

The player shouldn’t be treated any differently between the 1st join and next.

Observed Result

Basically nothing works on them because they don’t seem to be considered an agent to the game.

Platform(s)

Everything.

Island Code

1940-1982-6871

Additional Notes

I will be more than happy to share snippets of my code to show that it cant be anything else besides the respawn. (the island code is effected by this, players respawn when a new round starts)

If there is a workaround, please reply below if you are willing to share.

You need to wait for the player to be fully added, before you can teleport or put in teams/ grant weapons etc.

If you want to persist player stats or loadout, add the save point device.

1 Like

I wait 5 seconds this seems to be the nice number for everything to work. Some people use the run event ect too

1 Like

I agree I see the exact same thing. Although I am not sure it is tied to Respawn(). It appears to be random. What appears to be happening is the PlayerAdded event is NOT firing. I am using a Player Spawner Event. This happens randomly. I just tested with one of our games and a player rejoining randomly appears to not be added into the game: they are not getting a HUD, item granter does not give them any items, etc. I had it happen on 3 out of 6 rejoins to same game. Twice after a Respawn(), one time without a Respawn(). This appears to be new with 36.00

2 Likes

Are you saying on all player joins? New or rejoining? Well I guess it would have to be all, no way to tell if a player is rejoining.

1 Like

Yea any player joining if you have maps ect make sure to remove the player and do proper cleanup when they leave or it could mess your game up.

1 Like

I think this is working as intended, I’ll have someone check.

This is only when a player who was in a game REJOINS the same game. Which is common for maps that dont have a lot of players. I here what @AtAshTag is saying, and I have never seen an issue before when using the SpawnedEvent from Player Spawner. I use Player Spawner for my player adds. Player Spawner occurs after PlaySpace.AddedEvent. The island I am seeing this on was introduced before 36.00 and I tested join in progress a lot and it was a lot of rejoins and I NEVER saw an issue. As I said earlier I was able to see an issue on 3 of 6 rejoin attempts.

Please define what you think of as proper cleanup? I remove players from my Player Map, what else can you do? It just seems to me that Epic leaves a footprint and crumbs for players in games they were once part of and we have no way to control/clean that up.

Hey @CosmicSkoll!
Can you share Verse code snippets that are leading to what you’re seeing?

1 Like

I always use player maps and have events to account for the player leaving ie break loops ect. I never fully use the GetPlayspace().GetPlayers as i believe the player who initially joined will always be in this returned array. iirc this never gets cleaned for players who left.

I have a Event that basically terminates everything to do with the player when they leave/removes from maps arrays ect ect but the Playerspace() im sure it isnt updated so if your using this alot then this could be your issue

Example

PlayerLeaveServerEvent:event(player) = event(player){}

1 Like

Any update team? @Flak @Vath

Sorry for insisting, but this bug is affecting us A LOT and it’s been almost two months without any news :frowning:

Well, it’s been two months since this ticket was created, but we’ve created two more tickets and it’s been over a year without a solution.

Once this bug is fixed, I’ll finally be at peace :melting_face:

FORT-925256 is now ‘In Progress’! Our team is actively working on it!

My sincere apologies for taking so long to get to this one, I had a bit of a backlog of issues to get through and this one fell by the wayside for far too long.

So I’ve looked into this one, and from what I can see, the RespawnPlayer function will silently fail if the requested spawn location is outside of the player’s current “playspace”. If a playspace is nested inside another one, then the inner one counts as the player’s current playspace.

It seems that the bank vault volumes count as a “playspace” (there appears to be a playspace volume that comes with the bank vault device). So if a player dies inside one of these volumes and you then attempt to call Respawn on them, the call will just silently fail because the spawn point locations being passed in are outside of the bank vault volume.

I’m going to ask around to see what the intended behavior is here, but it seems to me that the vast majority of the time we wouldn’t want to restrict spawning to the inner playspace like this, when respawning in the parent playspace is a perfectly reasonable thing to do.

1 Like

Just a little progress report on this. I have a fix for this that I’m quite confident about, but I just want to make sure our testers run through it thoroughly to make sure that it doesn’t break anything!

Basically it turns out that when these devices come over from Battle Royale, sometimes they have to have things like Playspace volumes in them for reasons that are very valid for Battle Royale, but less so in UEFN (but it’s also not practical to remove these things from the Creative Device version sometimes).

But there’s no reason why your inner Playspace needs to forbid spawning outside of it, if it turns out that spawning in the outer Playspace is a perfectly valid thing to do, so we can forward that check onto the outer Playspace in cases where it makes sense to do so (such as you’re inside a bank vault, but that bank vault is within the bounds of your island, where it ‘s perfectly reasonable to expect to be able to respawn)