Summary
The bug present in “FORT-943674” (End of round issue breaking round-based games) has been happening to me since i first launched my map in august . When the last player remains he is either auto-killed instantly or just “falls” to his death. . I don’t know what triggers or why it happens but i simply cannot think of a cause , i tried players spawners with no priority , setting the enabled on phase always , gameplay only , island start on and off but nothing seemed to fix this. It is also present in any published version i made. Observation : When I end the round by using the debug command - end round the bug doesn’t happen.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
Other
Steps to Reproduce
Be the last player.
Expected Result
Player should transition normally to the next round without dying.
Observed Result
I remain the last player and I get auto eliminated or fall of the map and get eliminated. (NOTE : ON THE PUBLISHED ISLAND code the “auto-elimination” was hidden by using the uefn’s post round settings “score display time” this was my attempt to hide when the player dies. What Is seen in the video currently in the editor is when the “score display time” is set to 0 , in the published island is set to 1 second to “mask” the elimination ( that still occurs)
Platform(s)
UEFN laptop
Island Code
4610-5634-5438
Video
Watch dying | Streamable . and here is the video of triggering round end by using the debug command ( case in which the bug doesn’t happen) . Watch debug end | Streamable
Additional Notes
The island code is not relevant to showcase the bug as currently the island has post round “show score time” set to 1 second which kind of hides the elimination happening ( but it still occurs as the text “noped out” “bailed early” can still be seen in the elimination feed hud.
I trigger round end with this code "using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
last_winner:= class(creative_device):
@editable
EndGameDevice : end_game_device = end_game_device{}
var RemainingPlayers : []player = array{}
OnBegin<override>()<suspends>:void =
# Initialize player list
set RemainingPlayers = GetPlayspace().GetPlayers()
# Subscribe to player elimination events
for (Player : RemainingPlayers):
if (Character := Player.GetFortCharacter[]):
Character.EliminatedEvent().Subscribe(OnPlayerEliminated)
# Subscribe to new players joining
GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
OnPlayerEliminated(Result : elimination_result):void =
if (EliminatedChar := Result.EliminatedCharacter, Agent := EliminatedChar.GetAgent[]):
if (PlayerAgent := player[Agent]):
# Remove eliminated player from remaining players
set RemainingPlayers = for (P : RemainingPlayers, P <> PlayerAgent) do P
# Check if only one player remains
if (RemainingPlayers.Length = 1):
if (LastPlayer := RemainingPlayers[0]):
EndGameDevice.Activate(LastPlayer)
OnPlayerAdded(NewPlayer : player):void =
set RemainingPlayers = RemainingPlayers + array{NewPlayer}
if (Character := NewPlayer.GetFortCharacter[]):
Character.EliminatedEvent().Subscribe(OnPlayerEliminated)