You are viewing documentation for v1.1. Switch to current version โ†’

๐Ÿ”Ž Property Path Helper

Short Description

Helpers for robust property path handling and matching across generated struct names.

Long Description

GorgeousPropertyPath utilities help when working with dotted property paths and UE-generated struct suffixes. They provide canonicalization, matching semantics that ignore generated suffixes, and helpers to resolve FProperty pointers by a path segment.

๐Ÿš€ Features

  • Strip UE-generated struct suffixes from names.
  • Find properties by authored name or canonical segment.
  • Compare dotted property paths with generated suffix tolerance.

StripGeneratedStructSuffix

Removes UE-generated suffix patterns (e.g., _1234_abcdef...) from struct or property names to recover a stable base identifier.

Parameter Name Type Description
Name FString The name to canonicalize.
FString Base = GorgeousPropertyPath::StripGeneratedStructSuffix(TEXT("MyStruct_0_abcdef0123456789abcdef0123456789"));

GetPreferredPropertySegment

Returns the best human-authored segment for a property (prefers GetAuthoredName() and falls back to the internal name), then strips generated suffixes.

Parameter Name Type Description
Property const FProperty* Property pointer to inspect.
FString Segment = GorgeousPropertyPath::GetPreferredPropertySegment(SomeProperty);

DoesPropertySegmentMatch

Compares a property against a path segment, taking generated suffixes and authored names into account for robust matching.

Parameter Name Type Description
Property const FProperty* Property to compare.
Segment FString Path segment to match.
bool bMatch = GorgeousPropertyPath::DoesPropertySegmentMatch(SomeProperty, TEXT("myField"));

FindConstPropertyBySegment / FindPropertyBySegment

Searches a UStruct for a property matching the supplied segment using the tolerant matching rules above. Returns const FProperty* or FProperty* respectively.

Parameter Name Type Description
CurrentStruct UStruct* Struct to search in.
Segment FString Path segment to locate.
const FProperty* Found = GorgeousPropertyPath::FindConstPropertyBySegment(SomeStruct, TEXT("Items"));

ArePathStringsEquivalent

Compares two dotted paths segment-by-segment using canonicalized segments (generated suffixes stripped) and case-insensitive comparison.

Parameter Name Type Description
LeftPath FString First dotted path.
RightPath FString Second dotted path.
bool bEqual = GorgeousPropertyPath::ArePathStringsEquivalent(TEXT("Item.0.Value"), TEXT("Item.0.Value"));