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를 대체하는 타입 안전 데이터 저장툴팁 커스터마이즈아이템 태그 시스템
아이템

음식 아이템과 FoodProperties

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

음식 아이템과 FoodProperties

Item.Properties에 .food(FoodProperties) 를 체이닝하면 아이템을 먹을 수 있게 됩니다. FoodProperties는 별도의 빌더로 구성하며, 배고픔 회복량·포만감·상태 효과 등을 세밀하게 조정할 수 있습니다.


1. FoodProperties.Builder 기본 구조

FoodProperties는 new FoodProperties.Builder()로 시작해서 메소드를 체이닝한 뒤 .build()로 완성합니다. 완성된 FoodProperties 인스턴스를 Item.Properties().food(...) 에 넘깁니다.

// examplemod-template-26.1.2/src/main/java/com/example/examplemod/ExampleMod.java
public static final FoodProperties APPLE_FOOD = new FoodProperties.Builder()
    .nutrition(4)
    .saturationModifier(0.3f)
    .alwaysEdible()
    .effect(() -> new MobEffectInstance(MobEffects.REGENERATION, 100, 0), 0.5f)
    .build();
 
public static final DeferredItem<Item> APPLE = ITEMS.registerSimpleItem("apple",
    p -> p.food(APPLE_FOOD));

FoodProperties 인스턴스를 별도 상수로 분리하면 여러 아이템이 같은 음식 속성을 공유할 때 편리합니다.


2. 빌더 메소드 표

메소드타입설명
nutrition(int)필수배고픔 회복량 (하트 반 칸 = 1)
saturationModifier(float)필수포만감 계수. 실제 포만감 = nutrition × saturationModifier × 2
alwaysEdible()선택배고프지 않아도 먹을 수 있음 (황금 사과처럼)
effect(Supplier<MobEffectInstance>, float)선택먹었을 때 적용할 상태 효과 + 확률 (0.0~1.0)
fast()선택먹는 속도가 빨라짐 (건조 해초처럼)

3. nutrition과 saturationModifier

nutrition은 배고픔 바에서 회복되는 칸 수입니다. 배고픔 바 한 칸이 2이므로, nutrition(4)는 두 칸을 채웁니다.

saturationModifier는 포만감 계수입니다. 포만감이 높을수록 배고픔이 다시 줄어드는 속도가 느려집니다. 바닐라 기준으로 빵은 0.6f, 스테이크는 0.8f입니다.

// 가벼운 간식 — 배고픔 2칸, 포만감 낮음
new FoodProperties.Builder()
    .nutrition(4)
    .saturationModifier(0.3f)
    .build();
 
// 든든한 식사 — 배고픔 4칸, 포만감 높음
new FoodProperties.Builder()
    .nutrition(8)
    .saturationModifier(0.8f)
    .build();

4. alwaysEdible

기본적으로 배고픔 바가 가득 차 있으면 음식을 먹을 수 없습니다. alwaysEdible()을 붙이면 배고프지 않아도 먹을 수 있습니다. 황금 사과나 인챈트된 황금 사과가 이 방식입니다.

new FoodProperties.Builder()
    .nutrition(4)
    .saturationModifier(1.2f)
    .alwaysEdible()
    .build();
// 배고픔 바가 가득 차도 먹을 수 있음

5. effect — 상태 효과 부여

effect는 음식을 먹었을 때 플레이어에게 상태 효과를 줍니다. 첫 번째 인자는 MobEffectInstance를 반환하는 Supplier, 두 번째 인자는 적용 확률(0.0~1.0)입니다.

// 재생 효과 50% 확률, 5초(100틱), 레벨 1(0-indexed)
.effect(() -> new MobEffectInstance(MobEffects.REGENERATION, 100, 0), 0.5f)
 
// 속도 증가 100% 확률, 10초(200틱), 레벨 1
.effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 200, 0), 1.0f)

MobEffectInstance 생성자: (효과 타입, 지속 틱, 레벨). 레벨은 0-indexed라서 레벨 1 효과는 0을 씁니다.

자주 쓰는 MobEffects

상수효과
MobEffects.REGENERATION재생
MobEffects.MOVEMENT_SPEED속도 증가
MobEffects.JUMP점프 강화
MobEffects.NIGHT_VISION야간 투시
MobEffects.DAMAGE_BOOST힘 증가
MobEffects.ABSORPTION흡수

⚠️ effect chance — 확률 혼동 주의

.effect(..., 0.5f) 는 50% 확률로 효과가 적용됩니다. 1.0f가 100%입니다. 매번 같은 효과를 원하면 반드시 .effect(..., 1.0f) 를 사용하세요. 0.5f로 설정하면 절반의 경우에는 아무 효과도 붙지 않습니다.


6. fast

fast()를 붙이면 먹는 애니메이션이 빨라집니다. 바닐라에서 건조 해초가 이 방식입니다. 전투 중에도 빠르게 먹어야 하는 아이템에 적합합니다.

new FoodProperties.Builder()
    .nutrition(2)
    .saturationModifier(0.1f)
    .fast()
    .build();

7. 전체 예시 — 마법 사과

// examplemod-template-26.1.2/src/main/java/com/example/examplemod/ExampleMod.java
public static final FoodProperties MAGIC_APPLE_FOOD = new FoodProperties.Builder()
    .nutrition(6)
    .saturationModifier(1.2f)
    .alwaysEdible()
    .effect(() -> new MobEffectInstance(MobEffects.REGENERATION, 200, 1), 1.0f)
    .effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 400, 0), 0.5f)
    .build();
 
public static final DeferredItem<Item> MAGIC_APPLE = ITEMS.registerSimpleItem("magic_apple",
    p -> p.food(MAGIC_APPLE_FOOD)
        .rarity(Rarity.RARE));

8. 인게임 시연

서바이벌 모드에서 음식 아이템을 들고 우측 마우스 버튼을 길게 누르면 먹는 애니메이션이 재생됩니다. 다 먹으면 배고픔 바가 회복되고, effect를 설정했다면 상태 효과 아이콘이 화면 우측에 나타납니다.

인게임 캡처 및 동작 검증은 통합 검증 wave에서 진행합니다.


요약

  • FoodProperties.Builder()로 음식 속성을 구성하고 .build()로 완성합니다.
  • nutrition(int): 배고픔 회복량. 바 한 칸 = 2.
  • saturationModifier(float): 포만감 계수. 높을수록 배고픔이 천천히 줄어듭니다.
  • alwaysEdible(): 배고프지 않아도 먹을 수 있습니다.
  • effect(Supplier, float): 상태 효과 + 적용 확률. 1.0f = 100%.
  • fast(): 먹는 속도가 빨라집니다.
  • 완성된 FoodProperties는 Item.Properties().food(...) 에 넘깁니다.

다음 챕터에서는 커스텀 아이템 클래스를 만들어 우클릭 동작을 직접 구현합니다.

모드 전용 크리에이티브 탭 만들기

CreativeModeTab.Builder로 모드 전용 크리에이티브 탭을 등록하고 displayItems에 아이템들을 추가하는 방법, BuildCreativeModeTabContentsEvent로 Vanilla 탭에 추가하는 방법을 학습합니다.

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

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

On this page

음식 아이템과 FoodProperties1. FoodProperties.Builder 기본 구조2. 빌더 메소드 표3. nutrition과 saturationModifier4. alwaysEdible5. effect — 상태 효과 부여자주 쓰는 MobEffects6. fast7. 전체 예시 — 마법 사과8. 인게임 시연요약
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