Skip to content

05 In Game UI

json-nn edited this page Jul 22, 2026 · 1 revision

In-Game UI

There are two separate places a player interacts with skins in-game: MCPSkins' own full-screen Armory, and a compact skin picker embedded directly into TACZ's existing weapon refit screen. Both apply skins through the same server-validated path, so ownership rules are enforced identically no matter which one a player uses.

The Armory (full-screen catalog)

Open it with the K key (default, rebindable in Controls → Key Categories → MCPSkins) or by typing /mcpskins armory. Unlike the refit-screen picker below, this one works even with an empty hand — it's a general browser, not tied to whatever's currently equipped.

Layout:

  • Weapon list (left) — every weapon that has at least one registered skin.
  • Skin grid (right) — every skin for the selected weapon, with:
    • A search box to filter by name.
    • Filter pills: All / Owned / Locked, plus a "Custom Model" toggle that shows only skins shipping a full geo-model replacement rather than a plain re-texture.
    • Sort options: Rarity / Alphabetical / Newest.
    • A small "NEW" badge on any skin with is_new: true, and a model badge on any skin with a custom geometry.
  • 3D podium (center) — the actual weapon item, rendered live with the currently selected skin applied. Drag to rotate, scroll to zoom; it auto-rotates on its own until you touch it, then stays wherever you leave it.
  • Detail panel (bottom) — the skin's name, rarity (colored), description if it has one, and an Equip button.

Locked skins are still fully browsable (subject to the allowLockedSkinPreview setting, on by default — see Configuration) — you can look at anything, you just can't equip what you don't own, and the Equip button reflects that.

The refit-screen skin picker

TACZ's own weapon refit/attachment screen gets a small toggle button overlaid onto it (default: top-right corner, next to TACZ's own attachment row — fully repositionable, see Configuration). Clicking it switches the screen into "skin mode," which shows a horizontal, coverflow-style carousel of the currently held weapon's skins along the bottom of the screen.

This picker only ever operates on whatever weapon you're currently holding (main hand or offhand) — there's no weapon selector here, unlike the Armory.

  • Scroll or click through the carousel to browse.
  • Browsing a locked skin previews it instantly and purely visually — your weapon appears to change in your hands right there in the menu, but nothing is sent to the server and nothing about ownership changes. It's a local-only illusion that's undone the moment you close the screen (or immediately reverts if the preview setting is disabled server-side).
  • Clicking an owned skin actually equips it — this does go to the server for validation (see below), and a small confirmation toast appears on-screen once it's applied (configurable duration, can be disabled — see Configuration).

What "equipping" actually does, under the hood

Whether triggered from the Armory or the refit screen, applying a skin sends a request to the server, which:

  1. Confirms the player actually owns that skin ID (or has the configurable "equip bypass" permission — see Configuration — useful for admins/testers).
  2. Confirms the skin actually belongs to the weapon in the player's hand (you can't request an AK skin while holding an M4A1 — the request is just silently ignored).
  3. Writes the skin ID onto the weapon's own data (again: the weapon's GunId never changes, only this separate value).
  4. Adds a small gray lore line to the weapon reading "Skinned by <PlayerName>" (with the name in gold), visible in its tooltip. This line is automatically added, replaced, or removed as skins are applied/changed/reverted to stock — you don't need to (and shouldn't) add it by hand in any datapack.

Because this always round-trips through the server, a locked-skin preview (client-only) and an actual equip (server-validated) are meaningfully different — only the latter is persistent or shows up for other players.

Next: everything above has a knob to turn — button position, toast duration, fuse cost, permission levels — see Configuration.

Clone this wiki locally