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" } }