Skip to content

Защищённые моды ​

Моды, которые вы загружаете в сборку Rift, по умолчанию защищены:

  • их получают только игроки с доступом к сборке;
  • у игрока мод работает только при запуске из лаунчера Rift под его аккаунтом;
  • если игрок теряет доступ, мод перестаёт у него работать.

Поддерживаются NeoForge, Forge и Fabric.

Что нужно сделать ​

1. Подключить Rift Guard ​

Rift Guard — маленькая библиотека без зависимостей. Добавьте её в мод и вызовите одну проверку при создании мода:

java
import plus.rift.guard.RiftGuard;

@Mod("mymod")
public class MyMod {
    public MyMod(IEventBus bus) {
        RiftGuard.require(MyMod.class, "My Mod");
        // …остальная инициализация
    }
}
  • require останавливает запуск с понятным игроку сообщением, если мод запущен не так.
  • RiftGuard.isLicensed(MyMod.class) возвращает true или false, ничего не останавливая. Этот вариант удобен для дополнительных проверок в других местах мода.

Проверка выполняется один раз и кэшируется, на производительность игры не влияет.

Библиотеку выдаёт команда Rift вместе с доступом к загрузке сборок. Подключайте её через jar-in-jar (jarJar в NeoGradle), не вшивая классы в свой jar: так несколько защищённых модов в одной сборке не конфликтуют.

2. Загрузить мод в сборку ​

Загрузите jar в редакторе версии сборки. Мод будет защищён автоматически.

3. Привяжите контент к лицензии ​

Для одиночных сюжетных сборок, где логику некуда вынести на сервер, привяжите сам контент — тексты, уровни, данные — к лицензии копии. Мод хранит их зашифрованными и расшифровывает на лету:

java
// зашифрованный ресурс в моде
byte[] sealed = readResource("story/chapter1.bin");
byte[] plain  = RiftGuard.unlock(MyMod.class, sealed);
if (plain == null) return; // не лицензировано — контента нет
// используйте plain: текст главы, уровень, конфиг

Смысл: если кто-то обойдёт запуск, без валидной лицензии unlock вернёт null — контента нет. Убрать привязку, не сломав мод, нельзя. Что именно шифровать и как это подготовить — подключает команда Rift.

4. Что можно — держите на сервере ​

Всё, что попадает на компьютер игрока, в итоге можно изучить. Надёжнее всего защищено то, чего у игрока нет:

  • рецепты и формулы расчётов;
  • генерация мира, таблицы добычи;
  • проверки и правила.

Для сетевых сборок считайте это на сервере, а клиенту отправляйте только результат. Для одиночных — используйте привязку контента (пункт 3).

Частые вопросы ​

Влияет ли защита на FPS? Нет. Всё проверяется один раз при запуске.

Работает ли мод без интернета? Да, в одиночной игре — 7 дней после последнего запуска с интернетом.

Что если мой мод всё-таки утечёт? Напишите команде Rift: мы найдём, у кого из игроков он был, и отзовём ему доступ.