-
Notifications
You must be signed in to change notification settings - Fork 0
01 Getting Started
- 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_gunitems already exist in your world.
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).
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:
-
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 /
/reloadand is authoritative on the server. Covered in Adding Skins: the Datapack. -
A texture file — the actual re-painted
.pngfor 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. - (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/andassets/respectively inside it. Most MCPSkins skin packs ship as one combined pack containing both.
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.