Procedural Vegetation
Every Procedural Vegetation command in CodeFizz Editor Agent, with parameters and examples.
Every Procedural Vegetation command in CodeFizz Editor Agent, with parameters and examples.
9 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.
search_pv_nodesSearch the Procedural Vegetation add-node menu (UE 5.8 only)
Enumerates the vegetation graph's add-node menu exactly as the editor renders it, by driving the plugin's own UPVEditorSchema rather than a hardcoded table, so titles, categories and descriptions are always what this engine actually has. Pass --filters to run several keyword searches in one round trip; each is capped at --max-results and reports total_matches plus a truncated flag so nothing is dropped silently. Categories include Foliage, Growth, Growth Settings, Mesh, Mesh Builder Settings, Distribution Settings, Post Growth Modifiers, Input Output, Seed, Params, Math, Control flow, Subgraph and Development. Requires UE 5.8 and the Procedural Vegetation Editor plugin enabled; on 5.6/5.7 it reports that it is 5.8 only.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Single keyword matched against title, class name, category or description |
| filters | stringlist | No | Batch form: one search per keyword, each capped at max_results |
| category | string | No | Restrict to one exact menu category, e.g. "Growth Settings" |
| max_results | int | No | Maximum results per keyword |
cfa search_pv_nodes --filters foliage,grower,mesh --max-results 5list_pv_node_categoriesList Procedural Vegetation node categories with node counts (UE 5.8 only)
Returns the add-node menu's real category names and how many nodes each holds. Use this before search_pv_nodes --category so the category string is exact rather than guessed.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Case-insensitive substring on the category name |
cfa list_pv_node_categoriesdescribe_pv_nodesGet full schema for one or more Procedural Vegetation nodes (UE 5.8 only)
Returns each node's title, category, description, pins, and its editable property schema, dotted property paths, types, defaults, per-property descriptions, and the valid values inline for every enum. The paths returned are exactly what set_pcg_node_property_path and get_pcg_property_valid_values accept, so discovery chains straight into editing. Pass --nodes to describe several in one round trip. Unknown names come back with found=false and a pointer to search_pv_nodes rather than failing the whole batch.
| Parameter | Type | Required | Description |
|---|---|---|---|
| node | string | No | Single node class name, title or class path |
| nodes | stringlist | No | Batch form: several node names in one call |
| include_pins | bool | No | Include input/output pin names |
| include_properties | bool | No | Include the editable property schema |
| max_depth | int | No | How deep to walk nested property structs (4 reaches every real setting; 5+ pulls in curve key arrays) |
| max_properties | int | No | Cap on properties returned per node; check total_properties and properties_truncated |
| category | string | No | Only properties in this Details-panel category, e.g. Bifurcation, Gravity, Phyllotaxy |
cfa describe_pv_nodes --nodes PVGrowerSettings,PVFoliageDistributorSettings --max-depth 3export_pv_schemaWrite the full Procedural Vegetation node schema to a JSON file (UE 5.8 only)
Dumps the complete schema, every node, every pin, and every editable property with its category, type, default, Epic's own description, enum values, UI/clamp ranges and edit-condition, to Saved/CodeFizzEditorAgent/Exports/<name>_<stamp>/<name>.pvschema.json, and returns only the file path plus counts. Use this instead of describe_pv_nodes when you want everything: the Grower alone has over 600 properties, so reading them inline would bury the context that is supposed to be using them. Omit --nodes to export every vegetation node in one file.
| Parameter | Type | Required | Description |
|---|---|---|---|
| nodes | stringlist | No | Nodes to export; empty exports every vegetation node |
| name | string | No | Base filename (default ProceduralVegetationSchema) |
| max_depth | int | No | How deep to walk nested property structs |
cfa export_pv_schema --nodes PVGrowerSettings,PVMeshBuilderSettings --name GrowerAndMeshercreate_procedural_vegetationCreate a Procedural Vegetation asset (UE 5.8 only)
Creates a new Procedural Vegetation asset headlessly, with no modal dialog. Without --sample you get an empty graph holding only the Input and Output nodes. With --sample the asset is duplicated from an existing one, which is how the editor's "create from sample" works, run list_pv_samples to see what is available, including Epic's four shipped starter trees.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Destination, e.g. /Game/Vegetation/PV_MyTree |
| sample | string | No | Optional source asset to copy from; empty creates an empty graph |
cfa create_procedural_vegetation --asset-path /Game/Vegetation/PV_MyTree --sample /ProceduralVegetationEditor/SampleAssets/StarterContent/ConiferTree_01/PVE_Sample_Conifer_Tree_01export_procedural_vegetationExport a Procedural Vegetation asset to mesh assets (UE 5.8 only)
Runs the vegetation editor's own Export action, the same code path as clicking Export in the toolbar, and auto-confirms its modal dialog, so the whole thing completes without a human click. Epic exposes no scripted export entry point, so this drives the real UI command rather than reimplementing the mesh writer. Validates first and fails loudly on the conditions Epic's own handler treats as a silent no-op: no Export node in the graph, or an Export node with no MeshName. --force-append (default) sets ReplacePolicy=Append so the overwrite dialog never appears. Per-asset results land in the PVEditor message log, read them with read_message_log --log-name PVEditor. Two-call pattern: export reads the graph's EVALUATED mesh data, so on a graph that has not generated yet the first call opens the asset editor, starts generation, and returns needs_generation=true with assets_created=0. Wait for generation to finish, then call again and it succeeds. It cannot wait internally because generation runs on the same game thread the command occupies. Verify by reading assets_created / created_assets, never by success alone.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Procedural Vegetation asset to export |
| force_append | bool | No | Set ReplacePolicy=Append so the overwrite dialog never appears |
cfa export_procedural_vegetation --asset-path /Game/Vegetation/PV_MyTreepreview_pv_nodePreview a node's output in the open editor viewport (UE 5.8 only)
Selects a node in the open asset editor, which is what drives the 3D viewport preview, select the Grower to see the point/branch skeleton, Bone Reduction to see bone colouring, the Foliage Distributor to see the finished tree. This reads cached inspection data and does NOT re-run the graph, so switching preview is cheap. Use it instead of reopening the asset. Note the graph already regenerates by itself whenever you change a node property, connect a pin, or add/remove a node, you do not need to trigger that. Selection lands over the next few editor ticks, so pause briefly before screenshotting.
| Parameter | Type | Required | Description |
|---|---|---|---|
| graph_path | string | Yes | Vegetation asset or PCG graph whose editor is open |
| node_name | string | No | Node by stable name (preferred) |
| node_index | int | No | Node by index; -2 = graph input, -1 = graph output |
cfa preview_pv_node --graph-path /Game/Vegetation/PV_MyTree --node-name ProceduralVegetationFoliageDistributor_0export_pcg_graph_configDump a PCG/vegetation graph's AUTHORED configuration to a file (UE 5.8 only)
Writes every node's non-default property values plus the full wiring to a JSON file. Only values that differ from the class default are emitted, which collapses thousands of properties down to the handful the author actually set, that is what makes two graphs diffable. Use it to learn from a working asset: dump Epic's shipped sample, dump yours, and compare. Each entry carries the current value and the default it replaced.
| Parameter | Type | Required | Description |
|---|---|---|---|
| graph_path | string | Yes | Graph or vegetation asset to dump |
| name | string | No | Base filename; defaults to the asset name |
| max_depth | int | No | How deep to walk nested structs |
cfa export_pcg_graph_config --graph-path /ProceduralVegetationEditor/SampleAssets/StarterContent/DeciduousTree_01/PVE_Sample_Deciduous_Tree_01list_pv_samplesList Procedural Vegetation assets available as creation samples (UE 5.8 only)
Lists every Procedural Vegetation asset the asset registry knows about, including Epic's shipped samples under /ProceduralVegetationEditor. Feed a path straight into create_procedural_vegetation --sample.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Case-insensitive substring on the asset name |
| max_results | int | No | Maximum number of results |
cfa list_pv_samples --filter Tree