A universal pack format.
pack.zip
--- data/
--- assets/
--- pack.json
pack.json
{
"name": "(datapack_name)", // format: a-z0-9-_
"display": "(Datapack Name)", // format: string -- OPTIONAL
"description": "(Description, of pack!)", // format: string
"data-format": 2, // format: integer -- OPTIONAL
"assets-format": 4, // format: integer -- OPTIONAL
"logo": "(https://imageurl.com/path/image.png)", // format: direct url string to png -- OPTIONAL
"version": "(x.x.x)", // format: 'version'
"dependencies": [ // format: component array -- OPTIONAL
{
"author": "(user or org)", // format: github user/org name
"repo": "(repository)", // format: github repository name
"version": "(x.x.x)", // format: 'version'
"internal": { // format: component -- OPTIONAL
"order": 1, // format: integer -- OPTIONAL
"merge-type": "(type)" // format: 'merge_type' -- OPTIONAL
},
"disabled": false, // format: boolean -- OPTIONAL
"user_option": false // format: boolean -- OPTIONAL
}
]
}
data-format
: data
(functions, advancements, loot tables, etc) mcmeta format
asset-format:
assets` (textures, models, translations, etc) mcmeta format
version
: x=integer
|latest|depender. lastest will select the latest released version of that place. depender will select the version the parent (depender) pack is in that place. Adding -all
to latest or depender will make the whole version string be that
dependencies
=user_option
: when true is basically telling the site that when the user is installing the pack to ask if they'd like to change the state of the dependency (it being disabled or not)
=internal
: when defined (even just "internal": {}
) content will be merged with depender
==order
: determines merge order for current stack (internal/not internal), depender defaults to 0
==merge-type
: defines merge type, defaults to replace. options: replace, smart-replace (uses git like merging (automatic; can mess up)), no-replace (only new files are copied)
=disable
: Disables pack
=user_option
: Tells enviroment/installer that it can give the user a choice to change the disable status
Example:
{
"id": "mechanization",
"title": "Mechanization",
"description": "Datapack aimed at recreating popular tech mods like IC2 and Thermal Expansion, feature set ranging from an extensive power system to custom ore generation to plasma guns",
"logo": "https://i.imgur.com/bccpfPv.png",
"version": "2.0.6",
"dependancies": [
{
"repo": "ImCoolYeah/Mechanization-Resources:32x",
"internal": {
"order": 1,
"merge-type": "replace"
},
"disable": true,
"user_option": true,
"version": "$parent.$latest.$latest"
},
{
"repo": "ImCoolYeah105/Mechanization-Resources",
"internal": {
"order": 2,
"merge-type": "replace"
},
"version": "$parent.$latest.$latest"
},
{
"source": "Ensconcer/ensconcer-modules",
"version": "$latest-all"
}
],
"data-format": 2,
"assets-format": 4
}