ЭТО РУКОВОДСТВО ПО ДОБАВЛЕНИЮ СВОИХ КРАФТОВ
(Для создателей датапаков)

Шаг 1
Создайте в вашем датапаке функцию с таким содержимым:

# Звук крафта
execute as @e[tag=ICTcraft] at @s on attacker positioned ~ ~1 ~ align xyz positioned ~0.5 ~ ~0.5 as @e[tag=ICTslot01Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot02Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot03Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot04Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot05Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot06Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot07Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot08Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot09Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot10Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot11Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot12Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot13Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot14Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot15Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot16Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] run playsound minecraft:block.smithing_table.use ambient @a ~ ~ ~ 0.45 1

# Частицы при крафте
execute as @e[tag=ICTcraft] at @s on attacker positioned ~ ~1 ~ align xyz positioned ~0.5 ~ ~0.5 as @e[tag=ICTslot01Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot02Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot03Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot04Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot05Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot06Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot07Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot08Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot09Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot10Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot11Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot12Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot13Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot14Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot15Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot16Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] run particle minecraft:cloud ~ ~0.15 ~ 0 0 0 0.025 5

# Результат крафта
execute as @e[tag=ICTcraft] at @s on attacker positioned ~ ~1 ~ align xyz positioned ~0.5 ~ ~0.5 as @e[tag=ICTslot01Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot02Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot03Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot04Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot05Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot06Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot07Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot08Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot09Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot10Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot11Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot12Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot13Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot14Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot15Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot16Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] run summon minecraft:item ~ ~ ~ {Motion:[0.0d,0.35d,0.0d],Item:{id:"minecraft:apple",count:1,components:{"minecraft:custom_name":{"italic":false,"text":"Крафтовое яблоко"}}}}

# Функция для очистки слотов
execute as @e[tag=ICTcraft] at @s on attacker positioned ~ ~1 ~ align xyz positioned ~0.5 ~ ~0.5 as @e[tag=ICTslot01Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot02Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot03Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot04Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot05Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot06Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot07Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot08Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot09Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot10Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot11Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot12Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot13Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot14Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot15Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslot16Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}] as @e[tag=ICTslotDisp,distance=..0.5] run function ict:ic_table_slots_clear

(данная функция должна воспроизводиться постоянно)

Шаг 2
Замените minecraft:structure_void на нужные вам пространство имён и id, проделайте так с 16-ю слотами в 1-ой команде, а затем копируйте условия в остальные 3 команды

                                                                          Пространство имён (по умолчанию minecraft)
                 Номер слота (от 01 до 16)                                ↓         id (оставьте как есть если слот пустой)
                 ↓                                                        ↓         ↓
as @e[tag=ICTslot01Disp,sort=nearest,limit=1] if entity @s[nbt={item:{id:"minecraft:structure_void"}}]

Номер слота можно понять по этой "схеме":

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16

Шаг 3
Добавьте свой результат крафта (отредактируйте nbt предмета в 3-ей команде), для вас заранее подготовлен небольшой шаблон:)

Шаг 4
Создайте несколько вариантов своего рецепта
Пояснение:

Представим у нас есть рецепт 3x3:

ns sb ns --     ns | ns
co ct co --     co | co - рецепт вертикально-симметричен
ib an ib --     ib | ib
-- -- -- --

т.к. рецепт симметричен нам нужно ещё 3 его вариации (меньше размер - больше вариаций) в зависимости от позиции на сетке:

-- ns sb ns     -- -- -- --     -- -- -- --
-- co ct co     ns sb ns --     -- ns sb ns
-- ib an ib     co ct co --     -- co ct co
-- -- -- --     ib an ib --     -- ib an ib
справа-сверху   слево-снизу     справа-снизу

В случае с не симметричными рецептами вам понадобится в 2 раза больше вариаций (в 4 раза если вы планируете добавить горизонтально-симметричные варианты)


!!! Если вам нужно создать "бесформенный" рецепт (положение предметов не фиксировано) обратитесь ко мне в Discord по имени пользователя Mr-rubik
постараюсь помочь;)