Unreal Tag Manager


Actor tags are quite common in Unreal engine, there are really useful for instance to filter out actors, in blueprint or pcg graphs.

Compared to Gameplay tags, they are simple strings that you can add or remove from actors ( or components ). This is quite error prone, as a simple typo can break your systems.

This utility widget allows you to create libraries of tags and assign and remove them with just a click.
There is also a system of callbacks, when you assign or remove a tag, an editor utility blueprint can be automatically executed to have custom post processes.


Tag manager location


The utility widget is available as scripted actor action entry, you just need to right click on an actor(s) → Scripted actor actions → Open Tag Manager


By default, the tool will not find any available library and will ask you if you want to create one:


You can create it from here, or you can create one manually by creating a data asset of type “BP_TagLibrary_Base”.



Type of data asset:


Library and tags creation


→ You can save the library anywhere in your content browser


Once the library is created, you can add your tags and their options.

Here are the options for the library and its tags:


Library options:

Tag Prefix: (optional) A string prefix which will be added to any tag value of the library.

Description: (optional) A string that describe the library, it will be displayed as a tooltip on the drop down menu of the libraries selection.

Tags: The list of tags to be assigned to that library.

Hidden: If True, the library will be hidden from the selection menu.

Deprecated: Will turn all the tags of the library to deprecated ( see tag options bellow for more infos ).

Enable Library Callback: Enable the callback which will be run on any of the tags assignation / removal of this library.

Library BPCallback: (optional) The callback blueprint to be executed. It must be of type BP_TagCallback_Base more on that bellow.



Tag Options:

Tag: The actual tag value ( the string which will be used as tag ), library prefix might be added.

TagDescription: (optional) The description of the tag, will be displayed as tooltip.

Deprecated: Will turn the tag deprecated, that means it will still be shown in the list of tags, and can be removed from actors, but not added.

EnableLibraryCallback: If True and a library callback is set, then it will be executed, otherwise the library callback will be skipped for that tag.

EnableTagCallback: If True, it will execute the callback ( if any ) set on that tag. The tag callback will be executed after the library callback ( if any ).

BPCallback: (optional) The callback blueprint to be executed. It must be of type BP_TagCallback_Base more on that bellow.


→ After a library creation, you have to force refresh the tool state by clicking the refresh button:



Example of a tag library and how it will be displayed:



To assign or remove a tag, you just need to select one or multiple actors and click on the entry, it will turn green:


The remove a tag, just click again on the tag entry.

If you select multiple actors, and a tag is partially loaded then it will appear with dark strips:


If you click on a partially assigned tag like that, it will be assigned to the missing actor(s).

The refresh of the state of the tag entries (are they assigned or not on the current selected actors), can be done automatically, or manually with this option:


→ Auto refresh can slow down a bit the editor on massive selection.

You can also select the actors which have this tag assigned, on the whole level.

The right icon allow you to copy the tag’s value in the clipboard (Python plugin is necessary to see the icon, enabled by default on UE 5.4).


Callbacks


On tag assignation or removal, a callback can be executed. To do that, you have to create an editor utility blueprint which derives from the class: BP_TagCallback_Base.


In this blueprint, you have to override the method you need, either “OnTagAssigned” or “OnTagRemoved” ( or both ):


The function has three inputs:

Tag: The struct of the tag with all its infos ( name, prefix, callback etc. )

TagLibrary: The library the assigned or removed tag was stored in.

Actors: An array of UActor, the actors affected by the tag assignation or removal.

You can create any post process you need, for instance here, lets assign “Is Editor Only Actor” checkbox on the tag assignation:


Now in the library, let’s assign that BP callback to the tag “PCG_Biome”:


If you now save and refresh the tags widget, when you assign the tag “PCG_Biome” to an actor, you should see this in the output log:


And indeed the flag will be set accordingly: