# Normal and specular maps on GTA V weapons

> How normal and specular maps work on FiveM weapons: the _d/_n/_s naming, weapon shaders, DirectX vs OpenGL green channel, baking and shading fixes.

Source: https://fam-tools.com/guides/fivem-normal-specular-maps · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 10 min

**Short answer.** GTA V weapons usually use a diffuse (`_d`), normal (`_n`) and specular (`_s`) texture on a `weapon_normal_spec…` shader; `_tnt` variants support weapon tints through a palette. Normal maps follow the DirectX convention — flip the green channel if your baker exports OpenGL style. Specular maps control where light reflects; start from the vanilla weapon’s textures as a reference for values.

## Key points

- Naming: `_d` diffuse, `_n` normal, `_s` specular.
- Weapon shaders: `weapon_normal_spec…`; `_tnt` = tint support.
- DirectX normal maps — flip green if exported as OpenGL.
- Use vanilla textures as the reference for specular intensity.
- Bake normals from a high-poly model for real detail.

The diffuse texture gives a weapon its colour; the normal and specular maps give it shape and material. A good normal map makes a low-poly receiver look machined, and a correct specular map separates matte polymer from polished steel. Get either wrong and the gun looks plastic or inside out.

## The texture set

| Texture | Suffix | Stores |
| --- | --- | --- |
| Diffuse | `_d` | Base colour (and sometimes alpha) |
| Normal | `_n` | Surface direction detail — scratches, knurling, screws |
| Specular | `_s` | How strongly and sharply each area reflects light |

The shader on each model material decides which textures are used. Check the material in CodeWalker or Sollumz before creating textures — a material on a diffuse-only shader ignores your normal map entirely.

## Weapon shaders

Vanilla weapons use shaders from the `weapon_normal_spec…` family. Variants ending in `_tnt` read a tint palette so the weapon supports tints; others add detail maps, cutout alpha or emissive parts. Keep the vanilla shader when you retexture, and choose a `_tnt` variant for add-on weapons that should support tints — see [weapon tints](https://fam-tools.com/guides/fivem-weapon-tints-list).

## Normal maps

- Bake from a high-poly model onto the game model (Blender, Substance, Marmoset).
- GTA V uses DirectX-style normal maps. If lighting looks inverted (bumps look like dents), flip the green channel.
- Keep the normal map flat (128,128,255) where there is no detail.
- Compress as BC5 or BC3 — see [DDS formats](https://fam-tools.com/guides/fivem-dds-texture-formats-dxt-bc7).

## Specular maps

Bright areas reflect strongly (bare metal edges, polished parts), dark areas stay matte (polymer grips, rubber). A uniformly bright specular map is why many add-on guns look like wet plastic. Open the vanilla weapon’s `_s` texture next to yours and match its overall brightness before adding your own variation.

## Common shading problems

| Looks like | Likely cause |
| --- | --- |
| Bumps look like dents | OpenGL normal map — flip green |
| Whole weapon glossy | Specular map too bright |
| Flat, painted-on detail | Normal map missing or shader without normal support |
| Blocky shading on curves | Normal map compressed as BC1 |
| Seams along UV edges | Bake padding too small or mismatched tangents |

## Questions

### Does GTA V use DirectX or OpenGL normal maps?

DirectX-style. Flip the green channel of OpenGL-style normal maps.

### Why is my add-on weapon too shiny?

The specular map is too bright. Compare it with the vanilla weapon’s `_s` texture and tone it down.

### What does _tnt mean on a weapon shader?

The shader supports weapon tints via a palette.

### Do I need a specular map?

If the shader uses one, yes — without it the material cannot tell metal from polymer.

## Related

- https://fam-tools.com/guides/fivem-dds-texture-formats-dxt-bc7
- https://fam-tools.com/guides/fivem-weapon-tints-list
- https://fam-tools.com/guides/make-a-fivem-weapon-skin
- https://fam-tools.com/guides/openiv-codewalker-sollumz
