Post Process Device Broken

Summary

In a round-based asymmetric game with Team Rotation, the Post Process device applies its effect correctly in round 1. From round 2 onward it stops applying to players who changed teams or were eliminated in the previous round. This happens with the device’s own Applies to Team filter and no Verse, with per-player Verse calls, and with full Verse disable/enable restarts of the device. Verse logging confirms the team data and the calls to the device are correct, but the visual effect doesn’t change.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Other

Steps to Reproduce

Place one Post Process device with the settings above, Applies to Team = Team 1.
Island settings: 2 asymmetric teams, Team Rotation every round, at least 2 rounds.
Start a session with 2 players (Player A on Team 1, Player B on Team 2).
Round 1: Player A sees Low Exposure and Player B doesn’t (correct).
End round 1 by eliminating Player A.
Round 2: teams rotate (Player A is on Team 2, Player B is on Team 1).

Expected Result

In round 2, Player B (now Team 1) sees Low Exposure and Player A (now Team 2) doesn’t.

Observed Result

The effect doesn’t update to the new team assignments in round 2. [Describe exactly what each player saw in round 2.]

Platform(s)

PC, Console

Island Code

1987-8400-7849

Additional Notes

Additional tests performed (all failed in round 2 and later)

Per-player Verse calls on team change. A Verse device polled team membership every 0.25 s and called PostProcess.Enable(Agent) for Team 1 and PostProcess.Disable(Agent) for everyone else, only when a player’s team changed. Round 1 correct, round 2 wrong.

Re-apply on new character / respawn. Same as test 1, plus re-applying whenever the player’s fort_character changed. No change.

BlendIn/BlendOut instead of Enable/Disable. Starting Strength 0, Blend In Strength 1, BlendIn(Agent) for Team 1 and BlendOut(Agent) for others. Logs confirmed the calls ran for the correct players, but the effect didn’t appear at all.

Combined calls. On: Enable(Agent), Reset(Agent), BlendIn(Agent). Off: BlendOut(Agent), Disable(Agent). Re-applied using fort_character.IsActive to detect respawns, plus a delayed second apply 0.5 to 1.5 s after spawn. No change in round 2.

Forced re-apply every 0.5 s. Enable(Agent) + Reset(Agent) for Team 1 and Disable(Agent) for others, on every living player every 0.5 s with no caching. No change.

Per-player restart on respawn. Disable(Agent), wait 0.1 s, Enable(Agent), Reset(Agent), BlendIn(Agent), repeated after 1 s. No change.

Applies to Team = Any (all players allowed). The effect still didn’t apply to the player who was eliminated in the previous round, even though every team was allowed.

Global device restart. PostProcess.Disable(), wait, PostProcess.Enable(), PostProcess.ResetForAll() for all players when anyone spawned or changed team, then per-player state applied. No change.

Team filter only, global refresh, no per-player calls. Applies to Team = Team 1, plus a Verse device that only calls global Disable(), Enable() and ResetForAll() at each round start (on player spawn), then again after 1.5 s. No per-player functions used anywhere. Round 1 correct, round 2 no change.

Observations

Ending a round with the debug “end round” option in a UEFN session sometimes made the effect update correctly. Ending rounds through normal gameplay (eliminations / objective) in sessions and in the published island didn’t.
Verse logs at round 2 start confirmed correct team counts and that the refresh calls ran: