July 8, 2020
(Warning) The following documentation describes the process of defining rules using the legacy JSON format. This format has been deprecated in favor of rules specified in standard Engine config files (INI format) to reduce context-switching and to take advantage of the native Engine config system. Config-based rules can be specified in the Prefixed section of the Project Settings menu in the same manner as other settings. Legacy rules should be migrated to the new config-based format to avoid disruption. Support for legacy rules will be removed in Unreal Engine 5.4. To automate the migration process, use the migration tool provided at Tools > Prefixed > Migrate Legacy Rules in the Unreal Engine Editor.
While the Unrealistic Style Guide will cover the naming of most standard Engine assets, it does not handle project- or plugin-specific assets. Fortunately, Prefixed allows you to easily define your own asset naming rules or tweak pre-existing rules to fit your needs.
You can define as many or as few rules as you would like in
.prefix files, which should use JSON format.
The two required elements for a rule are a
class and a
class is the type of asset that we want to define a rule for. For C++ classes, use the core class name without any modifiers. For example:
For Blueprint classes, just use the full class name as it appears in Editor.
prefix is usually a short combination of letters that hints at the type of asset it represents. For example:
Prefixed does not prevent you from defining rules with conflicting or overlapping prefixes. It is up to you to make sure that each asset type has a unique prefix.
There are also several optional elements for a rule, including
suffix and fields for deprecated modifiers.
suffix is optional. It should not be used as a substitute for a unique asset type prefix. Instead, it should be used to clarify sub-types of an asset type. For example, all Textures should have the same prefix (e.g.
T_), but depending on the type of texture it is (diffuse, alpha, metallic, etc.) it should have an appropriate suffix (e.g.
dep_suffixes fields, which should be arrays of strings, may be used to specify prefixes or suffixes that have been deprecated but may still exist on your assets. For example, if all of your static meshes have the
S_ prefix but should now have the
SM_ prefix, you can indicate this in the rule and the linter will automatically pull out the deprecated prefix when renaming.
Below is what the rule would look like if you wanted subclasses of Character to have the prefix
Keep in mind that newer rules will override older rules. This means that even if you have Engine-wide rule that Character's should have a
CH_ prefix, you can override that in a project rule file that sets the prefix to
You do not need to restart the Editor every time you add, delete, or modify a naming rule. Prefixed detects these changes and prompts you to reload the rule set.
Click the option to
Update Rule Set to bring the Editor rule set up to date.