Как делать моды для майнкрафт на java
![]()
Overview
This sample project demonstrates how to create a command mod in Forge MDK. By the end of this tutorial you’ll have a simple command mod that echoes user inputs.
Let’s get started!
Prerequisites
- Basic Java programming knowledge
- Java 1.8 JDK
- Minecraft Java Edition 1.12.2
- Forge and MDK 1.12.2
Setup Mod Project
Under MDK folder, run command gradlew setupDecompWorkspace to create a Forge mod project structure.
Setup Gradle build file
Edit build.gradle to change version , group and archivesBaseName
Modify mod information
Edit mcmod.info to change modid , name and description .
Note: The modid must be all lowercase.
Create the command class
The getUsage method returns to the key to be used in the language file.
Create the mod class
Create resource folder structure
Under src/main/resources folder, create following file structure, replace MODID with EchoCommandMod.MODID .
Update mod language file
Build the Mod
Run following command to build the mod
This will output a file in build/libs with the name [archivesBaseName]-[version].jar .
Test the Mod
Place the mod jar file in the Minecraft mods folder, e.g. %appdata%\.minecraft\mods , then lunch Minecraft, type in the echo command as /echo some message here .
Summary
I hope you enjoyed this tutorial. Feel free to ask any questions and leave your feedback. Source code and compiled mod jar file are available for download here.
Modding with Minecraft Fabric: start w/o Java knowledge
Making a mod in Java is challenging for a hobby programer in Python and JavaScript world. Starting a mod from scratch is even more challenging, and as I am just playing with minecraft mods, I chose to start with a existing mod, Draylar/identity.
Get Java Ready#
JDK, JRE#
JRE (Java Runtime Environment): essential for Java application to run
JDK (Java Development Kit): Includes JRE, with tools to compile Java source Code
Not Enough?#
As a (fresh) Minecraft player, I have already installed jre8 . And I also have openjdk8 installed with Android Studio. However thats not enough.
openjdk does not include JavaFX, which is required for HMCL. And jre8 does not include tools to compile. So let’s get official Java SE Development Kit 8 .(Most mods use this version.)
Setup Env and Config#
Build Fresh Mod!#
Clone mod repo and run (varies between OS):
This will download correct gradle wrapper version, Minecraft client & server jar, and other dependencies.
It may take some time to finish.
If network connection is poor, you can:
manually extract downloaded gradle release (e.g. gradle-6.5-bin.zip ) to $HOME\.gradle\wrapper\dists\gradle-6.5-bin\<hash>\ and touch gradle-6.5-bin.zip.ok
manually put minecraft-1.16.1-<server/client>.jar to $HOME\.gradle\caches\fabric-loom\
then restart building process
Get docs#
You will get confused with the code quickly if you just read fabric wiki. Where are docs for all these APIs?
Just go to fabric’s own maven repo, navigate to net/fabricmc/yarn/<build-folder> , download and extract javadoc.jar , and you will get docs for net.minecraft.blahblah
And net/fabricmc/sponge-mixin for mixins.
But docs are no very useful, you often need the source code.
Quick Tip: What Commands are Supported?#
to see all the tasks.
Generate Minecraft Source#
You will still get confused with mixin injections without Minecraft source: inject to what?
Generate Minecraft source by:
This will decompile Minecraft and download game assets. Open the project in VSCode, maybe wait a while for project to be imported. You can now right click class or method name and select «go to implementations» to see the source.
Debug the Mod#
Nobody would like to build the mod, drag the jar to mods directory, restart minecraft game, to see the effect. To debug right inside VSCode, generate launch.json :
Now Minecraft Client and Minecraft Server option is available in the debug panel!
Создание модификаций с помощью Forge/1.7+
Сначала подготовим среду для работы с кодом Minecraft.
Forge [ ]
Собственно, для создания модификаций нужен Forge. Скачать его можно здесь с пометкой Mdk или с пометкой Src (для версий 1.8/1.7). Теперь создайте любую папку там, где вам удобно (в примере это D:\MCModding ), в ней будет находиться Forge и модификация. В эту папку распакуйте содержимое архива с Forge. Вы увидите следующее:

С 15 января 2020 года Maven больше не поддерживает протокол HTTP и требует использовать HTTPS. А с 4 ноября 2022 года сайт Amazon S3 удалил файлы версии 1.7.10, что сделало невозможным их скачивание. Поэтому для создания модификаций под версию 1.7.10 необходимо внести несколько коррекций в файлы скачанного архива.
Сначала в файле gradle/wrapper/gradle-wrapper.properties нужно изменить значение параметра distributionUrl :
Затем в файле build.gradle нужно заменить содержимое тега buildscript<> следующим образом:
Проделанные шаги заменяют ссылки на их рабочие варианты.
Среда разработки [ ]
Теперь нам нужно установить Forge, который при установке также произведёт декомпиляцию и деобфускацию кода Minecraft, чтобы сразу можно было начать создание модификации. Для этого необходимо установить Java Development Kit (JDK), скачав его с официального сайта Oracle. Minecraft 1.7.10 работает на JDK версии 1.8.
Помните, что JDK включает в себя JRE, так что вы можете удалить отдельную JRE с компьютера.
При первой установке JDK откройте ⊞ Win + PauseBreak ->Дополнительные параметры->Переменные среды и проверьте содержимое. Там должны существовать две переменные (если их нет, то их нужно создать вручную):
- JAVA_HOME: « C:\Program Files\Java\jdk1.8.0_241 » (по умолчанию; у вас может быть другая версия jdk или путь установки)
- Path: « C:\Program Files\Java\jdk1.8.0_241\bin » (по умолчанию; у вас может быть другая версия jdk или путь установки)
После создания/обновления переменных сред необходимо перезагрузить компьютер, чтобы изменения вступили в силу.
Затем необходимо выполнить одну из следующих команд (замените eclipse на idea , если вы используете IntelliJ IDEA):
- gradlew.bat setupDecompWorkspace eclipse или
- gradlew.bat setupDevWorkspace eclipse
- gradlew.bat genEclipseRuns eclipse
Первая предпочтительней, так как в отличие от второй команды, подготавливает рабочее пространство с возможностью просмотра исходного кода Minecraft во время разработки. То есть вы всегда сможете посмотреть, как работает генерация мира, анимация движений, применение эффектов и т. д. Таким образом можно создавать модификации, не опираясь на руководства, которых может и не быть на конкретную цель.
Если вы являетесь пользователем операционной системы Linux, нужно прописать следующие строки в терминале:
- cd <путь>/<папка с Forge> и
- ./gradlew setupDecompWorkspace eclipse —refresh-dependencies
Чтобы выполнить команду, можно создать в папке .bat-файл с выбранной вами командой (но обычно он там уже есть) и запустить его. Также вместо всего этого можно запустить командную строку в этой папке (например, нажать ⇧ Shift + ПКМ по этой папке и выбрать «Открыть окно команд») и выполнить выбранную команду.
Выполнение команды займёт какое-то время, после чего должно появиться сообщение рода Build Successful.

Пример результата выполнения команды: [1]
gradlew.bat setupDecompWorkspace eclipse
Если же появляется какая-либо ошибка:
- Проверьте ещё раз ваши переменные среды, JAVA_HOME и Path. Их пути должны вести в существующие папки с установленным JDK.
- Введите команду set JAVA_HOME=»Тут нужно вставить адрес папки с JDK без кавычек»
- Включите VPN, так как в редких случаях ссылки, необходимые скрипту, могут быть недоступны.
- После любых изменений, связанными с переменными средами, перезагружайте компьютер.
Настройка Eclipse [ ]
Нужно настроить Eclipse для работы с Minecraft. Первым делом зайдите в него. Он предложит выбрать рабочую директорию (Workspace). Введите туда путь к папке «eclipse» в папке (Путь к папке должен содержать только английские буквы), куда вы распаковали содержимое Forge и поставьте галочку для того, чтоб окно больше не появлялось. В примере это «D:\MCModding\eclipse». Если всё прошло успешно, то слева в Eclipse вы увидите раскрывающееся меню Minecraft.

Интерфейс Eclipse после правильной установки.
Затем вы должны убедиться, что Eclipse использует правильную версию JDK для работы с исходниками. Откройте в меню сверху Window->Preferences->Java->Installed JREs. Перед вами откроется список установленных сред Java. Обычно там помечена галочкой встроенная в Eclipse версия JDK, которая слишком новая и не подходит для разработки. Чтобы исправить это, нажмите на версию, справа нажмите кнопку «Remove», а затем кнопку «Add». В открывшемся диалоге выберите «Standart VM» и укажите путь к той папке, куда у вас в системе установлена JDK 1.8 (вы этот путь уже находили при настройке переменных сред). После этого подтвердите добавление виртуальной машины и пометьте её галочкой, сохранив изменения.

Installed JREs после правильной настройки.
После всех действий остаётся настроить Compliance. По умолчанию значение Compliance равняется 1.6 и не будет препятствовать работе. Однако, если вы попробуете открыть код, использующий нововведения Compliance 1.7-1.8, то некоторые фрагменты кода будут подчёркнуты как ошибки, несмотря на то, что код там правильный. Чтобы исправить это, откройте в меню сверху Window->Preferences->Java->Compiler и выберите там Compliance 1.8. Ошибки, связанные с нераспознанными новыми возможностями языка Java, исчезнут.

Compliance после правильной настройки.
Для того, чтобы осуществлять сборку проекта с изменённым Compilance, отредактируйте в файле build.gradle содержимое тега minecraft<> следующим образом:
Здесь добавились две строчки, обеспечивающие поддержку новых возможностей Java.
Настройка IntelliJ IDEA [ ]
Если вместо Eclipse Вы решили использовать IntelliJ IDEA, то после того как вы установите ее, в стартовом окне в правом нижнем углу нажмите на кнопку «Configure», откройте вкладку «Project Defaults» и выберите пункт «Project Structure» или в главном меню нажмите комбинацию клавиш (Ctrl+Alt+Shift+S).

Стартовая страница IntelliJ IDEA
В открывшемся окне нажмите на красную надпись «No SDK», для контекстного меню и выберите пункт с вашей версией JDK. (Если же в меню нет вашей версии JDK нажмите «Add SDK» и укажите путь. В нашем случае это C:\Program Files\Java\jdk1.8.0_241 )

После этого можно воспользоваться двумя способами:
Первый способ: [ ]
После того, как Forge скомпилирован и установлен, необходимо запустить IDEA, и в появившемся окне нажать ‘Import Project’. После чего выбираем в папке «D:\MCModding» файл build.gradle. В появившемся окне Вам предложат выбрать способ компиляции (рекомендуется оставить значение Use default gradle wrapper.) В строчке ниже выберите Ваш JAVA_HOME. В пункте «Формат проекта» нужно обязательно выбрать «.ipr (file based)». В противном случае, придётся подключать все библиотеки и настраивать запуск самостоятельно. После всего этого нажмите OK. Ждите, пока сборка скомпилируется.
В случае, если ваша IntelliJ IDEA установлена правильно и она различает формат *.ipr, вы можете просто дважды нажать по файлу <НазваниеПроекта>.ipr в директории вашего MCP. IDEA все сделает за вас.
Второй способ: [ ]
После того, как вы распаковали файлы в «D:\MCModding», сразу запускайте IntelliJ IDEA. В появившемся окне нажать ‘Import Project’. После чего выбираем в папке «D:\MCModding» файл build.gradle.
Если IDEA указывает на старую версию Gradle, нужно обновить ее на более новую. Для этого запустите консоль с директорией к папке с Forge (щелкните ⇧ Shift + ПКМ по папке с Forge > Открыть консоль команд) и выполните следующую команду:
- gradlew.bat wrapper —gradle-version <Нужная версия>
Список всех версий можно посмотреть на официальном сайте.
Потребуется подождать пару минут, пока среда разработки полностью все выполнит и импортирует. После завершения процесса откройте меню «View» в верхней части экрана и выберите пункты «Tools Windows > Gradle». У вас откроется окно с Gradle задачами. Переходим в раздел Tasks > forgegradle.

Выполните task setupDecompWorkspace . После его выполнения запустите genIntellijRuns
Готово. Мы проделали все то же самое, что и в первом способе, только без использования консоли, а это может быть большим плюсом для новичков.
Запуск [ ]
После выполнения выше перечисленных действий, в верхней части экрана перейдите в раздел «Run» и выберите пункт «Run configurations». По очереди выберите «Minecraft Client» и «Minecraft Server» и уже в правой части окна, в раскрывающемся списке «Use classpath of module» выберите тот пункт, который заканчивается на _main. Теперь вы можете запустить клиент или сервер и удостовериться, что все работает.

Поздравляем! Вы успешно настроили среду для того, чтобы начать писать модификации при помощи нее.
Установка программ#
Minecraft написан на языке Java. Программы на этом языке могут выполняться только если у вас установлена виртуальная машина Java.
Java Development Kit#
Для запуска Minecraft необходима лишь среда выполнения Java (JRE).
Но для разработки собственных модов нам потребуется писать программный код и пользоваться разными инструментами. Это не входит в стандартный Java пакет, поэтому нам нужно установить JDK (Набор инструментов разработчика Java).
Minecraft 1.7.10 работает только с Java 8 (1.8). Более новые выпуски Java данной версией игры не поддерживаются.
Скачайте последнюю версию Oracle JDK и следуйте инструкциям по установке. Ничего в настройках установки менять не надо.
- С апреля 2019 г. для скачивания файлов нужна регистрация на сайте. Это бесплатно и подтверждать ничего, кроме E-mail не потребуется.
- С марта 2022 г. скачивание файлов недоступно для пользователей из РФ. Потребуется использовать прокси/VPN. При регистрации следует указывать любую другую страну и использовать иностранный почтовый сервис (напр. GMail, Outlook).
В качестве альтернативы можно использовать JDK от другого производителя, например BellSoft. Здесь не придётся регистрироваться и искать обходные пути. Скачать Liberica JDK
Forge для пользователей#
Чтобы люди смогли играть с вашим модом, на их Minecraft должен быть установлен загрузчик модов MinecraftForge.

