editor.staticmesh
Static mesh asset introspection: mesh info, LOD details, collision data, Nanite status, and material slots
editor.staticmesh.getInfo
Get comprehensive information about a static mesh asset.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path (e.g. /Game/Meshes/SM_Chair) |
Returns:
| Name | Type | Description |
|---|---|---|
name | string | Asset name |
path | string | Full asset path |
num_lods | number | Number of LOD levels |
vertex_count | number | Vertex count at LOD 0 |
triangle_count | number | Triangle count at LOD 0 |
bounds | object | Bounding box/sphere (origin_x/y/z, extent_x/y/z, sphere_radius) |
has_nanite | boolean | Whether Nanite is enabled |
material_slot_count | number | Number of material slots |
has_valid_render_data | boolean | Whether the mesh has valid render data |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.staticmesh.getInfo", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.getLODs
Get per-LOD details for a static mesh (vertex count, triangle count, sections, screen size).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
Returns: lods (array of {lod_index, vertex_count, triangle_count, num_sections, num_tex_coords, screen_size})
Example Request:
{ "jsonrpc": "2.0", "id": 2, "method": "editor.staticmesh.getLODs", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.getCollision
Get collision information for a static mesh (complexity, shape counts).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
Returns: has_collision (bool), collision_complexity (string), num_shapes (number), simple_collision_shapes ({spheres, boxes, capsules, convex, tapered_capsules})
Example Request:
{ "jsonrpc": "2.0", "id": 3, "method": "editor.staticmesh.getCollision", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.setLODCount
Set the number of LOD levels for a static mesh.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
count | number | Yes | Number of LODs (1 to MAX_STATIC_MESH_LODS) |
Returns: success (bool), num_lods (number)
Example Request:
{ "jsonrpc": "2.0", "id": 4, "method": "editor.staticmesh.setLODCount", "params": { "asset_path": "/Game/Meshes/SM_Chair", "count": 4 } } editor.staticmesh.setLODScreenSize
Set the screen size threshold for a specific LOD level.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
lod_index | number | Yes | LOD index to configure |
screen_size | number | Yes | Screen size threshold (0.0–1.0) |
Returns: success (bool), lod_index (number), screen_size (number)
Example Request:
{ "jsonrpc": "2.0", "id": 5, "method": "editor.staticmesh.setLODScreenSize", "params": { "asset_path": "/Game/Meshes/SM_Chair", "lod_index": 1, "screen_size": 0.5 } } editor.staticmesh.generateLOD
Auto-generate a LOD level with reduction settings. Configures reduction parameters and rebuilds the mesh.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
lod_index | number | Yes | LOD index to generate (must be >= 1) |
percent_triangles | number | No | Triangle reduction ratio 0.0–1.0 (default 0.5) |
max_deviation | number | No | Maximum allowed deviation in object space (default 0.0) |
screen_size | number | No | Optional screen size threshold for this LOD |
Returns: success (bool), lod_index, percent_triangles, max_deviation, build_errors (array)
Example Request:
{ "jsonrpc": "2.0", "id": 6, "method": "editor.staticmesh.generateLOD", "params": { "asset_path": "/Game/Meshes/SM_Chair", "lod_index": 1, "percent_triangles": 0.5 } } editor.staticmesh.setCollision
Set the collision complexity for a static mesh.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
complexity | string | Yes | Default, SimpleAndComplex, SimpleAsComplex, or ComplexAsSimple |
Returns: success (bool), collision_complexity (string)
Example Request:
{ "jsonrpc": "2.0", "id": 7, "method": "editor.staticmesh.setCollision", "params": { "asset_path": "/Game/Meshes/SM_Chair", "complexity": "ComplexAsSimple" } } editor.staticmesh.setNaniteEnabled
Enable or disable Nanite for a static mesh. Triggers a mesh rebuild.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
enabled | boolean | Yes | Whether to enable Nanite |
Returns: success (bool), nanite_enabled (bool)
Example Request:
{ "jsonrpc": "2.0", "id": 8, "method": "editor.staticmesh.setNaniteEnabled", "params": { "asset_path": "/Game/Meshes/SM_Chair", "enabled": true } } editor.staticmesh.getMaterialSlots
List all material slots with their assigned materials.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
Returns: slots (array of {index, slot_name, material_name, material_path}), count (number)
Example Request:
{ "jsonrpc": "2.0", "id": 9, "method": "editor.staticmesh.getMaterialSlots", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.setMaterialSlot
Assign a material to a specific material slot by index.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path of the static mesh |
slot_index | number | Yes | Material slot index to assign to |
material_path | string | Yes | Full asset path of the material to assign |
Returns: success (bool), slot_index, material_name, material_path
Example Request:
{ "jsonrpc": "2.0", "id": 10, "method": "editor.staticmesh.setMaterialSlot", "params": { "asset_path": "/Game/Meshes/SM_Chair", "slot_index": 0, "material_path": "/Game/Materials/M_Metal_Chrome" } } editor.staticmesh.getNaniteSettings
Returns all FMeshNaniteSettings properties for a static mesh.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path to static mesh |
Returns:
| Name | Type | Description |
|---|---|---|
enabled | bool | Whether Nanite is enabled |
explicit_tangents | bool | Store explicit tangents |
lerp_uvs | bool | Interpolate UVs when simplifying |
separable | bool | Separable flag |
voxel_ndf | bool | Voxel NDF flag |
voxel_opacity | bool | Voxel opacity flag |
shape_preservation | string | "None", "PreserveArea", or "Voxelize" |
generate_fallback | string | "PlatformDefault" or "Enabled" |
fallback_target | string | "Auto", "PercentTriangles", or "RelativeError" |
position_precision | number | Position precision (MIN_INT32 = auto) |
normal_precision | number | Normal precision (-1 = auto) |
tangent_precision | number | Tangent precision (-1 = auto) |
bone_weight_precision | number | Bone weight precision (-1 = auto) |
target_minimum_residency_kb | number | Target minimum residency in KB |
displacement_uv_channel | number | Displacement UV channel index |
num_rays | number | Number of rays for voxel |
voxel_level | number | Voxel level |
keep_percent_triangles | number | Percentage of triangles to keep (0-1) |
trim_relative_error | number | Trim relative error |
fallback_percent_triangles | number | Fallback mesh triangle percentage (0-1) |
fallback_relative_error | number | Fallback mesh relative error |
max_edge_length_factor | number | Max edge length factor |
ray_back_up | number | Ray back up distance |
Example Request:
{ "jsonrpc": "2.0", "id": 11, "method": "editor.staticmesh.getNaniteSettings", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.setNaniteSettings
Applies a bulk partial-update of Nanite settings. Only fields present in the settings object are modified.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
settings | object | Yes | Object with any subset of getNaniteSettings fields |
Returns: success (bool), fields_set (number)
Example Request:
{ "jsonrpc": "2.0", "id": 12, "method": "editor.staticmesh.setNaniteSettings", "params": { "asset_path": "/Game/Meshes/SM_Chair", "settings": { "enabled": true, "keep_percent_triangles": 0.8 } } } editor.staticmesh.getNaniteFallback
Returns fallback mesh configuration (quick access to commonly-tuned values).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
Returns: generate_fallback (string), fallback_target (string), fallback_percent_triangles (number, 0-1), fallback_relative_error (number)
Example Request:
{ "jsonrpc": "2.0", "id": 13, "method": "editor.staticmesh.getNaniteFallback", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.setNaniteFallback
Sets fallback mesh configuration.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
fallback_target | string | No | "Auto", "PercentTriangles", or "RelativeError" |
generate_fallback | string | No | "PlatformDefault" or "Enabled" |
fallback_percent_triangles | number | No | Percentage 0-1 (clamped) |
fallback_relative_error | number | No | Error threshold (min 0) |
Returns: success (bool), fallback_target (string), fallback_percent_triangles (number), fallback_relative_error (number)
Example Request:
{ "jsonrpc": "2.0", "id": 14, "method": "editor.staticmesh.setNaniteFallback", "params": { "asset_path": "/Game/Meshes/SM_Chair", "fallback_target": "PercentTriangles", "fallback_percent_triangles": 0.25 } } editor.staticmesh.getNaniteStats
Returns Nanite resource stats for a mesh.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Full asset path |
Returns: nanite_enabled (bool), resource_size_bytes (number), lod0_triangles (number), lod0_vertices (number), num_lods (number), has_valid_render_data (bool)
Example Request:
{ "jsonrpc": "2.0", "id": 15, "method": "editor.staticmesh.getNaniteStats", "params": { "asset_path": "/Game/Meshes/SM_Chair" } } editor.staticmesh.getNaniteCVars
Queries key Nanite runtime CVars (r.Nanite.*).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
prefix | string | No | Filter prefix (must start with "r.Nanite.", default "r.Nanite.") |
Returns: cvars (object, map of CVar name to current value as string), count (number)
Example Request:
{ "jsonrpc": "2.0", "id": 16, "method": "editor.staticmesh.getNaniteCVars", "params": { "prefix": "r.Nanite." } } editor.staticmesh.setNaniteCVar
Sets a single Nanite CVar. Name must start with "r.Nanite." for safety.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | CVar name (must start with "r.Nanite.") |
value | string | Yes | Value to set |
Returns: success (bool), name (string), value (string)
Example Request:
{ "jsonrpc": "2.0", "id": 17, "method": "editor.staticmesh.setNaniteCVar", "params": { "name": "r.Nanite.MaxPixelsPerEdge", "value": "1.0" } } editor.staticmesh.listNaniteMeshes
Finds all Nanite-enabled static meshes in the project.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path_filter | string | No | Package path filter (e.g., "/Game/Meshes") |
Returns: meshes (array of {name, path, triangle_count}), count (number)
Example Request:
{ "jsonrpc": "2.0", "id": 18, "method": "editor.staticmesh.listNaniteMeshes", "params": { "path_filter": "/Game/Meshes" } }