Description

RepLayouts are associated with an Owning Object, which may be a Class, Function, or Struct.
RepLayouts will only be cleaned up when the Owning Object is no longer valid.
RepLayouts hold references to Replicated Properties.
Replicated Properties hold references to Outers.
These Outers are the Owning Objects of RepLayouts.

Therefore, RepLayouts never get cleaned up due to a circular reference.

Steps to Reproduce
  1. Create a new Blueprint class extended from Actor and set bReplicates to true.
  2. Add a replicated property.
  3. Place an instance of the Blueprint in a map.
  4. Load into the map in game and then seamless travel to another map that does not have an instance of the Blueprint.

Expected:

The Blueprint Class would have no references, and would be cleaned up.

Actual:

The Blueprint Class is referenced by an anonymous GCObject (the RepLayout) via its properties.

Have Comments or More Details?

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

6
Login to Vote

Unresolved
ComponentUE - Networking
Affects Versions4.214.22
Target Fix5.5
CreatedFeb 28, 2019
ResolvedAug 27, 2021
UpdatedFeb 23, 2024