UnrealGDK
UnrealGDK copied to clipboard
RepNotifies with parameters can have different values supplied compared to native Unreal
Description
In Unreal, when you specify a RepNotify variable with the OnRep function accepting an argument, Unreal passes the old value of the variable as the argument. This old value supplied can differ between native Unreal and Spatial. Specifically in the case of complex replicated properties (e.g. structs, TArrays, etc.).
Expected behavior
Parity between native and Spatial.
Current behavior
The value supplied as an argument to the OnRepNotify function can be in an indeterminate and different state than in native for arrays and other complex types.
Possible solution
Will not fix, the state is indeterminate in native as well, and should not be relied on.
Steps to reproduce
- Create a replicated RepNotify TArray variable.
- In the OnRepNotify function, make sure that it has a TArray argument.
- Add a new entry to the array on the server and observe the OnRepNotify being called on the client with different values for native and spatial. Example: if the array starts out with [1,2], then the server adds 3, so it becomes [1,2,3]. The RepNotify is called with:
a) On Native:
OldValue = [1,2,0]b) On Spatial:OldValue = [1,2]
Environment
GDK 0.6, GDK 0.8, possibly later.