When using Push Replication with blueprints, UK2Node_VariableSetRef nodes do not mark a property as dirty and so the variable is not replicated.

Steps to Reproduce
  • Define the following [System Settings] within DefaultEngine.ini -
    • net.IsPushModelEnabled=1
    • net.MakeBpPropertiesPushModel=1
    • net.PushModelSkipUndirtiedReplication=1
    • net.PushModelSkipUndirtiedFastArrays=0
  • Create a test actor blueprint and enable replication on the actor. Create a replicated integer property.
  • On authority attempt to increment this property using a UK2Node_VariableSetRef node, for example the ++ integer increment node.
  • Add an on_rep function that prints this integer when it is replicated on the client.
  • You will see that this property is not replicated after incrementing using the ++ node.
  • Further Notes: This behaviour is only observed using the Push Model-enabled networking configuration. Using a set node taking in the incremented value after the UK2Node_VariableSetRef node will mark the property as dirty and replicate correctly.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-194745 in the post.

Login to Vote

ComponentUE - Gameplay - Blueprint
Affects Versions5.1.15.1
Target Fix5.5
CreatedSep 7, 2023
UpdatedFeb 16, 2024