Struggling to keep track of name/string values in @UnrealEngine for your game logic? Need a lightweight way to standardise those tags? Check out Gameplay Tags!
Any added tag can be viewed from the Gameplay Tags window in Project Settings. Any tag that you add will be stored centrally, promoting reuse and will prevent you (or your team) from any pesky spelling mistakes. You can even store them in separate .ini files!
If later, you decide "Nah, that was a terrible name!", you can just rename the tag, and let the system redirect any assets using the old tag to the new one!
Now when using a tag, it's as easy as selecting it from the drop down list!
Tags are hierarchical, meaning you can check if one tag is the child of another, like so:
Most use the "Gameplay Tag" type, however a special "Gameplay Tag Container" type allows you to specify multiple tags at once.
There's also useful stuff like tag queries:
And one of the best features? You can see what assets are referencing your tags!
You might be asking? Alex, surely there's a performance hit in using these? And I would say nope, as they are just a wrapped struct around the Name type (which don't compare strings).
In fact, if you're currently using strings instead of Gameplay Tags or Names, I'd urge you to start using Gameplay Tags instead. String comparisons are a killer for performance!
1. Create an editor utility BP using the EditorUtilityToolMenuEntry class. This BP will allow us to specify where our button is created, its labels, and its behaviour. There's a little more functionality, but we'll focus on toolbar buttons for now.
2. Set the name and label of your button, and if making a toolbar extension, set the entry type to "Tool Bar Button"
Don't know what #UE4's Asset Registry is? Wondering how to query asset data _without_ the cost of loading that asset?! Well, look no further, time for a #UETips tweetorial!
The Asset Registry caches metadata about assets under the hood of UE, and can be used to query this metadata without loading assets.
The editor uses it for gathering references, data validation, the content browser's advanced search syntax (linked), etc. docs.unrealengine.com/en-US/Engine/C…
However, the Asset Registry can be used at runtime! When your game is cooked, asset registry data is serialised with your packages; when a package is mounted, the asset registry will load that data.
In fact, Robo Recall uses the asset registry to query packaged mods!
Ever wondered how to define your own Data Validation rules with Editor Utility Blueprints? Here's an example to validate that material asset names are prefixed with "M_".