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

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.

DemoDescription
demo_01_gallery.pyStatic museum gallery — pedestals, materials, cinematic lighting
demo_02_park.pyPCG environment — procedural trees, rocks, ground cover, spline fence
demo_03_machine.pyBlueprint-driven kinetic sculpture with Timeline animation
demo_04_tracking_shot.pyMulti-camera cinematic sequence with keyframed motion
demo_05_render.pyMovie Render Queue output — renders cinematic to video
demo_06_showcase.pyMaster sequence demo reel with fade transitions
demo_07_lyra_weapon_forge.pyCustom Lyra weapon creation — duplication, modification, placement
demo_safety.pySafety 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).

ScriptDescription
wf01_batch_scene.pyBatch actor spawning in structured grid with layers
wf02_material_pipeline.pyPBR material creation, parameters, compilation
wf03_lighting_rig.py3-point lighting + PostProcessVolume
wf04_pcg_scatter.pyProcedural scatter with randomized transforms
wf05_asset_audit.pyProject scan, asset classification reporting
wf06_blueprint_generator.pyHealth/damage system Blueprint with functions
wf07_cinematic_pipeline.pyLevelSequence camera flythrough
wf08_blueprint_template.pyTemplate bundling + Pattern Store
wf09_dependency_analysis.pyCross-asset dependency tracing
wf10_version_migration.pyMulti-version API comparison via GraphRAG
wf11_third_person_combat.pyCombat system with components and variables
wf12_collectible_system.pyCollectible Blueprint + circular scatter
wf13_arena_spawner.pyMulti-blueprint arena encounter setup
wf14_checkpoint_course.pyFigure-8 checkpoint course + camera flythrough
wf15_strategy_units.py3x3 formation grid with unit types
# Run a workflow demo
python Demos/Workflows/wf01_batch_scene.py

Requirements

DependencyUsed ByInstall
Python 3.10+All scriptspython.org
requestsAsset tools, Fab cataloger, safety scriptspip install requests
websocketsDemos, workflows, scan_ue_projectpip install websockets
Neo4j 5.xAsset tools, safety scripts, Fab catalogerneo4j.com/download
pyyamlConfig 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.