SunLicenseZaloguj się
Dla twórców pluginów Rust · Oxide i Carbon

Płatne pluginy Rust, ładowane tylko na płacących serwerach.

Jedno żądanie sieciowe z Oxide lub Carbon. Jeden serwer na klucz.

Utwórz darmowe konto

Plan Free · Bez karty kredytowej · Gotowe w kilka minut

Kodujesz z agentem AI? Wklej jeden prompt
  • C#
  • Oxide / uMod
  • Carbon
  • Tebex
  • Stripe
  • Gumroad
  • Discord
Co dostajesz

Stworzone pod Twój sposób sprzedaży.

Wciąż jeden plik .cs

Wbudowany w Oxide webrequest, bez DLL do dołączania.

webrequest.Enqueue

Jeden klucz, jeden serwer

Limit IP: 1, 3 lub 10.

TOO_MANY_IPS

Unieważnij, zawieś, zablokuj

Klucz, IP serwera lub zakres.

Klucze z Twojego sklepu

Tebex, Stripe, Gumroad, Payhip i inne.

Wsparcie przez Discord

Kupujący aktywują klucze; zespół dostaje alerty o udostępnianiu.

Sentinel widzi, jak krąży

Oznacza klucze skaczące między serwerami.

Każdy plan
Jak to działa

Gotowe przed kolejnym wydaniem.

  1. 1Załóż darmowe konto
  2. 2Połącz swój sklep
  3. 3Jeden webrequest przy ładowaniu
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);
    }
}
FAQ

Pytania i odpowiedzi.

Jak zapobiec udostępnianiu mojego pluginu Rust?

Plugin Rust trafia do kupujących jako plik .cs, więc każdy zdeterminowany może wyciąć weryfikację, i żadne licencjonowanie tego nie zmieni. Klucz na kupującego z limitem IP sprawia, że udostępnianie jest widoczne i da się je zatrzymać: klucz działa na serwerze kupującego, ten sam klucz na innym serwerze jest odrzucany z TOO_MANY_IPS, a wykradziony klucz można unieważnić, by każda kopia zatrzymała się przy następnej weryfikacji.

Czy to działa z Oxide (uMod) i Carbon?

Tak. Weryfikacja to jedno żądanie HTTPS do REST API SunLicense, wykonane helperem webrequest, który pluginy Oxide już mają, a Carbon uruchamia pluginy Oxide. Na serwerze kupującego nic dodatkowego się nie instaluje. Jest też SDK .NET, ale dla pluginu z jednego pliku wywołanie REST jest prostsze.

Jak ograniczyć plugin Rust do jednego serwera na zakup?

Ustaw w zasadzie limit IP równy 1. Pierwszy serwer, który sprawdzi klucz, zajmuje miejsce, a każdy inny adres jest odrzucany z TOO_MANY_IPS. Gdy kupujący przenosi się na nową maszynę, stary adres zwalnia się sam po 30 dniach nieużywania, kupujący może go zwolnić w portalu klienta (Lite i Standard) albo Ty zwalniasz go na stronie licencji.

Co się stanie w dniu wipe’u, jeśli SunLicense nie działa?

Decyduje Twój plugin. Nieudane żądanie to nie odmowa, więc w przykładzie plugin zostaje załadowany, gdy nie ma odpowiedzi, a wyładowuje się tylko wtedy, gdy SunLicense powie, że klucz jest nieważny. Weryfikacje licencji działają we własnej usłudze, oddzielonej od panelu.

Ochroń swoje kolejne wydanie.

  • Plan Free
  • Bez karty kredytowej
  • Anulujesz w dowolnej chwili