Create Materials Documentation

Thank you for purchasing this tool. I hope it will benefit your workflow and free you up some time so you can focus on making great games.

If you have any questions please have a look in the FAQ section or get in touch (


  • Setup

  • Functions

  • Best Practice

  • Coming Soon

  • FAQ

  • The Tool in action


Step 1: Turn on Blutilities in the editor preferences

Step 2: Turn on the editor scripting plugin


Supported Textures

  • Basecolor
  • Metallic
  • Roughness
  • Specular
  • Emissive (Mask)
  • Normal
  • Ambient Occlusion
  • Packed Textures like ORM

Context Menu Support

If you dont want to use the menu, I added support for the context menu. Just select all textures you want to use for your material, right click on them and under “Scripted Actions” click on “Create Materials”.
A dialog appears. Here you can set the most common settings. If you want to change more basic settings please find the Blutility “Create_Material_ContextMenu”, right click on it and change it´s default values. The changed values will be taken into account the next time you run the script.

Automatic Material Name

The tool creates the material name from the textures found in the folder. You have the possibility to define the divider for the search pattern. For example, if your textures for a tree are called “T_Awesometree_Basecolor”, the divider would be “_” and the resulting material will be named M_Awesometree. The defined texture prefix ” T_” will be ignored.

If there are 5 Textures with the name “T_Awesometree_*” only 1 material will be generated, all matching textures will be loaded into this material and correctly connected.

Master Material

You have the option to define a master material. In this case material instances from the specified master material will be generated and the textures are set as texture parameters inside the material. You are able to define the name of each parameter to match your own master material. I also added a basic master material you can use if you don´t have your own.

Coming Soon

  • Masked Material
  • Translucent Material

Best Practice

Keep the Pattern Array short

Although the script does a decent job working with a lot of patterns, it will increase the execution time quite a bit. It also increases the error treshold. In an ideal project you would exactly know the correct naming convention and just use this one. But if you are working with a large library, feel free to use more than one pattern to serach for the right texture.

Correct Spelling

Be sure that your textures are named correctly. For example, “T_Rock_Basecolor” and “T_Rokk_Roughness” will result in 2 seperate materials. You can use my cleanup tool to batch rename files if you need to correct the spelling on a lot of textures.

No Duplicate Textures

Avoid duplicate textures. If you have “Tree_Basecolor” and “Tree_Albedo”, and both are definied in the Basecolor Searchpattern (as by default), only one of them can be used.

Also the script can have a hard time if there is a packed texture (OcclusionRoughnessMetallic) and a single texture (Roughness) for the same asset. I know it is very unlikely, but I´ve already seen the weirdest things.


Changes I made to the variables are not kept

In order for the variables to be kept, you need to change the default parameters. If you change them in the window that appears after double clicking on the Blueprint, the changes will only take affect as long as the window is opened.
For changing the default values permanently you have two options:

  • Right click on the Blueprint and press “Edit Defaults”
  • Right click on the Blueprint and press “Edit Blueprint” (advanced)

The first method is recommanded.

If you want to change the default settings for the context menu please find the Blutility “Create_Material_ContextMenu”, right click on it and change it´s default values. The changed values will be taken into account the next time you run the script.

My Textures aren´t recognized

Be sure to define the search parameters right. They are case sensitive. So the pattern “normal” is not going to load a *_Normal” texture. If you want, you can add “normal”, “Normal”, “nrm”, “NRM”etc. to the array. But the more items you add here, the longer the execution takes, and the more likely it is that you will get errors in the connections.

Will there be support for earlier engine versions?

The bluetility feature used by this tool was introduced in 4.20. I´m not able to support any earlier engine versions, sorry. Currently, the tool is for 4.21, but I´m working on 4.20 support.

The Tool in action

Setup & Walktrough

Watch the Tool in Action

Important/Additional Notes:

Depending of your chosen settings this tool can heavily impact the structure of your project. Be sure to always save a copy of it before applying any operations. The author of this plugin cannot be held responsible for any damage caused by the use of this tool.

Please read this documentation prior of using this tool and always save a copy of your project!

Shopping cart

Shipping and discount codes are added at checkout.