Plugins pagos de Rust, carregados só em servidores pagantes.
Uma requisição web do Oxide ou do Carbon. Um servidor por chave.
Plano Free · Sem cartão de crédito · Pronto em minutos
Programa com um agente de IA? Cole um prompt- C#
- Oxide / uMod
- Carbon
- Tebex
- Stripe
- Gumroad
- Discord
Feito para o seu jeito de vender.
Continua sendo um único .cs
O webrequest embutido do Oxide, sem DLL para distribuir.
webrequest.EnqueueUma chave, um servidor
Um limite de IP de 1, 3 ou 10.
TOO_MANY_IPSRevogue, suspenda, bloqueie
Uma chave, um IP de servidor ou uma faixa.
Chaves vindas da sua loja
Tebex, Stripe, Gumroad, Payhip e mais.
O Discord cuida do suporte
Compradores resgatam chaves; a equipe recebe alertas de compartilhamento.
O Sentinel vê a chave se movendo
Sinaliza chaves que pulam entre servidores.
Todos os planosNo ar antes da sua próxima versão.
- 1Criar uma conta grátis
- 2Conecte sua loja
- 3Um webrequest ao carregar
[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);
}
}Perguntas e respostas.
Como impeço que meu plugin de Rust seja compartilhado?
Um plugin de Rust é distribuído como um arquivo .cs, então qualquer pessoa determinada consegue tirar uma validação, e nenhum licenciamento muda isso. Uma chave por comprador com limite de IP torna o compartilhamento visível e possível de barrar: a chave funciona no servidor do comprador, a mesma chave em outro servidor é recusada com TOO_MANY_IPS, e uma chave vazada pode ser revogada para que toda cópia pare na próxima validação.
Funciona com Oxide (uMod) e Carbon?
Sim. A validação é uma requisição HTTPS para a REST API do SunLicense, feita com o helper webrequest que os plugins de Oxide já têm, e o Carbon roda plugins de Oxide. Nada extra é instalado no servidor do comprador. Também existe um SDK .NET, mas para um plugin de um arquivo só a chamada REST é mais simples.
Como limito um plugin de Rust a um servidor por compra?
Dê à política um limite de IP de 1. O primeiro servidor que valida a chave ocupa a vaga, e qualquer outro endereço é recusado com TOO_MANY_IPS. Quando um comprador muda para outra máquina, o endereço antigo se libera sozinho após 30 dias sem uso, ele pode liberá-lo no portal do cliente (Lite e Standard), ou você libera na página da licença.
O que acontece no dia do wipe se o SunLicense cair?
Seu plugin decide. Uma requisição que falhou não é uma recusa, então o exemplo mantém o plugin carregado quando não há resposta e só o descarrega quando o SunLicense diz que a chave não é válida. As validações de licença rodam em um serviço próprio, separado do painel.
Proteja sua próxima versão.
- Plano Free
- Sem cartão de crédito
- Cancele quando quiser
SunLicense