{"id":159683,"date":"2026-06-09T17:28:47","date_gmt":"2026-06-09T14:28:47","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/"},"modified":"2026-06-09T17:28:47","modified_gmt":"2026-06-09T14:28:47","slug":"treevite","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/","title":{"rendered":"Treevite"},"content":{"rendered":"<p># Treevite<\/p>\n<p>A server-side Minecraft Fabric mod that implements a tree-based whitelist system for managing player access through an invitation chain.<\/p>\n<p>## Overview<\/p>\n<p>Treevite allows you to control who can join your server through a hierarchical invitation system. Starting with just the console as the root administrator, whitelisted players can invite others, creating a &#8220;tree&#8221; of authorized players. This provides a flexible, organic way to manage server access without manually adding each player to a whitelist.<\/p>\n<p>**Key Features:**<br \/>\n&#8211; Tree-based whitelist system starting from console as root<br \/>\n&#8211; Player-to-player invitation system with `\/invite` command<br \/>\n&#8211; Invite revocation with automatic privilege adjustment<br \/>\n&#8211; Daily invitation rate limits per player (configurable)<br \/>\n&#8211; Support for both Java and Bedrock Edition players<br \/>\n&#8211; Invite history tracking<br \/>\n&#8211; Permission-based commands (via Fabric Permissions API)<\/p>\n<p>## Requirements<\/p>\n<p>&#8211; Minecraft Server 26.1.2 (or compatible)<br \/>\n&#8211; Fabric Loader 0.19.2 or later<br \/>\n&#8211; Java 25 or later<br \/>\n&#8211; Fabric API<\/p>\n<p>## Installation<\/p>\n<p>1. Download the `tree-invite.jar` mod file<br \/>\n2. Place it in your server&#8217;s `mods` folder<br \/>\n3. Start your server<br \/>\n4. (Optional) Install Fabric Permissions API for permission-based command access<\/p>\n<p>## Commands<\/p>\n<p>### Player Commands<\/p>\n<p>**`\/invite <player> [java|bedrock]`**<br \/>\n&#8211; Invite a player to join the server<br \/>\n&#8211; If platform not specified, Java Edition is assumed<br \/>\n&#8211; Usernames are looked up via Mojang API (Java) or converted to XUID format (Bedrock)<br \/>\n&#8211; Limited by daily rate limit (default: 4 invites per day, resets at 02:00 AM server time)<\/p>\n<p>**`\/revokeinvite <player> [java|bedrock]`**<br \/>\n&#8211; Revoke an invitation you sent to a player<br \/>\n&#8211; Only the original inviter can revoke<br \/>\n&#8211; Platform optional; if not specified, both platforms are checked<br \/>\n&#8211; Players lose access if they have no alternate path back to console<br \/>\n&#8211; Invite data is preserved for automatic reinstatement if re-invited<\/p>\n<p>**`\/inviteinfo [player]`**<br \/>\n&#8211; View invitation information<br \/>\n&#8211; Lists who invited the player and who they&#8217;ve invited<br \/>\n&#8211; Defaults to the command executor if no player specified<\/p>\n<p>### Admin Commands<\/p>\n<p>**`\/setmaxinvites <player> <count>`**<br \/>\n&#8211; Set a custom daily invitation limit for a player<br \/>\n&#8211; Overrides the global default rate limit<br \/>\n&#8211; Set to 0 to disable invites for a player<\/p>\n<p>**`\/setglobalmaxinvites <count>`**<br \/>\n&#8211; Set the default daily invitation limit for all players<br \/>\n&#8211; Only accessible to console or high-permission admins<\/p>\n<p>## How It Works<\/p>\n<p>1. **Initialization:** Only the console is whitelisted initially<br \/>\n2. **Invitations:** Any whitelisted player can invite others using `\/invite`<br \/>\n3. **Access Control:** A player can join if they have at least one valid path back to console through the invitation chain<br \/>\n4. **Revocation:** When an invite is revoked, affected players lose access unless they have another path to console<br \/>\n5. **Reinstatement:** If a revoked player is invited again (directly or indirectly), they automatically regain access<\/p>\n<p>### Example Scenario<\/p>\n<p>&#8220;`<br \/>\nConsole (root)<br \/>\n\u251c\u2500\u2500 Alice (invited by Console)<br \/>\n\u2502   \u251c\u2500\u2500 Bob (invited by Alice)<br \/>\n\u2502   \u2514\u2500\u2500 Carol (invited by Alice)<br \/>\n\u2514\u2500\u2500 Dave (invited by Console)<br \/>\n    \u2514\u2500\u2500 Eve (invited by Dave)<br \/>\n&#8220;`<\/p>\n<p>&#8211; All players can join<br \/>\n&#8211; If Console revokes Dave&#8217;s invite, Eve loses access (no alternate path)<br \/>\n&#8211; If Console revokes Alice&#8217;s invite, Bob and Carol lose access<br \/>\n&#8211; If Console invites Dave back, Eve automatically regains access<\/p>\n<p>## Configuration<\/p>\n<p>Configuration is stored in `config\/tree-invite-messages.json` and persists across restarts. The mod manages whitelist data automatically\u2014you don&#8217;t need to modify the vanilla whitelist.<\/p>\n<p>## Permissions<\/p>\n<p>When Fabric Permissions API is available, the following permissions are recognized:<\/p>\n<p>&#8211; `tree-invite.invite` &#8211; Allow `\/invite` command<br \/>\n&#8211; `tree-invite.revoke` &#8211; Allow `\/revokeinvite` command<br \/>\n&#8211; `tree-invite.info` &#8211; Allow `\/inviteinfo` command<br \/>\n&#8211; `tree-invite.admin.setmaxinvites` &#8211; Allow `\/setmaxinvites` command<br \/>\n&#8211; `tree-invite.admin.setglobalmaxinvites` &#8211; Allow `\/setglobalmaxinvites` command<\/p>\n<p>## Database<\/p>\n<p>Treevite uses SQLite for persistent storage by default, but can also use PostgreSQL. All invite relationships and rate limit data are stored automatically.<\/p>\n<p>## Support<\/p>\n<p>&#8211; **Issues:** Report bugs on the GitHub repository<br \/>\n&#8211; **Questions:** Check the documentation or ask in the repository discussions<br \/>\n&#8211; **Author:** AwesomestOwl<\/p>\n<p>## License<\/p>\n<p>GNU General Public License v3.0 &#8211; See LICENSE file for details<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A server-side Minecraft Fabric mod that implements a tree-based whitelist system for managing player access through an invitation chain.<\/p>\n","protected":false},"featured_media":159684,"template":"","meta":{"_minecraft_slug":"treevite","_minecraft_project_id":"BlgzBjEa","_minecraft_author":"raymondjxu","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":15,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"treevite.zip","_minecraft_size_bytes":15428476,"_minecraft_version_count":1,"_minecraft_updated_at":"2026-05-16T12:47:27.815522Z","_minecraft_date_created":"2026-05-08T07:43:20.546642Z","_minecraft_date_modified":"2026-05-07T21:20:28.306585Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/treevite","_minecraft_icon_attachment_id":159684,"_minecraft_imported_at":"2026-06-09T14:28:47+00:00","_minecraft_import_hash":"da5cbb5328e4c5eee46f3e2db87c62f3","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,126],"mod_loader":[99],"minecraft_version":[163],"class_list":["post-159683","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-management","mod_loader-fabric","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>Treevite - 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\/treevite\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Treevite - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A server-side Minecraft Fabric mod that implements a tree-based whitelist system for managing player access through an invitation chain.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/\" \/>\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=\"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\\\/treevite\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/\",\"name\":\"Treevite - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp\",\"datePublished\":\"2026-06-09T14:28:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/treevite\\\/#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\":\"Treevite\"}]},{\"@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":"Treevite - 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\/treevite\/","og_locale":"en_US","og_type":"article","og_title":"Treevite - Minecraft","og_description":"A server-side Minecraft Fabric mod that implements a tree-based whitelist system for managing player access through an invitation chain.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/","og_site_name":"Minecraft","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\/treevite\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/","name":"Treevite - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp","datePublished":"2026-06-09T14:28:47+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/treevite\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/treevite-icon-1aedd646880099133dac0f06ef76476f313560d0_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/treevite\/#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":"Treevite"}]},{"@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\/159683","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\/159684"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=159683"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=159683"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=159683"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=159683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}