VotePipe

HytaleCharts Integration

Connect HytaleCharts to VotePipe for vote notifications. HytaleCharts supports two integration methods: Webhook (HTTPS) and Votifier (TCP).

Webhook Integration

Receive votes via HTTPS webhooks with HMAC-SHA256 signature verification.

Webhook URL

https://hooks.votepipe.com/{org_slug}/hytalecharts

Example: https://api.votepipe.com/hooks/your-org/hytalecharts

Setup Instructions

Step 1: Create Provider in VotePipe

  1. Go to Add Provider and select HytaleCharts
  2. Copy the generated webhook URL (it will look like: https://api.votepipe.com/hooks/your-org/hytalecharts)
  3. Keep this page open - you'll need to paste the webhook secret in the next step

Step 2: Configure Webhook in HytaleCharts

  1. Go to https://hytalecharts.com/dashboard
  2. Click Edit Server next to your server
  3. Scroll down to the Vote Webhook URL field
  4. Paste your VotePipe webhook URL into the field
  5. Scroll to the bottom of the page and click Save
  6. Copy your Webhook Secret from the same page (click "Show" to reveal it)
  7. Save the webhook secret (you'll need it for the next step)

Step 3: Complete Provider Setup in VotePipe

  1. Go back to the VotePipe provider creation page
  2. Paste the Webhook Secret from HytaleCharts into the Auth Value field
  3. Click Create Provider
  4. Click Test in HytaleCharts to verify the connection

Important

HytaleCharts generates the webhook secret. Copy it from your HytaleCharts dashboard (Edit Server page, Vote Webhook URL section, then Webhook Secret) and paste it into the Auth Value field in VotePipe when creating the provider.

Webhook Verification

HytaleCharts uses HMAC-SHA256 signatures to verify webhook authenticity. Every webhook request includes headers you can use to verify the request came from HytaleCharts.

Request Headers

HeaderDescription
X-HytaleCharts-EventEvent type (vote)
X-HytaleCharts-SignatureHMAC-SHA256 signature in format sha256={hex}
X-HytaleCharts-TimestampUnix timestamp when the webhook was sent
Content-Typeapplication/json

Signature Format

sha256={hmac_hex}

The signature is computed by concatenating the timestamp and JSON body with a period, then computing HMAC-SHA256 with your secret.

Vote Payload Format

HytaleCharts sends vote data in the following format:

json
{ "event": "vote", "voter": { "username": "mrkayjaydee", "discord_id": "370940770225618954", "last_vote_at": "2026-01-05T07:06:52+00:00", "discord_username": "mrkayjaydee", "total_votes_for_server": 35 }, "server_id": 31, "timestamp": "2026-01-06T07:50:59+00:00", "server_name": "Mythlane", "server_slug": "mythlane", "server_stats": { "total_votes": 104, "weighted_votes": 103 } }

The voter name is extracted from voter.username.

Payload Fields

Root Fields

FieldTypeDescription
eventstringEvent type: vote
server_idintegerYour server's unique database ID
server_namestringYour server's display name
server_slugstringURL-friendly identifier for your server
timestampstringISO 8601 timestamp when the event occurred

Voter Object (Vote Events)

FieldTypeDescription
usernamestringHytaleCharts username
discord_idstringUser's Discord ID (use for in-game rewards)
discord_usernamestringUser's Discord username
total_votes_for_serverintegerTotal votes this user has cast for your server
last_vote_atstringISO 8601 timestamp of the previous vote

Server Stats Object

FieldTypeDescription
total_votesintegerTotal vote count for your server
weighted_votesnumberWeighted vote score

Votifier Integration

Receive votes via the Votifier protocol over raw TCP. VotePipe supports both V1 (RSA) and V2 (HMAC).

Protocol

PropertyValue
ProtocolVotifier V1 (RSA 2048-bit) & V2 (HMAC-SHA256)
TransportRaw TCP
Default Port8192
Key ManagementAuto-generated by VotePipe, rotatable from dashboard

Connection Details

When you create a HytaleCharts (Votifier) provider in VotePipe, the following credentials are auto-generated:

FieldDescription
HostThe VotePipe Votifier server address
PortTCP port (default: 8192)
Public KeyRSA 2048-bit public key (PEM format, for V1)
TokenHMAC token (for V2 protocol)

Setup Instructions

Step 1: Create Provider in VotePipe

  1. Go to Add Provider and select HytaleCharts (Votifier)
  2. VotePipe will auto-generate your RSA keypair and HMAC token
  3. Copy the Host, Port, and Public Key shown in the provider details

Step 2: Configure HytaleCharts

  1. Go to https://hytalecharts.com/dashboard
  2. Click Edit Server on your server
  3. Scroll down to the Votifier Settings section
  4. Enable Votifier and select a protocol version:
    • V1 (RSA) — paste the Public Key from VotePipe
    • V2 (HMAC) — paste the Token from VotePipe
  5. Fill in the Address (Host) and Port (default: 8192) using the values from your VotePipe provider
  6. Click Save to apply the settings

Step 3: Verify

  1. Cast a test vote on HytaleCharts for your server
  2. Check the VotePipe dashboard to confirm the vote was received
  3. Votes will now flow: HytaleCharts → Votifier TCP → VotePipe → Discord + Callbacks + Plugin

Key Rotation

You can rotate your RSA keys and HMAC token at any time from the VotePipe dashboard (Providers → your HytaleCharts Votifier provider → Rotate Keys). After rotating, update the public key on HytaleCharts.

Troubleshooting

Webhook not receiving votes

  • Verify the webhook URL is correct in HytaleCharts settings
  • Make sure you're using the Vote Webhook URL field (not Discord Webhook)
  • Ensure your provider is enabled in VotePipe
  • Click the Test button in HytaleCharts to send a test webhook

Authentication errors (401)

  • Make sure you copied the Webhook Secret from HytaleCharts (not generated by VotePipe)
  • Click "Show" to reveal the secret and copy the full value
  • Check there are no extra spaces before or after the secret
  • The secret should be pasted in the Auth Value field in your VotePipe provider

Votifier votes not arriving

  • Verify the host and port match exactly what VotePipe shows
  • Ensure the public key was copied completely (including BEGIN/END markers)
  • Check that port 8192 is accessible (not blocked by firewall)
  • Ensure the provider is enabled in VotePipe

Signature mismatch / decryption errors

  • For webhooks: the signature is computed as sha256=HMAC({timestamp}.{json_body}, secret)
  • For Votifier: the public key on HytaleCharts must match the one shown in VotePipe
  • If keys were rotated, update the public key on HytaleCharts
  • Try rotating keys in VotePipe and re-configuring HytaleCharts

Still having issues? Check our general troubleshooting guide.

API Management

You can manage providers programmatically using the API: