-
Bug
-
Resolution: Unresolved
-
None
-
1.20.20.20 Preview, 1.18.10.27 Beta, 1.18.10.20 Beta, 1.17.20.23 Beta, 1.17.20.22 Beta, 1.17.10, 1.17.41 Hotfix, 1.18.2 Hotfix, 1.21.60.28 Preview
-
None
-
Confirmed
-
Windows
-
784655
The issue
This is a design oversight that has many negative consequences.
Files in behavior and resource packs do not have any kind of consistent namespace support, or implementations. As a result, packs conflict with each other and vanilla, and are disorganized.
Here is a list of file types found in behavior/resource packs, and their level of namespace support:
Type | Supports namespaces? |
---|---|
Entities | ![]() |
Items | ![]() |
Loot tables | ![]() |
Recipes | ![]() |
Spawn rules | ![]() |
Dialogues | ![]() |
Trade tables | ![]() |
Functions | ![]() |
Biomes | ![]() |
Blocks | ![]() |
Features | ![]() |
Feature rules | ![]() |
Structures | ![]() |
Attachables | ![]() |
Fogs | ![]() |
Animation controllers | ![]() |
Animations | ![]() |
Models | ![]() |
Particles | ![]() |
Render controllers | ![]() |
Sounds | ![]() |
Sound events | ![]() |
Translation keys | ![]() |
Textures | ![]() |
As you can see, bedrock's support of proper resource locations is a complete mess. Practically every type of file has its own completely random ad-hoc implementation for how it should be identified.
In Java Edition, every file is referenced using its namespaced "resource location," which is derived entirely and unambiguously from its path. So a function located in data/project/functions/attack.mcfunction has the resource location project:attack. It's that simple, and is the case for everything, from images and sounds to functions and loot tables. This greatly simplifies the organization of files, and the cognitive burden of figuring out how to reference them. You don't get to decide whether you want to use a namespace or not because all of your files must go in your namespace's folder! This is the case for vanilla as well as custom packs.
Vanilla bedrock itself ignoring namespaces on many of its assets is a major issue! Identifiers without namespaces in vanilla force packmakers to choose between either (A) following vanilla's example by excluding namespaces, causing conflicts with either vanilla itself in the future, or packs that make the same choice; or (B) adding hacky faux-namespaces to as many assets as possible, creating duplicate folders and disorganized projects.
- relates to
-
MCPE-65257 Various resources do not default namespace to "minecraft" when unspecified
- Open