-
Notifications
You must be signed in to change notification settings - Fork 0
Validators Reference
All rules, what they check, their defaults, and configuration properties.
Rule IDs are stable identifiers you can use in CI output, JSON reports, and config overrides.
Priority levels: P0 = critical (pipeline-breaking), P1 = major, P2 = minor, P3 = info.
Note: All checks can be toggled per-validator in your
ASVCheckerConfigDataAsset. See Configuration for setup.
Class: UASVValidator_NamingConvention. Checks asset names against Allar's UE5 Style Guide prefix/suffix/pattern conventions. Works via asset registry tags — no asset loading required.

| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
missing_prefix |
Asset name doesn't start with the required prefix for its class (e.g. BP_, T_, SM_) |
On — P0 |
bCheckPrefix, DefaultClassPrefixes, ClassRules
|
Yes — renames asset, adds prefix |
duplicate_prefix |
Prefix is repeated in the name (e.g. BP_BP_MyActor) |
On — P0 |
bCheckPrefix, DefaultClassPrefixes
|
Yes — renames, removes duplicate |
missing_suffix |
Required suffix for the class is absent (e.g. _SC for SoundConcurrency) |
On — P1 |
bCheckSuffix, DefaultClassSuffixes
|
Yes — renames, adds suffix |
missing_allowed_suffix |
World asset doesn't end with one of the allowed level suffixes (_P, _Audio, _Lighting, _Geo, _Gameplay) |
On — P1 |
bCheckAllowedSuffix, ClassRules[].AllowedSuffixes
|
Yes — renames, adds first allowed suffix |
name_pattern_mismatch |
Name doesn't match the regex pattern or contains a disallowed substring (__, -) |
Off — P1 |
bCheckNamePattern, NamePattern, DisallowSubstrings
|
No |
non_ascii_name |
Asset name contains non-ASCII characters (Cyrillic, CJK, etc.) | Off — P1 | bCheckNonAsciiName |
No |
junk_name |
Name contains a placeholder/junk word anywhere (start, middle or end): New, Default, Untitled, Copy, Temp, Test, Example, Template, Placeholder. Matched as a whole word only — Temple or Latest are not flagged |
Off — P1 |
bCheckJunkName, DisallowedNames
|
Yes — strips junk word when a meaningful name remains |
wrong_case |
A word segment in the asset name starts with a lowercase letter (e.g. T_cross instead of T_Cross). Skipped when the prefix itself is missing to avoid double-flagging. |
Off — P2 |
bCheckPascalCase, PascalCasePriority
|
Yes — capitalizes first letter of each name segment |
| Asset type | Prefix | Asset type | Prefix |
|---|---|---|---|
| Blueprint | BP_ |
Widget Blueprint | WBP_ |
| Animation Blueprint | ABP_ |
Function Library | BPL_ |
| Static Mesh | SM_ |
Skeletal Mesh | SK_ |
| Material | M_ |
Material Instance | MI_ |
| Texture / Texture2D | T_ |
Render Target | RT_ |
| Sound Wave | S_ |
Sound Cue | SC_ |
| Niagara System | NS_ |
Particle System | PS_ |
| Data Asset | DA_ |
Data Table | DT_ |
| Enum | E_ |
Struct | F_ |
| World (Level) | L_ |
Level Sequence | SEQ_ |
The full list (80+ types) follows Allar's UE5 Style Guide. Override or extend via DefaultClassPrefixes or ClassRules.
For project-specific asset types (e.g. GA_ for Gameplay Abilities, GE_ for Gameplay Effects, GC_ for Gameplay Cues):
- Open
Content/Data/DA_ASV_AllarStyleGuide - Expand ASVValidator_NamingConvention in the Validators list
- Under Class Rules, click + to add a new entry
- Set Class Picker to the parent class (e.g.
UGameplayAbility) — all Blueprint subclasses will match automatically viaIsChildOf - Set Prefix to
GA_ - Optionally set Suffix or Target Folders
Tip: Use Default Class Prefixes (a key/value map on the same validator) for simpler cases where you only need a class name → prefix mapping and don't need inheritance matching. Example: add
"GameplayEffect_C" → "GE_".
Class: UASVValidator_FolderStructure. Checks that assets are in the expected folder for their class, and that folder names follow path conventions.
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
wrong_folder |
Asset is not under any of the allowed folders for its class (e.g. a Material outside Materials/) |
On — P0 |
bCheckWrongFolder, ClassRules
|
Yes — moves asset to best matching folder |
folder_contains_unicode |
A folder segment contains non-ASCII characters | On — P0 | bCheckUnicode |
No |
folder_not_pascal_case |
A folder segment starts with a lowercase letter or contains underscores | Off — P1 | bCheckPascalCase |
No |
folder_disallowed_name |
A folder has a generic/redundant name: Assets, AssetTypes, Meshes, Textures, Materials
|
Off — P1 |
bCheckDisallowedNames, DisallowedFolderNames
|
No |
folder_in_developers |
Asset is inside /Game/Developers/ — should not ship to production |
On — P2 | bCheckDevelopersFolder |
No |
Note:
folder_disallowed_nameis off by default because many existing projects use generic folder names. Enable it for new projects or when enforcing stricter standards.
To enable: openDA_ASV_AllarStyleGuide→ expand ASVValidator_FolderStructure → setbCheckDisallowedNames = trueand add names toDisallowedFolderNames(e.g. Assets, Meshes, Textures).
Class: UASVValidator_Texture. Reads texture properties from asset registry tags — no full asset load required for most checks.
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
texture_not_power_of_two |
Texture width or height is not a power of two (required for mipmaps and some GPU formats) | Off — P1 | bCheckPowerOfTwo |
No — must reimport at correct size |
texture_exceeds_max_size |
Texture dimension exceeds MaxTextureSize (default 8192) |
On — P0 |
bCheckMaxSize, MaxTextureSize
|
No — must reimport at smaller size |
texture_wrong_srgb |
sRGB flag doesn't match texture type. Color textures (_D, _C, _Albedo) must have sRGB on; data textures (_N, _M, _R, _ARM) must have it off. |
Off — P1 | bCheckSRGB |
Yes — sets correct sRGB flag |
texture_wrong_compression |
Compression settings don't match texture type by suffix (e.g. normal maps should use TC_NormalMap) |
Off — P2 | bCheckCompression |
Yes — sets correct compression |
texture_wrong_group |
LOD group doesn't match expected for texture type (e.g. UI textures should use TEXTUREGROUP_UI) |
Off — P2 |
bCheckTextureGroup, ExpectedTextureGroup
|
Yes — sets correct LOD group |
The texture validator detects type from the asset name suffix:
| Suffix | Type | sRGB | Compression |
|---|---|---|---|
_D, _C, _Albedo, _BC
|
Diffuse / Color | On | BC1/BC3 (default) |
_N, _NRM, _Normal
|
Normal map | Off | TC_NormalMap |
_M, _R, _S, _Mask
|
Mask / Roughness / Metallic | Off | TC_Masks |
_E, _Emissive
|
Emissive | On | BC3 (default) |
_ARM, _ORM
|
Packed channel (AO/R/M) | Off | TC_Masks |
_UI |
UI texture | On | TC_EditorIcon |
Class: UASVValidator_Blueprint. Loads each Blueprint to inspect variable definitions and compilation state. Slower than tag-only checks — prefer OnSave trigger.
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
bp_bool_no_prefix |
Boolean variable doesn't start with b (Allar 3.2.1.3) |
Off — P1 | bCheckBoolPrefix |
Yes — renames, adds b prefix |
bp_bool_is_pattern |
Boolean uses bIs, bHas, bCan pattern — prefer bDead over bIsDead (Allar 3.2.1.4) |
Off — P2 | bCheckBoolIsPattern |
Yes — renames, removes Is/Has/Can
|
bp_var_not_pascal_case |
Variable name doesn't start with an uppercase letter (Allar 3.2.1.2) | Off — P1 | bCheckPascalCase |
Yes — capitalizes first letter |
bp_var_atomic_type_name |
Variable name contains atomic type in the name (e.g. ScoreFloat — use Score instead) (Allar 3.2.1.6) |
Off — P2 | bCheckAtomicTypeName |
No |
bp_var_redundant_context |
Variable name repeats the Blueprint class name (e.g. PlayerHealth in BP_Player) (Allar 3.2.1.5) |
Off — P2 | bCheckRedundantContext |
No |
var_array_not_plural |
TArray variable name is not plural (e.g. Enemy should be Enemies) (Allar 3.2.1.8) |
Off — P2 | bCheckArrayPlural |
No |
var_missing_type_name |
Struct/Object variable doesn't include the type name (e.g. Hit instead of HitResult) (Allar 3.2.1.7) |
Off — P2 | bCheckComplexTypeName |
No |
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
bp_editable_missing_tooltip |
Editable variable (EditAnywhere / EditDefaultsOnly) has no tooltip (Allar 3.2.2.1) | Off — P2 | bCheckEditableTooltips |
No |
bp_editable_missing_range |
Editable numeric variable has no ClampMin/ClampMax range defined (Allar 3.2.2.2) | Off — P3 | bCheckEditableRanges |
No |
bp_var_config_flag |
Variable uses the Config flag — BPs should not use Config (Allar 3.2.8) | Off — P1 | bCheckConfigFlag |
No |
bp_vars_uncategorized |
Blueprint has more than UncategorizedVarThreshold editable variables with no category (Allar 3.2.3) |
Off — P3 |
bCheckUncategorizedVars, UncategorizedVarThreshold (default 5) |
No |
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
blueprint_compile_error |
Blueprint has compilation errors (BS_Error state) | On — P0 | bCheckCompilation |
No |
blueprint_compile_warning |
Blueprint compiles with warnings (BS_UpToDateWithWarnings state) — e.g. deprecated nodes after an engine upgrade | Off — P2 | bCheckCompileWarnings |
No |
Note:
var_array_not_pluralandvar_missing_type_nameare off by default — they produce many false positives on real projects and require the team to adopt strict naming conventions first.
To enable: openDA_ASV_AllarStyleGuide→ expand ASVValidator_Blueprint → setbCheckArrayPluralorbCheckComplexTypeNameto true.
Class: UASVValidator_Mesh. Loads UStaticMesh to inspect collision, LODs, and Nanite settings.
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
mesh_no_collision |
Static mesh has no collision geometry (no simple or complex collision set up) | Off — P1 | bCheckCollision |
No — add collision in mesh editor |
mesh_no_lods |
Mesh above MinTriCountForLOD triangles has only one LOD level |
Off — P2 |
bCheckLODs, MinTriCountForLOD (default 5000) |
No — set up LODs in mesh editor or via auto-LOD |
mesh_nanite_policy |
Mesh Nanite state doesn't match project policy (MustEnable, MustDisable, or AllowAny). Triangle threshold applies for MustEnable. |
Off — P2 |
bCheckNanite, NanitePolicy, MinTriCountForNanite (default 10000) |
Yes — enables or disables Nanite per policy |
Note:
mesh_nanite_policyis off by default. Enable it only when your project has a firm Nanite policy — it will flag every mesh above the triangle threshold that doesn't comply.
To enable: openDA_ASV_AllarStyleGuide→ expand ASVValidator_Mesh → setbCheckNanite = true, chooseNanitePolicy(MustEnable / MustDisable / AllowAny), and optionally adjustMinTriCountForNanite(default 10 000).
Class: UASVValidator_AssetHealth. Checks general asset health — stale redirectors, potentially more in future versions. Reads from the asset registry without loading assets.
| Rule ID | What it checks | Default | Config property | Auto-fix |
|---|---|---|---|---|
stale_redirector |
An ObjectRedirector asset exists at this path — left over from a rename or move that was never cleaned up |
On — P1 | bCheckRedirectors |
Yes — runs Fix Up Redirectors (same as right-click in Content Browser) |
This page is generated from the in-editor documentation. Do not edit it here — edit Plugins/AssetStandardsValidator/Content/Docs/*.html and regenerate.