Numerical IDs (Legacy Worlds)
RemapIDs supports pre-1.13 numerical block and item IDs as source values. This makes it easier to define remaps when migrating old worlds from Minecraft 1.12.2 or earlier to modern versions.
Background
Before the 1.13 "Flattening" update, Minecraft used numerical IDs for blocks and items. Stone was 1, wool was 35, and different wool colors were distinguished by metadata values (e.g., 35:14 for red wool). After the Flattening, all blocks and items use namespaced string IDs like minecraft:red_wool.
RemapIDs includes a built-in flattening table that maps these old numerical IDs to their modern equivalents, so you don't have to look them up manually.
Syntax
Use a plain number or number:metadata as the source value:
| Format | Example | Resolves To |
|---|---|---|
"id" | "1" | minecraft:stone |
"id:metadata" | "1:3" | minecraft:diorite |
"id" | "35" | minecraft:white_wool |
"id:metadata" | "35:14" | minecraft:red_wool |
Numerical IDs are only supported as source values. The target must always be a full namespaced ID (e.g., "minecraft:stone").
Examples
Remap a single block by numerical ID
{
"remaps": [
{
"source": "1:3",
"target": "somemod:special_stone",
"types": ["block"]
}
]
}
This resolves 1:3 (diorite) to minecraft:diorite, then remaps minecraft:diorite to somemod:special_stone.
Migrate old wool colors
{
"remaps": [
{
"source": "35:14",
"target": "decormod:red_fabric",
"types": ["block", "item"]
},
{
"source": "35:11",
"target": "decormod:blue_fabric",
"types": ["block", "item"]
}
]
}
Item-only numerical IDs
Some numerical IDs are item-specific. Use the types filter to target the correct registry:
{
"remaps": [
{
"source": "263:1",
"target": "somemod:refined_coal",
"types": ["item"]
}
]
}
This resolves 263:1 (charcoal) and remaps it.
How It Works
- When RemapIDs parses your config, it detects sources that are pure numbers (
35) or number:metadata pairs (35:14) - It looks up the numerical ID in the built-in flattening table to find the modern string ID
- The resolved string ID replaces the numerical source, and processing continues normally
- If the numerical ID isn't in the table (e.g., a modded block's old numerical ID), a warning is logged and the entry is skipped
Type Resolution
When looking up a numerical ID, RemapIDs uses the types field to decide which table to check:
- If
typesincludesblock— checks the blocks table - If
typesincludesitem— checks the items table - If
typesis empty or includes both — checks blocks first, then items
For best results, specify types when using numerical IDs. This avoids ambiguity when a numerical ID exists in both the blocks and items tables.
Base IDs vs Metadata Variants
A numerical ID without metadata (e.g., "35") resolves to the base variant (metadata 0). For wool, "35" resolves to minecraft:white_wool.
To target a specific variant, include the metadata: "35:14" resolves to minecraft:red_wool.
Coverage
The built-in flattening table covers all vanilla Minecraft blocks (IDs 0-255) and items (IDs 256+), including all metadata variants for blocks like stone types, wood types, wool/terracotta/glass/concrete colors, flowers, slabs, and more.
Custom Numerical IDs (Modded Content)
Modded blocks and items from 1.12.2 also had numerical IDs, assigned dynamically by Forge at runtime. These IDs are not included in the built-in table because they varied per world and modpack.
To support modded numerical IDs, create a file at config/remapids/numerical_ids.json with the same format as the built-in table:
{
"blocks": {
"500": "oldmod:custom_ore",
"500:1": "oldmod:custom_ore_nether",
"501": "oldmod:machine_block"
},
"items": {
"5000": "oldmod:wrench",
"5001": "oldmod:battery",
"5001:1": "oldmod:battery_charged"
}
}
Custom entries are merged on top of the built-in vanilla table. If a custom entry uses the same key as a built-in one, the custom entry takes precedence.
Finding old modded numerical IDs
In Forge 1.12.2, numerical IDs were stored in the world save. You can find them by:
- Opening your old 1.12.2 world's
level.datwith an NBT editor (like NBTExplorer) - Looking under
FML>Registries>minecraft:blocks(orminecraft:items) >ids - Each entry maps a namespaced string ID to its numerical ID
Use those numerical IDs as keys in your numerical_ids.json file, with the old mod's namespaced ID as the value. Then use the standard remap config to redirect those namespaced IDs to their modern replacements.
You only need numerical_ids.json if you want to reference modded blocks/items by their old numerical IDs in your remap configs. If you already know the old mod's namespaced string IDs, you can use those directly in the remap config without this file.