전리품 테이블: 풀, 롤, 그리고 항목과 함수의 차이
아무것도 드롭하지 않는 전리품 테이블은 대개 가중치나 조건이 잘못된 계층에 걸려 있습니다. 각 중첩 단계가 무엇을 제어하는지, 그리고 알아둘 만한 함수들을 정리했습니다. 확정 드롭에는 별도의 풀이 필요합니다.
전리품 테이블 JSON은 네 단계로 중첩되어 있고, 각 단계는 서로 다른 의미를 가집니다. "내 테이블이 아무것도 드롭하지 않는다"는 상황은 거의 항상 조건이 의도한 위치에서 한 단계 벗어난 곳에 붙어 있기 때문입니다.
네 단계
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
- 풀에 붙는
rolls은 그 풀이 몇 번 뽑는지를 정합니다.rolls: 3이 붙은 풀 하나는 같은 항목 목록에서 세 번 뽑습니다. - 항목에 붙는
weight은 같은 풀 안에서의 상대적 비중입니다. 가중치의 합이 특정 값이 될 필요는 없습니다. 가중치 10인 항목이 가중치 90인 항목과 겨루면 열 번에 한 번만 나옵니다. conditions은 모든 단계에 존재하지만 의미가 각각 다릅니다. 풀에 붙으면 뽑기 전체를 제어하고, 항목에 붙으면 그 항목 하나만 제어하며, 함수에 붙으면 그 수정 자체만 제어합니다.
반드시 나오게 하려면 별도의 풀이 필요합니다
가중치는 어떤 것도 보장할 수 없습니다. 풀은 한 번 뽑을 때 정확히 항목 하나만 고르기 때문입니다. 지도 하나와 무작위 전리품을 항상 함께 드롭해야 하는 테이블에는 풀 두 개가 필요합니다:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
첫 번째 풀은 항목이 하나뿐이라 항상 그것을 생성합니다. 두 번째 풀은 가중치 목록에서 2–4번 뽑습니다.
알아둘 만한 함수
| 함수 | 하는 일 |
|---|---|
set_count | 고정된 수 또는 uniform 범위 |
enchant_randomly | 무작위 마법 부여, 선택적으로 목록에서 고름 |
enchant_with_levels | N레벨의 마법 부여대처럼 — options로 좁히지 않는 한 아무 마법 부여나 가능 |
set_components | 사용자 지정 이름, 설명, 임의의 데이터 구성 요소 |
enchanted_count_increase | 마법 부여 레벨당 보너스(약탈); 개체 테이블 전용 |
set_damage | 내구도를 비율로, 예를 들어 0.5는 절반 닳은 상태 |
furnace_smelt | 몹이 불에 타서 죽을 때의 제련된 형태 |
enchant_with_levels와 enchant_randomly은 서로 바꿔 쓸 수 없습니다. 전자는 마법 부여대를 모방하며 레벨 비용을 따르고, 후자는 임의로 골라서 게임이 절대 생성하지 않을 조합을 만들어낼 수 있습니다.
사람들이 자주 찾는 조건
random_chance— 단순 확률random_chance_with_enchanted_bonus— 약탈을 반영하는 현대적인 확률killed_by_player— 낙사로 죽었을 때 희귀 드롭이 절대 나오지 않는 이유entity_properties— 희생자의 유형, 상태, 장비 확인match_tool— 블록 테이블용으로 사용된 도구 확인
월드를 다시 만들지 않고 테스트하기
/loot give @s loot my_pack:chests/treasure
테이블을 인벤토리에 바로 넣어줍니다. /loot spawn, /loot insert <pos>, /loot replace은 나머지 배치 방식을 다룹니다. 상자를 놓고 다시 불러오는 것보다 훨씬 빠르며, 가중치 분포를 확인하는 유일하게 제정신인 방법입니다.
고급 전리품 테이블 빌더에서 함수와 조건을 올바른 단계에 붙여 다중 풀 테이블을 만들어 보세요.