"Let me explain this.
IDs are NOT freed when you remove a mod from a world. They are preserved for when you re-add the mod.
Somehow your world is setting a block to 11,000
The max block ID is is 4096.
You have a lot of ID mismatches in your world.
You may need to find a way to manually fix the world, it looks like it's fubared."
That quote was not in response to me but the comment relates directly to my issue.
I do have a lot of mods installed. I have removed many mods. I understand that these things are not wise but I would very much like to keep my existing world. The world was started in MC 1.7.10 so my only issue is that the ID map is cluttered with blocks and items from removed mods. This results in a problem every time I attempt to update a mod - for example Botania (note that this is NOT a problem with Botania, nor with any of the other mods I've tried to update that give me this issue).
Even that very small change in the Botania update results in:
[00:29:30] [Server thread/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.RuntimeException: Invalid id 9598 - maximum id range exceeded.
[00:29:30] [Server thread/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:371)
This error is directly preceded by a heap of block and item ID mismatch messages, ranging from:
[00:29:30] [Server thread/INFO] [FML/]: Injecting existing block and item data into this server instance
[00:29:30] [Server thread/DEBUG] [FML/]: Registry consistency check successful
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed block id mismatch harvestcraft:pamcandleDeco2: 2272 (init) -> 2275 (map).
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed block id mismatch harvestcraft:pamcandleDeco3: 2273 (init) -> 2276 (map).
..all the way to:
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed item id mismatch AWWayofTime:blockCrystalBelljar: 1061 (init) -> 1082 (map).
[00:29:30] [Server thread/INFO] [FML/]: Injecting new block and item data into this server instance.
By rolling back to the pre-existing version of Botania, I'm able to successfully load a backup of my world, avoiding the ID mismatches, however this situation is far from ideal. If any one of my mods has a game-breaking bug, I'll not be able to update to fix it.
Is there a way to manually "fix" my ID map (using MCedit or any kind of editor) at all? In other words, can I manually "free" the IDs reserved by mods that I've long since uninstalled?
If there is not, my only real alternative is to abandon this world and start again. My whole objective when I started this world was to build a mod pack, but I kind of became attached to the world the longer I spent playing it. It would be a shame to lose it all.
This might sound like a dumb question, but can I distribute this as part of a modpack?
I'm so close to the ID limit that even updating all the mods overflows the block ID mapping.
I have players with older worlds, and a lot of ghost ids, they can't update even though some mods have been removed since their world has been created.
It's not a new modpack, it's actually a somewhat old modpack. I'm very close to the 4096 block limit. I've added and removed mods one too many times. Even when removing mods to make the new mods work, old worlds still get rendered useless due to the "ghost ids" as I have been calling them. I've had people stuck using ancient versions of my pack because they can't update without corrupting their worlds entirely. Your mod solves this problem quite cleanly actually, I've been running a lot of tests.
I'll start by quoting Lex Manos from here.
"Let me explain this.
IDs are NOT freed when you remove a mod from a world. They are preserved for when you re-add the mod.
Somehow your world is setting a block to 11,000
The max block ID is is 4096.
You have a lot of ID mismatches in your world.
You may need to find a way to manually fix the world, it looks like it's fubared."
That quote was not in response to me but the comment relates directly to my issue.
I do have a lot of mods installed. I have removed many mods. I understand that these things are not wise but I would very much like to keep my existing world. The world was started in MC 1.7.10 so my only issue is that the ID map is cluttered with blocks and items from removed mods. This results in a problem every time I attempt to update a mod - for example Botania (note that this is NOT a problem with Botania, nor with any of the other mods I've tried to update that give me this issue).
Even that very small change in the Botania update results in:
[00:29:30] [Server thread/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.RuntimeException: Invalid id 9598 - maximum id range exceeded.
[00:29:30] [Server thread/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:371)
This error is directly preceded by a heap of block and item ID mismatch messages, ranging from:
[00:29:30] [Server thread/INFO] [FML/]: Injecting existing block and item data into this server instance
[00:29:30] [Server thread/DEBUG] [FML/]: Registry consistency check successful
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed block id mismatch harvestcraft:pamcandleDeco2: 2272 (init) -> 2275 (map).
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed block id mismatch harvestcraft:pamcandleDeco3: 2273 (init) -> 2276 (map).
..all the way to:
[00:29:30] [Server thread/DEBUG] [FML/]: Fixed item id mismatch AWWayofTime:blockCrystalBelljar: 1061 (init) -> 1082 (map).
[00:29:30] [Server thread/INFO] [FML/]: Injecting new block and item data into this server instance.
By rolling back to the pre-existing version of Botania, I'm able to successfully load a backup of my world, avoiding the ID mismatches, however this situation is far from ideal. If any one of my mods has a game-breaking bug, I'll not be able to update to fix it.
Is there a way to manually "fix" my ID map (using MCedit or any kind of editor) at all? In other words, can I manually "free" the IDs reserved by mods that I've long since uninstalled?
If there is not, my only real alternative is to abandon this world and start again. My whole objective when I started this world was to build a mod pack, but I kind of became attached to the world the longer I spent playing it. It would be a shame to lose it all.
I guess you tried updating Forge, right ?
I made a simple mod that might be able to help.
Manual backup is highly recommended. There is one config option to force the cleaning of missing ids, which might help a bit more.
This might sound like a dumb question, but can I distribute this as part of a modpack?
I'm so close to the ID limit that even updating all the mods overflows the block ID mapping.
I have players with older worlds, and a lot of ghost ids, they can't update even though some mods have been removed since their world has been created.
Sure. But please don't distribute for new modpack. It would be useless [b]and[/b] dangerous.
This is a "one shot" mod, too. No need to keep it forever installed.
Don't blame me if important block/item disappear.
Manual backup is highly[/b] recommended.
It's not a new modpack, it's actually a somewhat old modpack. I'm very close to the 4096 block limit. I've added and removed mods one too many times. Even when removing mods to make the new mods work, old worlds still get rendered useless due to the "ghost ids" as I have been calling them. I've had people stuck using ancient versions of my pack because they can't update without corrupting their worlds entirely. Your mod solves this problem quite cleanly actually, I've been running a lot of tests.
an update without your mod:
an update with your mod: