promotional bannermobile promotional banner

TACZ: Advanced Skin System (NEOFORGE)

Adds a full weapon skin system to TACZ — texture, icon, and full 3D model re-skins, real per-player ownership, and an in-game Armory with a live 3D preview.
2026-07-22_10.27.03.png

2026-07-22_10.27.03.png

2026-07-22_10.26.24.png

2026-07-22_10.26.24.png

2026-07-22_10.23.25.png

2026-07-22_10.23.25.png

2026-07-22_10.23.46.png

2026-07-22_10.23.46.png

2026-07-22_10.24.15.png

2026-07-22_10.24.15.png

2026-07-22_10.29.22.png

2026-07-22_10.29.22.png

Description

TACZ: Advanced Skin System (MCPSkins)

Give every TACZ weapon a locker full of skins. Texture re-paints, custom inventory icons, and even full 3D model swaps — with a real ownership system, a live "try before you own it" preview, and two different in-game ways to browse your collection. No fake duplicate guns, no lost attachments, no NBT hacks required.


✨ What is this?

MCPSkins is a skin/cosmetics layer built specifically for TACZ-1.21.1 (the NeoForge community port of Timeless and Classics Zero). Think of it as a CS:GO-style weapon locker, but for TACZ: players unlock skins one at a time, then apply an owned skin to a weapon whenever they like — either through TACZ's own refit screen or through MCPSkins' own full-screen Armory.

The most important thing to know about how it works: a skin never changes which gun you're holding. Your weapon's GunId is never swapped, replaced, or faked with a second item — only what gets rendered for it changes. That means skins stack cleanly with attachments, ammo, upgrades, and anything else TACZ (or any other addon) is tracking on that item stack, with zero side effects.


🖌️ Reskin down to the geometry, not just the paint job

  • Texture skins — drop a re-painted PNG into a resource pack and it's live. No config, no restart, just a /reload.
  • Optional custom icon — TACZ's inventory icon is a separate 2D image from the 3D model's texture; ship a matching icon file and your skin looks right in the hotbar too, not just in-hand.
  • Optional full 3D model swap — not just a re-color: skins can ship an entirely different geo-model (different stock, different attachments molded in, whatever you can build), while still reusing 100% of the base weapon's existing animations.
  • Works with any gun pack — official or third-party. If it's a registered TACZ GunId, you can skin it.

🗂️ Two ways to browse and equip

  • The Skin Armory — a standalone, full-screen catalog: search, filter by owned/locked, filter to just the skins with a custom 3D model, sort by rarity/name/newest, and a drag-to-rotate, scroll-to-zoom 3D preview podium showing the actual weapon with the skin applied. Opens with a hotkey (K by default, rebindable) or /mcpskins armory, and works with an empty hand — it's a browser, not tied to what you're holding.
  • The Refit screen overlay — a compact skin carousel embedded directly into TACZ's own weapon refit/attachment screen, for quickly cycling through skins for whatever's currently in your hands. Fully repositionable with an in-game drag-to-place picker.

🔒 Real ownership, not just a coat of paint

  • Every player has a persistent, server-authoritative unlocked-skins list — survives death, syncs automatically on login/respawn/dimension change, and can't be spoofed from the client.
  • Grant skins with admin commands, or hand out a physical unlock item — usable, tradeable, droppable, with a tooltip that previews exactly what it unlocks.
  • Locked skins can still be previewed live on the real weapon model, in both UIs, before a player owns them — entirely client-side, nothing granted, nothing sent to the server until they actually equip one they own.
  • Shift-right-click fusing: turn a stash of duplicate unlock items into a re-roll at the next rarity tier up (Common → Uncommon → Rare → Epic → Legendary), preferring skins the player doesn't already have.
  • Equipped skins add a small "Skinned by <player\>" lore line to the weapon, kept in sync automatically as skins change.

🏷️ Rich, filterable metadata

