PHPackages                             pocketmine/bedrock-item-upgrade-schema - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pocketmine/bedrock-item-upgrade-schema

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

pocketmine/bedrock-item-upgrade-schema
======================================

JSON schemas for upgrading items found in older Minecraft: Bedrock world saves

1.16.0(7mo ago)8354.6k—3.9%34CC0-1.0CI passing

Since Feb 1Pushed 7mo ago4 watchersCompare

[ Source](https://github.com/pmmp/BedrockItemUpgradeSchema)[ Packagist](https://packagist.org/packages/pocketmine/bedrock-item-upgrade-schema)[ RSS](/packages/pocketmine-bedrock-item-upgrade-schema/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (19)Used By (4)

BedrockItemUpgradeSchema
========================

[](#bedrockitemupgradeschema)

JSON schemas for upgrading items found in older Minecraft: Bedrock world saves

Background
----------

[](#background)

As with blocks, Bedrock doesn't auto upgrade items (e.g. in inventories, item frames, dropped items, etc) unless the chunk they were in has been loaded and saved.

This means that any program that wants to support all Minecraft: Bedrock worlds needs to know how to upgrade this old data.

Repository contents
-------------------

[](#repository-contents)

- `id_meta_upgrade_schema` subdirectory contains a list of JSON schemas for upgrading from version to version incrementally.
- `item_legacy_id_map.json` contains a mapping of legacy numeric IDs to their string ID counterparts (up to 1.16, although numeric IDs haven't been used in vanilla world saves since 1.5)
- `1.12.0_item_id_to_block_id_map.json` contains a mapping of item IDs to corresponding block IDs for all blockitems.

Recommended methods for deserializing old data
----------------------------------------------

[](#recommended-methods-for-deserializing-old-data)

Items are rather more of a pain to handle than blocks due to the lack of any versioning. This means we can only guess at the actual version and/or apply all upgraders all the time.

### Classic items (MCPE &lt;= 1.5, PM &lt;= 1.12)

[](#classic-items-mcpe--15-pm--112)

1. start with int ID + meta
2. 1.16 string ID via `item_id_map.json` -&gt; string ID + meta
3. deserialize as medieval item

### Medieval items (MCPE 1.6 - 1.8)

[](#medieval-items-mcpe-16---18)

1. start with string ID + meta
2. if ID found in `1.12.0_item_id_to_block_id_map.json`, deserialize as blockitem; otherwise as normal item

#### Non-blockitems

[](#non-blockitems)

3. deserialize as modern item

#### Blockitems

[](#blockitems)

3. string block ID via `1.12.0_item_id_to_block_id_map.json` -&gt; string block ID + meta
4. convert to blockstate using [BedrockBlockUpgradeSchema](https://github.com/pmmp/BedrockBlockUpgradeSchema) data -&gt; blockstate NBT
5. deserialize blockstate NBT as block

### Modern items (MCPE 1.9 - present)

[](#modern-items-mcpe-19---present)

1. start with string ID + meta / blockstate NBT
2. if blockstate NBT found, deserialize as blockitem; otherwise as normal item

#### Non-blockitems

[](#non-blockitems-1)

3. current string ID via schemas provided in `id_meta_upgrade_schema/` subdirectory -&gt; current string ID + meta

#### Blockitems

[](#blockitems-1)

3. deserialize blockstate NBT as block (may require [BedrockBlockUpgradeSchema](https://github.com/pmmp/BedrockBlockUpgradeSchema) for upgrading)

###  Health Score

48

—

FairBetter than 95% of packages

Maintenance63

Regular maintenance activity

Popularity42

Moderate usage in the ecosystem

Community22

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 73.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~57 days

Recently: every ~86 days

Total

18

Last Release

228d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c8a755241617f6c78b33788a288ea7387a417410109293e3a9e3caad74720a44?d=identicon)[dktapps](/maintainers/dktapps)

![](https://www.gravatar.com/avatar/f43e76a228e4a42f099a6ac3c1dbfeadf5e94eaa77e2a70c1431fb12e753255b?d=identicon)[pmmp](/maintainers/pmmp)

---

Top Contributors

[![dktapps](https://avatars.githubusercontent.com/u/14214667?v=4)](https://github.com/dktapps "dktapps (19 commits)")[![TwistedAsylumMC](https://avatars.githubusercontent.com/u/30378179?v=4)](https://github.com/TwistedAsylumMC "TwistedAsylumMC (5 commits)")[![dries-c](https://avatars.githubusercontent.com/u/15795262?v=4)](https://github.com/dries-c "dries-c (2 commits)")

### Embed Badge

![Health badge](/badges/pocketmine-bedrock-item-upgrade-schema/health.svg)

```
[![Health](https://phpackages.com/badges/pocketmine-bedrock-item-upgrade-schema/health.svg)](https://phpackages.com/packages/pocketmine-bedrock-item-upgrade-schema)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
