Data Packs

Data Pack is a collection of files, that extends & overrides minecraft data directory. Thats the best definition you can get.

It lets you create functions, tags, advancements, recipes, predicates and more.


Every minecraft world has default data pack installed, its called vanilla, what you can confirm by doing datapack list enabled.

You can find this pack and its contents by going into .minecraft / versions / <Version you want to check> and extracting the .jar file as an archive, you will see the data and assets directories inside.


Thus, people always have several data packs installed, if they have installed at least one.

It opens topic about pack compatibility. When developing, you must always encounter other possible packs used by the end user.

Thats the reason namespaces exist!

Namespaces

They are named with latin lower case characters without spaces. Only _ and - allowed. They let you separate your content from others' content.

Namespaces should be related to the data pack name, and be unique enough not to cause any issues. For example if my data pack is about vehicles, I am going to add my nickname in front to make it unique: bubblevehicles.


Besides, there are tags, teams and scoreboards - these don't have namespaces, so it is considered a better practice to use prefixes. Usually they are short namespaces up to 4 letters + a dot in the end (in case with bubblevehicles it's buvs., so my_team would be called buvs.my_team ).