SunLicenseIniciar sesión
Para desarrolladores de addons de Garry's Mod

Tu addon de Garry's Mod, en los servidores que pagaron.

Cada comprador recibe una clave, validada en el servidor con el HTTP propio de GMod.

Crear cuenta gratis

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

¿Programas con un agente de IA? Pega un prompt
  • Lua
  • Garry's Mod
  • Tebex
  • Stripe
  • Gumroad
  • Payhip
  • Discord
Lo que obtienes

Hecho para tu forma de vender.

Un archivo Lua

Asíncrona, del lado del servidor, con el HTTP propio de GMod.

sunlicense.lua

Servidores por licencia

Un servidor o cinco, por ID o IP.

TOO_MANY_IPS

Revoca o bloquea

Una clave, una IP de servidor o un rango.

Vende donde quieras

Tebex, Stripe, Gumroad, Payhip y más.

Roles de comprador en Discord

Reclama con el email de compra; revocar lo quita.

Sentinel vigila el uso compartido

Marca claves que saltan de servidor en servidor.

Todos los planes
Cómo funciona

Listo antes de tu próxima versión.

  1. 1Crear una cuenta gratis
  2. 2Conecta tu tienda
  3. 3Valídala al cargar el mapa
lua/autorun/server/myaddon_license.lua
local SunLicense = include("myaddon/sunlicense.lua")
local licenseVar = CreateConVar("myaddon_license", "", FCVAR_ARCHIVE + FCVAR_PROTECTED)

hook.Add("InitPostEntity", "MyAddon.License", function()
    local client = SunLicense.new({ baseUrl = "https://api.sunlicense.com", token = MYADDON.ApiKey })
    client:validate(licenseVar:GetString(), { host = MYADDON.ServerId() }, function(ok, status, body)
        if ok then
            MsgC(Color(120, 210, 140), "[MyAddon] License valid, loading\n")
            MYADDON.Start()
        elseif status == 400 then
            MsgC(Color(255, 128, 128), "[MyAddon] License denied: ", body:match('"code":"([%w_]+)"') or "?", "\n")
        else
            MYADDON.Start() -- no answer is not a no: keep running
        end
    end)
end)
Preguntas frecuentes

Preguntas y respuestas.

¿Cómo protejo un addon de pago de Garry's Mod contra filtraciones?

Los addons se distribuyen como Lua, así que cualquiera decidido puede leer y editar una validación, y ningún servicio de licencias cambia eso. Una clave por comprador te da control: ves qué servidores usan cada clave, una clave compartida o filtrada se puede revocar o bloquear sus servidores, y los servidores que pagan nunca se ven afectados. Ofuscar la validación hace que quitarla cueste más.

¿El SDK de Lua funciona en Garry's Mod?

Sí. sunlicense.lua detecta Garry's Mod y envía la validación con la función HTTP de GMod, de forma asíncrona, para que el servidor no se congele. Ejecútalo solo en el servidor: la clave de API que usa solo puede validar licencias, pero no tiene nada que hacer en archivos que se envían a los jugadores.

¿Qué tiendas emiten claves automáticamente?

Tebex, Stripe, Gumroad, Payhip, Lemon Squeezy, Ko-fi, itch.io, WooCommerce y algunas más se conectan directamente, y la mayoría revoca la clave al reembolsar. Para cualquier otro sitio, emite claves desde el panel, la CLI sunlicense o la API.

¿Qué hace un comprador cuando cambia de hosting?

Reinician ellos mismos el hueco de máquina del servidor antiguo con My licenses en tu Discord, o en el portal de clientes (Lite y Standard), una vez al día por defecto. Con un límite de IP, una dirección sin usar durante 30 días libera su hueco sola, y tú puedes liberar uno cuando quieras en la página de la licencia.

Protege tu próxima versión.

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