
Modrinth · Minecraft mod
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.
Quick answer
Which Discord Viper release should I use?
Discord Viper 2.1.1 targets 1.21, 1.21.1, 1.21.2 with Fabric. Installation on the client is optional. Installation on the dedicated server is optional. All 1 required mods have matching files.
Where it goes
Is Discord Viper required on the client, server, or both?
Installation on the client is optional. Installation on the dedicated server is optional.
The source marks this as usable on both the client and server.
What else does Discord Viper 2.1.1 need?
2.1.1. Change the file and its required mods may change too.
Install Fabric API first. We found matching files for this game-version and loader setup.
We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add Discord Viper without breaking your instance.
Built for Discord Viper 2.1.1. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 2.1.1. It targets 1.21, 1.21.1, 1.21.2 with Fabric; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Fabric API first. We found matching files for this game-version and loader setup.
- 03
Put it on the correct side
Installation on the client is optional. Installation on the dedicated server is optional.
- 04
Pick the file you checked
Use the “Get this file” button beside 2.1.1. It opens that exact file at the source.
About this project
What does Discord Viper add?
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.
Project description from Modrinth.
Pick your setup
Discord Viper by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
26.3
1 loader build26.2
1 loader build26.1.2
1 loader build26.1.1
1 loader build26.1
1 loader build1.21.11
1 loader build1.21.10
1 loader build1.21.9
1 loader build1.21.8
1 loader build1.21.7
1 loader build1.21.6
1 loader build1.21.5
1 loader buildShowing the newest 12 of 17 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Discord Viper versions and loaders
2.1.1
discord-viper-2.1.1.jar
28 Sept 2026
2.1.0
discord-viper-2.1.0.jar
27 Sept 2026
2.1.0
discord-viper-2.1.0.jar
27 Sept 2026
2.1.0
discord-viper-2.1.0.jar
27 Sept 2026
2.1.0
discord-viper-2.1.0.jar
27 Sept 2026
2.0.0
discord-viper-2.0.0.jar
25 Sept 2026
2.0.0
discord-viper-2.0.0.jar
25 Sept 2026
2.0.0
discord-viper-2.0.0.jar
25 Sept 2026
2.0.0
discord-viper-2.0.0.jar
25 Sept 2026
2.0.1
discord-viper-2.0.0.jar
9 Sept 2026
2.0.1
discord-viper-2.0.0.jar
9 Sept 2026
2.0.1
discord-viper-2.0.0.jar
9 Sept 2026
Looking for an older file? The official Modrinth project page is in Resources.