How a pack works
The content folder
One folder per pack, and the folder name is the namespace.
plugins/RPEngine/content/
mypack/
pack.yml required
items/ *.yml
sounds/ *.yml
fonts/ *.yml
screens/ *.yml
huds/ *.yml
recipes/ *.yml
entities/ *.yml
liquids/ *.yml
assets/ → assets/mypack/ in the built pack
textures/
models/ Blockbench files
sounds/
overrides/ → assets/minecraft/, for replacing vanilla art
pack.png optionalThe rules#
The category folder decides the kind. Top-level keys in a file are ID
paths, so nesting under an items: key would say the same thing twice. One
file may declare many; the file name means nothing, and subfolders are
organisation only — items/weapons/swords.yml contributes nothing to the ID.
A folder exists only if something reads it. There is no models/ — a
placed model is a place: block on the item — no
blocks/, and no emotes/. Any other folder is warned about by name, which is
what catches item/ and Sounds/.
Errors are collected, never thrown. See reloading.
YAML or TOML#
A definition file may be .yml, .yaml or .toml, and both spellings can sit
in the same folder. They produce exactly the same thing — nothing downstream
knows which one a definition came from.
[ruby]
material = "DIAMOND"
name = "&cRuby"
[chair.place]
facing = "cardinal"
seat = 0.5Quote an ID with a / or a . in it
Both mean something to TOML, so weapons/sword has to be written
["weapons/sword"]. It is the one thing that catches people out, and the
error message says so when it happens.
pack.yml#
As short as a name:
name: My PackOr with everything it accepts:
name: My Pack
description: Swords and statues
version: 1.0.0
bundles: [main] # which built packs this content goes intobundles: is the only one that changes behaviour — see
Bundles. The rest is what a player sees on the pack
screen.
assets/ and overrides/#
Two folders, and the difference matters.
assets/ becomes assets/mypack/ in the built pack. It is namespaced, so
nothing in it can collide with another pack or with vanilla.
overrides/ becomes assets/minecraft/. It is how you replace vanilla art
— a different dirt texture, a new font, a changed sound.
overrides/ is the one place two packs can fight
Two packs both replacing assets/minecraft/textures/block/dirt.png is a real
conflict, and the later namespace alphabetically wins. Both are named in a
build warning.
It is a separate folder rather than letting a pack write assets/minecraft/
itself, so the risk is visible while somebody is authoring rather than on the
day two packs are installed together.
Blockbench files#
assets/models/ holds .bbmodel project files or .json exports. See
Items for which to use and why the project file is
the answer.