Skip to content

Configuration

Terro Fergius edited this page Jun 5, 2026 · 4 revisions

Configuration

ASV has two configuration layers:

  1. Global Settings — project-wide settings in Project Settings → Plugins → Asset Standards Validator
  2. DataAsset config — per-checker rules, validators, and triggers in UASVCheckerConfig assets

DataAsset setup

The UASVCheckerConfig DataAsset controls what ASV checks and when. The plugin creates one automatically on first run at Content/Data/DA_ASV_AllarStyleGuide with all validators pre-added and conservative defaults. You don't need to create it manually.

Tip: Open DA_ASV_AllarStyleGuide in the Content Browser and expand the validators to see and adjust their settings.

Checker config DataAsset — validators, triggers, and path filters

Naming validator — default class prefix map (BP_, WBP_, ...)

Naming validator — suffix, name pattern, and case sections with priorities

Folder Structure validator — wrong folder, PascalCase, unicode, developers checks

Asset Health, triggers, and asset path filters in the checker config

Step 1 — Open the config asset

Find Content/Data/DA_ASV_AllarStyleGuide in the Content Browser and double-click to open it. If it doesn't exist yet, run a validation once — the plugin creates it automatically on first use.

Step 2 — Validators pre-added

The config already contains all six validators. You don't need to add them — just expand each one to configure:

Validator class What it checks
ASVValidator_NamingConvention Asset naming: prefix, suffix, pattern, junk names
ASVValidator_FolderStructure Folder placement, path format, Developers/ check
ASVValidator_Texture Power-of-two, max size, sRGB, compression, LODGroup
ASVValidator_Blueprint Variable naming, bool prefix, tooltips, compilation
ASVValidator_Mesh Collision, LODs, Nanite policy
ASVValidator_AssetHealth Stale redirectors

Step 3 — Enable and configure checks

Expand each validator to see its properties. The defaults are conservative — most checks are off until you enable them. Toggle flags on, adjust thresholds, add custom class rules.

Example — enable Blueprint variable checks:

  1. Expand ASVValidator_Blueprint
  2. Set bCheckBoolPrefix = true to enforce b prefix on boolean variables
  3. Set bCheckPascalCase = true to enforce PascalCase variable names

Example — add a custom class prefix (e.g. GA_ for Gameplay Abilities):

  1. Expand ASVValidator_NamingConvention
  2. Under Class Rules, click +
  3. Set Class Picker to UGameplayAbility
  4. Set Prefix to GA_

See Validators Reference for all properties and off-by-default rules.

Step 4 — Add triggers

Under Triggers, click + and add the triggers you want to fire automatically:

Trigger class When it fires
ASVTrigger_OnSave Asset saved in the editor
ASVTrigger_OnStartup Editor opens
ASVTrigger_OnAssetCreated New asset created in Content Browser
ASVTrigger_OnAssetRenamed Asset renamed in Content Browser
ASVTrigger_OnPIE Before Play In Editor starts
ASVTrigger_Manual On demand — triggered from the panel or Tools menu

Step 5 — Set filters (optional)

Under Filters, you can limit which assets this config applies to:

Property Effect
AssetPathFilters Only validate assets under these paths
AssetClassFilters Only validate assets of these classes
ExcludePaths Skip assets under these paths

Step 6 — Done. The config is active automatically.

ASV discovers all ASVCheckerConfig DataAssets in the project automatically — no registration step needed. As long as bEnabled is checked on the asset, it will be picked up on the next validation run.

Tip: You can have multiple ASVCheckerConfig assets for different teams or content types — one for art assets with texture rules, another for Blueprints only. All enabled configs run together.

Global Settings reference

Accessed via Project Settings → Plugins → Asset Standards Validator. Stored in Config/DefaultAssetStandardsValidator.ini.

Project Settings, Plugins, Asset Standards Validator (global settings)

Scan

