NeoForge 26.1 Docs
  • 문서
  • 노트
NeoForge 26.1
NeoForge 26.1
v26.1
학습 진도
0 / 77 챕터 완료방문 0
BlockEntity 기초 — CounterBlockEntityBlockEntityRenderer 구현Entity 등록과 AttributeSupplierEntityRenderer와 EntityModelAI Goal 시스템CustomPacketPayload — 클라이언트/서버 패킷 통신AttachmentTypes — 엔티티·블록에 데이터 부착WorldGen Feature 기초 — 광물 생성
고급 시스템

WorldGen Feature 기초 — 광물 생성

데이터팩 3종(configured_feature / placed_feature / biome_modifier)으로 루비 광석을 오버월드 지하에 생성하는 전체 흐름을 학습합니다.

WorldGen Feature 기초 — 광물 생성

이 챕터에서는 데이터팩 JSON 3종만으로 새 광물을 세계 생성(WorldGen)에 추가하는 방법을 학습합니다. NeoForge 26부터 광물 배치는 코드가 아닌 데이터팩으로 정의하는 것이 공식 권장 방식입니다.


개요 — 3종 JSON의 역할

파일위치역할
configured_featureworldgen/configured_feature/무엇을 생성할지 정의 (Feature 종류 + 설정)
placed_featureworldgen/placed_feature/어디에 얼마나 배치할지 정의 (높이·개수·Placement Modifier)
biome_modifierneoforge/biome_modifier/어느 바이옴에 추가할지 정의 (NeoForge 전용)

세 파일이 모두 있어야 광물이 실제 세계에 생성됩니다. 하나라도 빠지면 광물이 나타나지 않습니다.


1. configured_feature — 무엇을 생성할지

configured_feature는 Feature의 종류와 파라미터를 지정합니다. 광물에는 minecraft:ore Feature 타입을 사용합니다.

// examplemod-template-26.1.2/src/main/resources/data/examplemod/worldgen/configured_feature/ruby_ore.json
{
  "type": "minecraft:ore",
  "config": {
    "size": 8,
    "discard_chance_on_air_exposure": 0.0,
    "targets": [
      {
        "target": {"predicate_type": "minecraft:tag_match", "tag": "minecraft:stone_ore_replaceables"},
        "state": {"Name": "examplemod:ruby_ore"}
      }
    ]
  }
}

각 필드 설명

필드값설명
type"minecraft:ore"광맥(vein) 형태로 블록을 배치하는 내장 Feature 타입
size8광맥 한 개의 최대 블록 수. 다이아몬드 광석(size: 9)과 유사한 규모
discard_chance_on_air_exposure0.0공기에 노출된 블록을 제거할 확률. 0.0 = 제거 없음. 석탄처럼 노출 허용
targets배열교체 대상 블록과 결과 블록 쌍의 목록
target.tag"minecraft:stone_ore_replaceables"교체 가능한 블록 태그. 석재·심층암 계열 모두 포함
state.Name"examplemod:ruby_ore"생성될 루비 광석 블록의 레지스트리 ID

stone_ore_replaceables 태그
minecraft:stone, minecraft:deepslate, minecraft:granite, minecraft:diorite, minecraft:andesite 등 광석이 교체 가능한 모든 바닐라 돌 블록을 포함합니다. 이 태그를 사용하면 하나의 configured_feature로 석재 구역과 심층암 구역 모두에서 올바른 블록으로 생성됩니다.


2. placed_feature — 어디에 얼마나 배치할지

placed_feature는 configured_feature를 참조하고, Placement Modifier 목록으로 배치 위치와 횟수를 제어합니다.

// examplemod-template-26.1.2/src/main/resources/data/examplemod/worldgen/placed_feature/ruby_ore.json
{
  "feature": "examplemod:ruby_ore",
  "placement": [
    {"type": "minecraft:count", "count": 8},
    {"type": "minecraft:in_square"},
    {"type": "minecraft:height_range", "height": {"type": "minecraft:uniform", "min_inclusive": {"absolute": -64}, "max_inclusive": {"absolute": 32}}},
    {"type": "minecraft:biome"}
  ]
}

Placement Modifier 순서별 역할

순서타입역할
1minecraft:count청크당 광맥 생성 시도 횟수. count: 8 = 청크당 최대 8번 시도
2minecraft:in_squareX/Z 좌표를 청크 내 무작위 위치로 분산
3minecraft:height_rangeY 좌표 범위 지정. -64(지하 바닥) ~ 32(지상 약간 위) 사이 균등 분포
4minecraft:biome현재 바이옴이 biome_modifier에 지정된 바이옴과 일치하는지 최종 확인

Y 범위 설계
루비 광석은 -64 ~ 32 범위에 균등 분포합니다. 다이아몬드(최적 Y: -59)보다 약간 넓고 높은 대역으로, 지하 채굴 중 자연스럽게 발견될 수 있습니다. 원하는 희귀도에 따라 count와 Y 범위를 조절하세요.


3. biome_modifier — 어느 바이옴에 추가할지 (NeoForge 전용)

