Can't add Gameplay Tag Table List to Project settings if datatable is in a plugin

I have made a custom plugin to Lyra and in order to keep it modular I want to have the plugin in Gameplay Tags added to the main list via a Datatable. It works to link it in the Project Settings “GameplayTags” section. But when I reboot the project the list is still there but the tags are gone from the list… I have to re-add the DT to get them back…

It works if the datatable is located in the “main” folder structure… but not if it is in the plugin folder structure.
I have tried multiple ways of initiating it via the Asset Manager… The most obvious rule to add beeing the GameplayTagsList because that even state; “Base class for storing a list of gameplay tags as an ini list, This is used for both the central list and additional lists”

But it doesn’t work.
Is this an engine bug or am I missing something?
Someone got a clue?

Hi there
I am creating a game feature plugin and I managed to add a custom tag folder for that. I am out of town withou my computer, so I can’t say for sure everything done to make it work, but if you examin shooter core folder, there is a tag folder where you find an ini file. I copied that file and created an equivalent folder in my GF plugin. I recall is something like plugins /game feature /shooter core/ tags. Everytime you add a new tag, make sure to select that new ini file in the tag editor. Now, I am not quite sure where you need to create a reference for that path in your experience set. I can only review what I did early next week.

1 Like

Thank u L.F.A!

U made me think in other directions and I also got some very precise directions from a user named ScoobyDoo over at Unreal Slackers

I shouldn’t use Datatables at all. They are unreliable in plugins.
The correct way of doing it is this:
create a new .ini file in a new folder in your plugin directory named:
Config/Tags/PluginTags.ini
(the name can be of your choosing)

Then in the .ini file you start filling out your tags like this:

[/Script/GameplayTags.GameplayTagsList]
GameplayTagList=(Tag=“MyPlugin.Tag.A”,DevComment=“This tag do A stuff”)
GameplayTagList=(Tag=“MyPlugin.Tag.B”,DevComment=“This tag do B stuff”)

Thats it!

1 Like

Great to know you fixed the issue. And thank you for sharing the solution.

1 Like

I tried this but it does not work. The tags I added to the config file did not appear in the editor project settings.

In case someone else is looking for this solution and its not working, the reason for it is that the path reference of your plugin folder is not added to the UGameplayTagsManager automatically. If you check the source code, this method is only called in CreateAndLoadNewPlugin() when bCanContainContent is true. But when you open your project next time, it is no longer referenced as a search path.
So if you want to add ini files from your plugin for gameplay tags, use this code. I would recommend to put it in StartupModule().

#include "GameplayTagsManager.h"

void FExampleModule::StartupModule()
{
UGameplayTagsManager::Get().AddTagIniSearchPath(FPaths::ProjectPluginsDir() / TEXT("__PluginName__/Config/Tags"));
}

Thanks for sharing this, it works in UE 5.7, but I don’t see this in Lyra’s ShooterCore plugin, do not know how it handles this.