Property Type Default Description
ScanRoots TArray<FDirectoryPath> /Game (implicit) Content roots to scan. Empty = scan /Game only. Add /Game/ProjectName if your content is under a subdirectory.
ExcludeScanRoots TArray<FDirectoryPath> Empty Paths to exclude. Useful for excluding ThirdParty content or engine redirectors.
bRecursiveScan bool true Scan subfolders of each root.
IgnorePaths TArray<FString> Empty Wildcard patterns to skip (e.g. Developers/*, ThirdParty/*).

Output

Property Type Default Description
bOpenMessageLogOnIssues bool false Automatically open the Message Log when violations are found.
bAutoOpenPanel bool true Automatically open the validator panel after a validation run (Validate Selected, Validate Folder, Run Full Audit). Turn off if you work mostly in the Content Browser — explicit actions (Open in Panel, thumbnail/folder badges, the Tools menu) still open the panel. When off and the panel is already open, results are refreshed quietly without stealing focus.
bVerboseLogging bool false Enable verbose logging for all ASV log categories. Useful for diagnosing validation issues.
LogExamplesLimit int32 50 Maximum number of example violations to write to the output log.

Exclude

Property Type Default Description
IgnoreAssets TArray<FString> Empty Exact package paths to skip entirely (e.g. /Game/Characters/SK_Hero). Useful for specific assets that are intentionally non-standard. Can also be toggled via right-click → Ignore Asset in the Content Browser.
IgnoreFolders TArray<FString> Empty Folder paths excluded recursively (e.g. /Game/ThirdPartyArt). All assets under these folders are skipped. Can be toggled via right-click → Ignore Folder in the Content Browser.

Content Browser

Property Type Default Description
bShowAssetBadges bool true Show an orange badge on asset thumbnails when issues are found. Disable if overlays cause slowdown on very large projects.
bShowFolderBadges bool true Show an orange badge on folders when any contained asset has P0/P1 issues. UE 5.3+ only — has no effect on earlier versions.

Batch

Property Type Default Description
MaxBatchSize int32 0 (unlimited) Maximum assets to process per run. Set to e.g. 500 to prevent long hangs on large projects. Validation stops at the limit without error.

Custom class rules

Both the Naming and Folder validators support ClassRules — an array of FASVClassRule that override the built-in defaults for specific asset types.

Folder class rules — World to L_ in Maps, LevelSequence to SEQ_

FASVClassRule fields

Field Description
AssetClassName UE class name to match (e.g. "MyCustomBlueprint"). Exact match.
ClassPicker UClass picker — matches assets whose parent class is this class or a subclass. Use for Blueprint hierarchies.
Prefix Required prefix for this class (Naming validator)
Suffix Required suffix for this class (Naming validator)
AllowedSuffixes Set of allowed suffixes (if any are required, e.g. _P, _Audio for levels)
TargetFolders Allowed folder paths for this class (Folder validator)

Example: custom actor class

Suppose you have a custom class MyEnemy that extends Character. You want assets prefixed NPC_ and located in Characters/Enemies/:

  1. In Naming Convention Validator → ClassRules, add a rule with AssetClassName = "MyEnemy", Prefix = "NPC_"
  2. In Folder Structure Validator → ClassRules, add a rule with AssetClassName = "MyEnemy", TargetFolders = ["/Characters/Enemies"]

Commandlet arguments

Full reference for the CI commandlet (-run=ASVCommandlet):

Argument Default Description
-severity=P0 none (no failure) Exit code 1 if violations at this severity or above exist. Values: P0, P1, P2, P3.
-Root=/Game/Content from GlobalSettings Root path(s) to scan, comma-separated. Overrides the ScanRoots setting.
-checkers=Name1,Name2 all enabled Run only the named checker configs (comma-separated). Use -all to force all.
-MaxAssets=1000 unlimited Stop after this many assets. Useful for CI timeouts on large projects.
-format=html none Export format: csv, json, or html. No export if omitted.
-output=C:/Reports none Directory to write the export. Required when using -format.
-milestone=Sprint-42 empty Optional label embedded in the report header.
-report=report.json none Write JSON to this file path (legacy; prefer -format/-output).

See Reports for full export format documentation and exit code reference.