{"id":81879,"date":"2026-06-04T19:54:23","date_gmt":"2026-06-04T16:54:23","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/"},"modified":"2026-06-04T19:54:23","modified_gmt":"2026-06-04T16:54:23","slug":"hopperflow-governor","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/","title":{"rendered":"HopperFlow Governor"},"content":{"rendered":"<p># <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/logo.png?raw=true\" width=\"20rem\"><\/img> HopperFlow Governor<\/p>\n<p>> \u2696\ufe0f Smart hopper &#038; inventory-move throttling for Minecraft servers (1.21+).<br \/>\n> Keep TPS high without breaking vanilla mechanics \u2014 no NMS, no item loss.<\/p>\n<p>![Build](https:\/\/github.com\/nolly-mc\/HopperFlowGovernor\/actions)<br \/>\n![License: NFE-OSL](LICENSE)<br \/>\n![bStats](https:\/\/bstats.org\/plugin\/bukkit\/HopperFlowGovernor)<\/p>\n<p>&#8212;<\/p>\n<p>## \u2728 Features<\/p>\n<p>&#8211; \ud83d\udee1\ufe0f **Protects TPS** \u2014 throttles only the *extra* hopper \/ dropper \/ dispenser \/ hopper-minecart moves per tick.<br \/>\n&#8211; \u2699\ufe0f **Fully configurable** \u2014 per-chunk, per-type, and global rate limits with burst tokens.<br \/>\n&#8211; \ud83d\udcca **Real-time diagnostics** \u2014 `\/hopperflow inspect`, `\/detail`, `\/where`, `\/top`.<br \/>\n&#8211; \ud83d\udeab **No NMS hacks** \u2014 pure Spigot API; forward-compatible across versions.<br \/>\n&#8211; \ud83c\udfae **Player-friendly** \u2014 no item loss, optional actionbar notices when throttling happens nearby.<br \/>\n&#8211; \ud83d\uddfa\ufe0f **WorldGuard integration** \u2014 exempt specific regions seamlessly.<br \/>\n&#8211; \ud83e\udde9 **Exemptions** \u2014 by world, region, or container name prefix (e.g. `[FAST]` hoppers).<br \/>\n&#8211; \ud83d\udcc8 **Optional metrics** \u2014 bStats (opt-in) for server owners who want usage stats.<br \/>\n&#8211; \ud83d\udd12 **Minimal overhead** \u2014 optimized for large servers with thousands of hoppers.<\/p>\n<p>&#8212;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/help.png?raw=true\" width=\"30%\" alt=\"help\"><\/img> <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/top.png?raw=true\" width=\"30%\" alt=\"top\"><\/img> <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/where.png?raw=true\" width=\"30%\" alt=\"where\"><\/img> <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/inspect.png?raw=true\" width=\"30%\" alt=\"inspect\"><\/img> <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/detail.png?raw=true\" width=\"30%\" alt=\"detail\"><\/img> <img decoding=\"async\" src=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/docs\/screenshots\/actionbar.png?raw=true\" width=\"30%\" alt=\"actionbar\"><\/img><\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udce5 Installation<\/p>\n<p>1. Download the latest release from SpigotMC \/ `Modrinth`.<br \/>\n2. Drop `HopperFlowGovernor-x.x.x.jar` into your server\u2019s `plugins\/` folder.<br \/>\n3. Restart the server. A default `config.yml` will be created.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2699\ufe0f Configuration<\/p>\n<p>The default `config.yml` comes heavily commented:<\/p>\n<p>&#8220;`yml<br \/>\n# HopperFlow Governor \u2014 caps inventory move events to stabilize TPS.<br \/>\n# Pure Bukkit. No item loss. Cancels only excess moves per tick window.<\/p>\n<p># Global per-chunk defaults (used when no per-type override exists)<br \/>\nrate_per_chunk_per_sec: 80          # default average moves\/s per chunk<br \/>\nburst_per_chunk: 120                # default short-term burst tokens per chunk<\/p>\n<p># Global ceiling across all chunks<br \/>\nmax_global_rate: 5000               # average moves\/s allowed globally<\/p>\n<p># Optional per-type overrides; omit or set null to use the global defaults above<br \/>\nper_type_limits:<br \/>\n  hopper_block: { rate: 80, burst: 120 }<br \/>\n  hopper_minecart: { rate: 40, burst: 80 }<br \/>\n  dropper: { rate: 40, burst: 80 }<br \/>\n  dispenser: { rate: 20, burst: 40 }<\/p>\n<p># Which initiators are governed?<br \/>\ninclude:<br \/>\n  hopper_blocks: true               # vanilla block hoppers<br \/>\n  hopper_minecarts: false           # hopper minecart entities<br \/>\n  droppers: false                   # droppers pushing into inventories<br \/>\n  dispensers: false                 # dispensers pushing into inventories<\/p>\n<p># Name-prefix exemptions per type (renaming the container\/minecart bypasses throttle)<br \/>\nexempt_name_prefixes:<br \/>\n  hopper_block: &#8220;[FAST]&#8221;<br \/>\n  hopper_minecart: &#8220;&#8221;<br \/>\n  dropper: &#8220;&#8221;<br \/>\n  dispenser: &#8220;&#8221;<\/p>\n<p># World and WorldGuard exemptions<br \/>\nexempt_worlds: [ the_end ]<br \/>\nexempt_regions: [ ]                 # WG region IDs (if WorldGuard is installed)<\/p>\n<p># Player feedback<br \/>\nnotify_players_near_throttle: true<br \/>\nnotify_radius: 16<\/p>\n<p># Accounting window + cleanup<br \/>\nstats_window_seconds: 60            # time window used by \/inspect, \/detail, \/where, \/top<br \/>\ncleanup_after_minutes: 15           # drop idle chunk stats\/buckets<\/p>\n<p># Telemetry (bStats) \u2014 opt-in.<br \/>\nmetrics:<br \/>\n  enabled: true<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udda5\ufe0f Commands &#038; Permissions<\/p>\n<p>| Command                 | Permission                   | Default | Description                                              |<br \/>\n|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| `\/hopperflow help`      | `hopperflow.command.help`    | OP      | Shows help message                                       |<br \/>\n| `\/hopperflow reload`    | `hopperflow.command.reload`  | OP      | Reloads config.yml                                       |<br \/>\n| `\/hopperflow inspect`   | `hopperflow.command.inspect` | OP      | Shows summary for current chunk                          |<br \/>\n| `\/hopperflow detail`    | `hopperflow.command.detail`  | OP      | Per-initiator breakdown (hoppers, droppers, etc.)        |<br \/>\n| `\/hopperflow where [N]` | `hopperflow.command.where`   | OP      | Lists top throttled block\/entity locations in this chunk |<br \/>\n| `\/hopperflow top [N]`   | `hopperflow.command.top`     | OP      | Ranks chunks globally by throttling                      |<\/p>\n<p>**Aliases:** `\/hflow`, `\/hfg`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd0d Example Usage<\/p>\n<p>* Rename a hopper to `[FAST]` \u2192 **it bypasses limits** (custom sorters, farms).<br \/>\n* `\/hopperflow top 5` \u2192 list 5 worst offending chunks in the last 60s.<br \/>\n* `\/hopperflow where 10` \u2192 find the **exact block coordinates** being throttled.<br \/>\n* Place hoppers inside a WorldGuard region \u2192 exempt automatically if region ID is listed.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcc8 Metrics<\/p>\n<p>* bStats integration is included but **disabled by default** (`metrics.enabled: false`).<br \/>\n* If enabled, the plugin will anonymously report:<\/p>\n<p>    * HopperFlowGovernor version<br \/>\n    * Minecraft version<br \/>\n    * Server count<br \/>\n* No personal or identifying data is collected.<br \/>\n* The use case for metrics is to help prioritize future development based on usage patterns.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd27 Performance Notes<\/p>\n<p>* This plugin does **not** delete or void items.<br \/>\n* It only cancels *extra* `InventoryMoveItemEvent` calls beyond configured thresholds.<br \/>\n* Works safely alongside plugins like ClearLag, WorldGuard, and Paper\u2019s async chunk system.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcda API \/ Compatibility<\/p>\n<p>* Pure **Bukkit\/Spigot API** \u2014 no Paper-only hooks, no NMS.<br \/>\n* Compatible with Paper, Spigot, Purpur (tested on 1.21+).<br \/>\n* WorldGuard integration is optional (soft-depend).<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udd1d Contributing<\/p>\n<p>1. Fork this repo &#038; clone locally.<br \/>\n2. Run `mvn package` to build.<br \/>\n3. Test in a local Paper server (`\/plugins\/`).<br \/>\n4. Submit a PR with clear commit history.<\/p>\n<p>Bug reports &#038; feature requests \u2192 GitHub Issues.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcdc License<\/p>\n<p>This project is licensed under the NFE-OSL License.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2764\ufe0f Credits<\/p>\n<p>* Developed by **Nolly** (@TheNolle)<br \/>\n* Inspired by community feedback on hopper lag issues<br \/>\n* Thanks to bStats and SpigotMC for tooling<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u2696\ufe0f Smart hopper &#038; inventory-move throttling for Minecraft servers (1.21+). Keep TPS high without breaking vanilla mechanics \u2014 no NMS, no item loss.<\/p>\n","protected":false},"featured_media":81880,"template":"","meta":{"_minecraft_slug":"hopperflow-governor","_minecraft_project_id":"M4jbI1T5","_minecraft_author":"Nolly","_minecraft_license":"LicenseRef-Nollys-Fair-and-Ethical-Open-Source-License","_minecraft_downloads":180,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"hopperflow-governor.zip","_minecraft_size_bytes":1820063,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-16T13:01:35.112083Z","_minecraft_date_created":"2025-09-04T01:06:10.234945Z","_minecraft_date_modified":"2025-09-01T11:49:13.385851Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/hopperflow-governor","_minecraft_icon_attachment_id":81880,"_minecraft_imported_at":"2026-06-04T16:54:24+00:00","_minecraft_import_hash":"376a513954444e605874ca58e934014e","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,89,126,90,127,128,129,91,92],"mod_loader":[130,132,133,134],"minecraft_version":[62,37,73,74,38,78,79,80,81],"class_list":["post-81879","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-game-mechanics","mod_category-management","mod_category-optimization","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-storage","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21","minecraft_version-1-21-1","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"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HopperFlow Governor - 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\/hopperflow-governor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HopperFlow Governor - Minecraft\" \/>\n<meta property=\"og:description\" content=\"\u2696\ufe0f Smart hopper &amp; inventory-move throttling for Minecraft servers (1.21+). Keep TPS high without breaking vanilla mechanics \u2014 no NMS, no item loss.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/logo.png?raw=true\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/\",\"name\":\"HopperFlow Governor - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp\",\"datePublished\":\"2026-06-04T16:54:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/hopperflow-governor\\\/#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\":\"HopperFlow Governor\"}]},{\"@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":"HopperFlow Governor - 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\/hopperflow-governor\/","og_locale":"en_US","og_type":"article","og_title":"HopperFlow Governor - Minecraft","og_description":"\u2696\ufe0f Smart hopper & inventory-move throttling for Minecraft servers (1.21+). Keep TPS high without breaking vanilla mechanics \u2014 no NMS, no item loss.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/github.com\/Nolly-MC\/HopperFlowGovernor\/blob\/main\/logo.png?raw=true","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/","name":"HopperFlow Governor - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp","datePublished":"2026-06-04T16:54:23+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/hopperflow-governor-icon-a4e3cfda7b3e0163b9548510eb3506a098c9a16b_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/hopperflow-governor\/#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":"HopperFlow Governor"}]},{"@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\/81879","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\/81880"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=81879"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=81879"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=81879"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=81879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}