NeoForge 26.1 Docs
  • 문서
  • 노트
NeoForge 26.1
NeoForge 26.1
v26.1
학습 진도
0 / 77 챕터 완료방문 0
첫 아이템 등록 — first_itemItem.Properties — stacksTo, rarity, fireResistant, food, durability모드 전용 크리에이티브 탭 만들기음식 아이템과 FoodProperties도구 아이템 — Tier 시스템과 4종 도구 등록방어구와 ArmorItemDataComponents — NBT를 대체하는 타입 안전 데이터 저장툴팁 커스터마이즈아이템 태그 시스템
아이템

도구 아이템 — Tier 시스템과 4종 도구 등록

NeoForge 26.1.2의 도구 아이템 등록을 학습합니다. PickaxeItem·SwordItem은 삭제되어 ToolMaterial.applyToolProperties/applySwordProperties로 대체되고, AxeItem·ShovelItem은 ToolMaterial을 받습니다.

도구 아이템 — Tier 시스템과 4종 도구 등록

일반 Item과 달리 도구 아이템은 채굴 레벨, 내구도, 공격력 같은 속성을 Tier 하나로 묶어서 관리합니다. 바닐라 Tier 6종을 먼저 이해하고, 루비 도구 4종을 직접 등록해 봅니다.


1. ToolMaterial이란?

26.1.2 변경: 기존의 Tier 인터페이스와 Tiers enum은 삭제되었습니다. 도구 재질은 이제 net.minecraft.world.item.ToolMaterial record 로 표현하며, 바닐라는 WOOD·STONE·COPPER·IRON·GOLD·DIAMOND·NETHERITE 상수를 제공합니다.

ToolMaterial은 도구의 재질 등급을 나타내는 record로, 내구도·채굴 속도·공격력·인챈트 가중치·수리 재료, 그리고 "이 재질로 캐도 드롭되지 않는 블록 태그"를 묶어서 담습니다.

ToolMaterial드롭 불가 블록 태그내구도채굴 속도공격 보너스인챈트 가중치수리 재료
WOODINCORRECT_FOR_WOODEN_TOOL592.00.015나무 판자
STONEINCORRECT_FOR_STONE_TOOL1314.01.05조약돌
IRONINCORRECT_FOR_IRON_TOOL2506.02.014철 주괴
GOLDINCORRECT_FOR_GOLD_TOOL3212.00.022금 주괴
DIAMONDINCORRECT_FOR_DIAMOND_TOOL15618.03.010다이아몬드
NETHERITEINCORRECT_FOR_NETHERITE_TOOL20319.04.015네더라이트 주괴

각 값의 의미:

  • 드롭 불가 블록 태그(incorrectBlocksForDrops): 이 재질로 캐면 블록은 깨지지만 드롭이 나오지 않는 블록 태그. 채굴 등급은 더 이상 정수 레벨이 아니라 이 태그로 결정됩니다(다이아 등급이면 INCORRECT_FOR_DIAMOND_TOOL).
  • 내구도(durability): 도구가 파괴되기 전 사용 횟수.
  • 채굴 속도(speed): 블록을 캐는 속도 배율.
  • 공격 보너스(attackDamageBonus): 기본 공격력에 더해지는 추가 피해.
  • 인챈트 가중치(enchantmentValue): 인챈트 테이블에서 좋은 인챈트가 붙을 확률.
  • 수리 재료(repairItems): 모루에서 도구를 수리할 때 쓰는 아이템 태그.

2. 4종 도구 등록

26.1.2에서는 곡괭이·검 전용 클래스(PickaxeItem/SwordItem)가 삭제되었습니다. 곡괭이와 검은 평범한 Item에 ToolMaterial.applyToolProperties(...) / applySwordProperties(...)로 도구 속성을 입혀 등록합니다. 도끼·삽은 여전히 AxeItem·ShovelItem 클래스가 존재하며 생성자에 ToolMaterial을 받습니다. 또한 아이템은 register(...)가 아니라 registerItem(name, props -> ...)로 등록해야 합니다(람다가 받은 props에 id가 설정됨).

