minecraft-textures
v26.2.0
Published
Minecraft item texture metadata and PNG assets
Readme
Minecraft Textures
Minecraft item texture metadata and PNG assets for versions 1.12 through 26.2.
npm install minecraft-textures
Usage
Use the generated manifests for item metadata and relative PNG asset paths:
import manifestIndex from 'minecraft-textures/manifest/index.json' with { type: 'json' };
import manifest from 'minecraft-textures/manifest/26.2.json' with { type: 'json' };
const assetBaseUrl = `/minecraft-textures/${manifestIndex.packageVersion}`;
const items = manifest.items.map((item) => ({
...item,
textureUrl: `${assetBaseUrl}/${item.texture}`,
}));manifest.items is an array of { id, readable, texture }. Use texture as
a path relative to dist/textures/assets.
Serve or copy dist/textures/assets at assetBaseUrl; each manifest texture
path is relative to that directory. The same PNG files are also exported for
bundlers from minecraft-textures/assets/*.
To check available versions:
import hasVersion, { versions, latestVersion } from 'minecraft-textures';
const version = '1.21';
if (hasVersion(version)) {
const { default: manifest } = await import(
`minecraft-textures/manifest/${version}.json`,
{ with: { type: 'json' } }
);
console.log(manifest.items.length);
}
console.log(versions); // all available versions
console.log(latestVersion); // '26.2'Deprecated Base64 Compatibility
The legacy base64 JSON files are still generated for compatibility, but they
are deprecated. New consumers should use minecraft-textures/manifest/*.json
plus PNG assets from dist/textures/assets.
These imports will be removed in a future major release.
For legacy array JSON:
const { default: textures } = await import(
'minecraft-textures/dist/textures/json/1.21.json',
{ with: { type: 'json' } }
);
// textures.items is an array of { readable, id, texture }
const item = textures.items.find(
(item) => item.id === 'minecraft:diamond_sword',
);
console.log(item.readable); // "Diamond Sword"
console.log(item.id); // "minecraft:diamond_sword"
console.log(item.texture); // "data:image/png;base64,..."For legacy ID-based lookups:
const { default: textures } = await import(
'minecraft-textures/dist/textures/json/1.21.id.json',
{ with: { type: 'json' } }
);
const sword = textures.items['minecraft:diamond_sword'];
// { readable: "Diamond Sword", texture: "data:image/png;base64,..." }Update Notes
26.2.0
- Texture images now live as PNG files in
data/textures. - Version and item metadata now lives in
data/versions. - Legacy base64 JSON files are deprecated and will be removed in a future release. Use manifests and PNG assets for new code.
1.20
- The ordering of the JSON files have been updated to match the order of the items in the Search Items creative tab.
1.17
- The file names were updated to be the actual version (i.e.
1.17.tsrather than117.ts)
1.16
- For anyone using the .json files, you can use a URL like:
- https://unpkg.com/minecraft-textures/dist/textures/json/1.16.json
License
Please credit destruc7i0n (https://thedestruc7i0n.ca) if you use this. It's not required, but is appreciated.
The Minecraft item icons are owned by Mojang Studios.
This project is not affiliated with Mojang Studios.
