SunLicenseZaloguj się
Dla twórców addonów Garry's Mod

Twój addon Garry's Mod, na serwerach, które zapłaciły.

Każdy kupujący dostaje klucz sprawdzany po stronie serwera przez własne HTTP GMod.

Utwórz darmowe konto

Plan Free · Bez karty kredytowej · Gotowe w kilka minut

Kodujesz z agentem AI? Wklej jeden prompt
  • Lua
  • Garry's Mod
  • Tebex
  • Stripe
  • Gumroad
  • Payhip
  • Discord
Co dostajesz

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

Jeden plik Lua

Asynchronicznie, po stronie serwera, przez własne HTTP GMod.

sunlicense.lua

Serwery na licencję

Jeden serwer lub pięć, po ID lub IP.

TOO_MANY_IPS

Unieważnij lub zablokuj

Klucz, IP serwera lub zakres.

Sprzedawaj, gdzie chcesz

Tebex, Stripe, Gumroad, Payhip i inne.

Role kupujących na Discord

Aktywacja e-mailem z zakupu; unieważnienie odbiera rolę.

Sentinel pilnuje udostępniania

Oznacza klucze skaczące z serwera na serwer.

Każdy plan
Jak to działa

Gotowe przed kolejnym wydaniem.

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

Pytania i odpowiedzi.

Jak chronić płatny addon Garry's Mod przed wyciekiem?

Addony trafiają do kupujących jako Lua, więc każdy zdeterminowany może odczytać i zmienić weryfikację, i żadna usługa licencji tego nie zmieni. Klucz na kupującego daje Ci za to kontrolę: widzisz, które serwery używają każdego klucza, udostępniony lub wykradziony klucz można unieważnić albo zablokować jego serwery, a płacące serwery nigdy nie są dotknięte. Zaciemnienie weryfikacji utrudnia jej usunięcie.

Czy SDK Lua działa w Garry's Mod?

Tak. sunlicense.lua wykrywa Garry's Mod i wysyła weryfikację funkcją HTTP GMod asynchronicznie, żeby serwer się nie zawiesił. Uruchamiaj go tylko po stronie serwera: klucz API, którego używa, może jedynie weryfikować licencje, ale nie ma czego szukać w plikach wysyłanych do graczy.

Które sklepy wydają klucze automatycznie?

Tebex, Stripe, Gumroad, Payhip, Lemon Squeezy, Ko-fi, itch.io, WooCommerce i kilka innych łączą się bezpośrednio, a większość z nich unieważnia klucz przy zwrocie. W pozostałych przypadkach wydawaj klucze z panelu, przez CLI sunlicense lub API.

Co robi kupujący, gdy zmienia hosting?

Sami resetują miejsce urządzenia starego serwera przez My licenses na Twoim Discord albo w portalu klienta (Lite i Standard), domyślnie raz dziennie. Przy limicie IP adres nieużywany przez 30 dni sam zwalnia swoje miejsce, a Ty możesz zwolnić dowolne w każdej chwili na stronie licencji.

Ochroń swoje kolejne wydanie.

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