SunLicenseВойти
Для разработчиков скриптов FiveM и RedM

Продавайте скрипты FiveM. Держите их на платящих серверах.

Ключ на каждую продажу в Tebex, лимит серверов, чарджбэки под контролем.

Создать бесплатный аккаунт

Тариф Free · Без банковской карты · Готово за минуты

Пишете код с ИИ-агентом? Вставьте один промпт
  • FiveM
  • RedM
  • Lua
  • ESX
  • QBCore
  • Tebex
  • Discord
Что вы получаете

Создано под то, как вы продаёте.

Ключи из Tebex

Каждый платёж выдаёт ключ и отправляет его по email.

Чарджбэки под контролем

Возвраты отзывают, споры приостанавливают, выигранные споры восстанавливают.

Серверы на ключ

1, 2 или 5 серверов на лицензию.

TOO_MANY_MACHINES

Lua SDK и шаблон

Читает convar, перепроверяет каждые 6 часов.

sunlicense.lua

Поддержка в Discord

Роли покупателей и сброс слотов серверов.

/claim

Sentinel замечает общие ключи

Слишком много мест или используется после возврата.

Любой тариф
Как работает

Готово до следующего релиза.

  1. 1Создать бесплатный аккаунт
  2. 2Подключите свои пакеты Tebex
  3. 3Добавьте sunlicense.lua
server/main.lua
-- server.cfg: set my_garage_license "AX8P-XXXX-XXXX-XXXX"
local resource = GetCurrentResourceName()
local SunLicense = load(LoadResourceFile(resource, 'lib/sunlicense.lua'))()
local client = SunLicense.new({ baseUrl = 'https://api.sunlicense.com', token = SunLicenseSettings.apiKey })

client:validate(GetConvar('my_garage_license', ''), { host = serverId() }, function(ok, status, body)
    if ok then
        print(('^2[%s] License valid, starting.^7'):format(resource))
        startFeatures()
    elseif status == 400 then
        print(('^1[%s] License denied: %s^7'):format(resource, body:match('"code":"([%w_]+)"') or '?'))
        StopResource(resource)
    else
        startFeatures() -- no answer is not a no: keep running
    end
end)
Вопросы и ответы

Вопросы и ответы.

Как защитить мои скрипты FiveM от утечек?

Дайте каждому покупателю свой ключ и проверяйте его при запуске ресурса. Если копия утечёт, она будет работать на ключе того, кто её слил: отзовите эту лицензию, и копия остановится при следующей проверке (шаблон перепроверяет каждые 6 часов), а платящие серверы продолжат работать. Также загружайте через asset escrow Tebex, чтобы покупатели не могли прочитать или изменить проверку.

Это работает с Tebex?

Да. Сопоставьте ID пакетов Tebex с политикой и добавьте вебхук: каждый завершённый платёж выдаёт лицензию, возвраты и проигранные споры её отзывают, а открытые споры приостанавливают. Покупатели получают ключ по email или на вашей странице активации по своему ID транзакции tbx- и email.

Это работает с ESX, QBCore и RedM?

Да. Проверка выполняется в серверном скрипте через собственный PerformHttpRequest FiveM, поэтому не зависит от фреймворка. Для RedM укажите game как 'rdr3' в fxmanifest.lua.

Что будет, если SunLicense недоступен?

Шаблон оставляет ресурс работать и повторяет попытку каждые 10 минут; одна настройка заставляет его вместо этого ждать ответа. Ресурс останавливает только настоящий отказ, например отозванный или неизвестный ключ. В Lua нет встроенного Ed25519, поэтому ресурсы FiveM не используют офлайн-файлы лицензий.

Защитите следующий релиз.

  • Тариф Free
  • Без банковской карты
  • Отмена в любой момент