promotional bannermobile promotional banner
premium banner
Hytale vote rewards plugin — supports many server list sites, both Webhook and Votifier. Visual reward builder, automatic delivery, no open ports required.

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

  1. Download VotePipe.jar and place it in your server's plugins/ folder
  2. Start the server — a default config file is generated automatically
  3. Create an account at app.votepipe.com and add your server
  4. Copy your plugin token from Settings > Plugin in the dashboard
  5. Set the token in-game with /votepipe token vpt_your_token or edit plugins/votepipe/config.json
  6. 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.

  1. Go to Settings > Rewards in your dashboard
  2. Set Plugin Mode to Automatic
  3. Create reward configurations with the visual builder
  4. 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.

  1. Set Plugin Mode to Developer in the dashboard
  2. Register an event handler (see Plugin API below)
  3. Call event.success() or event.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

  1. Install VotePipe alongside your existing Votifier plugin

    • Download and place VotePipe.jar in your plugins/ folder
    • Set your plugin token via /votepipe token <token>
  2. 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
  3. Configure rewards

    • Automatic mode: Set up reward configs in the dashboard's visual builder
    • Developer mode: Port your existing reward logic to use VoteReceivedEvent
  4. Remove the old plugin once votes are flowing through VotePipe

    • Delete Votifier/NuVotifier from plugins/
    • Clean up old config files

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


License

MIT License