ID блока в Minecraft - это строка вида minecraft:stone или modid:my_block. В ванильной игре по умолчанию обычно не показывают ID прямо на экране. Поэтому есть два рабочих пути: посмотреть ID через команды или (для модов) зарегистрировать блок с нужным namespace:id.
Вариант 1. Посмотреть ID через команду в игре
Команда /setblock - быстрый способ проверить ID
Если у вас есть подозрение, что ID блока такой-то, можно проверить командой:
/setblock <x> <y> <z> <block>
Пример:
/setblock ~ ~ ~ minecraft:stone
Если команда отработала и блок появился, значит ID корректный. Если блок не появляется, значит ID неверный или не существует в вашей версии.
Синтаксис и варианты replace/destroy/keep описаны в справке по команде setblock:
- /setblock <позиция> <блок> [replace|destroy|keep]
- можно указывать состояния и NBT данных
Источник: Minecraft Wiki (ru) https://minecraft.fandom.com/ru/wiki/Руководство_по_командам_setblock
Как записывать ID блока
ID пишут латиницей в нижнем регистре, слова через подчеркивание. minecraft: можно указывать, а можно и не указывать для ванильных блоков. Примеры формата:
- minecraft:stone_slab
- minecraft:sandstone
Источник: Minecraft Wiki (ru) https://minecraft.fandom.com/ru/wiki/Руководство_по_командам_setblock
Вариант 2. Если нужно видеть ID “на лету” (в интерфейсе/под прицелом)
В чистой ванильной игре “включателя”, который показывает ID блока над блоком, нет. Обычно делают это одним из способов:
- модификация клиента или ресурс-пак с оверлеем
- отдельные моды/утилиты, которые добавляют отображение при наведения курсора
- серверные плагины/моды (если вы на сервере)
Если вы ищете именно “показ ID блока при наведении” без модов и плагинов, то это обычно невозможно в ванильном коде.
Вариант 3. Мод: сделать так, чтобы у блока был нужный ID
Если вы разрабатываете мод и хотите, чтобы блок имел конкретный ID (и его потом можно было поставить командой), нужно зарегистрировать block с нужным namespace и именем.
Регистрация блока (Fabric, Java)
Смысл такой:
1. создаете Block
2. регистрируете его в Registries.BLOCK (или BuiltInRegistries.BLOCK, в зависимости от версии/моста)
3. подключаете регистрацию в onInitialize
Пример по логике из обсуждений: создается блок и регистрируется с minecraft:lol (как тест). После этого можно проверить через:
/setblock ~ ~ ~ minecraft:lol
Источник по самой команде проверки и формату ID - Minecraft Wiki (ru): https://minecraft.fandom.com/ru/wiki/Руководство_по_командам_setblock
А пример регистрации с Registry.register(...) и проверкой через setblock встречается в обсуждениях по ID предметов/блоков в модах: https://forum.mcmodding.ru/threads/id-predmeta-kak-u-samogo-minecraft.34663/
Важно: предмет блока отдельно регистрируется
Даже если блок зарегистрирован и ставится командой, он может не появляться в инвентаре. В модах предмет для блока обычно регистрируют отдельно как BlockItem.
Пример формулы, которая часто нужна:
- new BlockItem(вашБлок, settingsПредмета)
То есть порядок аргументов важен: в конструктор BlockItem первым параметром передают сам Block, вторым - Item.Settings (или FabricItemSettings).
Официальные параметры/классы зависят от версии Fabric/Forge, поэтому сверяйте по документации для вашей ветки.
Таблица: как понять, что ID работает
| Что вы делаете | Что должно произойти | Что значит результат |
|---|---|---|
Поставили через /setblock ~ ~ ~ <id> |
Блок появился | ID блока существует и совпадает |
Поставили через /setblock ... <id> |
Блок не появляется, ошибка/сообщение | ID неверный или блок не зарегистрирован |
| Блок появился, но в инвентаре нет | Блок ставится, но предмета нет | Нужно отдельно зарегистрировать BlockItem |
Типичные ошибки
- Путают
namespace:idи простоid. Для модов обычно нужноmodid:имя, а для ванильных -minecraft:имя. - Ставят командой
setblock, но не регистрируютBlockItem, поэтому блок не появляется как предмет в инвентаре. - Для “видно ID на экране” пытаются сделать это командой в ваниле. В ванильной игре прямой встроенной функции нет, обычно нужны моды/оверлеи.
Полезные ссылки
- Команда
/setblockи формат ID, состояний и NBT: https://minecraft.fandom.com/ru/wiki/Руководство_по_командам_setblock - Пример обсуждения регистрации и проверки через
setblock(Fabric, идея регистрации по ID): https://forum.mcmodding.ru/threads/id-predmeta-kak-u-samogo-minecraft.34663/