
Discord Viper
ViperBridge is a high-performance, server-side only gateway bridging Minecraft, Discord, and REST APIs. Chat relay, Discord moderation commands, player info queries, and full server control with no client mods required.
Discord Viper (ViperBridge)
ViperBridge is a high-performance, server-side only bidirectional gateway bridging Minecraft, Discord, and REST APIs. No client mods required - vanilla players connect normally.
What the mod does
Chat relay - Two-way chat between a Discord channel and in-game chat, plus rich embed alerts for joins, leaves, deaths (with the real death reason), advancements (real announcements only, no recipe spam), and server start/stop.
45 Discord commands - Every command works as a native slash /command and as a !prefix command. All slash replies are private (ephemeral): only the person who ran the command sees the answer.
Moderation system - Kick, ban, IP-ban, timed tempbans with automatic pardon (survives restarts), server-side mutes, numbered warnings, pardons, kick-all, and ban/whitelist lists. Mutes, warnings, and tempbans persist in viperbridge_punishments.json.
Player lookups - Online players read live; offline players read their saved player data: coordinates, slot-accurate inventory grids, cracked-vs-premium profile checks with skin renders, and last-seen times.
Per-command permissions - Each command has its own Discord roles/users/Minecraft-player allowlist, on/off switch, and Discord client visibility flag. /help only lists commands the requester may use.
Account linking - Players link Discord and Minecraft accounts with a one-time code (/link in Discord, /viperbridge link <code> in game). Links power per-player permissions and work with cracked (offline-mode) accounts.
Extras - Console forwarding to Discord in ~1000-character chunks with IPs spoiler-masked, live player-count channel, bot presence, and a bearer-token REST API (health, players, player info, remote commands).
Command list
| Slash | Prefix | Default access | Description |
|---|---|---|---|
/help | !help | Authorized | Show only the commands you may use |
/players | !players | Authorized | List online players with ping |
/player <name> | !player <name> | Authorized | Health, hunger, XP, gamemode, IP, inventory |
/coords <name> | !coords <name> | Authorized | Dimension + XYZ, online or from saved data |
/inventory <name> | !inventory <name> | Authorized | Slot-accurate grid: armor, offhand, hotbar, main |
/profile <name> | !profile <name> | Authorized | Cracked/premium check, skin avatar, link status |
/skin <name> | !skin <name> | Authorized | Full-body skin render |
/link <mcname> | !link <mcname> | Everyone | Start linking, code delivered by DM |
/unlink | !unlink | Authorized | Remove your account link |
/kick <name> [reason] | !kick <name> [reason] | Authorized | Kick a player |
/ban <name> [reason] | !ban <name> [reason] | Authorized | Ban a player |
/ipban <name> [reason] | !ipban <name> [reason] | Authorized | IP-ban a player |
/tempban <name> <dur> [reason] | !tempban <name> <dur> [reason] | Authorized | Timed ban, auto-pardon (30s/10m/2h/7d) |
/mute <name> [dur] | !mute <name> [dur] | Authorized | Block chat + commands (empty = forever) |
/unmute <name> | !unmute <name> | Authorized | Remove a mute |
/mutes | !mutes | Authorized | Muted players with remaining time |
/warn <name> [reason] | !warn <name> [reason] | Authorized | Numbered warning, player notified in game |
/warnings <name> | !warnings <name> | Authorized | Show a player's warnings |
/clearwarns <name> | !clearwarns <name> | Authorized | Clear a player's warnings |
/pardon <name> | !pardon <name> | Authorized | Unban a player |
/pardonip <ip> | !pardonip <ip> | Authorized | Unban an IP address |
/kickall [reason] | !kickall [reason] | Authorized | Kick every online player |
/banlist | !banlist | Authorized | Banned players with reasons |
/kill <name> | !kill <name> | Authorized | Kill a player (must be online) |
/say <message> | !say <message> | Authorized | Broadcast to all players |
/command <command> | !cmd <command> | Authorized | Execute any Minecraft command |
/stop | !stop | Authorized | Stop the server |
/op <name> | !op <name> | Authorized | Grant operator status |
/deop <name> | !deop <name> | Authorized | Remove operator status |
/whitelist <action> [name] | !whitelist <action> [name] | Authorized | add/remove/on/off/list the whitelist |
/gamemode <mode> [player] | !gamemode <mode> [player] | Authorized | Change gamemode |
/give <player> <item> [count] | !give <player> <item> [count] | Authorized | Give items |
/tp <player> <target> | !tp <player> <target> | Authorized | Teleport to a player or coordinates |
/heal <name> | !heal <name> | Authorized | Restore health (must be online) |
/feed <name> | !feed <name> | Authorized | Restore hunger (must be online) |
/seen <name> | !seen <name> | Authorized | Last-online time (or online now) |
/time <value> | !time <value> | Authorized | day/noon/night/midnight/ticks |
/weather <type> [sec] | !weather <type> [sec] | Authorized | clear/rain/thunder |
/save | !save | Authorized | Save all worlds to disk |
/status | !status | Authorized | Players, uptime, memory, ticks overview |
/uptime | !uptime | Authorized | Server uptime |
/tps | !tps | Authorized | Tick info |
/memory | !memory | Authorized | RAM usage |
/seed | !seed | Authorized | World seed |
/ping | !ping | Authorized | Bot latency |
/effect <player> <effect> [sec] [lvl] | !effect <player> <effect> [sec] [lvl] | Authorized | Give a status effect |
/clear <player> [item] | !clear <player> [item] | Authorized | Clear inventory |
/difficulty <level> | !difficulty <level> | Authorized | peaceful/easy/normal/hard |
/gamerule <rule> [value] | !gamerule <rule> [value] | Authorized | Set or query a gamerule |
/spawnpoint <player> [x y z] | !spawnpoint <player> [x y z] | Authorized | Set spawn point |
/setworldspawn [x y z] | !setworldspawn [x y z] | Authorized | Set world spawn |
/defaultgamemode <mode> | !defaultgamemode <mode> | Authorized | Default gamemode |
/sudo <player> <command> | !sudo <player> <command> | Authorized | Run a command as a player |
In-game commands: /viperbridge reload (reload config), /viperbridge status, /viperbridge discord reconnect, /viperbridge link <code> (usable by every player, no OP needed).
Configuration
Edit world/viperbridge/viperbridge.json after first launch (reload in game with /viperbridge reload).
| Field | Type | Default | Description |
|---|---|---|---|
discordBotToken | string | "" | Discord bot token from the Developer Portal. Required. |
discordGuildId | string | "" | Discord server ID. Enables instant slash-command registration and role features. |
channels.chatRelayChannelId | string | "" | Chat relay + prefix-command channel. |
channels.consoleForwardChannelId | string | "" | Server console output channel. |
channels.liveStatusChannelId | string | "" | Channel renamed with the live player count. |
webApi.enabled | boolean | false | Enable the REST API. |
webApi.port | number | 8080 | REST API port. |
webApi.apiSecretToken | string | "" | Bearer token for REST API auth. |
forwardConsole | boolean | true | Master switch for console forwarding. |
privacyMode | boolean | false | Full IP redaction, offline coords/inventory blocked, REST IPs hidden. |
directRoleSync.syncEnabled | boolean | false | Sync Discord roles to MC teams. |
directRoleSync.mappings | object | {} | Discord role ID to MC team mappings. |
commandPrefix | string | "!" | Prefix for text commands. |
enableDiscordCommands | boolean | true | Master switch for Discord commands. |
allowedRoles | string[] | [] | Global Discord role IDs allowed to use commands. |
allowedUsers | string[] | [] | Global Discord user IDs allowed to use commands. |
botActivityText | string | "online players" | Bot status text (%count%, %max% placeholders). |
linkCodeExpiryMinutes | number | 10 | How long link codes stay valid. |
commandPermissions.<cmd>.enabled | boolean | true | Per-command on/off switch. |
commandPermissions.<cmd>.roles | string[] | [] | Discord role IDs allowed for this command. |
commandPermissions.<cmd>.users | string[] | [] | Discord user IDs allowed for this command. |
commandPermissions.<cmd>.players | string[] | [] | Minecraft usernames allowed (matched via linked accounts). |
commandPermissions.<cmd>.minPermission | string | "NONE" | Discord-side slash visibility: NONE, KICK_MEMBERS, BAN_MEMBERS, MODERATE_MEMBERS, MANAGE_SERVER, ADMINISTRATOR. |
commandPermissions.<cmd>.open | boolean | false | Anyone may use the command (link is open by default). |
Checks run in order per command: open, then players (linked MC name), then command roles/users, then the global fallback. Denied attempts get a private error visible only to the requester.
Note: the 1.21.x build uses numeric channel/guild IDs and an extra discordInviteLink field; everything else is identical.
Privacy mode
Set "privacyMode": true to lock the mod down: every IP in Discord output (console, player lookups) is fully redacted instead of spoiler-masked, REST API IP fields return "hidden", and coords/inventory refuse offline-player lookups (online players still work). Public chat relay and announcements are unaffected.
REST API
Auth header: Authorization: Bearer <apiSecretToken>.
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /api/health | Optional | Status, player count, ticks |
| GET | /api/players | Required | All online players with stats |
| GET | /api/player/{name} | Required | Single player info |
| POST | /api/command | Required | Run a command: {"command": "say hello"} |
Installation
- Install Fabric Loader (0.16.x+ for 1.21.x, 0.17.x+ for 26.x) and Fabric API on your server.
- Download the JAR matching your Minecraft version (1.21.x, 26.1.x, 26.2.x, or 26.3) and drop it into the server
modsfolder. - Start the server once so
world/viperbridge/viperbridge.jsonis created, then stop it. - Edit the config: set
discordBotToken, the channel IDs underchannels, and command permissions. - In the Discord Developer Portal, enable MESSAGE CONTENT INTENT and SERVER MEMBERS INTENT, then invite the bot.
- Restart the server.
Как поиграть с друзьями с модом Discord Viper?
Мод Discord Viper куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Discord Viper будет готов за пару минут - BungeeHost сделает всё за вас.
