promotional bannermobile promotional banner

Viscord

A Discord and Fluxer Tri Directional Multi Server Support Chat Integration

Viscord - Discord + Fluxer Bridge for Hytale

Connect your Hytale server to Discord, Fluxer, or both. Player chat, joins and leaves, and server status flow out in real time - and messages flow back into the game. Two servers can share one chat channel and keep their local chatter separate.

Chat appears as the player who typed it, under their own name and rendered Hytale head. Server-side only. Players install nothing.

What it does

  • Discord and Fluxer, side by side - platform = "discord", "fluxer" or "both". Each side has its own bot token, channel and webhook.
  • Chat as the player, not the bot - Viscord creates or reuses a webhook in your chat channel on first connect, so every line posts under [HY] Steve with Steve's own head as the avatar. No manual webhook setup.
  • Player avatars - the head is rendered from the player's Hytale profile at a three-quarter angle, up to 2048px. avatar_type, avatar_size and avatar_rotation control it, or point avatar_url at your own images.
  • Server to server - run several game servers into one community channel: each tags its lines with its own prefix, and a loop guard drops your own posts coming back so nobody sees their own words twice. Both the chat and events channels are read, so another server's announcements reach your players too.
  • Optional prefix filtering - require a prefix (!, ., anything) before game chat leaves the server, and strip it on the way out. Local banter stays local.
  • Separate channels - chat goes to one channel, join/leave/status embeds to another, on both platforms.
  • Tridirectional mode - mirror chat between Discord and Fluxer, tagging each line with its origin ([Discord], [Fluxer]) so the other side can recognise it.
  • Templates - rewrite both directions: {message}, {username}, {prefix}, {uuid}.
  • Filters - ignore bots and webhooks (with a trusted-bot allowlist), drop messages tagged with another server's prefix, use Discord display names.
  • Commands that work before setup - /viscord status shows tokens, channels, connection state and config path; /viscord reload applies config edits without a restart.
  • Quiet by design - Discord and Fluxer work is relayed off the game thread. A slow network never stalls the server; failures log, they don't crash.

Install

  1. Drop viscord-hytale-<version>.jar into your server's mods/ folder.
  2. Start the server once. Viscord writes mods/network.vonix.viscord_Viscord/viscord.toml with every option and a comment explaining it.
  3. Fill in your tokens and channel IDs, then run /viscord reload (or restart).

Give the bot Manage Webhooks in the chat channel and enable Message Content Intent in the Discord developer portal - those two are what let chat show player names and read messages at all.

[general]
enabled = true
platform = "both" # discord | fluxer | both
chat_to_discord = true
discord_to_chat = true
debug = false # verbose logging when chasing a filter problem

[general.tridirectional]
enabled = false # true = mirror chat between Discord and Fluxer
discord_to_fluxer = true
fluxer_to_discord = true
show_source = true # tag relayed lines with [Discord] / [Fluxer]

[server]
prefix = "[HY]" # how this server is identified in shared channels
name = "My Hytale Server"
avatar_type = "headshot" # headshot | fullbody | none
avatar_size = 2048 # 64, 96, 128, 256, 512, 1024, 2048
avatar_rotation = 45 # multiple of 15; 45 = three-quarter view
avatar_url = "" # full custom template, overrides the three options above

[discord]
bot_token = ""
channel_id = ""
auto_webhook = true # create/reuse a webhook so chat shows player names
auto_webhook_name = "Viscord"
webhook_url = "" # set to use your own webhook instead
invite_url = ""

[discord.events]
channel_id = "" # separate channel for join/leave/status

[fluxer]
bot_token = ""
channel_id = ""
event_channel_id = ""
webhook_url = ""

[messages]
game_to_discord = "{message}"
game_to_discord_bot = "**{username}**: {message}" # used only if no webhook is available
discord_to_game = "[Discord] {username}: {message}"
webhook_username = "{prefix} {username}"
use_display_name = true

[messages.events]
join = true
leave = true
startup = true
shutdown = true

[filters]
ignore_bots = true # turn off for server-to-server: other servers post as bots
ignore_webhooks = true
trusted_bot_ids = ""
ignore_own_prefix = true # loop guard: drop our own posts coming back
show_other_server_events = true # relay other servers' tagged messages into game
require_prefix = false # true = only relay chat starting with the prefix

[filters.chat]
prefix = "!"

[bot_status]
enabled = true
format = "Online: {online}/{max}"

Requirements

  • Hytale dedicated server 0.7.x (built and verified against 0.7.4)
  • Java 25 (bundled with the Hytale server install)
  • Side: server only · no dependencies

Notes

  • Current release: 1.0.0 - stable interface (config keys and /viscord commands).
  • Early plugin: the Hytale server API is young and moves between releases. Pin the plugin version that matches your server version.
  • Config edits apply with /viscord reload; missing keys are added automatically when you update the plugin, and a malformed file falls back to defaults instead of disabling chat.
  • Avatars are rendered by the public hytl.skin API. Set avatar_type = "none" to skip that call entirely.
  • Viscord talks only to the Discord and Fluxer APIs, with your own tokens. No third-party webhooks, no player data collection.

Support

Issues and configuration help: https://vonix.network - or find us in the Vonix Network Discord.

Built by Vonix Network, the same team behind Viscord for Minecraft (1.18.2 -> 26.3, Fabric / Forge / NeoForge).

Viscord Team

profile avatar
  • 1
    Followers
  • 8
    Projects
  • 444.1K
    Downloads

The legion of Minecraft developing cheetahs. Ask and you shall recieve