HWID Tracker (Notification / Listing / Kick / Ban)
HWID Tracker is a lightweight utility mod for NeoForge that silently tracks the hardware ID (HWID) of players connecting to your server โ enabling reliable HWID-based bans, multi-account detection, and instant operator alerts.
Unlike name or IP bans, a HWID ban is tied to the player's physical hardware, making it significantly harder to evade by simply creating a new account or switching networks.
๐งฉ Multiple Minecraft versions supported: 1.21.1โ1.21.5 (one file) ยท 1.21.8 ยท 1.21.10 ยท 1.21.11 ยท 26.1. Download the file matching your server's Minecraft version from the Files tab.
โ ๏ธ Note: This mod requires installation on both server and client. Add it as a required mod in your modpack. Players without the mod cannot connect.
๐ Privacy: The HWID is hashed client-side with SHA-256 before being sent to the server. No raw hardware data ever leaves the client. This mod makes zero external network connections โ all data is stored locally on your server, and multi-account detection is exposed as a local event for other mods to react to if needed.
โจ Features
- ๐ Silent HWID tracking โ hardware data is collected automatically on login, with no prompt or notification shown to the player
- ๐จ HWID + UUID + IP ban in one command โ
/hbancovers all three ban layers simultaneously - โณ Temporary bans โ ban players for a specific duration (
t:30m,t:12h,t:1d,t:2w), auto-lifted when expired, with the correct expiry date shown on the ban screen - ๐ซ Multi-account detection โ detects when two accounts share the same hardware and kicks the second account instantly
- โ
Bypass list โ exempt trusted players from the multi-account kick with
/hbypass, e.g. siblings sharing one PC or approved second accounts - โ๏ธ Configurable โ multi-account kicking can be turned off entirely via config, while HWID tracking and manual ban commands keep working
- ๐ข Operator alerts โ all online operators (admin permission) receive an immediate in-game notification on multi-account attempts
- ๐ Per-player HWID files โ each player gets their own
config/user-hwids/<uuid>.txtwith name, UUID, HWID hash, IP, first seen and last seen - ๐ Ban list file โ all bans are stored in
config/user-hwids/bans.jsonwith reason, banner name, timestamp and optional expiry - ๐ Vanilla ban integration โ automatically writes to
banned-players.jsonandbanned-ips.jsonon ban, removes on unban/expiry - โป๏ธ Full unban support โ
/hunbanremoves the player from all three ban lists at once - ๐ HWID lookup command โ
/hwidshows all stored data for any player, online or offline - ๐ Event API โ fires a public
HwidMultiAccountEventon the NeoForge event bus, so other mods can react to multi-account detections locally without any dependency on this mod's internals - โก Lightweight โ no database, no external connections, pure file-based storage
๐ Commands
All commands require operator/admin permission.
| Command | Description |
|---|---|
/hwid <name> |
Show HWID data for a player (online or offline) โ UUID, IP, HWID hash, first/last seen, ban status |
/hban <name> permanent |
Permanent ban by HWID + UUID + IP (works for online and offline players) |
/hban <name> permanent <reason> |
Permanent ban with a custom reason |
/hban <name> t:<duration> |
Temporary ban for the given duration |
/hban <name> t:<duration> <reason> |
Temporary ban with a custom reason |
/hunban <name> |
Remove all bans for a player (HWID, UUID and IP) |
/hbanlist |
List all active HWID bans with type (permanent/temporary), expiry, reason, banner and timestamp |
/hbypass add <name> |
Exempt a player from the multi-account kick (online or offline players) |
/hbypass remove <name> |
Remove a player from the bypass list |
/hbypass list |
List all bypass entries with who added them and when |
Supported duration units: m (minutes) ยท h (hours) ยท d (days) ยท w (weeks)
Examples:
/hban Steve permanent Cheating
/hban Steve t:1d Griefing
/hban Steve t:30m
โ๏ธ Configuration
After the first server start, config/hwidtracker-server.toml is created automatically:
[general]
# If true, a joining player is kicked when their hardware ID (HWID) already
# belongs to another player currently online (multi-account detection).
# Set to false to disable this check entirely โ HWID tracking and manual
# /hban, /hunban, /hbanlist and /hwid commands keep working either way.
multi_account_kick_enabled = true
๐ How It Works
| Step | What happens |
|---|---|
| 1. Player joins | Client mod silently reads Mainboard Serial + CPU ID + total RAM |
| 2. Hash | Values are combined and hashed with SHA-256 โ no raw hardware data ever leaves the client |
| 3. Packet sent | The hash is sent to the server in a silent custom packet |
| 4. Ban check | Server checks the hash against bans.json โ if banned (and not expired), player is disconnected and added to vanilla ban lists, including the correct expiry date for temporary bans |
| 5. Multi-account check | If enabled in config, the server checks if the same HWID hash is already active in the current session โ if so, the second account is kicked, operators are alerted in-game, and HwidMultiAccountEvent is fired for other mods. Accounts on the /hbypass list are allowed through silently |
| 6. File saved | Player data (name, UUID, HWID, IP, timestamps) is written to config/user-hwids/<uuid>.txt |
| 7. Expiry check | Background task runs every 60s โ expired temporary bans are automatically removed from all ban lists |
๐ฏ Example Use Case
A player gets caught cheating. You run /hban PlayerName t:7d Cheating. The mod instantly:
- Kicks them from the server
- Writes their HWID, UUID and IP to
bans.jsonwith a 7-day expiry - Adds them to vanilla
banned-players.jsonandbanned-ips.json, including the exact unban date and time - After 7 days, the ban is automatically lifted across all lists
They create a new account and try to rejoin during the ban. The moment their client connects, the HWID hash matches โ they are disconnected before they can even move, with the ban's reason and expiry date shown, and you receive an in-game alert.
๐ฆ Technical Details
| Minecraft Versions | 1.21.1โ1.21.5 (one file) ยท 1.21.8 ยท 1.21.10 ยท 1.21.11 ยท 26.1 โ pick the matching file from the Files tab |
| Mod Loader | NeoForge (required version matches the Minecraft version โ see file listing) |
| Java Version | 21 (Minecraft 1.21.x files) ยท 25 (Minecraft 26.1 file) |
| Side | Client + Server (required on both) |
| External connections | None โ all data stays on your server |
| Dependencies | None (OSHI is bundled with the game) |
| Mod ID | hwidtracker |
| Config | config/hwidtracker-server.toml |
| Storage | config/user-hwids/ |
| HWID Components | Mainboard Serial ยท CPU Identifier ยท Total RAM |
ยฉ 2area | Discord: 2area | CurseForge: https://www.curseforge.com/members/2area/projects | All rights reserved.

