Primary Namespace
Definition
A datapack MUST have exactly one primary namespace (also known as it's pack ID).
A datapack MUST NOT define new resources in namespaces other than it's primary namespace.
A datapack MAY overwrite/include resources in other namespaces if the resource already exists, given all dependencies are fulfilled. Resources manipulated in this way have their namespace referred to as secondary namespaces of the datapack.
For example, including the block tag #minecraft:dampens_vibrations in your datapack is allowed, and would make minecraft a secondary namespace. Adding a new block tag that does not already exist in the minecraft namespace, like #minecraft:foo_bar, is not allowed.
Naming
Primary namespace names MUST fulfill the following criteria:
- Valid namespace name.
- 1-64 characters in length.
- Contain only lowercase alphanumeric characters and
-. - Not start or end with
-. - Not be
minecraftorslimecore.
Recommendations
While not strictly required, a good primary namespace name SHOULD follow the guidelines:
- 4-32 characters in length.
- Uses
-only as a "module" separator (e.g.foo-feature1andfoo-feature2). - Avoids numbers.
- Is as long/specific as reasonably possible if pack is not a library (or is not expected to be accessed frequently).
- Is easy to type but still reasonably specific if pack is a library (or is expected to accessed frequently).