{"id":82860,"date":"2026-06-04T20:59:17","date_gmt":"2026-06-04T17:59:17","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/"},"modified":"2026-06-04T20:59:17","modified_gmt":"2026-06-04T17:59:17","slug":"hwid","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/","title":{"rendered":"HWID (Anti-Alts)"},"content":{"rendered":"<p>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&#8217;ve got the chance to identify their accounts based on a hardware ID instead of unreliable IPs, skins or behaviour!<\/p>\n<p>&#8212;<\/p>\n<p>### What this mod does<br \/>\n&#8211; 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&#8217;t join your server.<br \/>\n&#8211; When players join your server, the client calculates a semi-unique hash value based on the player&#8217;s hardware, which is then stored by the server (`<server root>\/config\/hwid`), along with the account UUID.<\/p>\n<p>### What this mod doesn&#8217;t do<br \/>\n&#8211; Automatically ban people based on hardware IDs<br \/>\n&#8211; Provide an easy way to find hardware IDs with multiple players in-game<\/p>\n<p>### How to use it then?<br \/>\nCheck some example scripts further down below, I don&#8217;t want to bury the following two points under codeblocks as they&#8217;re quite important to read.<\/p>\n<p>&#8212;<\/p>\n<p>### Privacy<br \/>\nWhile a hardware ID sounds invasive, it&#8217;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.<\/p>\n<p>### Limitations<br \/>\n&#8211; 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.<br \/>\n&#8211; 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.<\/p>\n<p>&#8212;<\/p>\n<p>### Bash<br \/>\n&#8220;`<br \/>\n#!\/bin\/bash<\/p>\n<p>destination_path=&#8221;\/home\/minecraftserver\/config\/hwid&#8221;<br \/>\nfor file in &#8220;$destination_path&#8221;\/*<br \/>\ndo<br \/>\n    line_count=$(wc -l <\"$file\")  # Count the number of lines in the file\n    if [ \"$line_count\" -gt 1 ]  # Check if the line count is greater than 1\n    then\n        echo \"\"; echo \"$(basename \"$file\")\"  # Print an empty line and the filename\n        while IFS= read -r line  # Read each line from the file\n        do\n            uuid=${line}  # Assign the line to the variable 'uuid'\n            response=$(curl -s https:\/\/sessionserver.mojang.com\/session\/minecraft\/profile\/${uuid})  # Send a request to the Mojang API to get the profile information\n            name=$(echo \"$response\" | jq -r '.name')  # Extract the 'name' field from the API response using jq\n            echo \"${uuid} - ${name}\"  # Print the UUID and the corresponding name\n        done < \"$file\"  # Read from the file\n    fi\ndone\n```\n\n### Python 3\n```\nimport os, json, requests\n\nsearch = \"\"  # Set the search term, eg. username, UUID or parts of either\n\nfor filename in os.listdir(\"\/home\/minecraftserver\/config\/hwid\"):  # Iterate over each file in the specified directory\n    with open(f\"\/home\/minecraftserver\/config\/hwid\/{filename}\", \"r\") as file:  # Open each file in read mode\n        lines = file.readlines()  # Read all lines from the file\n        if len(lines) > 1:  # Check if there are more than one line in the file<br \/>\n            result = &#8220;&#8221;  # Initialize the result string<br \/>\n            for line in lines:<br \/>\n                uuid = line.strip()  # Get the UUID from each line<br \/>\n                response = requests.get(f&#8221;https:\/\/sessionserver.mojang.com\/session\/minecraft\/profile\/{uuid}&#8221;)  # Send a GET request to Mojang API to get player profile<br \/>\n                name = json.loads(response.text)[&#8216;name&#8217;]  # Extract the player name from the response<br \/>\n                result += f&#8221;{uuid} &#8211; {name}n&#8221;  # Append UUID and name to the result string<br \/>\n            if search in result:  # Check if the search string is present in the result<br \/>\n                print(result)  # Print the result<br \/>\n&#8220;`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stop annoying players from circumventing your bans by checking for alts based on hardware IDs<\/p>\n","protected":false},"featured_media":82861,"template":"","meta":{"_minecraft_slug":"hwid","_minecraft_project_id":"wslWWn2c","_minecraft_author":"lunofe","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":33613,"_minecraft_follows":4,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"hwid.zip","_minecraft_size_bytes":33172,"_minecraft_version_count":3,"_minecraft_updated_at":"2026-05-16T15:11:51.295538Z","_minecraft_date_created":"2023-06-20T02:29:46.718686Z","_minecraft_date_modified":"2026-03-03T21:06:27.200622Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/hwid","_minecraft_icon_attachment_id":82861,"_minecraft_imported_at":"2026-06-04T17:59:17+00:00","_minecraft_import_hash":"0b2501bd7657a399dbf9803e9abad972","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[104,126,158,92],"mod_loader":[106],"minecraft_version":[36,60,93,94,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-82860","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-forge","mod_category-management","mod_category-neoforge","mod_category-utility","mod_loader-forge","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HWID (Anti-Alts) - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HWID (Anti-Alts) - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Stop annoying players from circumventing your bans by checking for alts based on hardware IDs\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/\",\"name\":\"HWID (Anti-Alts) - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp\",\"datePublished\":\"2026-06-04T17:59:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hwid\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"HWID (Anti-Alts)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HWID (Anti-Alts) - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/","og_locale":"en_US","og_type":"article","og_title":"HWID (Anti-Alts) - Minecraft","og_description":"Stop annoying players from circumventing your bans by checking for alts based on hardware IDs","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/","name":"HWID (Anti-Alts) - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp","datePublished":"2026-06-04T17:59:17+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/hwid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hwid-icon-49267718b1b49b9cb85ce6c9e81e46c8f0651ea4_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hwid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"HWID (Anti-Alts)"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/82860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/82861"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=82860"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=82860"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=82860"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=82860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}