HLOD¶
9 tools. Back to the index.
build_hlod¶
Destructive.
Triggers a world HLOD build for the current editor world. This is a HEAVY/async operation that requires a World Partition world plus the WorldPartitionHLODsBuilder commandlet / a long-running editor build job, so it cannot be driven synchronously from a single request. The tool does the headless-safe part for real (resolves the editor world, detects World Partition) and returns an honest result: build_started is false with a note explaining why (not a World Partition map, or async/commandlet-only).
No parameters.
Returns: { world: string, is_world_partition: bool, build_started: bool, note?: string }
create_hlod_layer¶
Additive, idempotent.
Creates and saves a new UHLODLayer (World Partition HLOD layer) asset. Idempotent on re-run. Sets default streaming-grid cell_size=25600, loading_range=51200. Layer type accepts 'Instancing', 'MeshApproximate' (also 'Custom'/'CustomHLODActor'). Defaults to 'Instancing'.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Name of the new HLOD layer asset |
package_path |
string | no | Content folder; defaults to /Game/HLOD |
layer_type |
string | no | Optional EHLODLayerType string; defaults to "Instancing" |
Returns: { name: string, package_path: string, asset_path: string, layer_type: string, cell_size: int, loading_range: number, created: bool, already_exists?: bool, success: bool, saved: bool, message: string }
get_hlod_layer_actors¶
Read-only.
Enumerate which LOADED actors in the current editor world are assigned to a given UHLODLayer (read-side of set_hlod_layer_actors). Two limits worth knowing before you trust an empty result: it only sees actors currently loaded, and it is WORLD PARTITION ONLY -- on a non-WP world it returns not_applicable=true with a note instead of a list, because there the assignment would not survive a Generate anyway.
| Parameter | Type | Required | Description |
|---|---|---|---|
hlod_layer_path |
string | no | Full /Game path of the UHLODLayer asset (matches against AActor::HLODLayer::GetPathName()). |
Returns: { hlod_layer_path, world, is_world_partition, not_applicable, note?, total: int, actors: [{actor_name, actor_path, actor_label}] }
get_hlod_layer_info¶
Read-only.
Reads layer type and streaming-grid settings of a UHLODLayer.
| Parameter | Type | Required | Description |
|---|---|---|---|
hlod_layer_path |
string | yes | Full /Game path to the HLOD layer asset |
Returns: { hlod_layer_path: string, asset_path: string, name: string, layer_type: string, cell_size: int, loading_range: number, is_spatially_loaded: bool }
get_hlod_layers¶
Read-only.
Lists all UHLODLayer assets under a content path via the AssetRegistry.
| Parameter | Type | Required | Description |
|---|---|---|---|
path |
string | no | Optional content path; defaults to /Game |
Returns: { path: string, hlod_layers: [{ name, path, layer_type }], count: int }
remove_hlod_layer¶
Destructive, idempotent.
Destroy a UHLODLayer asset at a /Game path (mirror of create_hlod_layer). Typed-delete: it loads the asset and REFUSES to delete it if it is not a UHLODLayer, so it cannot wipe the wrong asset the way the generic delete_asset can. Idempotent on missing assets.
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Full /Game/.../LayerName asset path. |
Returns: { asset_path, deleted, already_existed, layer_type?, note? }
set_hlod_layer_actors¶
Destructive, idempotent.
Assign a UHLODLayer to a BATCH of loaded actors in the current editor world -- or clear it from them by passing hlod_layer_path="". WORLD PARTITION ONLY: on a non-WP world it returns not_applicable=true and changes nothing. Idempotent per actor: one that already has that layer is not touched at all and comes back counted as unchanged, so the changed/unchanged/cleared split tells you exactly what really moved.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_paths |
array | yes | JSON array of actor paths (long package paths or object paths) to assign. |
hlod_layer_path |
string | no | Full /Game path of the UHLODLayer asset. Pass empty string ("") to clear. |
Returns: { hlod_layer_path, world, is_world_partition, not_applicable, note?, requested: int, changed: int, unchanged: int, cleared: int, not_found: [paths], changed_actors: [{actor_path, old_hlod_layer, new_hlod_layer}] }
set_hlod_layer_parent¶
Destructive, idempotent.
Sets (or clears) the parent UHLODLayer of a UHLODLayer and saves it. The parent chain drives nested HLOD generation (a layer's HLOD becomes an input to its parent's HLOD). Send parent_layer_path="" to clear the parent to null; omit parent_layer_path to leave it untouched. Idempotent: if the parent is already the requested value, nothing is modified/saved (changed_parent=false). Validates against self-parent and circular parent chains (the engine's guard is editor-only and does not run headless).
| Parameter | Type | Required | Description |
|---|---|---|---|
hlod_layer_path |
string | yes | Full /Game path to the child HLOD layer asset |
parent_layer_path |
string | no | Optional full /Game path to the parent HLOD layer; "" clears to null; absent leaves it untouched |
Returns: { hlod_layer_path: string, asset_path: string, parent_layer_path: string, has_parent: bool, changed_parent: bool, settings_set: bool, saved: bool }
set_hlod_layer_settings¶
Destructive, idempotent.
Sets streaming-grid settings / layer type on a UHLODLayer and saves it. Partial update: only the fields you send are touched. Sending cell_size or loading_range also enables the layer spatially loaded. Layer type accepts 'Instancing'|'MeshApproximate'|'Custom'|'CustomHLODActor'.
| Parameter | Type | Required | Description |
|---|---|---|---|
hlod_layer_path |
string | yes | Full /Game path to the HLOD layer asset |
cell_size |
number | no | Optional streaming-grid cell size |
loading_range |
number | no | Optional streaming-grid loading range |
layer_type |
string | no | Optional EHLODLayerType string |
Returns: { hlod_layer_path: string, asset_path: string, layer_type: string, cell_size: int, loading_range: number, changed_cell_size: bool, changed_loading_range: bool, changed_layer_type: bool, settings_set: bool, saved: bool }