# firaol240/ue5-asset-tracker architecture

> Architecture diagram of the GitHub repository firaol240/ue5-asset-tracker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/firaol240/ue5-asset-tracker
- Repository: https://github.com/firaol240/ue5-asset-tracker

## Overview

UE5AssetTracker is an Unreal Editor plugin for browsing project assets grouped by their top-level /Game folder. An editor user opens its tab from a menu or toolbar command, sees a hierarchical asset list, can refresh it, and can double-click an asset to sync it in the Content Browser. The sampled code shows grouping and presentation, but the grouping is explicitly temporary; author and license fields are displayed but not populated here. Relationships reflect the shown calls and registrations; no README provides additional capabilities.

Main entry points: [`Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTracker.cpp) (Plugin Module), [`Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp) (Asset Tree View), [`Source/UE5AssetTracker/Private/UE5AssetTrackerCommands.cpp`](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTrackerCommands.cpp) (Window Command), [`Source/UE5AssetTracker/Public/AssetGroup.h`](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Public/AssetGroup.h) (Asset Group Data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_editor["Editor Integration"]
  node_module["Plugin Module"]
  node_commands["Window Command"]
  node_style["Slate Style"]
end

subgraph group_discovery["Asset Discovery"]
  node_registry[("Asset Registry")]
  node_grouping["Folder Grouping"]
  node_groupdata["Asset Group Data<br/>[AssetGroup.h]"]
end

subgraph group_presentation["Asset Presentation"]
  node_tree["Asset Tree View"]
  node_row["Tree Row Renderer"]
  node_contentbrowser["Content Browser"]
end

node_user(("Editor User"))
node_editor["Unreal Editor"]

node_user -->|"uses"| node_editor
node_editor -->|"loads plugin"| node_module
node_module -->|"initializes"| node_style
node_module -->|"registers"| node_commands
node_module -->|"registers tab and menus"| node_editor
node_editor -->|"invokes"| node_commands
node_commands -->|"opens tab"| node_module
node_module -->|"builds groups"| node_grouping
node_grouping -->|"queries assets"| node_registry
node_grouping -->|"creates groups"| node_groupdata
node_module -->|"creates and refreshes"| node_tree
node_tree -->|"builds tree from"| node_groupdata
node_tree -->|"generates rows"| node_row
node_tree -->|"syncs selected asset"| node_contentbrowser

click node_module "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTracker.cpp"
click node_commands "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTrackerCommands.cpp"
click node_style "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTrackerStyle.cpp"
click node_grouping "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTracker.cpp"
click node_groupdata "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Public/AssetGroup.h"
click node_tree "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp"
click node_row "https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_module,node_commands,node_style,node_user toneBlue
class node_registry,node_grouping,node_groupdata toneAmber
class node_tree,node_row,node_contentbrowser toneMint
class node_editor toneIndigo
```

## Components

### Editor Integration

- [Plugin Module](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTracker.cpp): `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`
- [Window Command](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTrackerCommands.cpp): `Source/UE5AssetTracker/Private/UE5AssetTrackerCommands.cpp`
- [Slate Style](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTrackerStyle.cpp): `Source/UE5AssetTracker/Private/UE5AssetTrackerStyle.cpp`

### Asset Discovery

- **Asset Registry**
- [Folder Grouping](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/UE5AssetTracker.cpp): `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`
- [Asset Group Data](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Public/AssetGroup.h): `Source/UE5AssetTracker/Public/AssetGroup.h`

### Asset Presentation

- [Asset Tree View](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp): `Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`
- [Tree Row Renderer](https://github.com/firaol240/ue5-asset-tracker/blob/main/Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp): `Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`
- **Content Browser**

### Other components

- **Editor User**
- **Unreal Editor**

## Connections

- Editor User → Unreal Editor: uses
- Unreal Editor → Plugin Module: loads plugin (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Plugin Module → Slate Style: initializes (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Plugin Module → Window Command: registers (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Plugin Module → Unreal Editor: registers tab and menus (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Unreal Editor → Window Command: invokes
- Window Command → Plugin Module: opens tab (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Plugin Module → Folder Grouping: builds groups (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Folder Grouping → Asset Registry: queries assets (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Folder Grouping → Asset Group Data: creates groups (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Plugin Module → Asset Tree View: creates and refreshes (evidence: `Source/UE5AssetTracker/Private/UE5AssetTracker.cpp`)
- Asset Tree View → Asset Group Data: builds tree from (evidence: `Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`)
- Asset Tree View → Tree Row Renderer: generates rows (evidence: `Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`)
- Asset Tree View → Content Browser: syncs selected asset (evidence: `Source/UE5AssetTracker/Private/Slate/SAssetGroupTreeView.cpp`)
