Skip to content

Grading System

Asset Atlas uses a configurable grading system to calculate your project's health score. Customize thresholds and penalties to match your project's needs.

How Scoring Works

Base Score

Every project starts with 100 points.

Penalties

Points are deducted for:

  1. Orphan Assets - Penalty based on orphan-to-total ratio
  2. Circular Dependencies - Penalty per circular chain

Final Score

Score = 100 - OrphanPenalty - CircularPenalty

Grade Assignment

Grade Score Range
A 90-100
B 80-89
C 70-79
D 60-69
F 0-59

Built-in Presets

Asset Atlas includes four grading presets:

Strict

Best for production-ready projects.

Setting Value
Grade A threshold 90
Orphan max penalty 40
Orphan multiplier 150
Circular max penalty 40
Circular penalty/chain 5
Min chain length 2

Balanced (Default)

Good for most projects during development.

Setting Value
Grade A threshold 90
Orphan max penalty 30
Orphan multiplier 100
Circular max penalty 20
Circular penalty/chain 2
Min chain length 3

Lenient

For early development or prototyping.

Setting Value
Grade A threshold 85
Orphan max penalty 20
Orphan multiplier 50
Circular max penalty 10
Circular penalty/chain 1
Min chain length 4

SampleProject

Optimized for Epic's sample projects (StackOBot, etc.).

Setting Value
Grade A threshold 80
Orphan max penalty 10
Orphan multiplier 30
Circular max penalty 5
Circular penalty/chain 1
Min chain length 4

Selecting a Preset

Via Project Settings

  1. Open Project Settings
  2. Navigate to Plugins > Asset Atlas
  3. Find Grading Preset dropdown
  4. Select your preferred preset

Via Settings Button

  1. Click the (gear) button in Asset Atlas header
  2. This opens Project Settings directly to Asset Atlas

Custom Presets

For advanced users, Asset Atlas supports custom JSON presets.

Location

Custom presets are stored in:

YourPlugin/Config/Presets/YourPreset.json

For project-specific rules:

YourProject/Config/AssetAtlasGradingRules.json

JSON Format

{
  "version": 1,
  "preset": "MyCustomPreset",
  "description": "Custom rules for my project",

  "gradeThresholds": {
    "A": 90,
    "B": 80,
    "C": 70,
    "D": 60
  },

  "orphanPenalty": {
    "maxPenalty": 30,
    "multiplier": 100
  },

  "circularPenalty": {
    "maxPenalty": 20,
    "penaltyPerChain": 2,
    "minChainLength": 3
  },

  "circularFilters": {
    "ignoreSelfReferences": true,
    "ignoreEngineAssets": true,
    "ignoreSoftReferences": true
  }
}

Using the Template

Asset Atlas ships with CustomTemplate.json:

  1. Find it in AssetAtlas/Config/Presets/CustomTemplate.json
  2. Copy to your project's Config folder
  3. Rename and modify values
  4. The preset appears in the dropdown with [Custom] suffix

Scoring Details

Orphan Penalty Formula

OrphanRatio = OrphanCount / TotalAssets
OrphanPenalty = min(MaxPenalty, OrphanRatio × Multiplier)

Example (Balanced preset): - 50 orphans out of 1000 assets = 5% ratio - Penalty = min(30, 0.05 × 100) = 5 points

Circular Penalty Formula

CircularPenalty = min(MaxPenalty, ChainCount × PenaltyPerChain)

Example (Balanced preset): - 4 circular chains - Penalty = min(20, 4 × 2) = 8 points

Total Score Example

Base:      100
Orphan:    -5
Circular:  -8
Final:     87 → Grade B

Circular Filters

These filters reduce false positives in circular detection:

Ignore Self References

Skip patterns where an asset references itself:

A → A  (skipped)

Ignore Engine Assets

Skip chains containing engine paths:

  • /Engine/...
  • /Script/...
  • /Game/Developers/...

Ignore Soft References

Skip chains that are soft/lazy references rather than hard dependencies.

Minimum Chain Length

Only count chains with at least N assets:

  • Length 2: A → B → A (direct mutual)
  • Length 3: A → B → C → A (indirect)
  • Length 4+: Complex chains

Improving Your Score

Quick Wins

  1. Delete obvious orphans - Test assets, old versions
  2. Ignore intentional orphans - Splash screens, standalone assets
  3. Ignore known circulars - Documented, acceptable patterns

Long-term Improvements

  1. Regular cleanup - Weekly scans during development
  2. Refactor circulars - Use interfaces, events, or restructure
  3. Asset organization - Clear naming, folder structure

Realistic Expectations

Project Type Expected Grade
Clean production A (90+)
Active development B (80-89)
Early prototype C (70-79)
Marketplace sample B-C with SampleProject preset

Configuration Dashboard