biome_modifier는 NeoForge가 추가한 시스템으로, 기존 바이옴의 Feature 목록을 데이터팩으로 수정합니다. 바닐라 데이터팩만으로는 이 기능을 사용할 수 없습니다.

// examplemod-template-26.1.2/src/main/resources/data/examplemod/neoforge/biome_modifier/add_ruby_ore.json
{
  "type": "neoforge:add_features",
  "biomes": "#minecraft:is_overworld",
  "features": "examplemod:ruby_ore",
  "step": "underground_ores"
}

각 필드 설명

필드값설명
type"neoforge:add_features"바이옴에 Feature를 추가하는 NeoForge 수정자 타입
biomes"#minecraft:is_overworld"적용 대상 바이옴 태그. # prefix = 바이옴 태그 참조
features"examplemod:ruby_ore"추가할 placed_feature의 레지스트리 ID
step"underground_ores"Feature가 삽입될 생성 단계. 광석에는 underground_ores 사용

#minecraft:is_overworld 태그
오버월드에 속하는 모든 바이옴(평원·사막·타이가·정글 등)을 포함합니다. 모드 추가 바이옴도 이 태그를 상속하면 자동 포함됩니다.
특정 바이옴에만 추가하려면 "biomes": "minecraft:plains" 처럼 단일 바이옴 ID를 지정하거나, ["minecraft:plains", "minecraft:forest"] 배열로 나열합니다.

biome_modifier 저장 경로 주의

data/examplemod/neoforge/biome_modifier/add_ruby_ore.json
           ↑              ↑
      모드 네임스페이스  NeoForge 전용 네임스페이스

data/<모드이름>/neoforge/biome_modifier/ 경로에 저장해야 합니다. data/<모드이름>/worldgen/ 이 아닙니다.


4. 안티패턴 — biome_modifier 누락

⚠️ biome_modifier 누락

configured_feature + placed_feature만 작성하고 biome_modifier를 누락하면:

  • 어느 바이옴에도 Feature가 추가되지 않음
  • 새 세계를 생성해도 루비 광석이 전혀 나타나지 않음
  • 빌드 오류나 경고가 없어 원인 파악이 어려움

3종 JSON 모두 필수:

번호파일역할
1configured_feature/ruby_ore.jsonFeature 정의
2placed_feature/ruby_ore.json배치 규칙
3neoforge/biome_modifier/add_ruby_ore.json어느 바이옴에 ← NeoForge 전용, 누락 금지

5. 인게임 검증

5-1. 새 세계 생성 후 지하 탐색

  1. Minecraft 실행 → 새 세계 생성 (싱글플레이어, 크리에이티브 권장)
  2. 지하 Y: -64 ~ 32 구역 채굴
  3. 붉은 루비 광석 블록이 자연 생성되어야 함

5-2. /locate 명령으로 빠른 검증

/locate structure minecraft:mineshaft

또는 지하를 빠르게 탐색하려면 크리에이티브 모드에서 스펙테이터로 전환합니다.

/gamemode spectator

스펙테이터 모드에서 블록을 통과해 지하를 탐색하면 루비 광석 배치를 신속하게 확인할 수 있습니다.

5-3. F3 디버그로 Y좌표 확인

F3 키를 눌러 디버그 화면을 열면 현재 Y좌표가 표시됩니다. Y: -64 ~ 32 범위에서 탐색하고 있는지 확인하세요.


요약

단계파일 경로핵심 내용
1worldgen/configured_feature/ruby_ore.jsonminecraft:ore + size:8 + stone_ore_replaceables 태그
2worldgen/placed_feature/ruby_ore.jsoncount:8 + Y범위 -64~32
3neoforge/biome_modifier/add_ruby_ore.jsonneoforge:add_features + #minecraft:is_overworld + underground_ores

다음 챕터에서는 커스텀 구조물(Structure)을 데이터팩으로 정의하는 방법을 학습합니다.

AttachmentTypes — 엔티티·블록에 데이터 부착

NeoForge AttachmentTypes(구 Capabilities)로 플레이어·엔티티·블록 엔티티에 임의 데이터를 Codec 기반으로 저장·복원하는 방법을 학습합니다.

마스터 트랙 #1: 도구 모드 프로젝트 셋업

examplemod-master-projects/tools/ 에서 Ruby/Sapphire 보석 + 4종 도구 + 자체 크리에이티브 탭을 만드는 독립 마스터 모드의 초기 구조를 설정합니다.

On this page

WorldGen Feature 기초 — 광물 생성개요 — 3종 JSON의 역할1. configured_feature — 무엇을 생성할지각 필드 설명2. placed_feature — 어디에 얼마나 배치할지Placement Modifier 순서별 역할3. biome_modifier — 어느 바이옴에 추가할지 (NeoForge 전용)각 필드 설명biome_modifier 저장 경로 주의4. 안티패턴 — biome_modifier 누락5. 인게임 검증5-1. 새 세계 생성 후 지하 탐색5-2. /locate 명령으로 빠른 검증5-3. F3 디버그로 Y좌표 확인요약
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