SunLicenseIniciar sesión
Para desarrolladores de scripts de FiveM y RedM

Vende scripts de FiveM. Mantenlos en servidores que pagan.

Una clave por cada venta en Tebex, un límite de servidores, contracargos resueltos.

Crear cuenta gratis

Plan Free · Sin tarjeta de crédito · Listo en minutos

¿Programas con un agente de IA? Pega un prompt
  • FiveM
  • RedM
  • Lua
  • ESX
  • QBCore
  • Tebex
  • Discord
Lo que obtienes

Hecho para tu forma de vender.

Claves desde Tebex

Cada pago emite una clave y la envía por email.

Contracargos resueltos

Los reembolsos revocan, las disputas suspenden, las ganadas restauran.

Servidores por clave

1, 2 o 5 servidores por licencia.

TOO_MANY_MACHINES

SDK de Lua y plantilla

Lee una convar, vuelve a validar cada 6 horas.

sunlicense.lua

Soporte en Discord

Roles de comprador y reinicio de huecos de servidor.

/claim

Sentinel detecta claves compartidas

Demasiados sitios, o usada tras un reembolso.

Todos los planes
Cómo funciona

Listo antes de tu próxima versión.

  1. 1Crear una cuenta gratis
  2. 2Conecta tus paquetes de Tebex
  3. 3Añade 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)
Preguntas frecuentes

Preguntas y respuestas.

¿Cómo evito que se filtren mis scripts de FiveM?

Da a cada comprador su propia clave y valídala cuando arranque el recurso. Si se filtra una copia, la clave con la que funciona es la del que la filtró: revoca esa licencia y la copia se detiene en su próxima validación (la plantilla vuelve a validar cada 6 horas), mientras los servidores que pagan siguen funcionando. Súbelo también mediante el asset escrow de Tebex, para que los compradores no puedan leer ni editar la validación.

¿Funciona con Tebex?

Sí. Asigna los ID de paquete de Tebex a una política y añade un webhook: cada pago completado emite una licencia, los reembolsos y las disputas perdidas la revocan, y las disputas abiertas la suspenden. Los compradores reciben la clave por email o en tu página de canje con su ID de transacción tbx- y su email.

¿Funciona con ESX, QBCore y RedM?

Sí. La validación se ejecuta en un script de servidor con el propio PerformHttpRequest de FiveM, así que no depende de ningún framework. Para RedM, pon game en 'rdr3' en fxmanifest.lua.

¿Qué pasa si no se puede contactar con SunLicense?

La plantilla mantiene el recurso en marcha y lo reintenta cada 10 minutos; un ajuste hace que espere una respuesta. Solo un rechazo real, como una clave revocada o desconocida, detiene el recurso. Lua no tiene Ed25519 integrado, así que los recursos de FiveM no usan archivos de licencia sin conexión.

Protege tu próxima versión.

  • Plan Free
  • Sin tarjeta de crédito
  • Cancela cuando quieras