
Modrinth · Minecraft mod
HWID (Anti-Alts)
Stop annoying players from circumventing your bans by checking for alts based on hardware IDs
Quick answer
Which HWID (Anti-Alts) release should I use?
HWID (Anti-Alts) 4.1 targets 1.21.1, 1.21.2, 1.21.3 with NeoForge. Installation on the client is optional. Installation on the dedicated server is optional. No extra mods listed for this file.
Where it goes
Is HWID (Anti-Alts) required on the client, server, or both?
Installation on the client is optional. Installation on the dedicated server is optional.
The source marks this as usable on both the client and server.
What else does HWID (Anti-Alts) 4.1 need?
4.1. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add HWID (Anti-Alts) without breaking your instance.
Built for HWID (Anti-Alts) 4.1. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 4.1. It targets 1.21.1, 1.21.2, 1.21.3 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
Installation on the client is optional. Installation on the dedicated server is optional.
- 04
Pick the file you checked
Use the “Get this file” button beside 4.1. It opens that exact file at the source.
About this project
What does HWID (Anti-Alts) add?
Are you running a server and occasionally meet some players you want to get rid of, but they keep coming back using alt accounts and a VPN? Well, now you've got the chance to identify their accounts based on a hardware ID instead of unreliable IPs, skins or behaviour!
What this mod does
- This mod is registering an empty argument, making it required on clients if your server has it installed. Players who try to remove it from their modpack can't join your server.
- When players join your server, the client calculates a semi-unique hash value based on the player's hardware, which is then stored by the server (
<server root>/config/hwid), along with the account UUID.
What this mod doesn't do
- Automatically ban people based on hardware IDs
- Provide an easy way to find hardware IDs with multiple players in-game
How to use it then?
Check some example scripts further down below, I don't want to bury the following two points under codeblocks as they're quite important to read.
Privacy
While a hardware ID sounds invasive, it's way less confidental information than an IP address. The hardware ID is being calculated on the client using the SHA-256 algorithm, which is irreversible and therefore gives server operators no information on what hardware is being used. The hardware ID can only be used to tell unique hardware configurations apart.
Limitations
- Hardware IDs are semi-unique. If players upgrade their computer or replace it entirely, it will change. Players can also have the same hardware ID, if they coincidentally have the same computer, for example a common pre-built. Serial numbers (if existing) are included during the hash calculation to minimize this occurence.
- Dedicated troublemakers with knowledge of Java can decompile this mod and create an evil twin, sending a random or specific hardware ID every time they join.
Bash
#!/bin/bash
destination_path="/home/minecraftserver/config/hwid"
for file in "$destination_path"/*
do
line_count=$(wc -l <"$file") # Count the number of lines in the file
if [ "$line_count" -gt 1 ] # Check if the line count is greater than 1
then
echo ""; echo "$(basename "$file")" # Print an empty line and the filename
while IFS= read -r line # Read each line from the file
do
uuid=${line} # Assign the line to the variable 'uuid'
response=$(curl -s https://sessionserver.mojang.com/session/minecraft/profile/${uuid}) # Send a request to the Mojang API to get the profile information
name=$(echo "$response" | jq -r '.name') # Extract the 'name' field from the API response using jq
echo "${uuid} - ${name}" # Print the UUID and the corresponding name
done < "$file" # Read from the file
fi
done
Python 3
import os, json, requests
search = "" # Set the search term, eg. username, UUID or parts of either
for filename in os.listdir("/home/minecraftserver/config/hwid"): # Iterate over each file in the specified directory
with open(f"/home/minecraftserver/config/hwid/{filename}", "r") as file: # Open each file in read mode
lines = file.readlines() # Read all lines from the file
if len(lines) > 1: # Check if there are more than one line in the file
result = "" # Initialize the result string
for line in lines:
uuid = line.strip() # Get the UUID from each line
response = requests.get(f"https://sessionserver.mojang.com/session/minecraft/profile/{uuid}") # Send a GET request to Mojang API to get player profile
name = json.loads(response.text)['name'] # Extract the player name from the response
result += f"{uuid} - {name}\n" # Append UUID and name to the result string
if search in result: # Check if the search string is present in the result
print(result) # Print the result
Project description from Modrinth.
Pick your setup
HWID (Anti-Alts) by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.10
1 loader build1.21.9
1 loader build1.21.8
1 loader build1.21.7
1 loader build1.21.6
1 loader build1.21.5
1 loader build1.21.4
1 loader build1.21.3
1 loader build1.21.2
1 loader build1.21.1
1 loader build1.20.4
1 loader buildShowing the newest 12 of 15 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
HWID (Anti-Alts) versions and loaders
4.1
hwid_anti_alts-4.1.jar
3 Mar 2026
4.1
hwid_anti_alts-4.1.jar
18 May 2024
4.0
hwid_anti_alts-4.0.jar
9 Feb 2024
3.2
vampirism_co_quirks-3.2.jar
27 Jan 2024
Looking for an older file? The official Modrinth project page is in Resources.