차원에 보석 광물 배치 (WorldGen)
NeoForge 데이터팩 worldgen JSON 3종(configured_feature, placed_feature, biome_modifier)을 작성해 master_dimension의 magic_realm 차원에만 Ruby Ore를 생성합니다.
차원에 보석 광물 배치 (WorldGen)
캡스톤의 첫 번째 기능 추가입니다. master_dimension의 magic_realm 차원 지하에 master_tools:ruby_ore를 생성하는 월드젠 데이터팩을 작성합니다. 이 챕터에서 다루는 3종 JSON은 NeoForge worldgen 파이프라인의 핵심 단계입니다.
1. WorldGen 파이프라인 개요
NeoForge(Minecraft) 월드젠 데이터팩은 세 단계를 순서대로 연결합니다.
configured_feature → placed_feature → biome_modifier
"어떤 블록을" "어디에" "어느 바이옴에"
| 단계 | 파일 위치 | 역할 |
|---|---|---|
configured_feature | data/<modid>/worldgen/configured_feature/ | 광물 타입·크기·대상 블록 정의 |
placed_feature | data/<modid>/worldgen/placed_feature/ | 스폰 횟수·높이 범위·바이옴 필터 |
biome_modifier | data/<modid>/neoforge/biome_modifier/ | 특정 바이옴에 feature 주입 |
캡스톤은 모드 ID master_capstone을 사용하므로, 모든 파일은 data/master_capstone/ 아래에 위치합니다.
2. configured_feature — Ruby Ore 블록 정의
examplemod-master-projects/capstone/src/main/resources/data/master_capstone/worldgen/configured_feature/ruby_ore.json
{
"type": "minecraft:ore",
"config": {
"size": 6,
"discard_chance_on_air_exposure": 0.0,
"targets": [{
"target": {"predicate_type": "minecraft:tag_match", "tag": "minecraft:stone_ore_replaceables"},
"state": {"Name": "master_tools:ruby_ore"}
}]
}
}각 필드 설명
| 필드 | 값 | 의미 |
|---|---|---|
type | minecraft:ore | 기본 광물 배치 알고리즘 |
size | 6 | 한 베인(맥) 최대 블록 수 |
discard_chance_on_air_exposure | 0.0 | 공기에 노출될 때 제거 확률 (0 = 항상 유지) |
tag | minecraft:stone_ore_replaceables | 이 태그에 속한 블록(돌·심층암 등)을 대체 |
state.Name | master_tools:ruby_ore | 배치할 블록 ID |
⚠️
master_tools:ruby_ore블록 의존성
이 블록은master_tools모드가 등록합니다. 캡스톤 실행 시master_toolsJAR이 반드시mods/폴더에 함께 있어야 합니다.
블록이 없으면 worldgen이 조용히 실패하거나unknown block오류가 기록됩니다.
3. placed_feature — 스폰 위치 규칙
data/master_capstone/worldgen/placed_feature/ruby_ore.json
{
"feature": "master_capstone:ruby_ore",
"placement": [
{"type": "minecraft:count", "count": 6},
{"type": "minecraft:in_square"},
{"type": "minecraft:height_range", "height": {"type": "minecraft:uniform", "min_inclusive": {"absolute": -32}, "max_inclusive": {"absolute": 64}}},
{"type": "minecraft:biome"}
]
}placement 배열 순서
placement 배열은 위에서 아래 순서로 필터링됩니다. 순서가 틀리면 광물이 전혀 생성되지 않을 수 있습니다.
- count — 청크당 생성 시도 횟수 (
6회) - in_square — 청크 내 무작위 X/Z 좌표 선택
- height_range — Y 범위
-32 ~ 64내 무작위 Y 선택 - biome — 현재 바이옴이 biome_modifier가 지정한 바이옴에 속하는지 확인
ℹ️
magic_realm높이 특성 고려
master_dimension의magic_realm은 일반 오버월드와 다른 지형을 가질 수 있습니다.
Y=-32~64 범위는 일반적인 지하 광물 분포 범위입니다. 차원 지형에 맞게 조정이 필요하면 이 값을 수정합니다.
4. biome_modifier — 차원 바이옴에 주입
data/master_capstone/neoforge/biome_modifier/add_ruby_ore_to_magic_realm.json
{
"type": "neoforge:add_features",
"biomes": ["master_dimension:magic_realm"],
"features": "master_capstone:ruby_ore",
"step": "underground_ores"
}필드 설명
| 필드 | 값 | 의미 |
|---|---|---|
type | neoforge:add_features | NeoForge biome_modifier: feature 추가 |
biomes | ["master_dimension:magic_realm"] | 대상 바이옴 목록 |
features | "master_capstone:ruby_ore" | 주입할 placed_feature ID |
step | "underground_ores" | 월드젠 단계 (지하 광물) |
⚠️ biome_modifier 타겟 잘못 설정 예시
"biomes": ["minecraft:plains"] // ❌ Overworld에 광물 추가캡스톤 의도:
master_dimension차원에만 보석 광물 배치
✅ 정답:"biomes": ["master_dimension:magic_realm"]
오버월드 바이옴에 추가하면 차원 진행 루프가 깨집니다.
5. 파일 구조 전체 확인
examplemod-master-projects/capstone/src/main/resources/
└── data/
└── master_capstone/
├── worldgen/
│ ├── configured_feature/
│ │ └── ruby_ore.json ← 2단계 작성 완료
│ └── placed_feature/
│ └── ruby_ore.json ← 3단계 작성 완료
└── neoforge/
└── biome_modifier/
└── add_ruby_ore_to_magic_realm.json ← 4단계 작성 완료
이 3개 파일이 모두 있어야 월드젠이 동작합니다. 하나라도 빠지면 광물이 생성되지 않습니다.
6. pack.mcmeta 확인
examplemod-master-projects/capstone/src/main/resources/pack.mcmeta
데이터팩으로 동작하려면 pack.mcmeta가 있어야 합니다. NeoForge mod 리소스는 자동으로 데이터팩으로 처리되지만, pack_format이 올바른지 확인합니다.
{
"pack": {
"description": "Master Capstone Mod Resources",
"pack_format": 34
}
}ℹ️
pack_format34는 Minecraft 1.21.x 기준입니다. 버전이 다르면 NeoForge MDK 기본값을 따릅니다.
7. 인게임 검증 계획
실제 동작은 다음 순서로 확인합니다.
- 빌드:
examplemod-master-projects/capstone/에서./gradlew build - JAR 배치:
build/libs/master_capstone-1.0.0.jar+ 3개 마스터 모드 JAR을 모두 게임mods/폴더에 복사 - 게임 실행:
runClient또는 런처로 실행 - 차원 입장:
master_dimension의 Magic Portal을 통해magic_realm진입 - 지하 탐색: Y=64 이하로 내려가며 Ruby Ore 발견 확인
/tp @s ~ -30 ~ # Y=-30 근처로 이동
/gamemode creative # 창작 모드로 빠른 이동
/locate biome master_dimension:magic_realm # 바이옴 위치 확인 (선택)
8. 이 챕터의 완료 기준
configured_feature/ruby_ore.json:minecraft:ore타입,size=6,master_tools:ruby_ore블록 참조placed_feature/ruby_ore.json:count=6,height_range=-32~64,biome필터 포함biome_modifier/add_ruby_ore_to_magic_realm.json:master_dimension:magic_realm에만 주입master_capstone모드 로드 후magic_realm차원 지하에서 Ruby Ore 발견 가능
다음 챕터에서는 채굴한 Ruby Ore를 master_machine의 Crusher로 가공하는 레시피를 추가합니다.