Description
VotePipe - Unified Vote Rewards for Hytale
The only Hytale vote plugin that handles both Webhook and Votifier sites through one unified pipeline. Connect all 7 major server list sites with a single plugin — no open ports, no extra setup per protocol, no juggling multiple vote plugins.
- Webhook + Votifier in one plugin — supports V1 RSA, V2 HMAC, and HTTPS webhooks natively
- No port forwarding required — outbound-only connections keep your server secure
- Visual reward builder — configure rewards from a web dashboard, no code needed
- Free tier available — get started in minutes with no commitment
Supported Providers
Every provider feeds into the same reward system — no separate plugins needed.
Webhook Providers
| Provider | Data Received |
|---|---|
| Hytale-Servers.pro | Hytale username, Vote ID, Server slug |
| HytaleCharts | Discord ID & username, Server stats |
| Hylist.io | Username, Server ID, Total votes |
Votes arrive over HTTPS. You get a webhook URL and secret from the dashboard — paste them into the vote site settings.
Votifier Providers
| Provider | Protocol Versions |
|---|---|
| HytaleLobby | V1 (RSA) + V2 (HMAC) |
| HytaleServer.xyz | V1 (RSA) + V2 (HMAC) |
| HytaleOnlineServers | V1 (RSA) + V2 (HMAC) |
| ServeurHytale.fr | V1 (RSA) + V2 (HMAC) |
Votes arrive over TCP using the Votifier protocol. VotePipe auto-generates your RSA keys and HMAC tokens — just copy the connection info from the dashboard into the vote site. One-click key rotation if you ever need it.
Quick Start
- Download
VotePipe.jarand place it in your server'splugins/folder - Start the server — a default config file is generated automatically
- Create an account at app.votepipe.com and add your server
- Copy your plugin token from Settings > Plugin in the dashboard
- Set the token in-game with
/votepipe token vpt_your_tokenor editplugins/votepipe/config.json - Add providers in the dashboard — you'll get webhook URLs or Votifier connection info to paste into each vote site
Votes start flowing within seconds. Your server only makes outbound requests — no open ports, no firewall rules. Failed deliveries retry automatically.
Operating Modes
Automatic Mode
Configure everything from the dashboard. No code required.
- Go to Settings > Rewards in your dashboard
- Set Plugin Mode to Automatic
- Create reward configurations with the visual builder
- The plugin handles execution, retry, and claim tracking
Developer Mode
Full control with custom code. Register a handler for VoteReceivedEvent and implement your own reward logic.
- Set Plugin Mode to Developer in the dashboard
- Register an event handler (see Plugin API below)
- Call
event.success()orevent.fail(reason)to report delivery status
Reward Types
| Type | Description | Free | Pro+ |
|---|---|---|---|
| Base Rewards | Given for every vote | Yes | Yes |
| Streak Rewards | Bonuses for consecutive voting days (3, 7, 14, 30 days) | - | Yes |
| Lucky Votes | Random chance rewards with configurable tiers | - | Yes |
| Milestones | Rewards at vote count thresholds (10, 50, 100, 500 votes) | - | Yes |
Available Actions
Actions are the building blocks of rewards. Combine them freely in each reward config.
| Action | Description | Plans |
|---|---|---|
| Command | Execute server commands (with {player} substitution) |
All |
| Broadcast | Send a message to all online players | All |
| Player Message | Send a private message to the voter | All |
| Sound | Play a sound effect for the voter | All |
| Item | Give items to the voter's inventory | All |
| Title | Display a title/subtitle on screen | Pro+ |
| UI Notification | Show an in-game notification popup | Pro+ |
Variables available in actions:
| Variable | Description |
|---|---|
{player} |
Player username |
{service} |
Provider name |
{vote_count} |
Player's total votes |
{streak} |
Current voting streak |
{provider_server_url} |
Provider's server/vote page URL |
Text formatting tags:
| Tag | Effect |
|---|---|
<#RRGGBB> |
Set hex color |
<BOLD> |
Bold text |
<ITALIC> |
Italic text |
<MONO> |
Monospace text |
<RESET> |
Reset formatting |
Example:
<#FFD700><BOLD>{player}<RESET> voted on <#00BFFF>{service}<RESET>!
Configuration
Location: plugins/votepipe/config.json
{
"token": "vpt_your_token_here",
"api_base_url": "https://api.votepipe.com/v1",
"poll_interval_ms": 5000,
"claim_timeout_ms": 5000,
"enabled": true,
"debug": false
}
| Setting | Default | Description |
|---|---|---|
token |
required | Plugin token from your dashboard (Settings > Plugin) |
api_base_url |
https://api.votepipe.com/v1 |
API endpoint |
poll_interval_ms |
5000 |
How often to check for new votes (minimum 5000ms) |
claim_timeout_ms |
5000 |
Timeout for Developer mode reward handlers |
enabled |
true |
Enable or disable the plugin |
debug |
false |
Enable verbose logging for troubleshooting |
Commands
| Command | Description |
|---|---|
/votepipe |
Show available commands |
/votepipe status |
Show connection status, token info, and vote statistics |
/votepipe reload |
Reload configuration from disk |
/votepipe token <token> |
Set plugin token without restarting the server |
Plugin API
For developers who want full control, VotePipe provides both an event system and a static API.
Developer Mode Event Handler
import com.mythlane.votepipe.event.VoteReceivedEvent;
public class MyPlugin extends JavaPlugin {
@Override
public void setup() {
getEventRegistry().register(VoteReceivedEvent.class, event -> {
Player player = server.getPlayer(event.getVoterName());
if (player != null && player.isOnline()) {
player.getInventory().add(new ItemStack(Items.DIAMOND, 5));
player.sendMessage("Thanks for voting on " + event.getProviderName() + "!");
event.success();
} else {
event.fail("Player offline");
}
});
}
}
Event fields:
| Field | Type | Description |
|---|---|---|
voteId |
String | Vote ID (UUID) |
voterName |
String | Player username |
provider |
String | Provider key |
providerName |
String | Provider display name |
receivedAt |
Instant | Vote timestamp |
Static API
Add VotePipe as a compile-only dependency:
dependencies {
compileOnly("com.mythlane:votepipe:1.0.1")
}
import com.mythlane.votepipe.api.VotePipe;
// Check connection status
boolean connected = VotePipe.isConnected();
// Get leaderboard
VotePipe.getLeaderboard().thenAccept(leaderboard -> {
for (LeaderboardEntry entry : leaderboard.getEntries()) {
System.out.println(entry.getRank() + ". " + entry.getPlayerName());
}
});
// Get leaderboard with options
VotePipe.getLeaderboard(new LeaderboardOptions()
.period(Period.WEEKLY)
.limit(20)
.provider("hytalecharts")
);
// Trigger manual poll
VotePipe.triggerPoll();
Migrating from Votifier / NuVotifier
VotePipe now natively supports the Votifier protocol (both V1 RSA and V2 HMAC), making migration simpler than ever. You don't need to change how your vote sites send votes — VotePipe can receive them directly.
Migration Steps
Install VotePipe alongside your existing Votifier plugin
- Download and place
VotePipe.jarin yourplugins/folder - Set your plugin token via
/votepipe token <token>
- Download and place
Add your vote sites as Votifier providers in the VotePipe dashboard
- VotePipe auto-generates RSA keys and HMAC tokens for each provider
- Copy the generated Host, Port, and Public Key into each vote site's Votifier settings
- For V2-compatible sites, also copy the HMAC token
Configure rewards
- Automatic mode: Set up reward configs in the dashboard's visual builder
- Developer mode: Port your existing reward logic to use
VoteReceivedEvent
Remove the old plugin once votes are flowing through VotePipe
- Delete Votifier/NuVotifier from
plugins/ - Clean up old config files
- Delete Votifier/NuVotifier from
What changes
| Before (Votifier) | After (VotePipe) |
|---|---|
| Open port 8192 on your server | No incoming connections needed |
| Votes go directly to your server | Votes go to VotePipe cloud, plugin polls for them |
| No retry if server is offline | Automatic retry until delivered |
| No analytics | Full dashboard with vote history, streaks, leaderboards |
| Config files only | Visual reward builder + config files |
| No Discord notifications | Built-in Discord notifications |
Plan Comparison
| Feature | Free | Pro | Network |
|---|---|---|---|
| Automatic Rewards | Yes | Yes | Yes |
| Reward Configs | 3 | 5 | Unlimited |
| Actions per Config | 5 | 10 | Unlimited |
| Streak Tiers | - | 5 | Unlimited |
| Lucky Tiers | - | 3 | Unlimited |
| Milestones | - | 5 | Unlimited |
Requirements
- Hytale Server
- Java 25 or higher
- VotePipe account (free signup)
Plugin API calls (polling, claims, leaderboard) don't count against your rate limits.
Support
- Dashboard: app.votepipe.com
- Documentation: votepipe.com/docs
- API Documentation: api.votepipe.com/docs
License
MIT License


