Script Catalog
All utility scripts included in the AgentUX distribution. Each script reads configuration from config.yaml and supports CLI arguments for path overrides.
On This Page
- Overview
- Asset Tools
- Fab Tools
- Fab Cataloger
- Safety Knowledge
- Demos
- Workflow Demos
- Requirements
- Configuration
Overview
AgentUX ships with Python scripts organized under the Scripts/ directory. These cover asset pipeline automation, Fab library management, safety knowledge extraction, and runnable demo showcases. All scripts that accept file paths resolve them from config.yaml or CLI arguments — no hardcoded paths.
AgentUX/
├── Scripts/
│ ├── asset_tools/ # Asset scanning & showcase
│ ├── fab_tools/ # Fab inventory classification
│ ├── fab_cataloger/ # Automated Fab batch processing
│ ├── extract_safety_knowledge.py
│ ├── curate_safety_knowledge.py
│ └── import_safety_knowledge.py
├── Demos/ # Showcase demos
│ └── Workflows/ # 15 workflow examples
└── install.py # Post-download installer Asset Tools
Scripts for scanning project assets into Neo4j and generating showcase levels. Located in Scripts/asset_tools/.
scan_ue_project.py — UE Project Asset Scanner
Scans an open UE project's Asset Registry via the AgentUX WebSocket API and ingests assets into Neo4j as FabAsset nodes with full metadata (class, disk size, triangles, materials, LODs).
python Scripts/asset_tools/scan_ue_project.py --project-name "MyProject"
python Scripts/asset_tools/scan_ue_project.py --project-name "MyProject" --class-filter StaticMesh Requires: Running UE Editor with AgentUX, Neo4j, requests, websockets
scan_usd_assets.py — OpenUSD Asset Scanner
Scans a directory of OpenUSD files (.usd, .usda, .usdc, .usdz) and ingests them into Neo4j. Complements the UE project scanner for USD-based asset libraries.
python Scripts/asset_tools/scan_usd_assets.py --base-path /path/to/usd/assets
python Scripts/asset_tools/scan_usd_assets.py --base-path /assets --clean --dry-run Requires: Neo4j, requests. Optional: pxr (OpenUSD Python) for metadata extraction
showcase_assets.py — Asset Showcase Generator
Queries Neo4j for scanned assets, groups them by name affinity, sorts by bounding volume, and spawns them in the UE editor as a walkable showcase grid for level designers.
python Scripts/asset_tools/showcase_assets.py --project-name "QuixelTrees"
python Scripts/asset_tools/showcase_assets.py --project-name "MyProject" --max-assets 50 --dry-run Requires: Running UE Editor with AgentUX, Neo4j, requests
Fab Tools
Scripts for classifying and organizing Fab library downloads into UE category projects. Located in Scripts/fab_tools/.
classify_fab.py — Fab Inventory Classifier
Reads a Fab inventory JSON file and classifies each pack into category projects (QuixelTrees, MedievalFantasy, SciFiEnvironments, etc.) based on seller, title, and listing type.
python Scripts/fab_tools/classify_fab.py --inventory-path /path/to/FabInventory.json Config key: fab.inventory_path
create_fab_projects.py — Category Project Creator
Creates one UE project directory per category (with .uproject file and Content/ folder) at the configured catalog root. Projects are engine-version-aware via config.
python Scripts/fab_tools/create_fab_projects.py --catalog-dir /path/to/FabCatalog Config key: fab.catalog_dir
gen_fab_guide.py — Download Guide Generator
Generates a FAB_DOWNLOAD_GUIDE.md that maps every Fab pack to its target category project. Use the guide to download packs into the correct project via the Epic Games Launcher.
python Scripts/fab_tools/gen_fab_guide.py --inventory-path /path/to/FabInventory.json --catalog-dir /path/to/FabCatalog Config keys: fab.inventory_path, fab.catalog_dir
Fab Cataloger
Automated batch processing package for Fab library sync and cataloging. Located in Scripts/fab_cataloger/.
The Fab Cataloger automates the full workflow: launch UE editor, sync Fab library, export inventory, then process packs one-by-one with configurable cooldown gaps. It manages editor lifecycle, WebSocket connections, and Neo4j ingestion.
Quick Start
# Full run: sync library + catalog all packs
python Scripts/fab_cataloger/sync_and_catalog.py --sync-project /path/to/Project.uproject
# Sync only (export inventory, don't catalog)
python Scripts/fab_cataloger/sync_and_catalog.py --sync-project /path/to/Project.uproject --sync-only
# Catalog from existing inventory (skip sync)
python Scripts/fab_cataloger/sync_and_catalog.py --skip-sync
# Limit to 5 packs with 3-minute cooldown
python Scripts/fab_cataloger/sync_and_catalog.py --sync-project /path/to/Project.uproject --limit 5 --cooldown-min 180 Configuration
The cataloger reads from config.yaml under fab.cataloger:
fab:
cataloger:
catalog_root: /path/to/FabCatalog
ue_root: /path/to/UnrealEngine Requires: UE Editor, Neo4j, requests, websockets
Safety Knowledge
Scripts for extracting and importing UE engine safety assertions into Neo4j. Located in Scripts/.
extract_safety_knowledge.py
Parses UE engine source code for check(), checkf(), and ensure() assertions, outputting structured JSON with file locations and assertion text.
python Scripts/extract_safety_knowledge.py --engine-root /path/to/UnrealEngine curate_safety_knowledge.py
Auto-generates remediation text for extracted assertions using a two-tier curation system. Supports dry-run mode for preview.
python Scripts/curate_safety_knowledge.py --dry-run import_safety_knowledge.py
Creates Neo4j :Assertion and :UnsafeState nodes from extracted JSON, linking them to source files and handlers.
python Scripts/import_safety_knowledge.py --input safety_knowledge.json Requires: Neo4j, requests
Demos
Pre-built showcase demos demonstrating AgentUX capabilities. Located in Demos/. All demos extend demo_base.py and require a running UE Editor with AgentUX.
| Demo | Description |
|---|---|
demo_01_gallery.py | Static museum gallery — pedestals, materials, cinematic lighting |
demo_02_park.py | PCG environment — procedural trees, rocks, ground cover, spline fence |
demo_03_machine.py | Blueprint-driven kinetic sculpture with Timeline animation |
demo_04_tracking_shot.py | Multi-camera cinematic sequence with keyframed motion |
demo_05_render.py | Movie Render Queue output — renders cinematic to video |
demo_06_showcase.py | Master sequence demo reel with fade transitions |
demo_07_lyra_weapon_forge.py | Custom Lyra weapon creation — duplication, modification, placement |
demo_safety.py | Safety guards demonstration — two-layer protection system |
# Run a demo (UE Editor must be running with AgentUX)
python Demos/demo_01_gallery.py Workflow Demos
Reusable workflow examples demonstrating common automation patterns. Located in Demos/Workflows/. Each targets stock UE templates (Blank, Third Person, First Person, Top Down, Vehicle).
| Script | Description |
|---|---|
wf01_batch_scene.py | Batch actor spawning in structured grid with layers |
wf02_material_pipeline.py | PBR material creation, parameters, compilation |
wf03_lighting_rig.py | 3-point lighting + PostProcessVolume |
wf04_pcg_scatter.py | Procedural scatter with randomized transforms |
wf05_asset_audit.py | Project scan, asset classification reporting |
wf06_blueprint_generator.py | Health/damage system Blueprint with functions |
wf07_cinematic_pipeline.py | LevelSequence camera flythrough |
wf08_blueprint_template.py | Template bundling + Pattern Store |
wf09_dependency_analysis.py | Cross-asset dependency tracing |
wf10_version_migration.py | Multi-version API comparison via GraphRAG |
wf11_third_person_combat.py | Combat system with components and variables |
wf12_collectible_system.py | Collectible Blueprint + circular scatter |
wf13_arena_spawner.py | Multi-blueprint arena encounter setup |
wf14_checkpoint_course.py | Figure-8 checkpoint course + camera flythrough |
wf15_strategy_units.py | 3x3 formation grid with unit types |
# Run a workflow demo
python Demos/Workflows/wf01_batch_scene.py Requirements
| Dependency | Used By | Install |
|---|---|---|
| Python 3.10+ | All scripts | python.org |
requests | Asset tools, Fab cataloger, safety scripts | pip install requests |
websockets | Demos, workflows, scan_ue_project | pip install websockets |
| Neo4j 5.x | Asset tools, safety scripts, Fab cataloger | neo4j.com/download |
pyyaml | Config loader (all scripts) | pip install pyyaml |
Install all script dependencies at once:
pip install -r requirements.txt Configuration
All scripts read settings from config.yaml via the GraphRAG config_loader. Copy config.dist.yaml to config.yaml and set your paths:
# config.yaml — key settings for scripts
fab:
inventory_path: /path/to/FabInventory.json
catalog_dir: /path/to/FabCatalog
cataloger:
catalog_root: /path/to/FabCatalog
ue_root: /path/to/UnrealEngine
neo4j:
uri: bolt://localhost:7687
user: neo4j
password: your-password CLI arguments always override config.yaml values. See Configuration Guide for full reference.