// examplemod-template-26.1.2/src/main/java/com/example/examplemod/ExampleMod.java
 
// 곡괭이·검: 전용 클래스 대신 Item + ToolMaterial.apply*Properties
public static final DeferredItem<Item> RUBY_PICKAXE = ITEMS.registerItem("ruby_pickaxe",
    props -> new Item(ToolMaterial.DIAMOND.applyToolProperties(
        props, BlockTags.MINEABLE_WITH_PICKAXE, 1.0f, -2.8f, 0.0f)));
 
public static final DeferredItem<Item> RUBY_SWORD = ITEMS.registerItem("ruby_sword",
    props -> new Item(ToolMaterial.DIAMOND.applySwordProperties(props, 3.0f, -2.4f)));
 
// 도끼·삽: AxeItem / ShovelItem 은 존속 — 생성자에 ToolMaterial + 공격력 + 공격 속도 + Properties
public static final DeferredItem<Item> RUBY_AXE = ITEMS.registerItem("ruby_axe",
    props -> new AxeItem(ToolMaterial.DIAMOND, 5.0f, -3.1f, props));
 
public static final DeferredItem<Item> RUBY_SHOVEL = ITEMS.registerItem("ruby_shovel",
    props -> new ShovelItem(ToolMaterial.DIAMOND, 1.5f, -3.0f, props));

네 도구 모두 ToolMaterial.DIAMOND를 써서 다이아 광석·흑요석을 캘 수 있는 등급으로 만듭니다. applyToolProperties의 인자는 차례로 채굴 동작을 부여할 블록 태그(MINEABLE_WITH_PICKAXE), 공격력 추가치, 공격 속도, 공격 범위 보너스입니다. applySwordProperties는 공격력과 공격 속도만 받습니다.


3. 도구별 특징

도구생성 방식주 용도공격 속도특이사항
곡괭이Item + applyToolProperties(MINEABLE_WITH_PICKAXE, …)돌·광석 채굴느림드롭 불가 태그가 가장 중요
검Item + applySwordProperties(…)전투빠름공격 보너스 가장 높음
도끼AxeItem(ToolMaterial, atk, spd, props)나무 채굴 + 전투매우 느림방패 막기 해제 가능
삽ShovelItem(ToolMaterial, atk, spd, props)흙·모래 채굴느림잔디 경로 만들기 가능

4. ToolMaterial 선택 기준

루비 도구에 어떤 ToolMaterial을 쓸지 결정할 때 기준은 두 가지입니다.

드롭 등급: 어떤 블록을 캐야 하는가? (재질이 곧 캘 수 있는 블록 등급을 정합니다)

WOOD     → 돌, 석탄 광석
STONE    → 철 광석, 구리 광석
IRON     → 금 광석, 다이아 광석, 에메랄드 광석
DIAMOND  → 흑요석, 고대 잔해
NETHERITE → 특수 블록 (모드 추가 블록)

내구도와 속도: 플레이어 경험 설계. 루비가 다이아보다 약간 약하게 하고 싶다면 ToolMaterial.IRON을 쓰고, 동급으로 만들고 싶다면 ToolMaterial.DIAMOND를 씁니다.


5. 안티패턴: 잘못된 ToolMaterial 사용

⚠️ 잘못된 ToolMaterial 사용

WOOD 재질 곡괭이로 다이아 블록 채굴:

public static final DeferredItem<Item> RUBY_PICKAXE = ITEMS.registerItem("ruby_pickaxe",
    props -> new Item(ToolMaterial.WOOD.applyToolProperties(
        props, BlockTags.MINEABLE_WITH_PICKAXE, 1.0f, -2.8f, 0.0f)));

→ 블록은 깨지지만 드롭 0개 (재질 등급 부족) → 정확한 ToolMaterial 매칭 필요 (다이아 블록 = STONE 이상, 흑요석 = DIAMOND 이상)

재질 등급이 부족하면 블록 파괴 애니메이션은 나오지만 아이템이 드롭되지 않습니다. 인게임에서 확인하기 전까지 눈치채기 어려운 버그입니다.


6. 커스텀 ToolMaterial 미리보기

