Вы написали мод. Дальше начинается то, чего никто не любит: писать инструкцию «скачайте BepInEx, распакуйте в папку игры, положите .dll в BepInEx/plugins», отвечать в комментариях «а куда это класть?» и разбирать чужие сломанные установки.
ModKit убирает этот шаг целиком.
Вы открываете окно, выбираете игру из списка своего Steam, перетаскиваете свой .dll мышкой, жмёте одну кнопку — и получаете ОДИН .exe. Его вы и выкладываете.
Игрок скачивает этот файл и запускает. Всё.
ЧТО ДЕЛАЕТ ЭТОТ .EXE У ИГРОКА
— Находит игру сам: реестр Steam (три разных ключа), потом libraryfolders.vdf, потом appmanifest_.acf, потом по названию папки. Не нашёл — показывает список установленных игр Steam с номерами, игрок выбирает номером.
— Определяет разрядность игры по PE-заголовку её .exe, а не гадает по названию папки.
— Ставит BepInEx: последний стабильный релиз с официального GitHub, с проверкой целостности и починкой битой установки. Понимает обе схемы имён — и старую BepInEx_x64_, и новую BepInEx_win_x64_
— Ставит ваш мод. Сколько угодно .dll, плюс данные, локализация, ассеты — всё вшито в тот же единственный файл.
— НЕ ЛОМАЕТ ЧУЖИЕ МОДЫ. Перед установкой «начисто» папка plugins переносится в plugins_backup с датой, а не удаляется. Вернуть — пункт меню. Ни один файл игрока не пропадает безвозвратно. Большинство самодельных установщиков заваливают именно это.
— Говорит человеческим языком: «закройте игру» вместо IOException, «запустите от имени администратора» вместо UnauthorizedAccessException.
— Умеет тихий режим и коды возврата, если у вас свой инсталлятор или .bat.
— Два языка: русский и английский, переключается в конструкторе.
КАК ЭТО УСТРОЕНО
К концу загрузчика дописывается zip с вашими настройками и файлами мода, следом длина и метка. При запуске программа читает сама себя с конца, находит метку и распаковывает поставку. Поэтому получается один самостоятельный файл, а не папка с кучей всего.
ЧТО В АРХИВЕ
— Конструктор-установщика.exe — окно, с которым работаете вы — ModKitLoader.exe — то, что вшивается и достаётся игроку — ЧИТАЙ-МЕНЯ.txt — подробная справка, частые вопросы, границы
Устанавливать ничего не нужно: .NET Framework уже есть в Windows 10 и 11.
ЧЕСТНО О ГРАНИЦАХ
Windows: пути, реестр и Doorstop оттуда. Unity и BepInEx: для других движков не подходит. Игры не из Steam: название вписывается руками, папку игрок укажет сам. BepInEx 6 и IL2CPP: работает, но ссылку на архив надо задать в настройках.
Антивирус может насторожиться на готовый .exe: программа лезет в чужую папку и качает файлы из интернета. Для установщика модов это нормальное поведение, но при широкой раздаче имеет смысл купить подпись кода.
ЛИЦЕНЗИЯ
Используйте в любом количестве своих модов, в том числе платных. Раздавайте получившиеся .exe игрокам без ограничений. Перепродавать сам конструктор как отдельный товар нельзя.
BepInEx — сторонний открытый проект (LGPL-2.1), скачивается с официального GitHub и в поставку не входит. С ЧЕГО НАЧАТЬ
1. Распакуйте архив в любую папку. Держите оба .exe рядом друг с другом. 2. Запустите Конструктор-установщика.exe 3. Шаг 1 — выберите игру из списка вашего Steam. AppID подставится сам. 4. Шаг 2 — перетащите свой .dll прямо в окно мышкой. 5. Шаг 3 — впишите название мода. 6. Шаг 4 — укажите, куда сохранить. По умолчанию рабочий стол. 7. Нажмите большую кнопку.
Готовый .exe и есть то, что вы отдаёте игрокам. Больше ничего прикладывать не нужно: ваш мод и привязка к игре уже внутри него.
Подробности, частые вопросы и границы применимости — в файле ЧИТАЙ-МЕНЯ.txt внутри архива.
Если что-то не работает как ожидалось, напишите мне через Digiseller — отвечу и поправлю.