Skip to content

Unreal API mapping

Class names mirror Unreal's Gameplay Tags module; methods are idiomatic camelCase. The Unreal-style class names are exported as aliases, so FGameplayTag and GameplayTag are the same class.

ConceptUnrealgameplay-tags
TagFGameplayTagGameplayTag (alias FGameplayTag)
Tag setFGameplayTagContainerGameplayTagContainer (alias FGameplayTagContainer)
QueryFGameplayTagQueryGameplayTagQuery (alias FGameplayTagQuery)
Query expressionFGameplayTagQueryExpressionGameplayTagQueryExpression (alias FGameplayTagQueryExpression)
RegistryUGameplayTagsManagerGameplayTagsManager (alias UGameplayTagsManager)

Common calls

Unrealgameplay-tags
FGameplayTag::RequestGameplayTag(Name)requestGameplayTag(name)
Tag.MatchesTag(Other)tag.matchesTag(other)
Tag.MatchesTagExact(Other)tag.matchesTagExact(other)
Tag.GetTagName()tag.getTagName()
Container.HasTag(Tag)container.hasTag(tag)
Container.HasTagExact(Tag)container.hasTagExact(tag)
Container.HasAny(Other) / HasAll(Other)container.hasAny(other) / container.hasAll(other)
Container.Filter(Other) / FilterExact(Other)container.filter(other) / container.filterExact(other)
Container.AddTag(Tag) / RemoveTag(Tag)container.addTag(tag) / container.removeTag(tag)
UGameplayTagsManager::Get()GameplayTagsManager.get()
Manager.RequestGameplayTagContainer(Strings)requestGameplayTagContainer(strings)
Manager.AddNativeGameplayTag(Name)addNativeGameplayTag(name)
Manager.RequestGameplayTagParents(Tag)tag.getGameplayTagParents()
Manager.RequestGameplayTagChildren(Tag)manager.requestGameplayTagChildren(tag)
FGameplayTagQuery::MakeQuery_MatchAnyTags(Tags)GameplayTagQuery.makeQueryMatchAnyTags(tags)
FGameplayTagQuery::BuildQuery(Expr)GameplayTagQuery.buildQuery(expr)
Query.Matches(Container)query.matches(container)

Data formats

Dictionary row types keep Unreal's field casing (Tag, DevComment, bAllowNonRestrictedChildren, OldTagName, NewTagName) because they map to Unreal's serialized structs. stringifyGameplayTagDictionary(dict, "ini") emits DefaultGameplayTags.ini-compatible text, and parseGameplayTagDictionary(text, "ini") reads it back.

Intentional differences

  • Methods are camelCase only — there are no HasTag-style method aliases.
  • UBlueprintGameplayTagLibrary is not reproduced; its members are thin wrappers over the container and query methods listed above.
  • requestGameplayTagContainer(strings, errorIfNotFound) drops Unreal's out-parameter form.
  • Empty statics (emptyContainer, emptyQuery) return a fresh instance per access instead of a shared mutable global.