Every skin can optionally carry a rarity, a named collection, a short description, and a "NEW" badge — all shown in the Armory's filters, sorting, and detail panel. None of it is required; a skin needs nothing more than an ID, a name, and a color to work.

⚙️ Configurable top to bottom

  • Client-side: refit button position/size/anchor (with a live drag-to-place picker), toast on/off and duration, carousel sizing — all purely local, none of it trusted or synced.
  • Server-side (authoritative): fusion on/off and cost, whether locked-skin preview is even allowed, and separate permission levels for "can equip without owning" vs. "can run admin commands."

🧩 Adding your own skins (quick start)

Skins are defined per-weapon in a datapack JSON file, and given their look through a matching resource pack — the same pack, or two separate ones, your choice.

data/<namespace>/skins/m4a1.json

{
  "base_gun": "tacz:m4a1",
  "skins": [
    {
      "id": "m4a1_cobra",
      "name": "Cobra",
      "label_color": "0xFF5533",
      "rarity": "RARE",
      "collection": "Snake Pack",
      "description": "Strike fast, strike quiet.",
      "is_new": true
    }
  ]
}

assets/mcpskins/textures/skins/tacz/m4a1/m4a1_cobra.png — that's it, the skin is live.

rarity, collection, description, and is_new are all optional. Skin IDs are global (not per-weapon), so the recommended naming scheme is <weapon>_<skin_name> — see the full documentation for the complete schema, the icon/geo-model file layout, and the exact rules for skinning weapons from third-party gun packs.

📖 Full documentation & wiki — datapack schema, resource pack layout (including full 3D model replacement), every command, every config option, and a troubleshooting guide.


🎮 Commands

/mcpskins give skin <player> <skinId>     Unlock a skin directly for a player
/mcpskins give item <player> <skinId>     Give a physical skin-unlock item
/mcpskins give all <player>               Unlock every skin for a player
/mcpskins take skin <player> <skinId>     Remove a specific skin
/mcpskins take skins <player>             Clear all unlocked skins

/mcpskins armory [skinId]                 Open the Skin Armory (client-side, no permission needed)

Every skin ID argument is validated against the live registry and tab-completes, so a typo can't grant a broken unlock. The give/take commands require operator permission (configurable minimum level, default full op).


📋 Requirements

  • Minecraft 1.21.1
  • NeoForge 21.1.233+
  • TACZ (MUKSC fork), neoforge/1.21.1 branch — required on both client and server
  • At least one TACZ gun pack (official or third-party) adding the weapons you want to skin — MCPSkins doesn't add any guns itself

⚠️ Good to know

  • This mod targets the MUKSC community port of TACZ to NeoForge 1.21.1 specifically, not any other TACZ build — some of the deeper features (full 3D model replacement in particular) reach into that fork's internals to reuse its own model-loading code rather than reimplementing it.
  • Everything is built to fail soft: if a feature can't find what it's looking for on a given TACZ build, that one feature quietly stays off (with a single explanatory log line) instead of crashing the game — texture and icon re-skinning, in particular, are designed to keep working even if something else doesn't.
  • Full 3D model skins have one hard requirement: the replacement model's skeleton (bone names) has to match the base weapon's existing animations. A mismatch degrades safely to the base geometry rather than breaking anything.

🐛 Reporting an issue

If a skin isn't showing up or isn't rendering right, check your log first — this mod logs a specific, human-readable line for nearly every way a skin can fail to apply (missing file, path mismatch, unsupported fork version, mismatched skeleton, etc.), each prefixed [MCPSkins]. Most "it doesn't work" reports turn out to be answered by that one log line. If you do open an issue, please include it, along with your TACZ and gun pack versions.


📜 License

MIT — feel free to include MCPSkins in any modpack, public or private. A credit and link back here is appreciated but never required.

Built for the TACZ-1.21.1 (MUKSC) community.

The TACZ: Advanced Skin System (NEOFORGE) Team

profile avatar
Owner
  • 3
    Projects
  • 821
    Downloads

More from JS_ON