Data Types

TSharedRef cannot be instantiated as a field with MakeShared. Not reliable.

UStructs are smaller than UObjects, but have some limitations

  • Don't work with interfaces
  • Don't work wtih TSubclassOf
  • Not garbage collected (must manage own references)
  • No blueprint callable functions
  • Not isntanced

When should we use UObject vs UStruct vs plain old structs?
When to use UProperty vs TWeakobjectPtr vs TSharedPtr/Ref
#todo figure this out and document it