Skip to content

Packaging Projects

Gerard Martin edited this page Jun 2, 2026 · 2 revisions

Like Blueprints or Materials at runtime, Mutable does not use the source graph of the Customizable Objects. Instead, it converts this graph into a more efficient representation and removes it from the asset.

Although the graph is removed from the Customizable Object, most of the asset references are kept, but there are some exceptions to it:

  • Skeletal Mesh, Static Mesh and Texture Nodes: At compile time, Mutable converts data from Mutable pins into its own format. The Skeletal Mesh reference is Editor Only and lost during compile.
  • Reference Assets: Many nodes contain a Reference Asset. Like the graph, these references are Editor Only.

In general, any pin or node that is in Object mode is kept as a reference. See Mutable vs Object for more details.

Customizable Object

It is important to notice that not all Customizable Objects are packaged. Only Customizable Objects that are not Child Customizable Objects are packaged.

Some data is so small that streaming it would be inefficient. It is possible to configure a size limit to decide which data will be streamed or embedded into the object. Embedded data can improve performance at the cost of additional memory.

The Embedded Data Limit setting in the Compilation Options sets the embedded data threshold. A value of 256 bytes usually provides a reasonable tradeoff.

Packaging Options

Customizable objects are compiled during the cook stage. To improve runtime performance and texture quality, Mutable overrides some of the compile options specified. The optimization level is set to Maximum, and texture compression is set to High Quality.

Customizable Object Instance

Customizable Object Instances are also packaged as usual. Their parameter values are stored in a portable way to support adding, removing, and changing parameters in the source graph of the Customizable Object. At runtime, the parameters and values will be validated and updated.

Clone this wiki locally