Запустите скачанный файл. Выберите пункт «Install client», укажите путь к Minecraft, если он не указан и нажмите «OK».

Forge для разработки#
Forge использует систему сборки проектов Gradle. Задачей систем сборки является автоматизация процессов, чтобы избавить вас от необходимости вводить множество консольных команд вручную. Проще говоря, Gradle делает за вас всю «грязную работу». В случае Minecraft разработки это: компиляция, тестирование, обфускация кода и упаковка всего в JAR-файл.
Скачивание#
Скачайте набор инструментов для разработки модификаций (SRC, для новых версий MDK) с официального сайта Forge:

Создайте в любом удобном для вас месте папку и распакуйте туда скачанный архив. Вы увидите много файлов. Не все из них вам нужны. Чтобы не захламлять рабочее пространство, удалите все файлы, кроме:
- build.gradle – Главный файл конфигурации проекта. Описывает процесс сборки проекта.
- gradlew и gradlew.bat – Скрипты запуска Gradle Wrapper.
- Папка gradle – Здесь располагается Gradle Wrapper.
Предварительная настройка#
В ноябре 2022 г. корпорация Microsoft удалила файлы игры с сервиса Amazon S3 из-за чего старые официальные версии ForgeGradle перестали работать выдавая ошибку: Unexpected reponse 403 from http://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/1.7.10.json
Для разработки будет использоваться неофициальная версия ForgeGradle, где эта проблема была исправлена (файлы игры теперь скачиваются с серверов Microsoft).
Команда MinecraftForge давно прекратила поддержку версии Minecraft 1.7.10. Нам потребуется внести несколько небольших изменений в конфигурационные файлы скачанного проекта, исправляющие проблемы совместимости с актуальными версиями ПО.
Для удобства, список изменений представлен в формате diff. Строки, выделенные красным, следует удалить, а зелёные – добавить. Символы «-» и «+» в начале строк копировать не нужно!
Измените следующие файлы:
Инициализация ForgeGradle#
Теперь мы можем инициализировать среду разработки, чтобы ForgeGradle подготовил необходимые файлы для нас. Для этого выполните приведённую ниже команду в командной строке (терминале). Вариант написания отличается в зависимости от ОС и используемой оболочки.
Подготовка займёт несколько минут в зависимости от производительности вашего компьютера и скорости интернета. По завершении выполнения вы должны увидеть сообщение «BUILD SUCCESSFUL».
Команду надо выполнять находясь в каталоге проекта, иначе получите ошибку «Неизвестная команда/файл».
В случае ОС Windows, откройте командную строку с помощью Shift + ПКМ в свободной области окна проводника с файлами проекта, выбрав соответствующий пункт меню.
При работе с Gradle из командной строки (терминала) требуется указание пути к JDK с помощью переменной окружения JAVA_HOME. Временно задать путь для текущего сеанса можно одной из следующих команд в зависимости от ОС и оболочки:
Не забудьте изменить путь к JDK на актуальный. И не закрывайте окно терминала — все остальные команды Gradle нужно вводить в этом же окне.
Настройка среды ForgeGradle производится всего один раз на ПК. Вам не потребуется повторно вводить команду для остальных проектов, разрабатываемых на той же версии Forge и Minecraft (версия указывается в build.gradle в minecraft.version ).
Среда разработки (IDE)#
Моды можно писать и в блокноте, но это очень неудобно. Нам нужна специализированная программа, которая умеет подсвечивать код, выполнять авто-импорт и делать много других полезных вещей.
Наиболее популярными IDE на данный момент являются Eclipse и IntelliJ IDEA.
Eclipse бесплатен. У IDEA есть бесплатная Community версия. Мы рекомендуем использовать IDEA, чтобы избежать большинства проблем при написании модификации. Никаких платных функций в этом учебнике нам не потребуется. Выберите наиболее подходящую для вас IDE, основываясь на характеристиках вашего компьютера.