Forge Моддинг 1.20.1 — Лекция 7: Создание блока руды
Приветствую, друзья!
Предыдущая лекция
Цель лекции
В этой лекции мы научимся создавать руды. Вы узнаете:
• Как добавить выпадение опыта при добыче руды.
• Настроить лут-таблицу как у руды с учётом шёлкового касания.
• Ввести новый уровень добычи (незерит) через теги.
1. Регистрация руд
Руда отличается от обычного блока тем, что при добыче может давать опыт и ресурсы. Для этого используется класс DropExperienceBlock:
И в эти скобки будут передаваться два значения:
• Параметры блока BlockBehaviour.Properties.of()
• Значение опыта UniformInt.of().
Полная запись будет выглядеть примерно так:
Пояснение:
• Здесь для удобства я копировал свойства блока, который мы до этого создавали (PINKYLITE_CRYSTAL_BLOCK), указал обновленное значение strength
• UniformInt.of(min, max) — задаёт случайное количество опыта в указанном диапазоне. (например UniformInt.of(3, 7).
• Если в strength() указать одно значение, оно будет применено к destroyTime и explosionResistance.
2. Лут-таблица руды
Руда должна дропать ресурсы (например, пинкилитовый кристалл) и учитывать шёлковое касание (по желанию).
Внизу будет пример лут таблицы для руды, а так же мы разберём каждую строчку:
json
pinkylite_ore.json1.62 Kb
2.1. Подробное объяснение лут таблицы
"type": "minecraft:block"
• Говорит игре, что это лут-таблица для блока, а не для моба или сундука.
"pools": [ ... ]
• Это «пулы» дропа — группы предметов, которые могут выпасть.
• Можно создать несколько пулов, например:
- Первый пул — основной дроп (ресурсы).
- Второй пул — редкий дроп (дополнительные предметы).
"bonus_rolls": 0.0
• Дополнительные попытки дропа.
• 0.0 — дополнительные шансы отключены.
• Если бы было 1.0, игра проверила бы дроп ещё раз (может выпасть больше предметов).
В принципе эту строчку можете не писать
"entries": [ ... ]
• Список вариантов дропа.
• В данном случае используется alternatives — выбирается только один из вариантов.
В прошлый раз мы просто item использовали, в этот раз alternatives, так как мы добавляем условие шёлкового касания.
"type": "minecraft:alternatives"
• Тип дропа «альтернативы» — игра проверит условия каждого варианта по порядку и выберет первый подходящий.
• Поэтому он должен быть первее обычного дропа ресурсов, иначе это условие альтернативы будет пропускаться.
"children": [ ... ]
• Дочерние варианты дропа.
• Здесь два варианта:
- Вариант 1: Дроп руды, если есть шёлковое касание.
- Вариант 2: Дроп кристалла, если шёлкового касания нет.
"conditions": [ ... ]
• Условия для выбора варианта.
• "minecraft:match_tool" — проверяет, есть ли у инструмента определённые свойства.
• "enchantment": "minecraft:silk_touch" — проверка на зачарование «Шёлковое касание».
"name": "rinova:pinkylite_ore"
• Если условие выполнено (есть шёлковое касание), выпадет сама руда.
• Здесь вы указываете свой мод_айди:айди_руды.
"functions": [ ... ]
Функции, которые изменяют дроп:
• set_count: Устанавливает количество выпадающих предметов.
- "uniform" — случайное число между min и max (1-2 кристалла).
• apply_bonus: Учитывает зачарование «Удача» (Fortune).
- "ore_drops" — стандартная формула для увеличения дропа руд.
• explosion_decay: Учитывает взрыв ресурса
"rolls": 1.0
• Количество «попыток» дропа из этого пула.
• 1.0 — одна попытка (выпадет либо руда, либо кристалл).
"random_sequence": "rinova:blocks/pinkylite_ore"
• Идентификатор для генерации случайных чисел (RNG).
• Нужен, чтобы дроп был одинаковым для всех игроков в одном мире.
• Можно игнорировать, если не требуется синхронизация, но рекомендую использовать
rinova - айди мода,
blocks - просто блоки, писать всегда,
pinkylite_ore - айди блока
Поскольку мы добавили два типа руды — каменную и глубинносланцевую, можно создать аналогичный JSON-файл для глубинной версии.
Для этого:
1. Скопируйте существующий файл лут-таблицы каменной руды.
2. В названии файла и внутри него замените ID каменной руды (pinkylite_ore) на ID глубинной (deepslate_pinkylite_ore).
3. При необходимости скорректируйте параметры (например айди руды и дропа)."
2.2. Как это работает в игре?
1. Игрок добывает руду без шёлкового касания:
• Выпадает 1-2 кристалла (зависит от удачи).
2. Игрок добывает руду с шёлковым касанием:
• Выпадает сама руда (блок pinkylite_ore).
3. Если блок разрушен взрывом:
• Шанс дропа снижается (из-за explosion_decay).
Если вы будете копировать файл, то вам достаточно изменить лишь эти строки:
• min, max - изменение количество дропа
• rinova:pinkylite_ore - ваша руда (которая получается шёлковым касанием)
• rinova:pinkylite_crystal - ваш ресурс, который дропается после добычи
• rinova:blocks/pinkylite_ore - айди руды, для генерации случайных чисел.
Ссылка на лут-таблицу на сайте:
https://misode.github.io/loot-table/?share=Ipd2SDmcIk
https://misode.github.io/loot-table/?share=Ipd2SDmcIk
3. Уровень добычи - незерит.
Теперь научимся настраивать блоки, которые можно добыть только незеритовыми инструментами или выше. Это полезно для создания интересного усложнения игры, к примеру «титанового дерева», «демонической руды» или других суперпрочных материалов (к примеру).
3.1 Создание тега для незерита
Для этого в папке data создайте такой путь папок: forge/tags/blocks:
Далее создайте файл needs_netherite_tool.json в этой папке:
Добавьте ID вашего блока в этот файл:
Не забудьте указать ваши новые руды в тегах инструментов (кирка):
Так же я обычную пинкилитовую руду добавлю в уровень железа:
4. Json моделей, blockstate
Здесь не должно быть ничего сложного:
Файлы идентичны по структуре, меняется лишь содержание и айди:
5. Тестирование
Теперь запускаем игру как обычно через runClient
Как добываются блоки в игре + проверка условий:
Весь написанный код:
Следующие лекции будут посвящены:
1. Полный гайд по настройкам блоков (BlockBehaviour.Properties)
Разберём все 33 параметра блока — от прочности и звуков до светимости и трения.
Следующая лекция (Платная):
Forge Моддинг 1.20.1 — Лекция 8: BlockBehaviour.Properties — 33 параметра блока
Forge Моддинг 1.20.1 — Лекция 8: BlockBehaviour.Properties — 33 параметра блока
2. Создание рецептов для крафта в верстаке
Научимся добавлять рецепты для предметов и блоков, включая форменное, бесформенное создание и плавку.
Следующая лекция (Бесплатная):
майнкрафт моды
на forge
версия 1.20.1
лекции/гайды
Uladzislau Haiduk
Привет, твои туториалы реально классные, может быть ты обратишь внимание на мой комментарий, потому что я столкнулся с небольшой проблемой, пока писал свой мод: моя руда не генерируется. Я пробовал и через классы в папке worldgen, и через json-обьекты, но так и не заработало. Может ты расскажешь об этом?) Удачи!
May 03 2025 10:20 
1
Савелий АблогинReplying to RingoWay Developer
ringoway, Знаете, давно думал начать пробовать делать моды для майнкрафта, но это как мечта была. Недавно решил попробовать и начал уж было искать гайды, но встретил очень-очень много разных и все как один непонятных. Ваши лекции просто удивительная находка! Я на вас сразу подписался как только начал изучать, сейчас как раз закончил эту лекцию, уже 7 без остановки, с интересом потратил на это почти целый день, но оно того стоило! Больше всего удивило что и солидная часть бесплатна и в общем доступе, тоже большая редкость и гигантский плюс. Спасибо вам огромное! Буду продолжать следить за вашим творчеством и с интересом изучать лекции
Jul 07 2025 22:50 

1
RingoWay DeveloperReplying to Савелий Аблогин
Савелий Аблогин, я только что заметил ваш комментарии. Спасибо большое что вы подписались! Я очень ценю это! У меня часто случались паузы в лекциях, но когда я вижу такие комментарии, то у меня есть мотивация продолжать. Спасибо!
Jul 21 2025 14:12