editor.material.create
Creates a new Material asset.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Content directory (e.g. "/Game/Materials") |
name | string | Yes | Material name |
Returns: success (bool), asset_path (string), name (string)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.create", "params": { "path": "/Game/Materials", "name": "M_Gold" } } editor.material.getExpressions
Lists all material expression nodes in a Material.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
Returns: Array of {index, class, caption, position {x, y}, input_names, output_names}
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getExpressions", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.addExpression
Adds a new material expression node to a Material.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
expression_class | string | Yes | UMaterialExpression subclass (e.g. "MaterialExpressionConstant3Vector") |
position | object | No | {x, y} position (default 0,0) |
Returns: success, index, class, caption, position, input_names, output_names
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.addExpression", "params": { "asset_path": "/Game/Materials/M_Gold", "expression_class": "MaterialExpressionConstant3Vector", "position": { "x": -300, "y": 0 } } } editor.material.deleteExpression
Deletes a material expression by its index.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
expression_index | number | Yes | Index of expression to delete |
Returns: success (bool)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.deleteExpression", "params": { "asset_path": "/Game/Materials/M_Gold", "expression_index": 0 } } editor.material.connectExpressions
Connects the output of one expression to the input of another.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
from_expression_index | number | Yes | Source expression index |
to_expression_index | number | Yes | Target expression index |
to_input_name | string | Yes | Input name on target expression |
from_output_name | string | No | Output name on source (default: first output) |
Returns: success (bool)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.connectExpressions", "params": { "asset_path": "/Game/Materials/M_Gold", "from_expression_index": 0, "to_expression_index": 1, "to_input_name": "A" } } editor.material.connectToProperty
Connects a material expression output to a material property input.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
from_expression_index | number | Yes | Source expression index |
property | string | Yes | Property: BaseColor, Metallic, Specular, Roughness, Normal, EmissiveColor, Opacity, OpacityMask, etc. |
from_output_name | string | No | Output name on source (default: first output) |
Returns: success (bool), property (string)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.connectToProperty", "params": { "asset_path": "/Game/Materials/M_Gold", "from_expression_index": 0, "property": "BaseColor" } } editor.material.getPropertyInput
Returns which expression is connected to a material property input.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
property | string | Yes | Property name |
Returns: property, expression (object or null), output_name
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getPropertyInput", "params": { "asset_path": "/Game/Materials/M_Gold", "property": "BaseColor" } } editor.material.getParameters
Lists all parameter names grouped by type for a Material or MaterialInstance.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Path to Material or MaterialInstance |
Returns: scalar (array), vector (array), texture (array), static_switch (array)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getParameters", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.getParameterValue
Gets the default value of a parameter in a Material.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
parameter_name | string | Yes | Parameter name |
parameter_type | string | Yes | scalar, vector, texture, or static_switch |
Returns: parameter_name, parameter_type, value (varies by type)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getParameterValue", "params": { "asset_path": "/Game/Materials/M_Gold", "parameter_name": "Roughness", "parameter_type": "scalar" } } editor.material.setInstanceParameterValue
Sets a parameter value on a MaterialInstanceConstant.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Path to MaterialInstanceConstant |
parameter_name | string | Yes | Parameter name |
parameter_type | string | Yes | scalar, vector, texture, or static_switch |
value | varies | Yes | scalar: number, vector: {r,g,b,a}, texture: string path, static_switch: bool |
Returns: success (bool), parameter_name, parameter_type
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.setInstanceParameterValue", "params": { "asset_path": "/Game/Materials/MI_Gold_Inst", "parameter_name": "Roughness", "parameter_type": "scalar", "value": 0.3 } } editor.material.compile
Recompiles a Material.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
Returns: success (bool), asset_path (string)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.compile", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.getStatistics
Returns shader statistics (instruction counts, sampler counts) for a Material or MaterialInstance.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Path to Material or MaterialInstance |
Returns: num_vertex_shader_instructions, num_pixel_shader_instructions, num_samplers, num_vertex_texture_samples, num_pixel_texture_samples, num_virtual_texture_samples, num_uv_scalars, num_interpolator_scalars
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getStatistics", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.layoutExpressions
Auto-layouts all material expression nodes for visual clarity.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
Returns: success (bool), asset_path (string)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.layoutExpressions", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.setUsage
Enables a material usage flag (e.g. SkeletalMesh, Nanite).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
usage | string | Yes | SkeletalMesh, ParticleSprites, StaticLighting, Nanite, StaticMesh, etc. |
Returns: success (bool), usage (string), needs_recompile (bool)
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.setUsage", "params": { "asset_path": "/Game/Materials/M_Gold", "usage": "Nanite" } } editor.material.createFunction
Creates a new Material Function asset.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Content directory |
name | string | Yes | Material function name |
description | string | No | Description displayed as tooltip |
expose_to_library | bool | No | Whether to list in the material function library |
Returns: success (bool), asset_path, name
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.createFunction", "params": { "path": "/Game/Materials", "name": "MF_Noise", "expose_to_library": true } } editor.material.getFunctions
Lists all material function calls in a Material.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Material asset path |
Returns: Array of {expression_index, function_path, function_name, inputs, outputs}
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getFunctions", "params": { "asset_path": "/Game/Materials/M_Gold" } } editor.material.createParameterCollection
Creates a new Material Parameter Collection asset.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Content directory |
name | string | Yes | Collection name |
Returns: success (bool), asset_path, name
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.createParameterCollection", "params": { "path": "/Game/Materials", "name": "MPC_Global" } } editor.material.getParameterCollections
Lists material parameter collections. If asset_path is provided, returns detailed info. Otherwise lists all registered MPCs.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | No | Path to a specific MPC (omit to list all) |
Returns (single): asset_path, name, scalar_parameters (array), vector_parameters (array)
Returns (all): Array of {asset_path, name}
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.getParameterCollections", "params": { "asset_path": "/Game/Materials/MPC_Global" } } editor.material.setParameterCollectionValue
Sets a default parameter value in a Material Parameter Collection.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Path to MaterialParameterCollection |
parameter_name | string | Yes | Parameter name |
parameter_type | string | Yes | scalar or vector |
value | varies | Yes | scalar: number, vector: {r,g,b,a} |
Returns: success (bool), parameter_name, parameter_type
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.material.setParameterCollectionValue", "params": { "asset_path": "/Game/Materials/MPC_Global", "parameter_name": "WindStrength", "parameter_type": "scalar", "value": 1.5 } }