데이터팩이 로드되지 않나요? 폴더 구조와 일치해야 하는 세 가지 이름
`/datapack list`에 표시되지 않는 데이터팩은 코드 문제가 아닌 경로 문제입니다. 정확한 트리, 네임스페이스 규칙, 이름이 변경된 폴더에 대해 설명합니다.
/datapack list 명령을 입력해도 아무것도 표시되지 않거나 팩이 비활성화된 것으로 나타납니다. 대부분의 경우 JSON은 정상이고 폴더 구조가 잘못된 것입니다.
트리 구조
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
세 가지 이름이 일치해야 하며, 그중 하나는 명확하지 않습니다.
- 팩 루트의
pack.mcmeta—data/옆에 있어야 하며, 그 안에 있으면 안 됩니다. data/<namespace>/— 소문자이며 공백이 없는 사용자 정의 네임스페이스입니다. 이는my_namespace:my_function의 접두사가 됩니다.- 카테고리 폴더 이름 — 변경되었으며 일반적으로 문제의 원인입니다.
폴더 이름이 단수형으로 변경됨
이로 인해 많은 팩과 튜토리얼이 작동하지 않게 되었습니다.
| 이전 | 현재 |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
복수형 이름을 사용하는 팩은 로드되지만(/datapack list에 표시됨) 아무것도 하지 않아 가장 혼란스러운 오류 모드입니다. tags/은 복수형으로 유지되었고, 그 안에 있는 tags/function/는 단수형이 되었습니다. 네, 일관성이 없습니다.
자동으로 무언가를 실행하기
두 가지 특별한 태그:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
사용자 정의 네임스페이스가 아닌 data/minecraft/에 유의하세요. 태그는 마인크래프트에 속하고, 태그가 가리키는 함수는 사용자에게 속합니다.
{ "values": ["my_namespace:setup"] }
순서대로 진단하기
/datapack list— 팩이 전혀 목록에 없으면pack.mcmeta가 없거나, 형식이 잘못되었거나, 한 단계 너무 깊이 있습니다.- 목록에 있지만 비활성화됨 —
/datapack enable "file/my_pack".file/접두사와 따옴표에 유의하세요. - 목록에 있고 활성화되었지만 작동하지 않음 — 잘못된
pack_format또는 복수형 폴더 이름. /reload를 입력하고 채팅을 확인하세요. 함수의 구문 오류는 조용히 넘어가지 않고 채팅에 표시됩니다.
압축 여부
둘 다 작동합니다. 압축된 형태는 리소스 팩과 마찬가지로 압축 파일 루트에 pack.mcmeta이 있어야 합니다. 폴더 형태는 /reload가 다시 압축할 필요 없이 편집 내용을 반영하므로 개발 중에 더 편리합니다.
서버 배치
서버에서 경로는 <world>/datapacks/이며, 여기서 <world>은 server.properties에 있는 level-name의 값입니다. 서버 루트가 아닙니다. 팩을 서버 폴더에 직접 넣는 것이 서버 측에서 가장 흔한 실수입니다.
현재 폴더 이름, 유효한 pack.mcmeta, 그리고 이미 연결된 로드 태그를 사용하여 팩을 조립한 다음, Datapack Studio를 통해 바로 사용할 수 있도록 다운로드하세요.