EN Voir les scripts (lien externe)
Centre de documentation
Script Multicharacter

Emplacements et boutique

Combien de personnages chaque joueur peut créer : emplacements gratuits, VIP par ACE, bonus par commande ou Tebex, et bouton boutique sur les emplacements verrouillés.

Mis à jour le 22/10/2026 3 min de lecture

Le calcul

À chaque ouverture de la sélection, le nombre d’emplacements d’un joueur est :

  1. Config.Slots.Default (1 par défaut) ;
  2. plus le bonus de chaque ACE de ServerConfig.Slots.Aces qu’il possède ;
  3. plus les emplacements achetés, enregistrés en base ;
  4. au moins la valeur de ServerConfig.Slots.Identifiers s’il y figure ;
  5. au maximum Config.Slots.Max (4 par défaut).

Exemple : 1 gratuit, VIP (+2) et 1 acheté, soit 4 emplacements. Avec 3 achetés, il en aurait toujours 4 à cause du maximum.

La grille affiche Config.Slots.Max cartes : les personnages, les emplacements libres, puis les emplacements verrouillés.

VIP par permission ACE

Par défaut, l’ACE multicharacter.slots.vip donne 2 emplacements de plus :

ServerConfig.Slots.Aces = {
    ['multicharacter.slots.vip'] = 2
}

Donnez-la à un groupe dans server.cfg :

add_ace group.vip multicharacter.slots.vip allow
add_principal identifier.license:1a2b3c… group.vip

Plusieurs paliers sont possibles, leurs bonus s’additionnent. Un joueur qui perd son groupe perd ses emplacements à la sélection suivante.

Commande console

multichar_slots ajoute des emplacements achetés à un joueur. Elle fonctionne depuis la console serveur, txAdmin, RCON ou Tebex, pas en jeu.

multichar_slots 12 1
multichar_slots license:1a2b3c4d5e… 2
multichar_slots 12 0 set
  • 12 est l’ID serveur d’un joueur connecté. Sinon, utilisez sa licence Rockstar.
  • Le nombre s’ajoute au bonus actuel ; un nombre négatif en retire.
  • Avec set, le bonus est remplacé (0 retire tout).

Livraison Tebex

Dans votre paquet Tebex, ajoutez une commande exécutée sur votre serveur :

multichar_slots {sid} 1

Totaux par identifiant

ServerConfig.Slots.Identifiers garantit un nombre minimum à certains comptes, par exemple au staff :

ServerConfig.Slots.Identifiers = {
    ['license:1a2b3c4d5e…'] = 4,
    ['discord:123456789012345678'] = 3
}

Tous les identifiants FiveM fonctionnent : license:, discord:, fivem:, steam:…

Depuis vos scripts

exports.mrpoulpi_multicharacter:AddSlots(source, 1)
exports.mrpoulpi_multicharacter:SetSlots('license:1a2b3c…', 0)
local total = exports.mrpoulpi_multicharacter:GetSlots(source)

Détails dans API et hooks.

Personnages en trop

Un joueur a 3 personnages et retombe à 1 emplacement (fin de VIP, par exemple) :

  • avec Config.Slots.LockExcessCharacters = false, ses 3 personnages restent jouables, il ne peut juste plus en créer ;
  • avec true, les personnages des emplacements 2 et 3 sont verrouillés jusqu’à ce qu’il récupère ses emplacements.

Bouton boutique

Chaque emplacement verrouillé affiche « Accéder à la boutique ». Le bouton ouvre une fenêtre avec les offres de Config.Shop.Packages, puis la page choisie dans le navigateur du joueur.

Config.Shop = {
    Enabled = true,
    Url = 'https://ma-boutique.tebex.io',
    Packages = {
        {
            id = 'vip',
            title = 'Pack VIP',
            description = '2 emplacements inclus + avantages',
            icon = 'crown',
            url = 'https://ma-boutique.tebex.io/package/1234567'
        }
    }
}
Champ Rôle
id Identifiant libre.
title, description Textes de l’offre.
icon Icône (voir la liste).
url Page à ouvrir. Sans url, c’est Config.Shop.Url.
slot ou slots Réserve l’offre à un emplacement (slot = 2) ou à plusieurs (slots = { 3, 4 }).

Pour proposer une offre différente par emplacement :

Packages = {
    { slot = 2, id = 'slot2', title = 'Deuxième personnage', description = 'Débloque l’emplacement 2', url = 'https://ma-boutique.tebex.io/package/111' },
    { slots = { 3, 4 }, id = 'slot34', title = 'Pack famille', description = 'Débloque les emplacements 3 et 4', url = 'https://ma-boutique.tebex.io/package/222' },
}

Les adresses doivent commencer par https://. Tant que l’adresse d’exemple votre-boutique.tebex.io est en place, le joueur voit « Boutique non configurée ». Pour masquer le bouton : Config.Shop.Enabled = false.

Rechercher

Tapez un terme : paramètre, export, erreur…