Post Process Device Bugged In Round-Based Maps.

Summary

My device uses phases that advance every new round with weakmap : (weak_map(player, phase_state) = map{})

Since I use Persistence let’s say that I’ve set that my PostProcess Device to be activated on phase 9 ( so round 9 ) with a code like this :

var PhaseMap : weak_map(player, phase_state) = map{}

@editableeditable
PostProcess : post_process_device = post_process_device{}

OnBegin():void =
****OnRoundBeginnAsync()

OnRoundBeginnAsync()

#-----code that advances the phase round by round so round1-phase1 , round2 - phase 2 etc ----

PostProcess.Disable()  # this is here as a safety in case at round start the PP enables by itself

now this is a snippet of what happens when phase9 is picked

Phase9():void =
ItemGranterPh9.GrantItemToAll() ## here I give a sniper+shotgun #
PostProcess.Enable()
Sleep(20.0)
PostProcess.Disable()

Note : PostProcess Device is set to Enabled on Phase - None (so it only should enable,disable trough verse only ) .

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Other

Steps to Reproduce

Let’s say that the Player That Joins has Phase5 stored so when he joins my map and when game starts , the first round will have phase6 playing.

What goes wrong :
If the player doesn’t start with the first round being phase 9(which activates PP device) , the PostProcess Device simply doesn’t Activate at all .

PS: ( as a reference to better understand that it doesn’t trigger The PostProcess, in my videos [which i will paste below ] when Phase9 is “choosen” , I grant a specific loadout( sniper + shotgun) so that it is easier to see when Phase9 was choosen and when other phases occur . This will highlight that Phase9 is picked but doesn’t Activate The PostProcess and that it malfunctions.

In the videos i modified all the picking logic to choose Phase9 every new round so if my code originally did something like this :
if (NextPhase = 1):
Phase1()
else if (NextPhase = 2):
Phase2()
else if (NextPhase = 3):
Phase3()

Now it does :
if (NextPhase = 1):
Phase9()
else if (NextPhase = 2):
Phase9()
else if (NextPhase = 3):
Phase9()

In this video it is round 3 already(check the round counter icon) and since you can see that I’ve received the (sniper + shotgun loadout) this means Phase9 was picked ( so PostProcess Device should activate) but as you can see in the video it doesn’t activate.

In the Next Video i Quit the game , re-entered ( since i know that I’ve set all phases to be phase9 the next time i rejoin) .

As you can see in the video the game just started( Round 1), Phase9 was picked ( I got the specific loadout) and Now since it is Round 1 AND also the Phase9 occured in round 1 , the PostProcess Device triggers correctly ( this is the only time the PostProcess Device works).

Now when advancing to the next round , round 2 , round3 ( rounds which still will pick Phase9 ) the PostProcess doesn’t work anymore.
Here is the video that displays that in Round2 The PP doesn’t work anymore

So It seems that the bug/problem is that the Post Process Device Only Works If It is Triggered exactly at gamestart/first round and doesn’t work anymore past round 1/game start if it called through Verse ( could also not trigger even by using device events)

Expected Result

The PostProcess device should work correctly when triggered and should not be dependent on gamestart / first round to work properly.

Observed Result

The Post Process device only responds/works , if it is activated only on round 1 /game start. If the device is triggered on round2 for example , it doesn’t work .

Platform(s)

Uefn laptop