> For the complete documentation index, see [llms.txt](https://sebun1.gitbook.io/skins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sebun1.gitbook.io/skins/editor/editing-material-targets.md).

# Editing Material Targets

{% hint style="success" icon="arrows-rotate" %}
This page is up to date with editor version `v1.2.7`\
Features in future versions might not be mentioned here.
{% endhint %}

## Creating the Manifest File

Create a new Material Target under a Skin Group by clicking on the <i class="fa-circle-plus">:circle-plus:</i> button, then <kbd>Material Target</kbd>.

<div><figure><img src="/files/VxUy450Un3pMpotW3xCA" alt="" width="314"><figcaption><p>Skin Group entry when hovered</p></figcaption></figure> <figure><img src="/files/Vwmc2SBp9l1VoijwJ87U" alt="" width="342"><figcaption><p>Context menu after clicking on the <i class="fa-circle-plus">:circle-plus:</i> button</p></figcaption></figure></div>

Give your material target a sensible name; this is just the file name and does not have any effect on actual behavior.

<figure><img src="/files/Eva0Z3T1YsDy9BXZ3Ihs" alt="" width="310"><figcaption></figcaption></figure>

## Specify the Material to Match

For most use cases, start by clicking on the <kbd>Select Material</kbd> button the top right side of the editor.

<figure><img src="/files/6FhIZu8y8RNepdIH4qtO" alt=""><figcaption></figcaption></figure>

This will bring up the material selection dialog, search for the gear part you want to customize by name of the material, any of it's default textures, it's default shader, or the name of the weapon it appears on.

{% hint style="info" %}
I usually search by the name of the weapon I want to customize as it narrows it down quite a bit.
{% endhint %}

In my case, I am searching for "Shelling Arid 5" since I want to customize the Hi-Caliber Pistol.

<figure><img src="/files/OC0GtdigsNKIaak0u2wW" alt="" width="563"><figcaption></figcaption></figure>

You can narrow down your search further by specifying some of the common names present for different gear parts. For example, I can add front to my query to search for materials that apply to the front of the Hi-Caliber Pistol.

<figure><img src="/files/CQx66mGNjyw17PeVf0mF" alt="" width="563"><figcaption></figcaption></figure>

### Material Select Options

Now, select the material that you are looking for. For my case, I selected `Front_Pistol_4`. After selecting the material, some additional options will show up before applying this preset.

**Slots to create**

This options will create texture slot properties for you, this can be very useful if you are sticking to the shader that the material uses currently. Otherwise, you usually don't want to create any here since the slots filtered here might not apply to the shader you want to override to (we will get to this in a second).

The "Preserve existing texture slots" option, when enabled, will preserve what you have currently and won't overwrite the properties' contents.

**Texture name filters**

This is what is filled into the the "Variant Filter" section and is used to reduce ambiguity when matching materials by their names. By default this selects `_MainTex` or the first non-null slot if `_MainTex` is not available.

{% hint style="info" %}
Leaving the "Texture name filters" as the default is usually sufficient.
{% endhint %}

<figure><img src="/files/lNAFI6D4VYySgAhQvi52" alt="" width="563"><figcaption></figcaption></figure>

For my purpose, I want to override the shader to something other than `GTFO/BlendHS`, so I am going to click on <kbd>None</kbd> to clear any slots to create. The reason for this is `BlendHS` is not as easy to customize as some of the other PBR shaders, so I will use one of those instead. Now, click apply to import the settings.

<figure><img src="/files/UqjYeXWvqK7Zg8MEsZXM" alt="" width="563"><figcaption></figcaption></figure>

### Confirming Details

Let's look at what that left us. The "Material Name" is filled out for us, along with the variant filter for narrowing down the texture — more specificity is always good. The "Shader Override" field is also set to the default shader of the material.

If we want to add additional variants for the same material name to match we can add a variant in the "Variant Filter" section, but otherwise this all looks good.

{% hint style="success" %}
It is rare to need to add variants to the the Variant Filter, so leaving it as is is normally just fine.
{% endhint %}

{% hint style="info" icon="sunglasses" %}
It never hurts to keep the "Shader Override" field specified even if you are not changing the shader. The mod will not do anything if the existing shader is already what is specified for "Shader Override." Additionally, specifying the shader will provide more context to the editor for ease of use.
{% endhint %}

{% hint style="info" %}
If you didn't start off by using the material selection dialog, filling out the fields by hand is fine too.
{% endhint %}

<figure><img src="/files/jQ3c2Q4ZMLinWzTRJO5P" alt="" width="563"><figcaption></figcaption></figure>

Like I mentioned earlier, I do want to use a different shader. Clicking the <kbd>Known</kbd> button will bring up a list of know shaders that the Skins mod has exported details for (this is pre-defined in the mod). I'll be using the `Cell/Player/CustomGearShader` shader — clicking on the entry will fill in the field for us.

<figure><img src="/files/ipo9lSfX9N6R1H9Uu0ZX" alt="" width="563"><figcaption></figcaption></figure>

## Customizing Properties

This is where the actual juice for customization comes in. If you utilized the "Slots to create" option, some texture properties are already created for you. Here, I'm starting off from am empty slate.

<figure><img src="/files/0oCbiHSw5ARpHRLwv4Nx" alt="" width="563"><figcaption></figcaption></figure>

### Adding Properties

We can start adding any additional properties we want to adjust by clicking on the <kbd>Known</kbd> button once again, this time on the bar under "Properties". This will bring up a property selection dialog — you can adjust any of the filters here to see different types of properties on different shaders. There is also a shader filter select: this should be pre-selected to the "Shader Override" shader if one is defined there and we have information on it.

<figure><img src="/files/um5xt4j1DTWujZcLyQ91" alt="" width="563"><figcaption></figcaption></figure>

### Texture Properties

After adding a texture property, you will see a dialog for you to specify the source as well as import options. You can specify the relative path to a image for the source relative to the current Material Target manifest file. You can use the <kbd>Browse...</kbd> button to select a file from disk, the relative path will be automatically inferred.

If you want a more efficient way in adding these texture references, check out [Accelerating the Workflow](/skins/editor/accelerating-the-workflow.md#texture-auto-fill).

For details on the import options, check out import options under [Material Target](/skins/schema/material-target.md#texture2d).

{% hint style="warning" %}
For all intents and purpose, it is HIGHLY recommended to have the images that you are referencing inside the Skin Group folder.
{% endhint %}

<figure><img src="/files/B8UGfnZU36flM1mvGzK4" alt="" width="563"><figcaption></figcaption></figure>

Funny enough, this is where I start to not have much to say. The actual details of what texture properties to adjust, what the textures should look like, etc. are the essence of designing a skin — something that is rather out of scope here, and also something that I am not very good at.

{% hint style="info" %}
If you have no idea where to start, I would start by searching up what each of these texture property names might represent. This will give you somewhat of an idea of what should go into them. It is a deep rabbit hole, so I will stop here.
{% endhint %}

{% hint style="info" icon="readme" %}
I do have a ~~shitty skin making tutorial~~, if you really have no other resources to look at :lemon::\
<https://www.youtube.com/watch?v=pH1EKy6OTOc>\
\
Do note that I made this before this mod existed. The modifying asset bundles part of the tutorial is no longer needed if you specify textures inside Material Targets.
{% endhint %}

{% hint style="info" icon="note" %}
Around 90% of the gear parts in GTFO uses the `Cell/Player/CustomGearShader`, so looking into the properties of that shader is not a bad idea.
{% endhint %}

If you (now) have an idea of what these properties might mean or you just want to tread on, there is one more thing with customizing Textures that I want to show you. (<mark style="color:$success;">**THIS IS IMPORTANT!**</mark>)

### Texture Properties with Texture Macros

Texture Macros are pretty neat, they make it easy for you to specify a texture without creating an actual image and saves you the space of an actual image in the Skin Group.

Click on the <kbd>Macros</kbd> button to bring up the macro selection dialog.

<figure><img src="/files/c9KXOhWOYxryGf8xOuik" alt="" width="563"><figcaption></figcaption></figure>

Now, you can select any of the macros to specify a complete texture that will be created in-memory when the game starts. For any additional details on each macro, see [Texture Macro](/skins/schema/texture-macro.md).

{% hint style="info" %}
If you have any useful macros in mind you would like to exist, [send it over](/skins/introduction.md#feedback).
{% endhint %}

Now, say you want to change the color of a gear part by adjusting the the `_MainTex` albedo, we can add a simple `@WHITE` macro to make it white, `@BLACK` to make it black, `@RGBA` to make it a specific color, or `@GRADIENT_V` to make it a vertical gradient.&#x20;

<figure><img src="/files/l0gHEpWwfuDaLyUgg2B3" alt="" width="563"><figcaption></figcaption></figure>

For the sake of education, I will talk about a few special macros in detail.

#### Normal Map

Normal maps adjusts the actual normals on a mesh by encoding a vector override in the form of pixel colors on a texture. If you want to override a normal map to make the model look smooth, you can use the `@NORMAL` macro. This macro sets the texture for the normal map to not modify any of the normals. An example is `_BumpMap` in `Cell/Player/CustomGearShader`, you can reset the normal by applying the macro in the slot.

<figure><img src="/files/hKwoRD83YrhpPH2UOlMq" alt="" width="563"><figcaption></figcaption></figure>

#### Metallic Smoothness (Glossiness)

A pretty cool map is the the Metallic Smoothness map — as the name says, it customizes how metallic and smooth/shiny a material is. You can play around setting these two properties for the entire Material Target by using the the `@METALLIC_SMOOTHNESS` macro on the `_MetallicGlossMap` slot. It's hard to describe it in words what these modify, so I won't bother here, but it is pretty cool.

<figure><img src="/files/0h8YcBZPAX4OLfShtFnb" alt="" width="563"><figcaption></figcaption></figure>

### Other Properties

These differ from shader to shader, but you can add them the same way you add a texture property adjustment.

***

One notable mention is the `_EmissiveColor` property and the `_EnableEmissive` property.

The former adjusts the tint (or overall brightness if grey) of how the texture in `_EmissiveMap` is used. The latter, contrary to what it sounds like, does not enable emission on the shader from experimentation, a `ENABLE_EMISSIVE` shader keyword does that job instead. We enable this keyword for you if you specify a `_EmissiveMap`, so you don't have to worry about that.

<figure><img src="/files/mLKgg86I40tekiuv7Vit" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sebun1.gitbook.io/skins/editor/editing-material-targets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
