Ressource de vote FiveM

Quand un joueur vote pour ton serveur sur Servote, il reçoit sa récompense en jeu automatiquement. La ressource servote-vote s'installe comme n'importe quelle ressource FiveM, gère ESX et QBCore (argent, banque, objets), et accepte aussi des commandes console ou ta propre fonction pour tout autre framework.

Ce qu'il te faut

  • Un serveur FiveM (FXServer) à jour, sous ESX, QBCore ou sans framework.
  • Un serveur en marche (pas encore ? crée-le ici) et sa fiche approuvée sur Servote (Ajouter mon serveur), avec le jeu « GTA ».
  • L'option « Activer le plugin / l'API de vote » cochée dans la fiche (Dashboard → Modifier).
  • Un accès aux fichiers du serveur et à la console (txAdmin ou terminal).

Première version

La ressource 1.0 a été vérifiée par des tests automatisés qui simulent FiveM (joueurs, identifiants, commandes) face à la vraie API Servote : réclamation unique, mode automatique, erreurs réseau, protection des commandes. Les adaptateurs ESX et QBCore appellent les fonctions standard de ces frameworks (addMoney, AddMoney…) mais n'ont pas encore été essayés sur un vrai serveur : teste avec servote_test (étape 5). Si un framework modifié pose problème, utilise les commandes console ou CustomReward. Écris-nous via Contact si tu bloques.

Installation en 5 étapes

1

Récupère le token de vote de ton serveur

Sur ton dashboard, la carte de ton serveur affiche son token de vote : clique sur le bouton pour le copier.

Garde-le secret

