Description

Users can obtain a FGameplayTag reference by calling FGameplayTag::RequestGameplayTag(TagName) passing in a path like MyCategory.MyGameplayTag.

Users can rename INI-defined tags in the editor via the Gameplay Tag Manager in project settings by right clicking a tag and choosing Rename. This results in a +GameplayTagRedirects entry in DefaultGameplayTags.ini. Thanks to this redirect assets will properly use the new gameplay tag path.

Code that still calls FGameplayTag::RequestGameplayTag() with the old tag name will fail to resolve the renamed tag. FGameplayTag::RequestGameplayTag() should take into account tag redirects so that renaming a gameplay tag in the editor doesn't result in code being unable to resolve it.

Steps to Reproduce

Repro steps:

  • Create a gameplay tag in editor Test.MyTag
  • In code, like AMyActor::BeginPlay(), resolve the tag with FGameplayTag::RequestGameplayTag("Test.MyTag");
  • Print out the tag's ToString() and when starting play, observe that it succeeds.
  • In editor, rename the tag to Test.MyRenamedTag
  • Observe: When starting play, it fails to print the renamed tag's name but "None" instead. This is because the gameplay tag could not be resolved.
  • Expected: It should print the renamed tag's name, RequestGameplayTag() should resolve to the renamed tag.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-194640 in the post.

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Target Fix5.4
Fix Commit28223828
Main Commit28223849
CreatedSep 6, 2023
ResolvedOct 2, 2023
UpdatedOct 3, 2023