Skip to content

Configuration

Terro Fergius edited this page Aug 24, 2026 · 5 revisions

Configuration

Configuration sits in two places. Global settings live in Project Settings → Plugins → Asset Standards Validator and cover the whole project: where to scan, what to skip, how much to log. The rules themselves live in UASVCheckerConfig assets, one or more of them, each holding its own validators and triggers.

DataAsset setup

A UASVCheckerConfig asset decides what gets checked and when. You get one without asking: on first run the plugin writes Content/Data/DA_ASV_AllarStyleGuide, with all six validators in it and a conservative set of checks on.

Tip: Open DA_ASV_AllarStyleGuide in the Content Browser and expand any validator to see what it can check.

The checker config asset with its 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

Open the config asset

Double-click Content/Data/DA_ASV_AllarStyleGuide in the Content Browser. If it is not there yet, run one validation and the plugin will write it.

The validators are already in it

All six are present. Expand one to configure it.

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

Turn checks on

Most checks ship off. That is deliberate: switching everything on for a project with history buries you in results nobody reads. Turn them on in groups, as the team agrees on each convention.

To turn on Blueprint variable checks:

  1. Expand ASVValidator_Blueprint
  2. Tick bCheckBoolPrefix so booleans have to start with b
  3. Tick bCheckPascalCase so variable names have to be PascalCase

To give your own asset type a prefix, say GA_ for Gameplay Abilities:

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

Validators Reference lists every property and which rules ship off.

Triggers

The auto-created config already has four triggers on, so assets get checked as you save, create and rename them. Under Triggers you can add the rest or clear the ones you do not want.

Trigger class When it fires In the default config
ASVTrigger_OnSave An asset is saved on
ASVTrigger_OnAssetCreated A new asset is created on
ASVTrigger_OnAssetRenamed An asset is renamed on
ASVTrigger_Manual You ask for it, from the panel or the Tools menu on
ASVTrigger_OnStartup The editor opens. Runs a full scan. off
ASVTrigger_OnPIE Play In Editor starts. Runs a full scan, and reports only: it does not stop Play. off
ASVTrigger_PreBeginPIE Just before Play starts, while the editor world is still whole. For level and world checks. not added

Filters

Under Filters you can narrow what this config covers:

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

That is the whole setup

Every ASVCheckerConfig asset in the project is found on its own. There is no registration step and no setting to point at one. If bEnabled is ticked, the next run uses it.

Tip: Several configs can live side by side, one for art with the texture rules, another for Blueprints only. They all run. Watch the path filters, though: two configs over the same folder check every asset in it twice.

Global Settings reference

Project Settings → Plugins → Asset Standards Validator. Written to Config/DefaultAssetStandardsValidator.ini, so it belongs in source control.

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 Opens the panel after a run started by Validate Now, Validate Folder or Run Full Audit. Turn it off if you live in the Content Browser and read the badges there. Open in Standards Validator and the Tools menu still open the panel either way, and when the panel is already open its results refresh quietly instead of grabbing 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, for instance /Game/Characters/SK_Hero. For the handful of assets that break the rules on purpose. Right-click an asset and use Add to Ignore List to fill this without editing it by hand.
IgnoreFolders TArray<FString> Empty Folders skipped along with everything under them, for instance /Game/ThirdPartyArt. Right-click a folder and use Ignore This Folder to add one.

Content Browser

Property Type Default Description
bShowAssetBadges bool true Badge on asset thumbnails when something was found, coloured by the worst severity on that asset. Turn it off if overlays cost you frames on a very large project.
bShowFolderBadges bool true Badge on a folder when something inside it has a P0 or P1. Needs UE 5.3 or newer; on 5.0 to 5.2 it does nothing.

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

The Naming and Folder validators both take a ClassRules array of FASVClassRule. A rule overrides the built-in defaults for one asset type.

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 A class picker. Matches assets whose parent class is this one or anything below it, which is what you want 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: a custom actor class

Say you have MyEnemy extending Character, and those assets should be called NPC_Something and live 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

Everything the CI commandlet takes (-run=ASVCommandlet):

Argument Default Description
-severity=P0 P0 Exit code 1 when anything at this severity or worse is found. Takes P0, P1, P2, P3. Leaving it out is not the same as switching failure off: an unset or unrecognised value falls back to P0, so a P0 violation still fails the run.
-Root=/Game/Content from GlobalSettings Root path(s) to scan, comma-separated. Overrides the ScanRoots setting.
-checkers=Name1,Name2 all enabled Run only these checker configs, by name, comma-separated. -all forces every one of them.
-MaxAssets=1000 unlimited Stop after this many assets, so a huge project cannot blow the CI timeout.
-format=html none csv, json or html. Nothing is exported without it, and it does nothing without -output.
-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 Writes JSON straight to this file. Older way of doing it; -format with -output is better.

Reports covers the export formats and the exit codes.

Clone this wiki locally