editor.staticmesh

Static mesh asset introspection: mesh info, LOD details, collision data, Nanite status, and material slots

← API Reference

editor.staticmesh.getInfo

Get comprehensive information about a static mesh asset.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesFull asset path (e.g. /Game/Meshes/SM_Chair)

Returns:

NameTypeDescription
namestringAsset name
pathstringFull asset path
num_lodsnumberNumber of LOD levels
vertex_countnumberVertex count at LOD 0
triangle_countnumberTriangle count at LOD 0
boundsobjectBounding box/sphere (origin_x/y/z, extent_x/y/z, sphere_radius)
has_nanitebooleanWhether Nanite is enabled
material_slot_countnumberNumber of material slots
has_valid_render_databooleanWhether 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:

NameTypeRequiredDescription
asset_pathstringYesFull 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:

NameTypeRequiredDescription
asset_pathstringYesFull 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path
countnumberYesNumber 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path
lod_indexnumberYesLOD index to configure
screen_sizenumberYesScreen 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path
lod_indexnumberYesLOD index to generate (must be >= 1)
percent_trianglesnumberNoTriangle reduction ratio 0.0–1.0 (default 0.5)
max_deviationnumberNoMaximum allowed deviation in object space (default 0.0)
screen_sizenumberNoOptional 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path
complexitystringYesDefault, 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path
enabledbooleanYesWhether 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:

NameTypeRequiredDescription
asset_pathstringYesFull 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:

NameTypeRequiredDescription
asset_pathstringYesFull asset path of the static mesh
slot_indexnumberYesMaterial slot index to assign to
material_pathstringYesFull 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" } }