SunLicenseログイン
Rust プラグイン開発者向け · Oxide と Carbon

有料 Rust プラグインを、支払い済みのサーバーでだけ読み込む。

Oxide または Carbon からウェブリクエスト 1 回。キーあたり 1 サーバー。

  • C#
  • Oxide / uMod
  • Carbon
  • Tebex
  • Stripe
  • Gumroad
  • Discord
できること

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

今までどおり .cs 1 つ

Oxide 組み込みの webrequest。同梱する DLL は不要。

webrequest.Enqueue

1 キーに 1 サーバー

IP の上限は 1、3、または 10。

TOO_MANY_IPS

失効、一時停止、ブロック

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

ストアからキーを発行

Tebex、Stripe、Gumroad、Payhip など。

サポートは Discord で

購入者がキーを引き換え、スタッフには共有アラートが届きます。

Sentinel が移動を検知

サーバー間を渡り歩くキーを検出。

すべてのプラン
仕組み

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

  1. 1無料アカウントを作成
  2. 2ストアを接続
  3. 3読み込み時に webrequest 1 回
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);
    }
}
よくある質問

よくある質問。

Rust プラグインの共有を防ぐには?

Rust プラグインは .cs ファイルのまま配布されるため、本気の人なら検証を取り除けますし、どのライセンス方式でもそれは変わりません。購入者ごとのキーに IP の上限を組み合わせれば、共有を見える化して止められます:キーは購入者のサーバーで動き、同じキーを別のサーバーで使うと TOO_MANY_IPS で拒否され、漏えいしたキーは失効させればすべてのコピーが次の検証で止まります。

Oxide(uMod)と Carbon で使えますか?

はい。検証は SunLicense の REST API への HTTPS リクエスト 1 回で、Oxide のプラグインが標準で持つ webrequest ヘルパーで行います。Carbon は Oxide のプラグインを実行できます。購入者のサーバーには何も追加でインストールしません。.NET SDK もありますが、1 ファイルのプラグインなら REST の呼び出しのほうが簡単です。

Rust プラグインを購入 1 回につきサーバー 1 台に制限するには?

ポリシーの IP 上限を 1 にします。最初にキーを検証したサーバーが枠を使い、それ以外のアドレスは TOO_MANY_IPS で拒否されます。購入者が新しいマシンに移ると、古いアドレスは 30 日間使われなければ自動で解放され、購入者がカスタマーポータル(Lite と Standard)で解放することも、あなたがライセンスページで解放することもできます。

ワイプの日に SunLicense が停止していたら?

判断するのはあなたのプラグインです。リクエストの失敗は拒否ではないので、サンプルでは応答がないときはプラグインを読み込んだままにし、SunLicense がキーを無効と返したときだけアンロードします。ライセンス検証はダッシュボードとは別の専用サービスで動いています。

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

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