Skip to content

Repository files navigation

Nick Hider

Client-side privacy masking for Minecraft player names, skins, and capes.

Nick Hider icon

Minecraft Loaders License

Download

What This Mod Does

Nick Hider masks player identity details in common vanilla client rendering and text paths.

  • Local player: replace your shown name, skin, and cape.
  • Other players: replace names with a template and swap skins/capes from configured source accounts.
  • FTB heads: when FTB Library-based UIs are present (including FTB Teams/Chunks), player heads follow Nick Hider skin masking rules.
  • UUID masking: masked identities use deterministic Minecraft-style UUIDs derived from the final displayed name (OfflinePlayer:<name>).
  • Global switch: instantly enable or disable all masking behavior.

Quick Start Tutorial

  1. Download the jar for your exact Minecraft + loader combination from Releases.
  2. Put the jar in your Minecraft mods folder.
  3. Launch the game and open settings from Mod Menu (Fabric + Mod Menu), Mod List (Forge/NeoForge), keybind Open Nick Hider Settings (default unbound), or command /nickhider.
  4. First-time setup suggestion: enable Hide Local Name, Hide Local Skin, and Hide Local Cape, then set Local Replacement Name to a neutral alias.
  5. Join a world/server and verify your own name and skin/cape are masked; enable Hide Other Names/Skins/Capes if you also want to mask other players.
  6. After config save/reload, Nick Hider automatically refreshes skin/cape sources in the background.

Features At A Glance

Area Behavior
Local name Replaces your local displayed name
Local skin Replaces your local rendered skin
Local cape Replaces your local cape and cape-based elytra texture
Other names Template-based replacement with [ID] token support
Other skins/capes Shared configured source usernames
UUID masking Deterministic UUID generated from final displayed name
FTB player heads FaceIcon-based heads respect local/other skin toggles
External fallback Optional mineskin.eu + api.capes.dev (default: off)
Runtime toggle Global Enable Nick Hider on/off switch
Open config Keybind + /nickhider command
Refresh behavior Automatic source refresh (no manual refresh button)
Diagnostics NH-* runtime codes with throttled warnings

Compatibility

  • Supported Minecraft versions: 1.20.1 and 1.21.1
  • Loader support policy:
    • 1.20.1: Fabric, Forge
    • 1.21.1: Fabric, NeoForge
  • Artifacts declare exact Minecraft version compatibility (1.20.1 or 1.21.1), not open-ended ranges.
  • On Forge/NeoForge, Nick Hider declares an optional ftblibrary dependency with ordering="BEFORE" to initialize head masking hooks as early as possible when FTB Library is installed.

Short matrix:

  • 1.20.1: Fabric, Forge
  • 1.21.1: Fabric, NeoForge

For exact jar availability per release, use GitHub Releases.

Configuration

Toggle Controls

  • Hide local: name, skin, cape
  • Hide others: names, skins, capes
  • Global master toggle: Enable Nick Hider
  • Optional switch: Enable External Skin/Cape Fallbacks (default: off)

Replacement Inputs

  • Local replacement name
  • Local skin source username
  • Local cape source username
  • Other players name template
  • Other players skin source username
  • Other players cape source username

Validation and Fallbacks

  • Replacement usernames must be empty or match [A-Za-z0-9_]{3,16}.
  • Local replacement name must match [A-Za-z0-9_]{3,16}.
  • UUID masking uses UUID.nameUUIDFromBytes("OfflinePlayer:<final_displayed_name>") and does not query Mojang APIs.
  • UUID masking follows name toggles (Hide Local Name, Hide Other Names).
  • UUID masking also covers shortened UUID prefixes commonly shown by some mods (for example only the first 8 hex chars).
  • FTB head masking follows skin toggles (Hide Local Skin, Hide Other Skins) when FaceIcon-based UIs are present.
  • FTB FaceIcon head textures are enforced on getFace(...), after FTB async skin callbacks, and right before FaceIcon.draw(...), so later async updates do not restore original heads while masking is enabled.
  • When FTB provides a GameProfile without a usable player name, Nick Hider resolves the name by UUID and still masks the head profile.
  • If cape masking is enabled but no valid cape source resolves, cape rendering is hidden instead of showing the original cape.
  • External fallbacks are queried only after official skin/cape lookups fail.
  • Saving or reloading config clears runtime cache and starts an automatic source prefetch.

Diagnostics Logs

  • Skin/cape runtime diagnostics use stable NH-* codes (for example NH-SKIN-FETCH, NH-SKIN-RECOVERED, NH-HOOK-FAIL).
  • Repeated identical failures are throttled per source user to avoid console spam.
  • Hook failures log the first incident as warning, and subsequent repeats as debug.

Known Limits

Nick Hider is aggressive on vanilla client paths, but masking is still best-effort. Third-party mods or custom render/UI pipelines can display unmasked data outside covered paths.

FTB integration is implemented through optional FaceIcon hooks. If a mod does not use FaceIcon for player heads, Nick Hider cannot enforce head masking there.

For Developers

Requirements:

  • Java 21
  • Git

Build:

./gradlew clean build

Run tests:

./gradlew test

License

Licensed under the GNU Affero General Public License v3.0 (AGPLv3).
See LICENSE.

Maintainer and Links

About

Identity/Nick hider mod for Minecraft. Created with "agentic engineering" lmao

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages