UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NativeGameplayTags.h File Reference
#include "Containers/Set.h"
#include "Containers/UnrealString.h"
#include "CoreMinimal.h"
#include "CoreTypes.h"
#include "GameplayTagContainer.h"
#include "GameplayTagsManager.h"
#include "Templates/UnrealTemplate.h"
#include "UObject/NameTypes.h"

Go to the source code of this file.

Classes

class  FNativeGameplayTag
 

Namespaces

namespace  UE
 
namespace  UE::GameplayTags
 
namespace  UE::GameplayTags::Private
 

Macros

#define UE_DECLARE_GAMEPLAY_TAG_EXTERN(TagName)   extern FNativeGameplayTag TagName;
 
#define UE_DEFINE_GAMEPLAY_TAG_COMMENT(TagName, Tag, Comment)   FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(Comment), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG_COMMENT can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG_COMMENT in the private .cpp");
 
#define UE_DEFINE_GAMEPLAY_TAG(TagName, Tag)   FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(""), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG in the private .cpp");
 
#define UE_DEFINE_GAMEPLAY_TAG_STATIC(TagName, Tag)   static FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(""), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG_STATIC can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG in the private .cpp");
 
#define UE_INCLUDE_NATIVE_GAMEPLAYTAG_METADATA   WITH_EDITOR && !UE_BUILD_SHIPPING
 

Enumerations

enum class  ENativeGameplayTagToken { PRIVATE_USE_MACRO_INSTEAD }
 

Functions

constexpr bool UE::GameplayTags::Private::HasFileExtension (const char *File)
 

Macro Definition Documentation

◆ UE_DECLARE_GAMEPLAY_TAG_EXTERN

#define UE_DECLARE_GAMEPLAY_TAG_EXTERN (   TagName)    extern FNativeGameplayTag TagName;

Declares a native gameplay tag that is defined in a cpp with UE_DEFINE_GAMEPLAY_TAG to allow other modules or code to use the created tag variable.

◆ UE_DEFINE_GAMEPLAY_TAG

#define UE_DEFINE_GAMEPLAY_TAG (   TagName,
  Tag 
)    FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(""), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG in the private .cpp");

Defines a native gameplay tag with no comment that is externally declared in a header to allow other modules or code to use the created tag variable.

◆ UE_DEFINE_GAMEPLAY_TAG_COMMENT

#define UE_DEFINE_GAMEPLAY_TAG_COMMENT (   TagName,
  Tag,
  Comment 
)    FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(Comment), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG_COMMENT can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG_COMMENT in the private .cpp");

Defines a native gameplay tag with a comment that is externally declared in a header to allow other modules or code to use the created tag variable.

◆ UE_DEFINE_GAMEPLAY_TAG_STATIC

#define UE_DEFINE_GAMEPLAY_TAG_STATIC (   TagName,
  Tag 
)    static FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, Tag, TEXT(""), ENativeGameplayTagToken::PRIVATE_USE_MACRO_INSTEAD); static_assert(UE::GameplayTags::Private::HasFileExtension(__FILE__), "UE_DEFINE_GAMEPLAY_TAG_STATIC can only be used in .cpp files, if you're trying to share tags across modules, use UE_DECLARE_GAMEPLAY_TAG_EXTERN in the public header, and UE_DEFINE_GAMEPLAY_TAG in the private .cpp");

Defines a native gameplay tag such that it's only available to the cpp file you define it in.

◆ UE_INCLUDE_NATIVE_GAMEPLAYTAG_METADATA

#define UE_INCLUDE_NATIVE_GAMEPLAYTAG_METADATA   WITH_EDITOR && !UE_BUILD_SHIPPING

Enumeration Type Documentation

◆ ENativeGameplayTagToken

Enumerator
PRIVATE_USE_MACRO_INSTEAD