Naming and standards
The same rules in every master, so every Material Instance reads the same way. Follow them for your own content.
Asset names
Format: Prefix_Asset_Name_01a (+ _Suffix for textures). 01 = asset or set number, a = variant or part of the same set (same textures). Example set: SM_Asset_Name_01a, T_Asset_Name_01a_BC, T_Asset_Name_01a_NNMR, MI_Asset_Name_01a.
| Prefix |
Asset |
SM_ |
Static mesh |
SK_ |
Skeletal mesh |
T_ |
Texture |
MM_ |
Master material (do not edit) |
M_ |
Material (stand-alone, not a master) |
MI_ |
Material instance |
MF_ |
Material function |
ML_, MLB_ |
Material layer, layer blend |
MPC_ |
Material parameter collection |
RVT_ |
Runtime virtual texture |
BP_ |
Blueprint actor |
NS_ |
Niagara system |
UCX_ |
Collision mesh in the DCC: UCX_SM_Asset_Name_01a_00, _01 … |
- Nanite and non-Nanite versions of one mesh:
SM_Asset_Name_NN_01a = Nanite.
- One word per name part, words joined by
_, no spaces or Cyrillic.
Meshes for the masters
| Mesh data |
Used by |
| UV0 |
All texture slots |
| UV1 |
MaskBlend Blend Mask (baked layer masks); lightmap UV if you use baked lighting |
| Vertex color |
VtxBlend layers / puddles / dry areas, foliage wind (Vertex color) |
| Pivot |
Floor: bottom-center; against a wall: bottom-back; wall: center-back; ceiling: top |
Texture suffixes and import
| Suffix |
Content (R / G / B / A) |
Compression |
sRGB |
_BC |
Color / – (no alpha = BC1) |
Default |
On |
_BCA |
Color / Opacity (foliage, decals) |
BC7 |
On |
_NNMR |
Normal X / Normal Y / Metallic / Roughness |
BC7 |
Off |
_NNOR |
Normal X / Normal Y / AO / Roughness (foliage) |
BC7 |
Off |
_M |
Masks / AO |
Masks |
Off |
_H |
Height / Edge Shape (optional) |
BC7, never VT |
Off |
- Blend Mask for MaskBlend: R / G / B = layers, Masks, sRGB off.
Tools/KurinFixTextureSettings.py applies these settings to the selected textures by suffix.
Parameter groups
| Group |
What goes there |
00 Settings |
Global switches. Always on top |
01, 02, 03 … |
Core groups: 01 Textures, 02 Base Color, 03 Surface, or one group per layer |
<group> (VT) |
Virtual Texture slots, right under their group |
| Named, no number |
Add-ons, A–Z: Cover, Dust, Emissive, Weather … |
Parameter names
Use <Feature>? = on/off switch, first in its group.
- Ends with
Map = texture. Ends with (VT) = Virtual Texture slot.
Flatten: 0 = texture, 1 = one flat value.
- Layer prefix:
Base -, R -, G -, B -; landscape L1 - … L4 -.
Vertex color
| Channel |
VtxBlend / MaskBlend |
Foliage |
| R |
Layer R (VtxBlend) |
Main bend weight (0 root, 1 top) |
| G |
Layer G (VtxBlend) |
Branch sway |
| B |
Painted puddles / wet spots |
Leaf flutter |
| A |
Dry Mask (Use Dry Mask (VC A)?): fill 1, paint 0 = dry |
Branch phase (random per branch) |
Custom Primitive Data
| Index |
Used for |
| 0 |
Actor Dry (Weather) |
| 1 |
Actor Rain Shelter (Weather) |
| 2–7 |
Reserved by Kurin, keep free |
Use index 8 and up for your own per-actor data.