Ce token permet de réclamer les votes de ton serveur. Ne le publie jamais (Discord, capture d'écran, dépôt GitHub public). S'il fuite, contacte-nous pour le renouveler.

2

Télécharge la ressource

Ressource servote-vote (FiveM)

Version 1.0.0 · 6 Ko · servote-vote-fivem-1.0.0.zip

Télécharger

SHA-256 : 30a37f0160361fc3f5678ad28dfa33c8bf027572de85c852463d3d34cfa36dd1

Empreinte à vérifier si tu le souhaites : Get-FileHash servote-vote-fivem-1.0.0.zip (Windows) ou sha256sum servote-vote-fivem-1.0.0.zip (Linux). Le code est en Lua, lisible dans server.lua.

3

Installe-la

Décompresse l'archive dans le dossier resources de ton serveur (par exemple resources/[servote]/servote-vote). Le dossier servote-vote doit contenir directement fxmanifest.lua, config.lua et server.lua.

Puis ajoute-la à server.cfg, après ton framework :

server.cfg
# ta base (framework) d'abord, puis le vote
ensure es_extended      # ou : ensure qb-core
ensure servote-vote
4

Configure le token et les récompenses

Ouvre config.lua, colle ton token, indique le lien de ta page Servote et choisis tes récompenses :

config.lua
Config.ServerToken = 'COLLE_TON_TOKEN_ICI'
Config.VoteUrl = 'https://servote.fr/servers/mon-serveur'

Config.AutoClaim = true
Config.AutoClaimInterval = 60

Config.Framework = 'auto'   -- 'auto', 'esx', 'qbcore' ou 'standalone'

Config.Rewards = {
    cash = 500,
    bank = 0,
    items = {
        { name = 'bread', count = 2 },
    },
    commands = {
        -- 'addmoney {id} 500',
    },
}

Redémarre la ressource depuis la console : restart servote-vote. Elle affiche [servote-vote] Prêt quand tout est bon.

5

Teste

  1. Console serveur : servote_check doit répondre « Connexion à Servote OK ».
  2. Avec un joueur connecté, servote_test <ID du joueur> exécute tes récompenses sans consommer de vote : vérifie que l'argent, les objets ou les commandes arrivent bien.
  3. Vote sur Servote avec ton nom FiveM (ou ton SteamID64) : la récompense arrive en moins d'une minute, ou tape /vote en jeu.

Comment les joueurs sont reconnus

Le formulaire de vote de Servote demande un pseudonyme et, pour les serveurs GTA/FiveM, un SteamID64 facultatif. La ressource essaie d'abord le SteamID (plus fiable), puis le pseudonyme.

  • Le pseudonyme à saisir est le nom FiveM du joueur (celui de sa connexion), pas le nom de son personnage RP. Les majuscules sont ignorées.
  • Le SteamID64 est un nombre de 17 chiffres qui commence par 7656119 (visible sur le profil Steam du joueur). Il n'est utilisable que si ton serveur reçoit les identifiants Steam des joueurs (généralement via steam_webApiKey dans server.cfg, avec Steam ouvert chez le joueur).
  • Conseille à tes joueurs de remplir le SteamID64 : c'est la façon la plus sûre d'être reconnu, même si le nom change.

Comment ça marche

  • Un même joueur peut voter toutes les 2 heures pour un même serveur.
  • Mode automatique : toutes les 60 secondes, la ressource demande à Servote les votes de la dernière heure. Chaque joueur connecté qui a un vote non récupéré est récompensé.
  • Commande /vote : même chose à la demande, jusqu'à 2 heures après le vote.
  • Servote ne répond « réclamé » qu'une seule fois par vote : pas de double récompense, même si le joueur tape /vote pendant que le mode automatique tourne.
  • Environ 1 requête par minute (limite : 120 par minute).

Récompenses : ESX, QBCore, commandes

  • ESX / QBCore : cash, bank et items de Config.Rewards sont donnés directement. Les noms d'objets doivent exister chez toi. Avec Config.Framework = 'auto', le framework est détecté tout seul.
  • Commandes console : ajoute-les dans Config.Rewards.commands. Variables disponibles : {id} (ID serveur du joueur) et {steam} (son SteamID64).
  • Autre framework : écris ta logique dans Config.CustomReward.
config.lua
-- Pour un framework maison (vRP, script de caisses, etc.)
Config.CustomReward = function(source)
    exports['mon_script']:donner(source, 'ticket_vip', 1)
end

Pourquoi pas de variable {name} ?

Le nom d'un joueur est libre : un nom contenant ; pourrait faire exécuter d'autres commandes à la console. Les commandes ne reçoivent donc que des valeurs numériques choisies par le serveur.

Commandes

CommandeRôle
/voteJoueur (en jeu)Affiche le lien de vote et récupère la récompense
servote_checkConsole serveurTeste le token et la connexion
servote_test <ID>Console serveurExécute les récompenses sans consommer de vote
servote_pollConsole serveurForce la vérification automatique tout de suite

Dépannage

+« Refusé par Servote (401) : Token invalide »

Le token de config.lua est incorrect (espace en trop, ancien token). Recopie-le depuis ton dashboard puis restart servote-vote.

+« Refusé par Servote (403) : L'API de vote est désactivée pour ce serveur »

Coche « Activer le plugin / l'API de vote » dans la fiche de ton serveur (Dashboard → Modifier), puis relance servote_check. « Ce serveur est banni » signifie que la fiche a été suspendue : écris-nous via Contact.

+« Servote est injoignable »

Ton serveur ne parvient pas à joindre https://servote.fr : vérifie le pare-feu sortant (HTTPS, port 443) de ta machine ou de ton hébergeur.

+Le joueur a voté mais ne reçoit rien
  • Le pseudonyme saisi doit être son nom FiveM (pas celui de son personnage), ou son SteamID64 correct.
  • Le mode automatique ne sert que les joueurs connectés et les votes de la dernière heure : sinon /vote (jusqu'à 2 h).
  • La ressource écrit ses avertissements dans la console avec le préfixe [servote-vote] : regarde-les.
+La récompense est « livrée » mais rien n'arrive (argent, objet)
  • Ton framework n'a peut-être pas été détecté : vérifie que ensure servote-vote est placé après es_extended / qb-core, ou force Config.Framework.
  • Les noms d'objets de items doivent exister dans ton framework.
  • Essaie servote_test <ID> et lis la console : un échec y est affiché (« Récompense … impossible »).
+Je ne veux que la commande /vote

Mets Config.AutoClaim = false puis restart servote-vote.