[Forge] Mods.toml. Настраиваем новый Forge мод

Итак. Запустилось, работает? Отлично. Идём дальше. Тут мы разберём как настроить свой мод, его версию, описание, имя, постер и т.д. Настройка мода, возможно, не самая интересная часть, но теперь вы сможете лично увидеть отклик игры на ваши действия, а это не может не радовать!

Mods.toml

Так как это файл в формате toml, то можете установить специальный плагин для работы с этими файлами. Но это не обязательно, ведь его откроет любой текстовик.

Итак. Mods.toml содержит основную информацию связанную с модом. Помимо него есть пара других файлов, но тут самое интересное. Для начала приберемся. Предлагаю убрать комментарии, так как их тут больше, чем самого кода:

Как мы могли заметить, есть обязательные поля с пометкой mandatory, и есть не обязательные optional.

Разбираем Mods.toml

modLoader=»javafml» #mandatory – отображает какой загрузчик модов мы используем. Это поле трогать не нужно.

loaderVersion=»[37,)» это промежуток совместимых версий загрузчика модов. Т.к. у нас Forge, то и указана его версия:

license=»All rights reserved» – отображает лицензию, под которой распространяется мод. Тут можно найти варианты. А для меня тут выбор очевиден, это будет MIT License.

Скрытая комментарием строка: #issueTrackerURL=»https://change.me.to.your.issue.tracker.example.invalid/» #optional является опциональной и должна представлять ссылку на ресурс, где с вами можно связаться по поводу ошибок/багов. У меня такого нет, так что просто удаляю.

Далее идёт обязательный блок [[mods]]. Его не трогаем, а вот после него идут уже строки с данными мода.

modId=»examplemod» – это id для мода, к которому и будет привязан этот файл. Выбирайте с умом, так как дальше MODID будет использоваться очень часто, и он должен быть уникальным.

version=»${file.jarVersion}» #mandatory – оставляем как есть. Эта конструкция означает, что версия будет взята из build.gradle. Так удобнее, ведь не нужно будет менять версию в двух местах.

displayName=»Example Mod» #mandatory – отображаемое имя мода (уже видели в игре).

#updateJSONURL=»https://change.me.example.invalid/updates.json» #optional – ещё одна опциональная строка со ссылкой на json файл для проверки на наличие новых версий вашего мода.

#displayURL=»https://change.me.to.your.mods.homepage.example.invalid/» #optional – ссылка домашней странички мода (или иного вашего ресурса).

Оба этих поля я пока убираю, они опциональны и мне сейчас не нужны.

logoFile=»examplemod.png» #optional – хранит имя файла, который будет логотипом мода в игре. Опционально, но рекомендую сделать. Картинку нужно закинуть прямо в папку resources.

credits=»Thanks for this example mod goes to Java» #optional – строка для упоминания всяких важностей, не обязательная.

authors=»Love, Cheese and small house plants» #optional – строка с авторами мода, не обязательная.

description=»’
This is a long form description of the mod. You can write whatever you want here
Have ещё текст…
»’
– а этот текст – описание. Как видите, можно использовать и многострочный вариант строки.

И завершают этот файл две зависимости: forge и сама игра.

Тут тоже есть свои modId требуемых модов, обязательные ли они, подходящие версии, сторона, где должен присутствовать мод (BOTH обе, CLIENT/SERVER соответственно) и порядок загрузки. Тут ничего не трогаем, оставляем как есть.

Редактируем поля в соответствии с личными пожеланиями, но не забываем, что [[dependencies.examplemod]] надо заменить на [[dependencies.ваш_modid]].

Результат мой таков:

Build.gradle

Тут лежит больше связанной со сборкой проекта информации и манифест. Манифест — это своего рода паспорт мода (приложения), который сообщает системе определённую информацию о нём. Большая часть файла нас и не интересует, там уже указаны необходимые плагины и параметры. Но нужно отредактировать некоторые из них.

Для начала ищем этот кусочек:

И меняем на что-то своё:

Кстати, перейдя по ссылке из комментариев можно узнать больше о правильном нейминге.

И теперь при помощи Ctrl + R ищем все examplemod и заменяем их на свой (у меня gsmod):

И последним открываем ExampleMod.java. Уже видите, что надо изменить?)

Отлично. Можно запускать.

Результат

Вообще всё работает, но что-то с версией непонятный прикол. Не совсем понял, что стряслось, т.к. в предыдущих версиях Forge этот же вариант отрабатывал нормально вроде. При этом былой фикс тоже больше не работает.

Но сейчас это не критично, возможно баг или изменили что-то немного сильнее, чем я заметил. Если найду причину, то исправлю обязательно и допишу тут.

Возможно в вашем билде проблем уже не будет 😊

Cписок всех уроков: Создание модов для Minecraft 1.15-1.17 [Forge/Fabric]
Исходный код проекта на Github

Оставьте комментарий

Прокрутить наверх