바닐라 상수로 부족하다면 ToolMaterial record 를 직접 생성해서 완전히 새로운 재질을 만들 수 있습니다. 생성자 인자는 차례로 드롭 불가 블록 태그·내구도·채굴 속도·공격력 추가치·인챈트 가중치·수리 재료 태그입니다.

// 마스터 트랙에서 다룰 내용 — 미리보기만
// ToolMaterial(incorrectBlocksForDrops, durability, speed, attackDamageBonus, enchantmentValue, repairItems)
public static final TagKey<Item> REPAIR_TAG =
        ItemTags.create(Identifier.fromNamespaceAndPath("master_tools", "repairs_ruby_tools"));
 
public static final ToolMaterial RUBY = new ToolMaterial(
        BlockTags.INCORRECT_FOR_DIAMOND_TOOL, // 다이아 등급 — 흑요석 등은 드롭 불가
        1024,   // 내구도 (Iron 250 < Ruby < Diamond 1561)
        8.0f,   // 채굴 속도 (Diamond 동급)
        3.5f,   // 공격력 추가치 (Diamond 3.0보다 높음)
        18,     // 인챈트 가중치
        REPAIR_TAG); // 수리 재료 태그

커스텀 ToolMaterial 구현은 마스터 트랙 phase-6에서 자세히 다룹니다. 지금은 바닐라 ToolMaterial 상수를 활용하는 것으로 충분합니다.


7. 인게임 검증

4종 도구를 등록한 뒤 게임을 실행해서 동작을 확인합니다.

/give @p examplemod:ruby_pickaxe
/give @p examplemod:ruby_sword
/give @p examplemod:ruby_axe
/give @p examplemod:ruby_shovel

확인 항목:

  • 크리에이티브 인벤토리 모드 탭에 4종 도구가 보이는가?
  • 곡괭이로 다이아 광석을 캤을 때 드롭이 나오는가?
  • 검으로 몹을 공격했을 때 피해가 들어가는가?
  • 삽으로 잔디 블록을 우클릭하면 경로 블록으로 바뀌는가?

요약

  • ToolMaterial은 도구의 드롭 불가 블록 태그·내구도·속도·공격력·인챈트 가중치·수리 재료를 묶은 record. (26.1.2에서 Tier/Tiers는 삭제됨)
  • 바닐라 ToolMaterial 상수: WOOD · STONE · COPPER · IRON · GOLD · DIAMOND · NETHERITE.
  • 곡괭이·검은 전용 클래스 대신 Item + ToolMaterial.applyToolProperties / applySwordProperties. 도끼·삽은 AxeItem·ShovelItem(생성자에 ToolMaterial+공격력+공격 속도+Properties) 존속.
  • 재질 등급이 부족하면 블록은 깨지지만 드롭이 없다. ToolMaterial 선택 시 반드시 확인.
  • 커스텀 ToolMaterial(record 직접 생성)은 마스터 트랙에서 다룬다.

다음 챕터에서는 음식 아이템(FoodProperties)을 만들어 먹을 수 있는 아이템을 등록합니다.

음식 아이템과 FoodProperties

FoodProperties.Builder 패턴으로 먹을 수 있는 아이템을 만들고, nutrition·saturationModifier·effect 등 주요 메소드를 학습합니다.

방어구와 ArmorItem

ArmorMaterials enum과 4종 슬롯을 이해하고, 커스텀 방어구 세트를 등록하는 방법을 학습합니다.

On this page

도구 아이템 — Tier 시스템과 4종 도구 등록1. ToolMaterial이란?2. 4종 도구 등록3. 도구별 특징4. ToolMaterial 선택 기준5. 안티패턴: 잘못된 ToolMaterial 사용6. 커스텀 ToolMaterial 미리보기7. 인게임 검증요약
NeoForge 26.1 Docs

NeoForge 26.1 모딩 개발 문서 사이트

GitHubDiscord

문서

  • 문서
  • 노트

GitHub

  • GitHub
  • Discord

© 2026 NeoForge 26.1 Docs. 콘텐츠는 MIT 라이선스로 제공됩니다.

Built with Next.js · Tailwind CSS · shadcn/ui