Home
The Pack Format for 1.20.1 and How to Use It
The numerical value for the Minecraft 1.20.1 pack format is 15. This specific version number applies to both resource packs and data packs within the Java Edition 1.20.1 update. When creating or updating content for this version, the pack_format field in the pack.mcmeta file must be set to this integer to ensure the game recognizes the pack as compatible and avoids the "Incompatible" warning in the selection menu.
While the 1.20.1 update was technically a minor hotfix following the major "Trails & Tales" 1.20 release, it maintains the same structural requirements as the initial 1.20 release regarding internal assets and data handling. Understanding why format 15 is distinct from its predecessors and successors is essential for server administrators, modders, and map makers who continue to use this version as a stable baseline for their projects.
The technical role of pack_format in 1.20.1
The pack_format acts as a versioning metadata tag. It tells the Minecraft engine how to interpret the files contained within a zipped folder or directory. If the number is lower than 15, the game assumes the pack uses older naming conventions or directory structures. If it is higher, such as 18 (used in 1.20.2), the game might expect features or NBT structures that do not yet exist in the 1.20.1 code.
Setting this correctly to 15 ensures that the game does not apply legacy remapping logic that could potentially break textures or logic within a data pack. In 1.20.1, the engine handles several major shifts in how data is stored, particularly concerning signs, advancements, and world generation predicates.
Writing the pack.mcmeta file
To implement the pack format for 1.20.1, a file named pack.mcmeta must be placed in the root directory of the pack. This file uses JSON (JavaScript Object Notation) and follows a strict syntax. A standard implementation for a 1.20.1 pack looks like the following:
{
"pack": {
"description": "Your custom project description",
"pack_format": 15
}
}
The description field accepts raw text or a JSON text component, allowing for formatted text with colors or styles. The pack_format must be 15. If this file is missing or formatted incorrectly, the pack will not appear in the in-game list.
Major technical changes in Format 15
Transitioning to format 15 involved significant changes to the internal NBT data and logic structures. If you are porting a pack from 1.19.x (which used formats 9 through 13), several areas require manual updates to function correctly in 1.20.1.
Sign NBT structure updates
One of the most disruptive changes in the 1.20 series was the introduction of editable, double-sided signs. Previously, a sign's text was stored in fields named Text1, Text2, Text3, and Text4. In format 15, these fields were removed in favor of a more organized structure that distinguishes between the front and back of the sign.
Data packs that utilize /give commands for custom signs or /setblock to place signs must now use the front_text and back_text compounds. For example, a sign's front text in 1.20.1 is defined within front_text: {messages: ["Line 1", "Line 2", "Line 3", "Line 4"]}. This change ensures compatibility with the new gameplay mechanic where players can interact with both sides of the sign object.
Advancement trigger consolidation
Format 15 streamlined several advancement triggers. Specifically, the fields in placed_block, item_used_on_block, and allay_drop_item_on_block were collapsed into a single location field. This reduces redundancy in the JSON files. If a data pack uses older advancement structures, the game will fail to parse these triggers, and the advancements will not function as intended. Developers need to verify that their criteria are updated to reflect this flattened structure.
Predicate renaming
In the realm of technical data packs, the alternative predicate was renamed to any_of. This was a move toward more descriptive naming conventions within the game's internal library. While the functionality remains identical—checking if any of the listed conditions are true—the keyword change is a breaking update. Any existing predicate files using alternative must be updated to any_of to work in 1.20.1.
Resource Pack folder structure for 1.20.1
A resource pack using format 15 follows a specific hierarchy. Failure to follow this structure results in textures or sounds not being loaded. The root should contain the assets folder and the pack.mcmeta file.
assets/minecraft/blockstates/: Defines which models are used for which block state.font/: Custom font definitions.lang/: Language files (JSON format).models/: JSON files for 3D block and item models.block/item/
particles/: Particle definitions.sounds/: Audio file pointers.textures/: The actual image files (.png).block/entity/item/gui/
In 1.20.1, it is important to note that all file names and folder names must be lowercase. Using uppercase letters is a frequent cause of packs failing to load on certain operating systems, as Minecraft's internal resource manager enforces lowercase naming for consistency across platforms.
Data Pack folder structure for 1.20.1
Data packs for 1.20.1 also require format 15. The directory structure for data packs is slightly different as it focuses on logic and world generation rather than visual assets. The root should contain a data folder and the pack.mcmeta file.
data/<namespace>/: This can be any name (e.g., your username or project name).advancements/functions/: .mcfunction files.loot_tables/predicates/recipes/tags/worldgen/: Includes biomes, structures, and noise settings.
In 1.20.1, the worldgen capabilities were quite stable, but they require the correct format number to ensure the engine uses the 1.20 biome and density function parameters. For example, biome definitions in format 15 use the has_precipitation boolean instead of the older precipitation string (e.g., "rain").
Why version 1.20.1 is a common target for packs
As of 2026, many creators still target 1.20.1 because it represents a "sweet spot" in Minecraft's technical history. It was the last version before 1.20.2 introduced significant changes to how function macros work and how networking protocols handle resource pack delivery. Furthermore, the 1.20.5 and 1.21 updates introduced massive overhauls to the item component system (replacing NBT with structured components), which made porting older packs significantly more difficult.
Consequently, maintaining a pack with format 15 ensures it remains compatible with a vast library of existing 1.20.1 mods and server plugins. For players who prefer the classic NBT-based item system over the newer component-based system, 1.20.1 is often the preferred environment.
Troubleshooting the "Incompatible" warning
If you see a red warning stating that a pack was "made for an older/newer version of Minecraft," it is usually because the pack_format value is not 15.
- If the value is lower than 15: The pack may still work, but you risk broken textures (especially on signs) or failed logic in data packs. It is generally safe to change the number to 15, but you should perform a manual audit of any sign NBT or advancement triggers.
- If the value is higher than 15: The pack was likely made for 1.20.2 (Format 18), 1.20.4 (Format 22), or later. Simply changing the number to 15 might not be enough. For instance, a pack made for 1.21 will use item components that the 1.20.1 engine cannot understand. In these cases, a significant downgrade of the code and assets is required.
To edit the format, open the pack.mcmeta file in any text editor (such as Notepad, TextEdit, or VS Code), change the integer next to pack_format to 15, and save the file. If the pack is zipped, you must re-zip the contents ensuring the pack.mcmeta is in the root of the new zip file, not buried inside a sub-folder.
Data-driven changes in 1.20.1
Version 1.20.1 continued the trend of making Minecraft more "data-driven." This means more aspects of the game can be modified via data packs without needing to write Java code (mods). Format 15 includes support for:
- Custom Damage Types: Data packs can define new types of damage, such as "magic_fire" or "void_fall," and specify how they interact with shields, armor, and resistances.
- Trim Materials and Patterns: While introduced in 1.20, the 1.20.1 data pack format allows for full customization of armor trims. You can add new patterns by adding files to
data/minecraft/trim_pattern/and new materials indata/minecraft/trim_material/. - Sign-Specific Textures: Resource packs in format 15 can more easily provide unique textures for different wood types of signs, including the newly added Cherry and Bamboo variants.
Compatibility with 1.20 and 1.20.1
It is worth noting that a pack with format 15 is perfectly compatible with both Minecraft 1.20 and 1.20.1. There was no change in the pack format between these two minor versions. The increment to format 18 only occurred with the release of 1.20.2. Therefore, if you are developing for any version in the initial 1.20 cycle (1.20 or 1.20.1), 15 is the definitive number to use.
Best practices for 1.20.1 pack development
When working with format 15, following industry standards for organization and optimization is advised.
- Zip compression: Use the "Deflate" compression method when zipping packs. Highly compressed formats like 7z or RAR are not natively supported by the Minecraft client.
- Image optimization: For resource packs, keep texture sizes in powers of two (e.g., 16x16, 32x32, 64x64). While Minecraft supports non-standard sizes, power-of-two textures are more efficient for GPU rendering.
- Namespace isolation: In data packs, always use a unique namespace rather than putting everything in the
minecraftnamespace. This prevents conflicts with other packs or the game's internal files. - Validation: Use a JSON validator to check your
pack.mcmetaand other data files. A single missing comma or bracket will cause the entire pack to fail to load, and the game log will often report this as an "error loading pack.mcmeta."
By ensuring the pack_format is set to 15 and adhering to the structural requirements of the 1.20.1 update, creators can provide a seamless experience for players on this stable and popular version of the game. Whether you are building a simple aesthetic texture pack or a complex mechanical data pack, the foundation remains the correct implementation of the 1.20.1 pack format version.