{"id":58467,"date":"2026-06-03T08:03:53","date_gmt":"2026-06-03T05:03:53","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/"},"modified":"2026-06-03T08:03:53","modified_gmt":"2026-06-03T05:03:53","slug":"double-doors-server","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/","title":{"rendered":"Double Doors Server"},"content":{"rendered":"<p># Double Doors Server<\/p>\n<p>![GitHub Release](https:\/\/github.com\/SzaBee13\/double-doors-spigot\/releases)<br \/>\n![GitHub License](https:\/\/github.com\/SzaBee13\/double-doors-spigot\/blob\/main\/LICENSE)<br \/>\n![GitHub Issues](https:\/\/github.com\/SzaBee13\/double-doors-spigot\/issues)<br \/>\n![Modrinth Game Versions](https:\/\/modrinth.com\/plugin\/double-doors-server)<br \/>\n![Crowdin](https:\/\/crowdin.com\/project\/double-doors-server)<br \/>\n<br \/>\n![Online players](https:\/\/faststats.dev\/project\/double-doors-server)<br \/>\n![Online servers](https:\/\/faststats.dev\/project\/double-doors-server)<\/p>\n<p>A Bukkit\/Spigot plugin that opens mirrored double doors together, with low-latency syncing and optional compatibility handling for common server stacks.<\/p>\n<p>## Features<\/p>\n<p>&#8211; Same-tick partner door sync (no scheduled 1-tick delay)<br \/>\n&#8211; Strict mirrored pair matching for doors:<br \/>\n  &#8211; same door type<br \/>\n  &#8211; same facing direction<br \/>\n  &#8211; opposite hinge<br \/>\n  &#8211; side-by-side only<br \/>\n&#8211; Optional recursive opening support for non-door openables (fence gates\/trapdoors)<br \/>\n&#8211; Per-player toggle: `\/doubledoors toggle`<br \/>\n&#8211; LuckPerms-friendly permission nodes<br \/>\n&#8211; GriefPrevention compatibility check for linked-door claim access<br \/>\n&#8211; Duplicate interaction debounce (helps packet duplication patterns seen with some Bedrock\/Geyser flows)<br \/>\n&#8211; Translation support via JSON language files (built-in + custom)<\/p>\n<p>## Compatibility<\/p>\n<p>&#8211; Supports Minecraft Java Edition `26.1`.<\/p>\n<p>### Geyser \/ Floodgate<\/p>\n<p>&#8211; Plugin declares soft-depends on `Geyser-Spigot` and `floodgate`.<br \/>\n&#8211; A short duplicate-interaction debounce window is used to avoid rapid duplicate toggles on the same block.<\/p>\n<p>### LuckPerms<\/p>\n<p>&#8211; Works through standard Bukkit permissions, so LuckPerms applies automatically.<br \/>\n&#8211; Use `doubledoors.use` to allow\/deny linked opening behavior.<\/p>\n<p>### GriefPrevention<\/p>\n<p>&#8211; Plugin declares a soft-depend on `GriefPrevention`.<br \/>\n&#8211; When present, linked-door interaction is checked against claim build permission before toggling the partner door.<\/p>\n<p>## Proxy Setup (Multi-Server)<\/p>\n<p>DoubleDoors includes an optional **Velocity proxy plugin** for Geyser\/Floodgate environments with multiple backend servers.<\/p>\n<p>### Proxy Features<\/p>\n<p>&#8211; Shared SQL heartbeat\/presence tracking across multiple proxies<br \/>\n&#8211; Automatic detection of Geyser\/Floodgate clients<br \/>\n&#8211; Support for SQLite and MySQL databases<br \/>\n&#8211; Connection pooling via HikariCP for efficient SQL resource usage<\/p>\n<p>### Proxy Installation<\/p>\n<p>1. Download the proxy JAR from the releases page (`doubledoors-proxy-<version>.jar`)<br \/>\n2. Place it in your Velocity `plugins\/` directory<br \/>\n3. Restart the proxy<br \/>\n4. A `plugins\/DoubleDoors\/proxy-config.properties` file will be generated<\/p>\n<p>### Proxy Configuration<\/p>\n<p>Edit `plugins\/DoubleDoors\/proxy-config.properties`:<\/p>\n<p>&#8220;`properties<br \/>\n# Enable SQL heartbeat reporting (requires Geyser\/Floodgate on this proxy)<br \/>\nsql.enabled=false<\/p>\n<p># JDBC URL for the shared database<br \/>\n# SQLite example: jdbc:sqlite:plugins\/DoubleDoors\/doubledoors.db<br \/>\n# MySQL example: jdbc:mysql:\/\/localhost:3306\/doubledoors<br \/>\nsql.jdbcUrl=jdbc:sqlite:plugins\/DoubleDoors\/doubledoors.db<\/p>\n<p># SQL authentication (leave blank for SQLite)<br \/>\nsql.username=<br \/>\nsql.password=<\/p>\n<p># Unique proxy identifier (for multi-proxy setups)<br \/>\nsql.proxyId=velocity-main<\/p>\n<p># Heartbeat interval in seconds (minimum 5 seconds)<br \/>\nsql.heartbeatSeconds=30<br \/>\n&#8220;`<\/p>\n<p>### Multi-Proxy Example<\/p>\n<p>For a setup with multiple Velocity proxies reporting to a shared MySQL database:<\/p>\n<p>**Proxy 1:**<br \/>\n&#8220;`properties<br \/>\nsql.enabled=true<br \/>\nsql.jdbcUrl=jdbc:mysql:\/\/db.example.com:3306\/doubledoors<br \/>\nsql.username=dd_user<br \/>\nsql.password=dd_pass<br \/>\nsql.proxyId=velocity-us<br \/>\nsql.heartbeatSeconds=30<br \/>\n&#8220;`<\/p>\n<p>**Proxy 2:**<br \/>\n&#8220;`properties<br \/>\nsql.enabled=true<br \/>\nsql.jdbcUrl=jdbc:mysql:\/\/db.example.com:3306\/doubledoors<br \/>\nsql.username=dd_user<br \/>\nsql.password=dd_pass<br \/>\nsql.proxyId=velocity-eu<br \/>\nsql.heartbeatSeconds=30<br \/>\n&#8220;`<\/p>\n<p>## Commands<\/p>\n<p>&#8211; `\/doubledoors reload` &#8211; reload config<br \/>\n&#8211; `\/doubledoors toggle` &#8211; toggle behavior for yourself<br \/>\n&#8211; `\/doubledoors server-toggle` &#8211; toggle behavior server-wide<\/p>\n<p>## Permissions<\/p>\n<p>&#8211; `doubledoors.use` (default: `true`)<br \/>\n&#8211; `doubledoors.toggle` (default: `true`)<br \/>\n&#8211; `doubledoors.reload` (default: `op`)<br \/>\n&#8211; `doubledoors.server-toggle` (default: `op`)<\/p>\n<p>## Config<\/p>\n<p>`src\/main\/resources\/config.yml`<\/p>\n<p>&#8211; `enableRecursiveOpening` (default: `true`)<br \/>\n&#8211; `recursiveOpeningMaxBlocksDistance` (default: `10`)<br \/>\n&#8211; `enableDoors` (default: `true`)<br \/>\n&#8211; `enableFenceGates` (default: `true`)<br \/>\n&#8211; `enableTrapdoors` (default: `true`)<br \/>\n&#8211; `enableVillagerLinkedDoors` (default: `true`)<br \/>\n&#8211; `serverWideEnabled` (default: `true`)<br \/>\n&#8211; `language` (default: `en_US`)<\/p>\n<p>Language files:<\/p>\n<p>&#8211; Built-in fallback file: `src\/main\/resources\/lang\/en_US.json`<br \/>\n&#8211; Runtime custom language folder: `plugins\/DoubleDoors\/lang\/`<br \/>\n&#8211; Set active language with `language: <code>` in `config.yml` (example: `language: de_DE`)<br \/>\n- Custom files are JSON objects of key\/value strings and override built-in messages when present.<\/p>\n<p>## Build<\/p>\n<p>Requirements:<\/p>\n<p>- Java 25<br \/>\n- Maven<\/p>\n<p>Build command:<\/p>\n<p>```bash<br \/>\nmvn -DskipTests package<br \/>\n```<\/p>\n<p>Output jar is generated under `target\/`.<\/p>\n<p>## License<\/p>\n<p>Licensed under the GNU General Public License v3.0.<br \/>\nSee `LICENSE`.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Bukkit\/Spigot plugin that opens mirrored double doors together, with low-latency syncing and optional compatibility handling for common server stacks.<\/p>\n","protected":false},"featured_media":58468,"template":"","meta":{"_minecraft_slug":"double-doors-server","_minecraft_project_id":"Fdj5mcgC","_minecraft_author":"SzaBee13","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":357,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"double-doors-server.zip","_minecraft_size_bytes":279368167,"_minecraft_version_count":24,"_minecraft_updated_at":"2026-05-16T11:23:47.014580Z","_minecraft_date_created":"2026-03-16T22:44:22.136111Z","_minecraft_date_modified":"2026-05-11T14:08:59.927593Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/double-doors-server","_minecraft_icon_attachment_id":58468,"_minecraft_imported_at":"2026-06-03T05:03:55+00:00","_minecraft_import_hash":"97a484a40b9b387244cab6a4c47529c0","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,156,125,89,127,128,129,92,985],"mod_loader":[130,131,132,133,134],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-58467","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-decoration","mod_category-folia","mod_category-game-mechanics","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-utility","mod_category-velocity","mod_loader-bukkit","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","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>Double Doors Server - 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\/double-doors-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Double Doors Server - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A Bukkit\/Spigot plugin that opens mirrored double doors together, with low-latency syncing and optional compatibility handling for common server stacks.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/\" \/>\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\\\/double-doors-server\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/\",\"name\":\"Double Doors Server - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp\",\"datePublished\":\"2026-06-03T05:03:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/double-doors-server\\\/#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\":\"Double Doors Server\"}]},{\"@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":"Double Doors Server - 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\/double-doors-server\/","og_locale":"en_US","og_type":"article","og_title":"Double Doors Server - Minecraft","og_description":"A Bukkit\/Spigot plugin that opens mirrored double doors together, with low-latency syncing and optional compatibility handling for common server stacks.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/","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\/double-doors-server\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/","name":"Double Doors Server - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp","datePublished":"2026-06-03T05:03:53+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/double-doors-server-icon-ab771bce9c6b5c6e1022f3ef765bd95b0fe79ebd_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/double-doors-server\/#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":"Double Doors Server"}]},{"@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\/58467","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\/58468"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=58467"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=58467"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=58467"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=58467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}