Script Catalog

Python utility scripts shipped in AgentUX Pro. These extend Free primitives with GraphRAG build tooling, multi-project asset scripts, and safety knowledge extraction. Each script reads configuration from config.yaml and supports CLI arguments for path overrides.

On This Page


Overview

AgentUX Pro ships the Scripts/ directory: Python utility scripts covering asset pipeline automation, safety knowledge extraction, GraphRAG build tooling, and more. These scripts extend Free primitives -- Free customers can run every script a Pro customer writes and shares, at zero token cost. All scripts that accept file paths resolve them from config.yaml or CLI arguments; no hardcoded paths. Demo scripts (Demos/) ship with every tier including Free.

The Scripts/ directory is included with Pro; the Community Script library (below) is open to every tier. Compare tiers.

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

Community Scripts

The AgentUX Community Scripts repository on GitHub is a growing collection of user-contributed and officially published scripts. Every tier can run these, and customers can submit their own via pull request for vetting and sharing. We also publish new scripts here for every user.

Runs on Free

Scripts that only use the core editor-control surface. Free customers can run these without any paid tier.

  • project_health_report.py -- Full project health audit (asset counts, naming issues, references)
  • naming_convention_enforcer.py -- Scan and flag assets that violate UE naming conventions
  • batch_material_updater.py -- Bulk-update material parameters across multiple assets
  • blueprint_complexity_audit.py -- Analyze Blueprint graphs for complexity and refactoring candidates
  • level_snapshot_diff.py -- Compare level snapshots and report changes between saves

Scripts that touch PCG, Niagara, Sequencer, Water, MetaSound, Vegetation, MeshPaint, StateTree, or Fab handlers run on Free too, provided the corresponding UE plugin is enabled; those 9 handlers are the only plugin-dependent ones in the 45-handler surface.

Pro Extensions

Scripts that use Pro-tier features: GraphRAG knowledge queries, accumulated session experience, safety knowledge, and the Scripts/ utility library documented below.

Contributing

Submit your scripts via pull request at github.com/calibracer/agentux-community. All submissions go through a review process before being published. See the contribution guidelines for submission requirements.


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 -> Asset Inventory (migrated)

The original Fab Cataloger package was retired in the Asset Inventory Redesign (AIR) milestone. Its responsibilities -- Fab library sync, inventory export, pack-by-pack cataloging, and Neo4j ingestion -- are now handled by the multi-source Asset Inventory, which covers Fab, GameWalk, USD, and manual sources through a unified scan.

Current equivalent workflow

Scan a project (including its Fab content) into the local Asset Inventory via the CLI:

python Scripts/asset_tools/scan_project.py --project-path /path/to/Project.uproject

Mirror the local inventory into Neo4j with one call (Pro tier):

python Scripts/asset_tools/sync_inventory_to_neo4j.py --project-path /path/to/Project.uproject

Both scripts read project paths and Neo4j credentials from config.yaml. For the full multi-project, multi-source story (Slate panel, Usage Report, Migrate to Project dialog), see the Asset Inventory guide.

The legacy Scripts/fab_cataloger/ package and its sync_and_catalog.py CLI were removed when the underlying FFabCatalogerManager class was deleted in AIR-FIX-3. The editor.fab.catalog.baseline and editor.fab.catalog.commit JSON-RPC methods now return -32601 with a redirect string pointing at editor.inventory.scanProject.


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_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

neo4j:
  uri: bolt://localhost:7687
  user: neo4j
  password: your-password

CLI arguments always override config.yaml values. See Configuration Guide for full reference.