SunLicenseログイン
Garry's Mod アドオン開発者向け

あなたの Garry's Mod アドオンを、支払い済みのサーバーだけで。

購入者ごとにキーを発行し、GMod 自身の HTTP でサーバー側で検証します。

  • Lua
  • Garry's Mod
  • Tebex
  • Stripe
  • Gumroad
  • Payhip
  • Discord
できること

あなたの売り方に合わせて。

Lua ファイル 1 つ

非同期、サーバー側、GMod 自身の HTTP で。

sunlicense.lua

ライセンスあたりのサーバー数

1 台でも 5 台でも、ID または IP で。

TOO_MANY_IPS

失効またはブロック

キー、サーバーの IP、または範囲。

好きな場所で販売

Tebex、Stripe、Gumroad、Payhip など。

Discord の購入者ロール

購入時のメールアドレスで引き換え。失効でロールを外します。

Sentinel が共有を監視

サーバーからサーバーへ渡り歩くキーを検出。

すべてのプラン
仕組み

次のリリースまでに導入。

  1. 1無料アカウントを作成
  2. 2ストアを接続
  3. 3マップの読み込み時に検証
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)
よくある質問

よくある質問。

有料の Garry's Mod アドオンを漏えいから守るには?

アドオンは Lua のまま配布されるため、本気の人なら検証を読んで改変できますし、どのライセンスサービスでもそれは変わりません。購入者ごとのキーで得られるのは管理力です:各キーを使っているサーバーがわかり、共有・漏えいしたキーは失効させるかサーバーをブロックでき、支払い済みのサーバーには一切影響しません。検証を難読化すれば、取り除く手間も増えます。

Lua SDK は Garry's Mod で動きますか?

はい。sunlicense.lua は Garry's Mod を検出し、GMod の HTTP 関数で非同期に検証を送るので、サーバーが固まりません。サーバー側だけで実行してください。使用する API キーはライセンスの検証しかできませんが、プレイヤーに送られるファイルに入れるべきものではありません。

どのストアが自動でキーを発行しますか?

Tebex、Stripe、Gumroad、Payhip、Lemon Squeezy、Ko-fi、itch.io、WooCommerce などは直接接続でき、その多くは返金時にキーを失効させます。それ以外の場所では、ダッシュボード、sunlicense CLI、または API からキーを発行してください。

購入者がホストを移るときは?

購入者は Discord の My licenses、またはカスタマーポータル(Lite と Standard)から、旧サーバーのマシン枠を自分でリセットできます(既定では 1 日 1 回)。IP の上限を使う場合、30 日間使われていないアドレスは自動で枠を解放し、あなたもライセンスページからいつでも解放できます。

次のリリースを守りましょう。

  • Free プラン
  • クレジットカード不要
  • いつでも解約可能