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.
| Concept | Unreal | gameplay-tags |
|---|---|---|
| Tag | FGameplayTag | GameplayTag (alias FGameplayTag) |
| Tag set | FGameplayTagContainer | GameplayTagContainer (alias FGameplayTagContainer) |
| Query | FGameplayTagQuery | GameplayTagQuery (alias FGameplayTagQuery) |
| Query expression | FGameplayTagQueryExpression | GameplayTagQueryExpression (alias FGameplayTagQueryExpression) |
| Registry | UGameplayTagsManager | GameplayTagsManager (alias UGameplayTagsManager) |
Common calls
| Unreal | gameplay-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. UBlueprintGameplayTagLibraryis 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.