SunLicenseSe connecter
Pour les développeurs de scripts FiveM et RedM

Vendez des scripts FiveM. Gardez-les sur les serveurs qui paient.

Une clé pour chaque vente Tebex, une limite de serveurs, les rétrofacturations gérées.

Créer un compte gratuit

Forfait Free · Sans carte bancaire · Prêt en quelques minutes

Vous codez avec un agent IA  Collez un prompt
  • FiveM
  • RedM
  • Lua
  • ESX
  • QBCore
  • Tebex
  • Discord
Ce que vous obtenez

Pensé pour votre façon de vendre.

Des clés depuis Tebex

Chaque paiement émet une clé et l'envoie par e-mail.

Rétrofacturations gérées

Les remboursements révoquent, les litiges suspendent, les litiges gagnés rétablissent.

Serveurs par clé

1, 2 ou 5 serveurs par licence.

TOO_MANY_MACHINES

SDK Lua et modèle

Lit une convar, revérifie toutes les 6 heures.

sunlicense.lua

Assistance sur Discord

Rôles d'acheteur et réinitialisation des emplacements de serveur.

/claim

Sentinel repère les clés partagées

Trop d'endroits, ou utilisée après un remboursement.

Tous les forfaits
Fonctionnement

En ligne avant votre prochaine version.

  1. 1Créer un compte gratuit
  2. 2Connectez vos packages Tebex
  3. 3Ajoutez sunlicense.lua
server/main.lua
-- server.cfg: set my_garage_license "AX8P-XXXX-XXXX-XXXX"
local resource = GetCurrentResourceName()
local SunLicense = load(LoadResourceFile(resource, 'lib/sunlicense.lua'))()
local client = SunLicense.new({ baseUrl = 'https://api.sunlicense.com', token = SunLicenseSettings.apiKey })

client:validate(GetConvar('my_garage_license', ''), { host = serverId() }, function(ok, status, body)
    if ok then
        print(('^2[%s] License valid, starting.^7'):format(resource))
        startFeatures()
    elseif status == 400 then
        print(('^1[%s] License denied: %s^7'):format(resource, body:match('"code":"([%w_]+)"') or '?'))
        StopResource(resource)
    else
        startFeatures() -- no answer is not a no: keep running
    end
end)
FAQ

Vos questions, nos réponses.

Comment empêcher mes scripts FiveM de fuiter 

Donnez à chaque acheteur sa propre clé et vérifiez-la au démarrage de la ressource. Si une copie fuit, la clé avec laquelle elle tourne est celle de l'auteur de la fuite  révoquez cette licence et la copie s'arrête à sa prochaine vérification (le modèle revérifie toutes les 6 heures), pendant que les serveurs qui paient continuent de tourner. Passez aussi par l'asset escrow de Tebex, pour que les acheteurs ne puissent ni lire ni modifier la vérification.

Est-ce que ça marche avec Tebex 

Oui. Associez les ID de packages Tebex à une politique et ajoutez un webhook  chaque paiement terminé émet une licence, les remboursements et les litiges perdus la révoquent, et les litiges ouverts la suspendent. Les acheteurs reçoivent la clé par e-mail, ou sur votre page d'activation avec leur ID de transaction tbx- et leur e-mail.

Est-ce que ça marche avec ESX, QBCore et RedM 

Oui. La vérification tourne dans un script serveur avec le PerformHttpRequest de FiveM lui-même, elle ne dépend donc d'aucun framework. Pour RedM, mettez game à 'rdr3' dans fxmanifest.lua.

Que se passe-t-il si SunLicense est injoignable 

Le modèle garde la ressource en marche et réessaie toutes les 10 minutes  un réglage lui fait attendre une réponse à la place. Seul un vrai refus, comme une clé révoquée ou inconnue, arrête la ressource. Lua n'a pas d'Ed25519 intégré, donc les ressources FiveM n'utilisent pas de fichiers de licence hors ligne.

Protégez votre prochaine version.

  • Forfait Free
  • Sans carte bancaire
  • Résiliable à tout moment