promotional bannermobile promotional banner
premium banner
A Votifier-style plugin for Hytale that receives vote notifications from voting websites via webserver and fires events for other plugins to handle rewards.

Description

 

 

HytaleVotifier Banner

HytaleVotifier

Reward your players for supporting your server!

Latest Release License Java 25+

 

 


HytaleVotifier is a powerful Votifier plugin for Hytale servers that makes it easy to track votes, reward players, and boost your server's activity. Compatible with all major voting sites that support the Votifier protocol (V1 and V2/NuVotifier)!


Features

  • Dual Protocol Support — V1 (RSA encryption) and V2 (HMAC-SHA256) for maximum compatibility
  • V2 Socket Server — Dedicated TCP socket with challenge-response authentication
  • Custom chat messages — Send personalized thank-you messages to players after they vote
  • Server broadcasts — Announce votes to the entire server when someone votes
  • Automatic rewards — Run commands automatically when votes come in
  • On-screen notifications — Beautiful toast popups for instant feedback
  • Clickable vote links/vote command shows clickable links to your voting sites
  • Tiered rewards — Set up chance-based rewards (common, rare, legendary drops!)
  • Vote reminders — Remind players to vote on join if they haven't voted recently
  • Vote tracking — Persistent SQLite storage tracks when players last voted
  • Auto-updates — Get notified when new versions are available

Quick Start

  1. Download the latest JAR from this page or GitHub Releases
  2. Drop the JAR into your server's mods/ folder
  3. Start your server — RSA keys are generated automatically on first run
  4. Configure your voting sites — Share your public.key with voting sites (V1) or exchange tokens (V2)
  5. Customize rewards — Edit config.json to set up messages and rewards

That's it! Your server is ready to receive votes.


Color Formatting

HytaleVotifier uses TaleMessage for beautiful colored messages.

Available colors:

<black>, <dark_blue>, <dark_green>, <dark_aqua>, <dark_red>, <dark_purple>, <gold>, <gray>, <blue>, <green>, <aqua>, <red>, <yellow>, <white>, <orange>

Example:

<gray>Thanks for your vote on <orange>{from}</orange>. <green>Enjoy your rewards!</green>

Clickable text:

<click:https://example.com&gt;Click here!</click>

Configuration

Your config file is located at mods/Hyvote_HytaleVotifier/config.json

Example Setup

{
  "debug": false,
  "keyPath": "keys",
  "voteMessage": {
    "enabled": true,
    "titleMessage": "Vote Received!",
    "descriptionMessage": "Thanks for your vote on {from}!",
    "iconItem": "Ore_Gold"
  },
  "broadcast": {
    "enabled": true,
    "message": "{username} voted on {from}!"
  },
  "rewardCommands": [
    {
      "enabled": true,
      "command": "give {username} Ingredient_Stick",
      "chance": 1.0
    },
    {
      "enabled": true,
      "command": "give {username} Ingredient_Bar_Gold",
      "chance": 0.25
    },
    {
      "enabled": true,
      "command": "give {username} Weapon_Longsword_Adamantite_Saurian",
      "chance": 0.05
    }
  ],
  "voteSites": {
    "tokens": {
      "TopHytaleSites": "your-secret-token-here",
      "Hyvote": "another-secret-token"
    }
  },
  "socketServer": {
    "enabled": true,
    "port": 8192
  },
  "internalHttpServer": {
    "enabled": true,
    "port": 8080
  },
  "protocols": {
    "v1Enabled": true,
    "v2Enabled": true
  },
  "voteCommand": {
    "enabled": true,
    "header": "★★★ Vote for our server! ★★★",
    "siteTemplate": "➤ {name}",
    "footer": "Thank you for supporting us!",
    "sites": [
      {
        "name": "Hyvote.org",
        "url": "https://hyvote.org/servers/my-server"
      },
      {
        "name": "TopHytaleSites",
        "url": "https://tophytalesites.com/vote/my-server"
      }
    ]
  },
  "voteReminder": {
    "enabled": true,
    "sendOnJoin": true,
    "voteExpiryInterval": 24,
    "delayInSeconds": 60,
    "storage": {
      "type": "sqlite",
      "filePath": "votes.db",
      "cleanupIntervalHours": 6
    },
    "message": {
      "enabled": true,
      "text": "You haven't voted today! You can '/vote' every day to receive free rewards!"
    },
    "notification": {
      "enabled": true,
      "titleMessage": "You haven't voted today",
      "descriptionMessage": "You can /vote every day for free rewards!",
      "iconItem": "Upgrade_Backpack_2"
    }
  }
}

Configuration Options

Option Description
debug Enable verbose debug logging
keyPath Subdirectory for RSA keys (relative to plugin data directory)
voteMessage Toast notification settings for the voter
broadcast Server-wide announcement settings
rewardCommands Commands to execute when votes are received
voteSites V2 protocol service tokens (service name → shared secret)
socketServer V2 TCP socket server settings (port 8192 by default)
internalHttpServer Fallback HTTP server settings (used when Nitrado:WebServer is unavailable)
protocols Enable/disable V1 (RSA over HTTP) and V2 (HMAC-SHA256) protocols
voteCommand Settings for the /vote command with clickable site links
voteReminder Settings for reminding players to vote on join

Placeholders

Placeholder Description
{username} Player's in-game name
{from} Name of the voting site
{name} Voting site display name (in vote command)
{link} Voting site URL (in vote command)

Tiered Rewards

Set chance between 0.0 and 1.0 to create exciting tiered rewards:

  • 1.0 = 100% chance (guaranteed)
  • 0.25 = 25% chance (uncommon)
  • 0.05 = 5% chance (rare)

Vote Reminders

HytaleVotifier can remind players to vote when they join the server. The reminder system includes:

  • Chat messages — Direct message to the player
  • Title display — Large text on screen
  • Toast notifications — Popup notifications
  • Sound effects — Audio cues

Configure voteExpiryInterval to set how many hours before a vote "expires" and reminders resume (default: 24 hours).


Vote Protocols

HytaleVotifier supports two protocols for maximum compatibility:

Protocol Authentication Transport Use Case
V1 RSA 2048-bit encryption HTTP Classic Votifier compatibility
V2 HMAC-SHA256 signatures HTTP or TCP socket Modern NuVotifier compatibility

V1 Setup: Share your public.key file with voting sites.

V2 Setup: Exchange shared secret tokens with voting sites and add them to voteSites.tokens in your config.

For detailed protocol documentation, see the GitHub README.


Testing Your Setup

Use the /testvote command to test your configuration without needing an actual vote:

/testvote PlayerName
/testvote PlayerName MySite

Permission: votifier.admin.testvote


Permissions

Permission Description
votifier.admin.testvote Use the /testvote command
votifier.admin Receive update notifications on join
votifier.admin.update_notifications Alternative permission for update notifications only

File Locations

mods/Hyvote_HytaleVotifier/
├── config.json       # Your configuration
├── votes.db          # Vote tracking database (SQLite)
└── keys/
    ├── public.key    # 📤 Share with voting sites (V1)
    └── private.key   # 🔒 Keep this secret!

💬 Support

Having trouble with your config? Validate your JSON at hytaletools.org