Skip to content

Vote rewards for server owners

Reward players automatically when they vote. It takes three steps and works with any game server or website that can run a small script.

1. Send players to your vote link with their name

Add the player's in-game name (letters, numbers, _ and -, max 64) to the end of your vote link:

https://rsps100.com/vote/YOUR_SERVER_ID/PLAYERNAME

Your server ID and ready-made link are on your dashboard. Links from the old site keep working.

2. Set your callback URL

On your server's edit page, enter a callback URL. After every valid vote we call it like this:

https://yourserver.com/callback.php?user=PLAYERNAME&ip=PLAYER_IP
  • One call per counted vote. Votes during the 12-hour cooldown, from blocked networks or bots get no callback.
  • If your script does not answer with HTTP 2xx, we retry after 1, 5 and 30 minutes.
  • Use Send test callback on your edit page to see exactly what your script answers.

3. Give the reward

A minimal PHP callback (PDO, prepared statements):

<?php
$user = preg_replace('/[^A-Za-z0-9_\-]/', '', $_GET['user'] ?? '');
if ($user === '') { http_response_code(400); exit('missing user'); }

// Optional: verify the signature (set a callback secret on your edit page)
$secret = 'YOUR_CALLBACK_SECRET';
if ($secret !== '') {
    $sig = hash_hmac('sha256', $user . '|' . ($_GET['ip'] ?? '') . '|' . ($_GET['time'] ?? ''), $secret);
    if (!hash_equals($sig, $_GET['sig'] ?? '') || abs(time() - (int) ($_GET['time'] ?? 0)) > 300) {
        http_response_code(403); exit('bad signature');
    }
}

$db = new PDO('mysql:host=localhost;dbname=game', 'user', 'pass');
$db->prepare('INSERT INTO vote_rewards (username, claimed, created_at) VALUES (?, 0, NOW())')
   ->execute([$user]);
echo 'ok';

Then give the reward in game when the player logs in (or poll the table every minute).

Signed callbacks

If you set a callback secret, we add time (UNIX seconds) and sig to every call:

sig = HMAC_SHA256( user + "|" + ip + "|" + time , your_secret )   // hex

Reject calls with a wrong signature or a time older than 5 minutes. Without a secret the format is exactly the same as before.

Voted API

Check from your game server whether a player voted in the last 12 hours:

GET https://rsps100.com/api/v1/voted?server=ID&key=API_KEY&username=PLAYERNAME
GET https://rsps100.com/api/v1/voted?server=ID&key=API_KEY&ip=PLAYER_IP

{"voted": true, "voted_at": 1767225600, "next_vote_at": 1767268800}

Your API key is on your server's edit page. Keep it on your server — never in a game client.

Fair play

Votes from VPNs, proxies, data centers and automated tools are not counted. One vote per player network every 12 hours. Servers with suspicious vote bursts are reviewed by a moderator and may be removed.