Viscord Vonix Mods v5.2.1 Search GitHub
Viscord/Installation

Installation#

Viscord is a server-side mod. Install it on the dedicated server; never on clients. Two players on the same server do not need matching jars, and a vanilla client connects normally.

Pick the jar for your cell#

Nine lane directories produce thirteen jars. Each release asset is named viscord-<minecraft>-<loader>-<version>.jar. Download exactly one.

Minecraft Loader Release asset Java
1.18.2 Fabric viscord-1.18.2-fabric-5.2.1.jar 17
1.18.2 Forge viscord-1.18.2-forge-5.2.1.jar 17
1.19.2 Fabric viscord-1.19.2-fabric-5.2.1.jar 17
1.19.2 Forge viscord-1.19.2-forge-5.2.1.jar 17
1.20.1 Fabric viscord-1.20.1-fabric-5.2.1.jar 17
1.20.1 Forge viscord-1.20.1-forge-5.2.1.jar 17
1.21.1 Fabric viscord-1.21.1-fabric-5.2.1.jar 21
1.21.1 NeoForge viscord-1.21.1-neoforge-5.2.1.jar 21
26.1.2 NeoForge viscord-26.1.2-neoforge-5.2.1.jar 25
26.2 Fabric viscord-26.2-fabric-5.2.1.jar 25
26.2 NeoForge viscord-26.2-neoforge-5.2.1.jar 25
26.3 Fabric viscord-26.3-fabric-5.2.1.jar 25
26.3 NeoForge viscord-26.3-neoforge-5.2.1.jar 25

Load the server with the Java major version in the last column. The 1.18.2, 1.19.2, and 1.20.1 lanes compile with --release 17; 1.21.1 uses 21; the 26.x lanes declare java_version=25 and the Fabric metadata requires java >=25. A too-old JVM fails at class-load time with an UnsupportedClassVersionError before Viscord logs anything.

Architectury dependency

The Architectury-based lanes require Architectury API at runtime. The 1.18.2 lane needs >=4.12.94, 1.19.2 needs >=6.6.92, 1.20.1 needs >=9.2.14, and 1.21.1 needs >=13.0.8. Install the matching Architectury API jar in mods/ alongside Viscord or the loader will refuse to start the mod. The 26.1.2, 26.2, and 26.3 lanes are standalone single-loader builds and do not declare an Architectury dependency.

Install#

  1. Stop the server.
  2. Drop the single matching jar into the server's mods/ directory.
  3. Add the matching Architectury API jar to mods/ if it is not already there.
  4. Start the server once and let it reach the point where it would accept players, then stop it.

First boot creates the config directory and file:

<server>/config/viscord/viscord.toml

The file is generated with general.enabled = false, so nothing connects on that first boot. That is intentional: the file has to exist before you can fill in a token, and writing a token into a config the mod has not yet validated is how people end up with a half-configured bot. Stop the server before editing.

Stop before editing

Viscord opens viscord.toml with autosave enabled. Editing the file while the server is running can lose your changes when NightConfig flushes its own copy. Edit with the server stopped, or edit and then run /viscord reload as an operator.

If the file does not appear, the server process could not create config/viscord/ — see Troubleshooting.

Verify the download#

Every release publishes a SHA256SUMS file next to the jars. Check the jar you downloaded before it goes anywhere near a server.

curl -LO https://github.com/Vonix-Network/Viscord-Architectury/releases/download/v5.2.1/viscord-1.21.1-neoforge-5.2.1.jar
curl -LO https://github.com/Vonix-Network/Viscord-Architectury/releases/download/v5.2.1/SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

A good download prints OK for the jar you fetched:

viscord-1.21.1-neoforge-5.2.1.jar: OK

A FAILED line means the file is corrupt or was tampered with. Delete it and download again. Do not skip this on a jar that will hold a bot token.

Minimal working config#

This is the smallest viscord.toml that bridges Minecraft chat to one Discord channel. Every value below is a placeholder — replace them with your own. Never paste a real token into a support thread.

[general]
enabled  = true
platform = "discord"

[discord]
bot_token   = "YOUR_BOT_TOKEN_HERE"
channel_id  = "123456789012345678"
webhook_url = "https://discord.com/api/webhooks/123456789012345678/YOUR_WEBHOOK_TOKEN_HERE"

[server]
prefix = "[MC]"
name   = "My Server"

What each line does:

  • general.enabled is the master switch. With it false, Viscord initialises nothing and logs Disabled in config.
  • general.platform selects discord, fluxer, or both.
  • discord.bot_token connects the gateway so Viscord can read the channel.
  • discord.channel_id is the channel Viscord watches and posts to. Accepts a comma-separated list.
  • discord.webhook_url is how Minecraft messages get per-player names and avatars. Leave it empty and Minecraft chat is silently dropped on the way out — the bot reads the channel but never writes chat to it.
  • server.prefix is the tag that identifies this server in a shared channel, and it also feeds the echo-loop guard.

Restart, or run /viscord reload as an op-4 operator, then say something in game. With everything above correct the line appears in Discord under the player's name, and a Discord message appears in game as [Discord] username: message.

Files Viscord writes#

Path Purpose
config/viscord/viscord.toml All configuration. Generated on first boot.
config/viscord/viscord-links.json Minecraft UUID → Discord ID bindings. Created once linking is enabled and a link exists.
config/viscord/viscord-preferences.json Per-player chat, event, and system-message toggles. Created on first initialise.
config/viscord/viscord.json.backup Legacy JSON config, renamed during migration if one existed.

Two of those names differ from older documentation. The link map is viscord-links.json and the preference map is viscord-preferences.json, both resolved against the same config/viscord/ directory. If you are backing up account bindings, back up viscord-links.json.

Upgrading

Replace the jar and start the server. viscord.toml is run through the config spec on load, so keys added in a newer version are injected into your existing file with their defaults. Nothing is removed. See Configuration for the mechanics.