Skip to content

01 Getting Started

json-nn edited this page Jul 22, 2026 · 3 revisions

Getting Started

Requirements

  • Minecraft 1.21.1, NeoForge.
  • TACZ-1.21.1 — the community NeoForge fork/port of TACZ that MCPSkins is built against. This is not the same as any official Fabric/Forge build of TACZ; MCPSkins reaches into this fork's internals via reflection (more on that in Troubleshooting & Internals), so results on a different TACZ build aren't guaranteed.
  • At least one TACZ gun pack that adds the weapons you want to skin. MCPSkins doesn't add any guns itself — it re-skins whatever tacz:modern_kinetic_gun items already exist in your world.

Installing

Drop the mod jar in mods/ next to TACZ and its gun pack(s), same as any other NeoForge mod. There's nothing to configure to get it running — it works with zero setup, showing zero skins, until you add some (see the next two pages).

The three ingredients of a skin

Adding a skin to a weapon always involves up to three separate pieces. You genuinely only need the first two — the third is optional and only needed if you want a full 3D model change instead of a re-texture:

  1. A datapack entry — a small JSON file that registers the skin: its ID, its display name, its color, and some optional metadata (rarity, collection, description, "NEW" badge). This lives in a datapack, so it's loaded on world load / /reload and is authoritative on the server. Covered in Adding Skins: the Datapack.
  2. A texture file — the actual re-painted .png for the weapon, placed in a resource pack. Without this, a registered skin exists (players can "own" it, see it in menus) but visually looks identical to the base weapon. Covered in Adding Skins: the Resource Pack.
  3. (Optional) A geo-model file — a full replacement 3D model (not just a re-texture) for skins that change the weapon's actual shape, not just its paint job. Also covered on the resource pack page, further down.

Tip. A datapack and a resource pack can absolutely be the same pack — Minecraft only cares that the right files exist under data/ and assets/ respectively inside it. Most MCPSkins skin packs ship as one combined pack containing both.

A minimal working example

Before diving into the full schema, here's the smallest possible skin, front to back, so you have something to compare against later:

my_skinpack/
├── pack.mcmeta
├── data/
│   └── mypack/
│       └── skins/
│           └── m4a1.json          <- registers the skin(s) for tacz:m4a1
└── assets/
    └── mcpskins/
        └── textures/
            └── skins/
                └── tacz/
                    └── m4a1/
                        └── m4a1_cobra.png   <- the re-texture itself

data/mypack/skins/m4a1.json:

{
  "base_gun": "tacz:m4a1",
  "skins": [
    {
      "id": "m4a1_cobra",
      "name": "Cobra",
      "label_color": "0xFF5533"
    }
  ]
}

That's a complete, working skin. Once loaded, m4a1_cobra shows up as an ownable skin for tacz:m4a1, and once a player owns and equips it, their M4A1 renders with m4a1_cobra.png instead of the stock texture. The next two pages go through every field and file location in detail.

Clone this wiki locally