{"id":57398,"date":"2026-06-03T06:52:37","date_gmt":"2026-06-03T03:52:37","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/"},"modified":"2026-06-03T06:52:37","modified_gmt":"2026-06-03T03:52:37","slug":"discordgate","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/","title":{"rendered":"DiscordGate"},"content":{"rendered":"<p># DiscordGate<\/p>\n<p>**Gate your Minecraft server behind Discord. Only linked players can join.**<\/p>\n<p>Integrates directly with BaxiBot. No extra<br \/>\nwebsite, no extra setup.<\/p>\n<p>&#8211; &#8211; &#8211;<br \/>\n## How it works<\/p>\n<p>1.  A player tries to join your server<br \/>\n2.  They get kicked with a short code<br \/>\n3.  They type `\/mc link <code>` in your Discord server<br \/>\n4.  BaxiBot verifies the code and whitelists them<br \/>\n5.  They can now join permanently<\/p>\n<p>- - -<br \/>\n## Features<\/p>\n<p>- **Discord-gated whitelist:** unlinked players can't join, period<br \/>\n- **BaxiBot integration:** configure everything from the Baxi dashboard<br \/>\n- **Bedrock \/ Geyser compatible:** Floodgate UUIDs work out of the box<br \/>\n- **In-game commands:** `\/dg` to check status or get a new code, `\/dgunlink` to<br \/>\n  unlink<br \/>\n- **Welcome message:** greets players on first join after linking, showing their<br \/>\n  Discord name<br \/>\n- **Per-server config:** each Discord server manages its own MC server<br \/>\n  independently<br \/>\n- **Announce channel:** optionally post a message when someone links<br \/>\n- **Auto role:** assign a role on link, remove it on unlink<br \/>\n- **DM on link:** optionally notify the user when linking succeeds<br \/>\n- **Self-unlink toggle:** choose whether players can unlink themselves or require<br \/>\n  admin action<br \/>\n- **MC \u2194 Discord cross-chat:** two-way chat bridge using linked identities \u2014 MC<br \/>\n  players post in Discord under their own Discord display name + avatar (via<br \/>\n  webhook, with `\u00b7 MC` suffix), Discord messages from linked users show in-game<br \/>\n  as `[DC] <mc_name> (<discord_name>): \u2026`. Unlinked Discord users are dropped<br \/>\n  silently. Configure the bridge channel + webhook in the BaxiBot dashboard.<br \/>\n- **Velocity support:** standalone proxy plugin \u2014 own storage + HTTP API, no<br \/>\n  Paper backend needed<\/p>\n<p>- - -<br \/>\n## Commands<\/p>\n<p>### In-game<\/p>\n<p>|Command                             |Permission            |Description                          |<br \/>\n|------------------------------------|----------------------|-------------------------------------|<br \/>\n|`\/dg`                               |`dg.use` (default: all)|Show link status \/ get your link code|<br \/>\n|`\/dg unlink`                        |`dg.use` (default: all)|Unlink your Discord account          |<br \/>\n|`\/dg announce <message>`           |`dg.admin` (default: op)|Broadcast in-game only               |<br \/>\n|`\/dg announce --discord <message>` |`dg.admin` (default: op)|Broadcast in-game and to Discord     |<br \/>\n|`\/dg reload`                        |`dg.admin` (default: op)|Reload config.yml                    |<br \/>\n|`\/dg lock`                          |`dg.admin` (default: op)|Block new account links              |<br \/>\n|`\/dg unlock`                        |`dg.admin` (default: op)|Allow new account links              |<br \/>\n|`\/dg admin link <player> <discord_id>`|`dg.admin` (default: op)|Manually link a player               |<br \/>\n|`\/dg admin unlink <player>`        |`dg.admin` (default: op)|Manually unlink a player             |<\/p>\n<p>Alias: `\/dglink`<\/p>\n<p>### Discord (via BaxiBot)<\/p>\n<p>|Command                |Description                                                |<br \/>\n|-----------------------|-----------------------------------------------------------|<br \/>\n|`\/mc link <code>`     |Link your Minecraft account                                |<br \/>\n|`\/mc unlink`           |Unlink your account                                        |<br \/>\n|`\/mc status`           |Show your linked account                                   |<br \/>\n|`\/mc admin unlink <user>`|Force-unlink a Discord user (requires Manage Server)       |<br \/>\n|`\/mc admin lookup <user>`|Look up a user's linked MC account (requires Manage Server)|<\/p>\n<p>- - -<br \/>\n## Setup<\/p>\n<p>### Paper (standalone or backend)<\/p>\n<p>1.  Drop `DiscordGate-{version}-1.21.jar` into your `plugins\/` folder and start<br \/>\n    the server.<br \/>\n2.  Edit `plugins\/DiscordGate\/config.yml`:<\/p>\n<p>```yaml<br \/>\nport: 4321<br \/>\nbind-address: \"0.0.0.0\"   # use 127.0.0.1 if BaxiBot and Velocity run on the same machine<br \/>\nsecret: \"your-secret-here\"<br \/>\n```<br \/>\n3.  Make sure port `4321` is reachable from the machine running BaxiBot (and<br \/>\n    Velocity, if used).<\/p>\n<p>### BaxiBot Dashboard<\/p>\n<p>1.  Open the Baxi Dashboard for your server<br \/>\n2.  Go to **MC Link**<br \/>\n3.  Enter your server's API URL (e.g. `http:\/\/your-server-ip:4321`) and secret<br \/>\n4.  Enable and save<\/p>\n<p>### Velocity (standalone \u2014 recommended for networks)<\/p>\n<p>The Velocity plugin is **fully standalone**: it manages its own storage and runs<br \/>\nits own HTTP API. BaxiBot connects directly to Velocity \u2014 no Paper plugin<br \/>\nneeded on backend servers.<\/p>\n<p>```<br \/>\n[ BaxiBot ] \u2500\u2500\u2192 [ Velocity :4321 ]  \u2500\u2500\u2192  [ Survival backend ]<\/p>\n<p>                 (API + storage)    \u2500\u2500\u2192  [ Creative backend  ]<\/p>\n<p>                 (gates players)    \u2500\u2500\u2192  [ Hub backend       ]<\/p>\n<p>```<br \/>\n1.  Drop `DiscordGate-velocity-{version}.jar` into your Velocity `plugins\/`<br \/>\n    folder.<br \/>\n2.  Start Velocity once. A config file is generated at<br \/>\n    `plugins\/discordgate\/config.properties`.<br \/>\n3.  Edit the config:<\/p>\n<p>```properties<br \/>\n# HTTP API port \u2014 point BaxiBot at this server's IP and this port<br \/>\nport=4321<br \/>\nbind-address=0.0.0.0<\/p>\n<p># Shared secret \u2014 enter this same value in the BaxiBot dashboard<br \/>\nsecret=your-secret-here<\/p>\n<p># Kick message shown to unlinked players ({token} = link code)<br \/>\nkick-message=<red><bold>Discord account not linked!<\/bold><\/red>n<gray>Join our Discord and type:<\/gray>n<gold><bold>\/mc link {token}<\/bold><\/gold>n<dark_gray>This code expires in 10 minutes.<\/dark_gray><\/p>\n<p>token-ttl-minutes=10<br \/>\n```<br \/>\n4.  Restart Velocity.<br \/>\n5.  In the **BaxiBot dashboard**, set the API URL to `<br \/>\n    http:\/\/your-velocity-ip:4321` (not your Paper backend).<\/p>\n<p>> **Backend servers:** disable the vanilla whitelist (`white-list=false` in `<br \/>\n> server.properties`) on all backends \u2014 Velocity is the gate. Backends should not<br \/>\n> be directly reachable from the internet.<\/p>\n<p>#### Cross-chat in a Velocity network<\/p>\n<p>Cross-chat needs **both** the Velocity plugin and the Paper plugin installed. The<br \/>\ntwo plugins handle different directions:<\/p>\n<p>- **MC \u2192 Discord (outbound)** is captured by the **Paper** plugin on each backend<br \/>\n  (via `AsyncChatEvent`). Each backend POSTs the message directly to BaxiBot's `<br \/>\n  \/dg\/chat-out`. Velocity's `PlayerChatEvent` is unreliable on signed chat<br \/>\n  (1.19.1+), so Velocity stays silent on outbound.<br \/>\n- **Discord \u2192 MC (inbound)** is delivered by **BaxiBot** to a single URL \u2014<br \/>\n  pointed at Velocity. Velocity then broadcasts the message to every player on<br \/>\n  every backend in one call. No per-backend fan-out, no Paper involvement on<br \/>\n  this path.<\/p>\n<p>This means the **shared secret must match across all three places**: every Paper<br \/>\nbackend's `secret`, the Velocity `secret`, and the BaxiBot dashboard's API<br \/>\nsecret. BaxiBot uses that secret to authenticate inbound POSTs from any Paper<br \/>\nbackend, and to authorise its own outbound POSTs to Velocity.<\/p>\n<p>##### Step-by-step setup<\/p>\n<p>Assumed prerequisite: regular DiscordGate is already working (players can `\/mc<br \/>\nlink` and join). You're only adding chat now.<\/p>\n<p>**1. Create a Discord webhook for the bridge channel**<\/p>\n<p>In Discord:<\/p>\n<p>- Open the channel you want to use as the chat bridge \u2192 **Edit Channel** \u2192 **<br \/>\n  Integrations** \u2192 **Webhooks** \u2192 **New Webhook**.<br \/>\n- Name it whatever you like (it gets overridden per-message anyway). Click **Copy<br \/>\n  Webhook URL** \u2014 you'll paste this into the BaxiBot dashboard in step 4.<\/p>\n<p>**2. Configure every Paper backend**<\/p>\n<p>For *each* backend server, edit `plugins\/DiscordGate\/config.yml`:<\/p>\n<p>```yaml<br \/>\n# Already present from the basic setup \u2014 leave as-is:<br \/>\nsecret: \"your-shared-secret\"<br \/>\nbot-api-url: \"https:\/\/baxi.avocloud.net\"   # or your self-hosted BaxiBot URL<\/p>\n<p># New cross-chat keys:<br \/>\nchat-bridge-enabled: true<br \/>\nchat-relay-source: \"paper\"                 # this backend captures chat for relay<br \/>\nchat-format-dc-to-mc: \"<gray>[DC]<\/gray> <white>{mc_name}<\/white> <dark_gray>({discord_name})<\/dark_gray><gray>:<\/gray> <white>{message}<\/white>\"<br \/>\n```<br \/>\nThen run `\/dg reload` in-game (or restart the backend). Repeat on every backend.<\/p>\n<p>**3. Configure the Velocity proxy**<\/p>\n<p>Edit `plugins\/discordgate\/config.properties` on the proxy:<\/p>\n<p>```properties<br \/>\n# Already present:<br \/>\nsecret=your-shared-secret<\/p>\n<p># New cross-chat keys:<br \/>\nchat-bridge-enabled=true<br \/>\nchat-relay-source=paper<br \/>\nchat-format-dc-to-mc=<gray>[DC]<\/gray> <white>{mc_name}<\/white> <dark_gray>({discord_name})<\/dark_gray><gray>:<\/gray> <white>{message}<\/white><br \/>\n```<br \/>\n`chat-relay-source=paper` here is critical: it tells the Velocity plugin **not**<br \/>\nto also relay outbound chat. Without it every MC message would be sent to<br \/>\nDiscord twice (once by Paper, once by Velocity).<\/p>\n<p>Restart Velocity.<\/p>\n<p>**4. Configure the BaxiBot dashboard**<\/p>\n<p>Open the Baxi dashboard \u2192 **MC Link** for the right Discord server.<\/p>\n<p>Confirm the existing fields:<\/p>\n<p>- **API URL** points at **Velocity** (e.g. `http:\/\/your-velocity-ip:4321`), not<br \/>\n  at any Paper backend. This is what Velocity-network setups already require \u2014<br \/>\n  it's how inbound messages reach all backends in one call.<br \/>\n- **API Secret** matches the value you put in Paper + Velocity configs.<\/p>\n<p>Scroll to the new **Cross-chat** section:<\/p>\n<p>- Toggle **Enable MC \u2194 Discord cross-chat** on.<br \/>\n- Pick the **bridge channel** from the dropdown.<br \/>\n- Paste the **webhook URL** you copied in step 1.<br \/>\n- Click **Save**.<\/p>\n<p>##### Verification<\/p>\n<p>1.  Join the network and type `hello` in chat. Within ~1s a webhook message<br \/>\n    should appear in the bridge channel under your Discord display name + ` \u00b7 MC<br \/>\n    (<your-mc-name>)` suffix.<br \/>\n2.  From Discord, post `hi` in the bridge channel. Every player on every backend<br \/>\n    should see `[DC] <your-mc-name> (<your-discord-name>): hi`.<br \/>\n3.  Post in the channel from a Discord account that is **not** linked. Nothing<br \/>\n    should appear in MC (silent drop is by design).<\/p>\n<p>##### Troubleshooting<\/p>\n<p>- **MC chat doesn't reach Discord** \u2014 check the Paper backend log for `[dg<br \/>\n  chat-out] Bot responded \u2026`. If you see a 401, secrets don't match. If there's<br \/>\n  no log line at all, `chat-bridge-enabled` is false or the player isn't linked.<br \/>\n  Unlinked players are not relayed.<br \/>\n- **Discord chat doesn't reach MC** \u2014 check Velocity's log for any `\/dg\/chat-in`<br \/>\n  request line. If BaxiBot's API URL still points at a Paper backend, the<br \/>\n  inbound POST goes to that backend and only its players see it. Repoint the<br \/>\n  dashboard's API URL at Velocity.<br \/>\n- **Every MC message appears twice in Discord** \u2014 Velocity is also relaying. Set `<br \/>\n  chat-relay-source=paper` in `config.properties` and restart.<br \/>\n- **Webhook posts as \"Wumpus\" \/ generic name** \u2014 the linked Discord user is no<br \/>\n  longer in the guild (BaxiBot can't fetch their member object). The fallback<br \/>\n  uses the MC name. Re-invite them or unlink\/relink.<\/p>\n<p>- - -<br \/>\n## Requirements<\/p>\n<p>- Paper 1.21.1+ **or** Velocity 3.3+ (with Paper 1.21.1+ backend)<br \/>\n- BaxiBot added to your Discord server<\/p>\n<p>- - -<br \/>\n## config.yml (Paper)<\/p>\n<p>```yaml<br \/>\nport: 4321<br \/>\nbind-address: \"0.0.0.0\"<br \/>\nsecret: \"CHANGE-ME\"<\/p>\n<p>kick-message: |<br \/>\n  <red><bold>Discord account not linked!<\/bold><\/red><br \/>\n  <newline><br \/>\n  <gray>Join our Discord and type:<\/gray><br \/>\n  <newline><br \/>\n  <gold><bold>\/mc link {code}<\/bold><\/gold><br \/>\n  <newline><br \/>\n  <dark_gray>This code expires in 10 minutes.<\/dark_gray><\/p>\n<p>token-ttl-minutes: 10<\/p>\n<p>welcome-message-enabled: true<br \/>\nwelcome-message: \"<green>Welcome, <white><bold>{player}<\/bold><\/white>! Your Discord account <aqua>{discord_name}<\/aqua> is linked.\"<\/p>\n<p>allow-self-unlink: true<\/p>\n<p># \u2500\u2500 Cross-chat (MC \u2194 Discord) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\nchat-bridge-enabled: true<\/p>\n<p># Which side captures MC chat to forward to Discord \u2014 only relevant when both<br \/>\n# the Paper plugin AND the Velocity plugin are deployed in the same network.<br \/>\n# One of: \"paper\", \"velocity\".<br \/>\nchat-relay-source: \"paper\"<\/p>\n<p># MiniMessage template for Discord\u2192MC. Tokens: {mc_name} {discord_name} {message}<br \/>\n# Token values are escaped before substitution so Discord users can't inject tags.<br \/>\nchat-format-dc-to-mc: \"<gray>[DC]<\/gray> <white>{mc_name}<\/white> <dark_gray>({discord_name})<\/dark_gray><gray>:<\/gray> <white>{message}<\/white>\"<br \/>\n```<br \/>\nAll messages support<br \/>\nMiniMessage formatting.<\/p>\n<p>The bridge channel and webhook URL are set per-Discord-server in the **BaxiBot<br \/>\ndashboard \u2192 MC Link \u2192 Cross-chat** section.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Require Discord account linking before players can join. Integrates with BaxiBot<\/p>\n","protected":false},"featured_media":57399,"template":"","meta":{"_minecraft_slug":"discordgate","_minecraft_project_id":"7ugnDVGC","_minecraft_author":"Red_wolf2467","_minecraft_license":"MIT","_minecraft_downloads":44,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"discordgate.zip","_minecraft_size_bytes":1033511,"_minecraft_version_count":32,"_minecraft_updated_at":"2026-05-15T21:23:17.360690Z","_minecraft_date_created":"2026-05-02T21:46:28.540117Z","_minecraft_date_modified":"2026-05-13T22:36:35.441699Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/discordgate","_minecraft_icon_attachment_id":57399,"_minecraft_imported_at":"2026-06-03T03:52:38+00:00","_minecraft_import_hash":"41dfd74d65b83bf31f3aed6d5458b0c6","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[126,127,128,867,123,92,985],"mod_loader":[132,133,986],"minecraft_version":[59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-57398","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-technology","mod_category-utility","mod_category-velocity","mod_loader-paper","mod_loader-purpur","mod_loader-velocity","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","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>DiscordGate - 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\/discordgate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DiscordGate - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Require Discord account linking before players can join. Integrates with BaxiBot\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/\" \/>\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\\\/discordgate\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/\",\"name\":\"DiscordGate - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp\",\"datePublished\":\"2026-06-03T03:52:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/discordgate\\\/#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\":\"DiscordGate\"}]},{\"@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":"DiscordGate - 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\/discordgate\/","og_locale":"en_US","og_type":"article","og_title":"DiscordGate - Minecraft","og_description":"Require Discord account linking before players can join. Integrates with BaxiBot","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/","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\/discordgate\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/","name":"DiscordGate - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp","datePublished":"2026-06-03T03:52:37+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/discordgate-icon-2d3360b001412976ef4474642303ee919f2fbc25_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/discordgate\/#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":"DiscordGate"}]},{"@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\/57398","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\/57399"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=57398"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=57398"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=57398"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=57398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}