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:
- Orphan Assets - Penalty based on orphan-to-total ratio
- Circular Dependencies - Penalty per circular chain
Final Score¶
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¶
- Open Project Settings
- Navigate to Plugins > Asset Atlas
- Find Grading Preset dropdown
- Select your preferred preset
Via Settings Button¶
- Click the ⚙ (gear) button in Asset Atlas header
- 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:
For project-specific rules:
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:
- Find it in
AssetAtlas/Config/Presets/CustomTemplate.json - Copy to your project's Config folder
- Rename and modify values
- The preset appears in the dropdown with
[Custom]suffix
Scoring Details¶
Orphan Penalty Formula¶
Example (Balanced preset): - 50 orphans out of 1000 assets = 5% ratio - Penalty = min(30, 0.05 × 100) = 5 points
Circular Penalty Formula¶
Example (Balanced preset): - 4 circular chains - Penalty = min(20, 4 × 2) = 8 points
Total Score Example¶
Circular Filters¶
These filters reduce false positives in circular detection:
Ignore Self References¶
Skip patterns where an asset references itself:
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¶
- Delete obvious orphans - Test assets, old versions
- Ignore intentional orphans - Splash screens, standalone assets
- Ignore known circulars - Documented, acceptable patterns
Long-term Improvements¶
- Regular cleanup - Weekly scans during development
- Refactor circulars - Use interfaces, events, or restructure
- 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 |