Votifier Setup Guide
Receive real-time vote notifications on your Hytale server when players vote for you on HytaleTop100.
What is Votifier?
Votifier is a protocol that allows server listing sites like HytaleTop100 to send real-time notifications to your game server when a player votes. This enables you to:
- Instant Rewards - Automatically reward players the moment they vote
- In-Game Notifications - Show toast messages and broadcasts when votes come in
- Vote Reminders - Remind players to vote when they join your server
- Custom Commands - Execute any command when a vote is received
HytaleTop100 uses the Votifier V2 protocol with HMAC-SHA256 authentication for secure vote delivery.
Requirements
- A Hytale server with mod support
- A Votifier-compatible plugin (we recommend HytaleVotifier)
- Your server listed on HytaleTop100
- An open port for Votifier (HTTP port, not the game port)
Setup Guide
Install a Votifier Plugin
Download and install a Votifier V2-compatible plugin on your server. Any plugin that supports the Votifier V2 protocol should work.
Recommended: HytaleVotifier on CurseForge
- Download the plugin JAR file
- Place it in your server's
mods/folder - Restart your server to generate the default config
Configure HytaleTop100
Go to your server's edit page on HytaleTop100 and scroll to the "Votifier Configuration" section.
Host
Your server's public IP address or hostname (e.g., play.myserver.com)
Port
The HTTP port your Votifier plugin listens on:
- Nitrado: Use game port + 3 (e.g., if game port is 13400, use
13403) - Self-hosted: Default is usually
8080
Transport
Select HTTP (recommended for most setups)
Use HTTPS (SSL/TLS)
Enable this if using Nitrado WebServer (uses TLS by default) or if your server has SSL configured
Important: Click Generate Token and copy the token immediately - it's only shown once!
Enable Votifier and save your settings.
Configure Your Game Server
Edit your Votifier plugin's config file to add the token from HytaleTop100.
If using HytaleVotifier, edit mods/Hyvote_HytaleVotifier/config.json:
{
"voteSites": {
"tokens": {
"HytaleTop100": "PASTE_YOUR_TOKEN_HERE"
}
}
}
Note: The token key must be HytaleTop100 (exact capitalization). The token itself is a 64-character hex string and must also match exactly.
Enable Notifications (Optional)
Configure how your server responds to votes. Here's a recommended setup:
{
"broadcast": {
"enabled": true,
"message": "<orange>{username}</orange> <gray>voted on</gray> <orange>{from}</orange><gray>!</gray>"
},
"voteMessage": {
"enabled": true,
"titleMessage": "<orange>Vote Received!</orange>",
"descriptionMessage": "<gray>Thanks for your vote on <orange>{from}</orange>!</gray>",
"iconItem": "Ore_Gold"
},
"rewardCommands": [
{
"enabled": true,
"command": "give {username} Ingredient_Stick",
"chance": 1.0
}
]
}
Available Placeholders
{username}- The player's username{from}- The voting site name (HytaleTop100)
Restart and Test
- Restart your game server to load the new configuration
- Use the in-game command to test:
/testvote YourUsername HytaleTop100 - Or trigger a real vote from your server's page on HytaleTop100
Success! If everything is configured correctly, you should see a notification in-game when the vote is received.
Full Example Configuration
Here's a complete working configuration for HytaleVotifier (tested on Nitrado):
{
"debug": false,
"keyPath": "keys",
"voteMessage": {
"enabled": true,
"titleMessage": "<orange>Vote Received!</orange>",
"descriptionMessage": "<gray>Thanks for your vote on <orange>{from}</orange>!</gray>",
"iconItem": "Ore_Gold"
},
"broadcast": {
"enabled": true,
"message": "<orange>{username}</orange> <gray>voted on</gray> <orange>{from}</orange><gray>!</gray>"
},
"rewardCommands": [
{
"enabled": false,
"command": "give {username} Ingredient_Stick",
"chance": 1.0
}
],
"voteSites": {
"tokens": {
"HytaleTop100": "YOUR_TOKEN_HERE"
}
},
"socketServer": {
"enabled": true,
"port": 8192
},
"internalHttpServer": {
"enabled": true,
"port": 8080
},
"protocols": {
"v1Enabled": true,
"v2Enabled": true
},
"voteCommand": {
"enabled": true,
"header": "<red>================<orange> Vote Now </orange>================</red>",
"siteTemplate": "<orange><click:{link}>~{name}~</click></orange>",
"footer": "<red>==============<orange> Earn Rewards </orange>==============</red>",
"sites": [
{
"name": "HytaleTop100",
"url": "https://hytaletop100.com/servers/YOUR_SERVER_SLUG"
}
]
},
"voteReminder": {
"enabled": true,
"sendOnJoin": true,
"voteExpiryInterval": 24,
"delayInSeconds": 15,
"storage": {
"type": "sqlite",
"filePath": "votes.db",
"cleanupIntervalHours": 6
},
"message": {
"enabled": true,
"text": "<gray>You haven't voted today! Use <orange>'/vote'</orange> for free rewards!</gray>"
},
"title": {
"enabled": true,
"title": "You can /vote every day for free rewards!",
"subTitle": "You haven't voted today",
"durationSeconds": 3.0,
"fadeInSeconds": 0.5,
"fadeOutSeconds": 0.5
},
"notification": {
"enabled": true,
"titleMessage": "<orange>You haven't voted today</orange>",
"descriptionMessage": "<gray>Use <orange>/vote</orange> for free rewards!</gray>",
"iconItem": "Upgrade_Backpack_2"
},
"sound": {
"enabled": true,
"sound": "SFX_Avatar_Powers_Enable",
"soundCategory": "UI"
}
}
}
Troubleshooting
Votes not being received
- Verify your Votifier port is open and accessible from the internet
- Check that the token in your game server config matches exactly
- Ensure the host/IP in HytaleTop100 settings is correct
- If using Nitrado, make sure "Use HTTPS" is enabled
Authentication errors
- The token key in your config must be
HytaleTop100(exact capitalization matters) - Regenerate your token on HytaleTop100 and update your config
- Make sure V2 protocol is enabled in your plugin
Connection refused
- Check your firewall allows incoming connections on the Votifier port
- Verify the HTTP server is enabled in your plugin config
- For Nitrado: the WebServer port is typically game port + 3
Nitrado-Specific Setup
If you're hosting on Nitrado, here are some important notes:
- WebServer Port: Nitrado uses a WebServer that listens on your game port + 3. If your game port is 13400, Votifier HTTP would be on 13403.
- SSL/TLS: Nitrado's WebServer uses TLS by default, so enable "Use HTTPS" in HytaleTop100.
- No firewall config needed: Nitrado manages the firewall, so you don't need to open any ports manually.
- Config location:
mods/Hyvote_HytaleVotifier/config.json
Technical Details
For developers and advanced users, here's how the Votifier V2 protocol works:
Vote Payload Format
{
"payload": "{\"serviceName\":\"HytaleTop100\",\"username\":\"PlayerName\",\"address\":\"1.2.3.4\",\"timestamp\":1234567890}",
"signature": "BASE64_HMAC_SHA256"
}
Authentication
HytaleTop100 uses HMAC-SHA256 to sign vote payloads. The signature is computed over the JSON payload string using the shared token as the key, then Base64 encoded.
Service Name
Votes are sent with serviceName: "HytaleTop100". The key in your plugin's token config must match this exactly: "HytaleTop100".
Need Help?
If you're having trouble setting up Votifier, we're here to help!
Contact us with your server name and a description of the issue, and we'll assist you with the setup.