The gameplay tag system depends on tags being registered with the global manager as valid in order to correctly read them off disk. Two different issues are combining to cause a confusing ensure and data loss when using an invalid gameplay tag inside a literal BP GameplayTagContainer pin. The ensure is this unhelpful message:
Error: Ensure condition failed: false Engine/Source/Runtime/GameplayTags/Private/GameplayTagsManager.cpp [Line: 1724]
Requested Tag ( was not found. Check tag data table.
The ensure is happening because SGameplayTagContainerGraphPin::ParseDefaultValueData does not correctly parse the default string "(GameplayTags=(()))" which is an alternate way of saying the container is empty. The parsing code needs to be fixed to not ensure on a valid but empty container
However, it's only getting that as a string to parse because the blueprint pin code does an import/export of the container and FGameplayTag::ImportTextItem silently ignores issues with invalid tags and treats them like they are empty. This is a bug because invalid tags loaded in other ways cause load warnings and are passed through.
Error: Ensure condition failed: false Engine/Source/Runtime/GameplayTags/Private/GameplayTagsManager.cpp [Line: 1724]
Requested Tag ( was not found. Check tag data table.
[Inline Frame] UnrealEditor-GameplayTags.dll!UGameplayTagsManager::RequestGameplayTag::__l12::<lambda_1d633abed328596175b95dae05ce725f>::operator()() Line 1724
UnrealEditor-GameplayTags.dll!UGameplayTagsManager::RequestGameplayTag(FName TagName, bool ErrorIfNotFound) Line 1724
UnrealEditor-GameplayTags.dll!FGameplayTag::RequestGameplayTag(const FName & TagName, bool ErrorIfNotFound) Line 1085
UnrealEditor-GameplayTagsEditor.dll!SGameplayTagContainerGraphPin::ParseDefaultValueData() Line 66
UnrealEditor-GraphEditor.dll!SGraphPinStructInstance::GetDefaultValueWidget() Line 95
UnrealEditor-GraphEditor.dll!SGraphPin::Construct(const SGraphPin::FArguments & InArgs, UEdGraphPin * InPin) Line 225
UnrealEditor-GameplayTagsEditor.dll!SGameplayTagGraphPin::Construct(const SGameplayTagGraphPin::FArguments & InArgs, UEdGraphPin * InGraphPinObj) Line 11
[Inline Frame] UnrealEditor-GameplayTagsEditor.dll!SGameplayTagContainerGraphPin::Construct(const SGameplayTagContainerGraphPin::FArguments & InGraphPinObj, UEdGraphPin *) Line 10
[Inline Frame] UnrealEditor-GameplayTagsEditor.dll!RequiredArgs::T1RequiredArgs<UEdGraphPin * &>::CallConstruct(const TSharedRef<SGameplayTagContainerGraphPin,0> &) Line 879
UnrealEditor-GameplayTagsEditor.dll!TSlateDecl<SGameplayTagContainerGraphPin,RequiredArgs::T1RequiredArgs<UEdGraphPin * &>>::operator<<=(const SGameplayTagContainerGraphPin::FArguments & InArgs) Line 1101
UnrealEditor-GameplayTagsEditor.dll!FGameplayTagsGraphPanelPinFactory::CreatePin(UEdGraphPin * InPin) Line 29
UnrealEditor-GraphEditor.dll!FNodeFactory::CreatePinWidget(UEdGraphPin * InPin) Line 236
I am not able to find world outliner how to enable it?
How to achieve HLSL Multiple Render Target in Material blueprints?
Undefined sysmbol: typeinfo for AActor when cross-compile linux dedicated server on windows
What property of the Slider is the image used when dragging?
What properties of the progress bar can be used for drag and drop highlighting?
What method is used to fill polygonal regions when drawing spline mesh at run time?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-109239 in the post.
0 |
Component | UE - Gameplay |
---|---|
Affects Versions | 4.26, 4.27, 5.0-early access |
Target Fix | 5.0-early access |
Created | Feb 23, 2021 |
---|---|
Resolved | Mar 1, 2021 |
Updated | Aug 4, 2023 |