* Added new ELifetimeCondition COND_NetGroup, that is only supported on replicated subobjects.
* Any subobject using COND_NetGroup must be part of a netcondition group via the NetConditionGroupManager world subsystem for it to get replicated.
* PlayerControllers can be members of a group via IncludeInNetConditionGroup
* When a netgroup subobject replicates to a connection we will only replicate it if the playercontroller of the connection is a member of atleast one group of that subobject.
* NetGroupOwner and NetGroupReplay are special groups that automatically replicate to the owner's connection or the replay net driver.
* This feature is only available to Actors or Actorcomponents with bReplicateUsingRegisteredSubObjectList = true
#jira UE-132891
#rb Ryan.Gerleve, Mattias.Hornlund, John.Barrett
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 20076279 via CL 20076546 via CL 20076844
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20106219 by louisphilippe seguin in ue5-main branch]
#JIRA UE-149491
#rb Ryan.Gerleve
#ROBOMERGE-AUTHOR: john.barrett
#ROBOMERGE-SOURCE: CL 20022630 via CL 20022646 via CL 20022649 via CL 20022666 via CL 20022679
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20023072 by john barrett in ue5-main branch]
Stored per object, and can be set from any game code, not just PreReplication
#rb ryan.gerleve, peter.engstrom
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19909058 via CL 19911194 via CL 19911458
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19913111 by brian bekich in ue5-main branch]
Fixes for tick.DoAsyncEndOfFrameTasks.ValidateReplicatedProperties
DiffProperties skips empty layouts
FGuidReferences copy constructor to deep copy container references, needed by FFastArraySerializer properties using delta structs
Update the validation to occur around the slate tick and not during the async recording
#jira UE-142550
#rb ryan.gerleve
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19843364 via CL 19843433 via CL 19852406 via CL 19861535 via CL 19861613
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19870884 by brian bekich in ue5-main branch]
#[review]-19826837
[FYI] louisphilippe.seguin
#ushell-cherrypick of 19844913 by Peter.Engstrom
#ROBOMERGE-AUTHOR: peter.engstrom
#ROBOMERGE-SOURCE: CL 19845138 via CL 19859933 via CL 19859991
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19869530 by peter engstrom in ue5-main branch]
#jira UE-142550
#ROBOMERGE-OWNER: brian.bekich
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19839033 via CL 19839388 via CL 19843762 via CL 19859314 via CL 19859320
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19869382 by brian bekich in ue5-main branch]
- DiffProperties skips empty layouts
- FGuidReferences copy constructor to deep copy container references, needed by FFastArraySerializer properties using delta structs
- Update the validation to occur around the slate tick and not during the async recording
#jira UE-142550
#rb ryan.gerleve
#ROBOMERGE-OWNER: brian.bekich
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19838285 via CL 19838713 via CL 19843726 via CL 19859239 via CL 19859288
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19869366 by brian bekich in ue5-main branch]
#rb trivial
#ROBOMERGE-AUTHOR: john.barrett
#ROBOMERGE-SOURCE: CL 19751934 via CL 19751954 via CL 19751957 via CL 19751973 via CL 19751980
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v939-19570697)
[CL 19801904 by john barrett in ue5-main branch]
* Actor classes can officially control which of their ActorComponent get replicated or not.
* Classes that want to control component replication need to override AllowActorComponentToReplicate to do so.
* Classes can also return a ELifetimeCondition in the new function and set a net condition to specific components.
* The override and net condition only works for classes that set bReplicateUsingRegisteredSubObjectList to true
# Added AllowActorComponentToReplicate to some Fortnite classes that used ReplicatedSubObjects to selectively control when to replicate some components.
#jira UE-144977
#rb Ryan.Gerleve, Mattias.Hornlund, Brian.Bekich
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 19478548 via CL 19481298 via CL 19483197 via CL 19494270 via CL 19494411
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)
[CL 19498369 by louisphilippe seguin in ue5-main branch]
#rb Peter.Engstrom
#ROBOMERGE-AUTHOR: john.barrett
#ROBOMERGE-SOURCE: CL 19427330 via CL 19427826 via CL 19432275 via CL 19436672 via CL 19436780
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)
[CL 19442403 by john barrett in ue5-main branch]
#ROBOMERGE-OWNER: brian.bekich
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19380467 via CL 19380482 via CL 19380489 via CL 19381971 via CL 19394950 via CL 19395258
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19402923 by brian bekich in ue5-main branch]
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.
#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147839 by marc audy in ue5-main branch]
* ActorComponent's that support the registered list can now replicate their subobjects using the new method even if their owner actor does not support the new list.
#jira UE-123417
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 19071530 via CL 19086459 via CL 19086590 via CL 19088150
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19131011 by louisphilippe seguin in ue5-main branch]
Removed sanity tag from property retirements, removed validation from test builds
#rb ryan.gerleve
#ROBOMERGE-OWNER: brian.bekich
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 18938341 via CL 18938574 via CL 18938681 via CL 18940507 via CL 18940775
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18940783 by brian bekich in ue5-main branch]
* Actors and ActorComponents can now replicate subobjects by registering them via AddReplicatedSubObject instead of overriding the ReplicateSubObjects method.
* Their bReplicateUsingRegisteredSubObjectList flag needs to be enabled for the list to be used.
* When registering subobjects you can pass a ELifetimeCondition to choose on which connection the object will be replicated to.
#jira UE-132890, UE-123417, UE-123417
#rb Ryan.Gerleve, Mattias.Hornlund, Brian.Bekich, Marc.Audy
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 18922440 via CL 18924803 via CL 18925242 via CL 18926878 via CL 18928347
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)
[CL 18928681 by louisphilippe seguin in ue5-main branch]