あなたの 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無料アカウントを作成
- 2ストアを接続
- 3マップの読み込み時に検証
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 日間使われていないアドレスは自動で枠を解放し、あなたもライセンスページからいつでも解放できます。
SunLicense