SunLicenseIniciar sesión
Para desarrolladores de plugins de Rust · Oxide y Carbon

Plugins de pago de Rust, cargados solo en servidores que pagan.

Una petición web desde Oxide o Carbon. Un servidor por clave.

Crear cuenta gratis

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

¿Programas con un agente de IA? Pega un prompt
  • C#
  • Oxide / uMod
  • Carbon
  • Tebex
  • Stripe
  • Gumroad
  • Discord
Lo que obtienes

Hecho para tu forma de vender.

Sigue siendo un solo .cs

El webrequest integrado de Oxide, sin DLL que distribuir.

webrequest.Enqueue

Una clave, un servidor

Un límite de IP de 1, 3 o 10.

TOO_MANY_IPS

Revoca, suspende, bloquea

Una clave, una IP de servidor o un rango.

Claves desde tu tienda

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

Discord hace el soporte

Los compradores reclaman claves; el equipo recibe alertas de uso compartido.

Sentinel ve cómo se mueve

Marca claves que saltan entre servidores.

Todos los planes
Cómo funciona

Listo antes de tu próxima versión.

  1. 1Crear una cuenta gratis
  2. 2Conecta tu tienda
  3. 3Un webrequest al cargar
oxide/plugins/MyPlugin.cs
[Info("MyPlugin", "You", "1.2.0")]
public class MyPlugin : RustPlugin
{
    const string ApiKey = "slk_...";   // can only validate licenses

    void OnServerInitialized()
    {
        var body = JsonConvert.SerializeObject(new { licenseKey = (string)Config["LicenseKey"] });
        var headers = new Dictionary<string, string> { ["Authorization"] = "Bearer " + ApiKey, ["Content-Type"] = "application/json" };
        webrequest.Enqueue("https://api.sunlicense.com/api/v1/validate", body, (code, response) =>
        {
            if (code != 200) return;   // no answer is not a no: keep running
            var result = JObject.Parse(response);
            if ((bool)result["valid"]) Puts("License valid, loading");
            else { PrintError($"License denied: {result["code"]}"); Interface.Oxide.UnloadPlugin(Name); }
        }, this, RequestMethod.POST, headers);
    }
}
Preguntas frecuentes

Preguntas y respuestas.

¿Cómo evito que se comparta mi plugin de Rust?

Un plugin de Rust se distribuye como un archivo .cs, así que cualquiera decidido puede quitar una validación, y ningún sistema de licencias cambia eso. Una clave por comprador con un límite de IP hace visible y detenible el uso compartido: la clave funciona en el servidor del comprador, la misma clave en otro servidor se rechaza con TOO_MANY_IPS, y una clave filtrada se puede revocar para que todas las copias se detengan en su próxima validación.

¿Funciona con Oxide (uMod) y Carbon?

Sí. La validación es una petición HTTPS a la REST API de SunLicense, hecha con el helper webrequest que ya tienen los plugins de Oxide, y Carbon ejecuta plugins de Oxide. No se instala nada extra en el servidor del comprador. También hay un SDK de .NET, pero para un plugin de un solo archivo la llamada REST es más sencilla.

¿Cómo limito un plugin de Rust a un servidor por compra?

Dale a la política un límite de IP de 1. El primer servidor que valida la clave ocupa el hueco, y cualquier otra dirección se rechaza con TOO_MANY_IPS. Cuando un comprador se muda a otra máquina, la dirección antigua se libera sola tras 30 días sin uso, puede liberarla en el portal de clientes (Lite y Standard), o la liberas tú en la página de la licencia.

¿Qué pasa el día del wipe si SunLicense está caído?

Tu plugin decide. Una petición fallida no es un rechazo, así que el ejemplo mantiene el plugin cargado cuando no hay respuesta y lo descarga solo cuando SunLicense dice que la clave no es válida. Las validaciones de licencia se ejecutan en su propio servicio, separado del panel.

Protege tu próxima versión.

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