{"id":148403,"date":"2026-06-09T00:54:46","date_gmt":"2026-06-08T21:54:46","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/"},"modified":"2026-06-09T00:54:46","modified_gmt":"2026-06-08T21:54:46","slug":"status_hider","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/","title":{"rendered":"Status Hider"},"content":{"rendered":"<p># Status Hider<\/p>\n<p>A network security mod for Minecraft servers, meant to keep server crawlers out of your face and preventing them access<br \/>\nto your online players data, MotD, and such, all the while adding some neat features for you to use.<\/p>\n<p>## Why<\/p>\n<p>As a server administrator myself, I was often seeing logs of connection attempts, or uncaught network errors<br \/>\n(e.g. the recurrent `connection reset by peer` message), that even mass IP-banning simply couldn&#8217;t help with.<\/p>\n<p>But I finally ticked and decided to act when I saw a log of a supposed connection attempt from a &#8216;ServerSeekerV2&#8242; user,<br \/>\nwhich obviously linked to the ServerSeekerV2 software, proving to me<br \/>\nonce and for all that there were people out there that had nothing better to do that have software scanning the net for<br \/>\nMinecraft servers, to know which ones are online and when, and who is playing on them at set times, storing and<br \/>\ncross-comparing the generated data to possibly dress up players profiles that could then be used for ill intents.<\/p>\n<p>So I took upon myself to dive into the whole server ping and login network protocol, and made this mod to allow more<br \/>\nprivacy to server owners and their players.<\/p>\n<p>### Let me get data in peace<\/p>\n<p>No. Respect people&#8217;s privacy.<\/p>\n<p>## How it works<\/p>\n<p>### Files<\/p>\n<p>The mod stores some information about connection attempts and known players. As such, three additional files are created<br \/>\nin the server&#8217;s main directory:<\/p>\n<p>* `player_ip_cache`: this file stores some information about players that have properly joined the server at least once.<br \/>\n  Each entry (one line being one entry) holds the player name, UUID, and a list of the player&#8217;s known IPs&#8217; hashes.<br \/>\n  It allows the mod to know if an incoming connection is from a known player, and thus determines most of the mod&#8217;s<br \/>\n  overall behaviour. You may at will remove or modify an entry, but the mod will yell in the server&#8217;s console if a line<br \/>\n  cannot be properly parsed in a valid entry.<\/p>\n<p>* `request_metrics`: this file stores the mod&#8217;s memory of connection attempts, ping requests, and alike, from various<br \/>\n  IP addresses. Each line (entry) is composed of the IP hash, the number of ping attempts from the IP, the number of<br \/>\n  login attempts from the IP, and the number of overall requests (login or ping alike) all the while the IP address has<br \/>\n  been banned &#8211; if it has been banned. This file is particularly useful for the auto-IP-ban feature.<\/p>\n<p>* `ip_whitelist`: this file stores a list of RegEx expressions of any whitelisted IP that are allowed to ping the server<br \/>\n  regardless of registering a player or not. This is only truly relevant for server panels, most often provided by<br \/>\n  third-party hosting services, that regularly run server pings in order to provide some analytics to the server owners.<br \/>\n  Note that this does not impact players&#8217; ability to join the server, they do not need to be whitelisted!<\/p>\n<p>* `ip_limit_list`: this file follows the same format as the `ip_whitelist`.<br \/>\n  It is only relevant if the appropriate gamerule is enabled.<br \/>\n  It determines a collection of patterns that any non-local source must match in order to establish a connection to the server.<\/p>\n<p>#### Why IP hashes<\/p>\n<p>The mod deal with IP hashes as much as it can, not only in order to reduce the processed data, but also what it may<br \/>\nexpose to any potential third party that could get access to the server files. Obviously, considering servers can by<br \/>\nthemselves store any and all IP in the logs, it may not be the most relevant, but in the event of a server getting<br \/>\ncompromised, exposing the least player information directly remains a better standing point. Since hashing allows to<br \/>\nproduce consistent results that will never change from a same initial value, but not easily allow for figuring out the<br \/>\ninitial value from the result, it is a mean to somewhat obscure data from potentially malicious factors to some extent.<\/p>\n<p>### Gamerules<\/p>\n<p>The mod additionally adds a set of custom gamerules, each allowing to control its various features:<\/p>\n<p>* `status_hider:reduced_ping_data`: sets from whom to reduce ping data details, such as hiding the connected players<br \/>\n  list, providing fake max online\/max player counts, and hiding the MotD. Set to unknown or banned IPs by default.<br \/>\n* `status_hider:restrict_ping`: toggles whether to cut short to any ping request coming from an<br \/>\n  unknown IP address (not linked to any player that has already joined the server). Enabled by default.<br \/>\n* `status_hider:log_restricted_requests`: toggles whether to log when the mod blocks out a ping request.<br \/>\n* `status_hider:enable_fancy_motd`: toggles the [fancy motd](#fancy-motd) feature. Enabled by default.<br \/>\n* `status_hider:enforce_ip_ban`: toggles the [real IP-ban](#real-ip-ban) feature. Enabled by default.<br \/>\n* `status_hider:auto_ban_unknown_ip_after_requests`: sets how many requests can an unknown IP address can make before<br \/>\n  automatically getting IP-banned ; set it to 0 in order to disable the feature. Accepts values between 0 and 100, set<br \/>\n  to 10 by default.<br \/>\n* `status_hider:log_banned_ip_requests`: sets how often should requests from banned IPs be logged in the server&#8217;s<br \/>\n  console. More specifically, indicates out of how many requests should it be logged (uses modulo) ;<br \/>\n  1 would mean every time, 20 would mean every one request out of 20 ; set it to 0 to disable the feature. Accepts<br \/>\n  values between 0 and 100, set to 10 by default.<br \/>\n* `status_hider:limit_allowed_ip`: toggles whether to restrict connections to sources matching the IP allow list<br \/>\n  patterns (defaults to `false`)<\/p>\n<p>### Real IP Ban<\/p>\n<p>In the vanilla code, IP bans are only checked very late in the player login sequence, and completely ignored when it<br \/>\ncomes to ping requests. All in all, it is a rather weak feature.<\/p>\n<p>As such, this mod takes it to a whole other level, and makes it so that any request whatsoever, from a banned,<br \/>\nnon-whitelisted (not matching any ip-whitelist entry) IP address, will purely and simply never be answered to.<\/p>\n<p>Thus, any banned IP will be left hanging when making a request, as if the server was not running.<br \/>\nAdditionally, every 10 request from a banned-ip, the server will mention it in the console, so as to let server<br \/>\nadministrators know of the relevance of an IP ban.<\/p>\n<p>### Fancy MOTD<\/p>\n<p>Since the mod already links up players and their IP adresses, I figured it also was an occasion to create a fancy way to<br \/>\nwelcome players, using the MotD.<\/p>\n<p>As such, any `{username}` in the server&#8217;s MotD will be automatically replaced with a matching known player name, if any.<\/p>\n<p>Additionally, knowing some basics of how IP addresses are used across the globe, I decided to *include inside the mod a<br \/>\nfile of per-country allocated IP ranges*[*](#ip-ranges-file), which enables the mod to guess and replace any `{country}`<br \/>\nin the MotD with a possibly matching country name, or `unknown` if none was found.<\/p>\n<p>#### ip ranges file<\/p>\n<p>This file is a rather minimalistic file, albeit still pretty big, which makes up for most of the mod jar&#8217;s file size.<\/p>\n<p>It is a bundled file in order to avoid using a third party API, which would go against two of this mod&#8217;s goals:<br \/>\n* Not giving more data than required to third parties. Using a third party API would mean allowing them to know what IPs<br \/>\n  are joining the server, and thus, what are the players&#8217; IPs.<br \/>\n* Not manipulating or exposing more data than needed. Most third party APIs for IP address geolocation go far and beyond<br \/>\n  the needs of this mod, and would imply fetching data that other, potentially malicious, mods, could intercept.<br \/>\n  And while it is true that other mods could already get all these information by themselves, not exposing it even more<br \/>\n  is but only a good practice.<\/p>\n<p>This file was produced from data provided free of use by ayra.ch, after simplification, for<br \/>\nboth removing unusable values as well as for country name readability.<\/p>\n<p>### Command<\/p>\n<p>This mod adds a custom command, that allows for some useful alternatives to manually editing files, besides also a way<br \/>\nto reload the cache or metrics file at runtime. (the ip whitelist file is only loaded at server startup, due to its<br \/>\nnature of not needing to be edited often). It has a permission level requirement of 4 (default vanilla OP level,<br \/>\ncan be changed in the `server.properties` file, per-player values can be modified in the vanilla `ops.json` file)<\/p>\n<p>`\/status_hider forget <profileOrIP` allows server admins to remove an entry from the player IP cache at runtime.\nThe profile or IP can either be an IP address or a player's name. Any entry matching with either will be completely\nremoved from the IP cache.\n\n`\/status_hider registerIP <ip> [<name>]` allows server admins to register a specific IP under a specific or<br \/>\nauto-generated name. If the IP is already registered in an existing entry, the command will not do anything.<br \/>\nIf an entry already exists for that name, then the provided IP will be added to it. Otherwise, a new entry with a<br \/>\nrandom UUID will be created with that IP listed for it.<\/p>\n<p>`\/status_hider reload [cache|metrics|whitelist|limit_list]` allows server admins to either reload the IP cache file,<br \/>\nthe request metrics file, the whitelist file, the limit list file, or all if not specified.<br \/>\n(beware that depending on your server&#8217;s activity, you may want to run the command quickly after modifying the file,<br \/>\nas any changes in the runtime cache or metrics will overwrite the file completely)<\/p>\n<p>`\/status_hider whitelist <pattern>` allows server admins to add a new RegEx entry to the IP whitelist without having<br \/>\nto restart the server.<\/p>\n<p>`\/status_hider unwhitelist <pattern>` allows server admins to remove a RegEx entry from the IP whitelist without<br \/>\nhaving to restart the server. (existing entries will be suggested for patter auto-completion)<\/p>\n<p>`\/status_hider test <ip>` allow server owners to know an IP&#8217;s hash, as it is to be stored in the cache or metrics files.<br \/>\nThis is especially relevant for minute modifications such as manually removing a specific IP from a player&#8217;s entry.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enforces Minecraft network privacy like it should have always been<\/p>\n","protected":false},"featured_media":148404,"template":"","meta":{"_minecraft_slug":"status_hider","_minecraft_project_id":"avExCliG","_minecraft_author":"Nerjal_Nosk","_minecraft_license":"LicenseRef-Lambda-License","_minecraft_downloads":1066,"_minecraft_follows":24,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"status_hider.zip","_minecraft_size_bytes":71652504,"_minecraft_version_count":26,"_minecraft_updated_at":"2026-05-16T17:36:28.555341Z","_minecraft_date_created":"2025-05-07T04:26:37.108400Z","_minecraft_date_modified":"2026-05-13T09:05:15.721745Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/status_hider","_minecraft_icon_attachment_id":148404,"_minecraft_imported_at":"2026-06-08T21:54:47+00:00","_minecraft_import_hash":"64e0b173433258aec56101357e78d0e1","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,126,867,92],"mod_loader":[99],"minecraft_version":[36,60,93,94,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-148403","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-management","mod_category-social","mod_category-utility","mod_loader-fabric","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-21","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","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Status Hider - 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\/status_hider\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Status Hider - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Enforces Minecraft network privacy like it should have always been\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/\" \/>\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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/\",\"name\":\"Status Hider - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp\",\"datePublished\":\"2026-06-08T21:54:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/status_hider\\\/#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\":\"Status Hider\"}]},{\"@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":"Status Hider - 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\/status_hider\/","og_locale":"en_US","og_type":"article","og_title":"Status Hider - Minecraft","og_description":"Enforces Minecraft network privacy like it should have always been","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/","name":"Status Hider - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp","datePublished":"2026-06-08T21:54:46+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/status_hider-icon-db9f452bdfab44127eeca94ac2d0ae788cc030f7_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/status_hider\/#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":"Status Hider"}]},{"@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\/148403","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\/148404"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=148403"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=148403"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=148403"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=148403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}