Welcome, Guest. Please login or register.

Author Topic: Resolving ID Block Conflicts for Dummies  (Read 76279 times)

0 Members and 1 Guest are viewing this topic.

Offline ShneekeyTheLost

  • Tree Puncher
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 30
  • Karma: +0/-0
  • Lost again...
    • View Profile
Resolving ID Block Conflicts for Dummies
« on: July 31, 2012, 08:47:54 PM »
Resolving ID Block Conflicts for Dummies
A reference guide for the rest of us

Okay, one of the biggest problems left for the average user wanting to mod, now that Forge has taken care of most of the problems and MultiMC has solved the rest of them, has been IDBlock Resolution. Enough so that one of the most frequently asked headaches requests is an ID Block Resolver.

This is a guide written specifically for those users who have ID Block Conflict errors, and want to know how to prevent them.

This guide assumes you know absolutely nothing about Java, Coding, or much of anything else.

This guide assumes you've already legitimately purchased a copy of Minecraft from Mojang.

This guide is designed to help a first time modder set things up.You *WILL* need to start over with a new world, because this WILL corrupt old save files. Then again, any sort of ID conflict resolution will, so you're hosed anyway.

This guide is primarily for SSP, since most servers will give you the config files with ID blocks already resolved, and matching the server's ID blocks.

 --DO NOT modify the block ID's for any config files you have been given to use to play on a server. If you have ID block conflicts in config files given to you by a server admin, contact that server admin for tech support.--

This guide assumes that 1) you don't have more than thirty six different mods (addon mods don't count) that have id blocks, and that 2) each mod (and any addon mods to it, combined) does not have more than 100 ID blocks defined. If a mod has more than 100 ID blocks defined, assign it two numbers.

Now then, one of the most commonly found problems in a new modder is they wanted to put together several mods they saw their friends use (for example: IC2, BC, Forestry, and Redpower2), then get an error that includes the line that says something like this:

[Mod] is trying to use ID block [number] but [Other Mod] is already using it

Here's what you can do about it:

* First off, download and install MultiMC. This step isn't absolutely necessary, per se, but it makes the process of installing mods much more user friendly.

* Second off, download the recommended build of Forge from this very forum.

* Run MultiMC. Make a new instance. Right click the instance icons, and select Edit Mods from the menu.

* Under the minecraft.jar tab, click 'add mod' and include the version of Forge you just downloaded.

* Click on Okay, and run the instance. Get to the Minecraft starting page, then quit. This step isn't exactly necessary anymore, but I still include it to make sure you got Forge working properly.

  -If you don't use MultiMC, then you'll need to open up .minecraft/bin, open up the minecraft.jar file, remove the META-INF folder, then drag and drop Forge into the .jar file, then run it to get your mods folder generated-

* Download all the zip and jar files for the various mods you want to play around with from their various creators. You may thank them for all of their hard work by using ad.fly links to give them a small monetary compensation with no expense on your part.

  -IMPORTANT- You are wanting the 'Client' version of these mods. The 'server' version is for running a multiplayer server in the 'back end', and is not needed even when playing ON a server as a user.

* Right click the instance icon in MultiMC, select  minecraft/mods tab, then use Add Mod to add all of the mods you want to use.

  -If you don't use MultiMC, then drag and drop the various .zip and .jar files you downloaded and drop them in the mods folder, or otherwise follow the installation instructions the mod authors give you-

 -NOTE: This assumes that all of the mods you want to use are ones that goes straight into the mods folder. Some mods, like Optifine, require being put into the .jar file. In this instance you add them like you did Forge, but you make SURE that they appear on the list BELOW Forge. Check mod documentation in the mod's thread for installation instructions. I would be careful about any mod which asks to be put in the .jar, particularly if it is from a source you don't necessarily trust.-

* Run the instance again. Yes, you're going to get the error message, but you need to do it in order to generate the config files you need to edit. Usually, MultiMC does this when installing the mods, but I like to make sure that everything is generated.

* Right click the instance icon in MultiMC, then View Folder. In your .minecraft folder is a folder called Config. There may be other mod-related folders as well that we will need to go into (for example, Redpower and Buildcraft have their own mod folders in the .minecraft folder that have config files).

 -Without MultiMC, just navigate to the .minecraft folder that should be quite familiar to you by now, and continue with the instructions-

Now then, here comes the part where we apply logic to the process. Forge comes with the 4096 fix as a part of its code. What this means to you is that we have thousands of ID blocks available to us. We're going to use this to our advantage.

Now then, Vanilla Minecraft uses ID blocks below 400. Since I would rather not bother you with skipping around, and ranges within this area, we're just going to skip it entirely. We will be working with ID blocks 400+.

Go through your list of mods, either on a sheet of paper or something like Notepad++. This isn't going to be used as code, these are just notes to keep everything straight. Assign them sequential numbers, starting with 4. This number you will be assigning them will be the hundreds digit of the ID blocks we will be using on the mod. Thus, if you pick Industrialcraft to be number 4, then the ID blocks you are reserving for Industrialcraft's exclusive use will be 400-499.

This may seem to be a bit inefficient, however it's not like we're going to run out of ID blocks any time soon, and this flat guarantees that your mod ID blocks won't conflict, since I am not aware of any mod which adds over 100 ID blocks. If you do encounter a mod with more than 100 ID blocks, you will need to assign that mod two numbers.

Not all mods have ID blocks. Particularly if you are working with addon mods (for example, Logistics Pipes for Buildcraft), you may end up having no ID blocks to add. In this case, reassign that number to someone else. I would also group addon mods together with the 'core' mod (for example, IC2 and Advanced Machines), and start assigning numbers to the addon mod ID blocks with the same hundreds digit as the core mod.

So how do I do that, exactly? Allow me to show you:

* In the /.minecraft/config folder, you'll find a bunch of files that end in .cfg. These are written in a form of code, and may be confusing for the first-time user, but what we have to do is very limited and easy to find.

  -Also, a word of warning: In your config folder, there's going to be a bunch of files named 'mod_xxx.cfg'. Ignore these. They are needed, but they are not what you need. So you will want to edit, for example, IC2.cfg, but not mod_IC2.cfg. You should also leave alone anything ending in .cfg~ since they are also not what you want.-

* You'll need to look for the section where the mod author put his block ID's. Usually, this is very easy to find. If it isn't immediately visible, do a search for 'block {', and you'll find it.

* You'll then see a list of things that look like xxx = ### where xxx is the name of the blockID and ### is the ID Number.

* Start off with the very first one. Change the ### to x00 where x is the number you assigned them (for example, if the mod was assigned the number 4, you change it to 400. If you assigned it as 10, then it would be changed to 1000).

* All we are going to do is change these numbers within the block id category, going in numerical order (so 400, 401, 402...) until you have assigned all of the block ID's.

* Save it and exit.

* Rinse, wash, and repeat with your other mods.

  -A word of warning about Redpower's .cfg. Some users may be a bit confused, because Elloram uses a bit more compact code which is a bit less clear about where the end of the block ID's are, simply using nested {} signs to indicate where it ends. It ends when you find a } which is right up on the left margin of the page, with no spaces. Usually, the only thing above it is a } which is indented to the right. Other mods may do something similar. But, by the restrictions of the code, it has to start with 'Block {' and has to end in a line that just has '}'.-

* Don't forget that Buildcraft puts its .cfg file in the Buildcraft folder in .minecraft and Redpower likewise puts the .cfg file in its own folder as well. Other mods may also do this, so if you see a folder in your .minecraft folder with a name of a mod, odds are you'll need to check it out.

Once you are sure that all of your .cfg files have been edited, and that there's no possible way that any ID blocks are on the same number... run your instance again. It should run just fine.

Once you feel comfortable editing ID block numbers, you may go back, if you wish, and 'compact' them a bit further. Just remember to keep some gaps in case the mods come out with new versions that have new and shinier toys that have ID Blocks.

Congratulations, the last hurdle which stops 90% of the people interested in mods from using them has been covered! Have fun enjoying mods!

*This post was moved from the wrong forum to this one. If the Admins wish to move this to the Support and Bugs forum and sticky it as a preemptive answer about ID block resolution errors, they are free to do so.*
« Last Edit: August 01, 2012, 05:45:41 PM by ShneekeyTheLost »

Offline OvermindDL1

  • Administrator
  • World Shaper
  • *****
  • Thank You
  • -Given: 18
  • -Receive: 107
  • Posts: 1316
  • Karma: +302/-17
    • View Profile
    • OvermindDL1's Empty Main Server
Re: Resolving ID Block Conflicts for Dummies
« Reply #1 on: August 01, 2012, 05:21:40 AM »
Since you are focusing mostly on SP, have you looked at ID Resolver?

Offline atrain99

  • Forge Modder
  • World Shaper
  • ***
  • Thank You
  • -Given: 48
  • -Receive: 51
  • Posts: 1192
  • Karma: +71/-4
  • Gender: Male
  • Gypsy Magic!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #2 on: August 01, 2012, 12:58:57 PM »
Since you are focusing mostly on SP, have you looked at ID Resolver?
Or even providing a second tutorial that's not MultiMC? (Even though MMC is awesome!)
So, what would happen if I did push that shiny red button over there? ... Really? ... Can I try it? ... Damn.

Offline ShneekeyTheLost

  • Tree Puncher
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 30
  • Karma: +0/-0
  • Lost again...
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #3 on: August 01, 2012, 05:40:15 PM »
Since you are focusing mostly on SP, have you looked at ID Resolver?
Or even providing a second tutorial that's not MultiMC? (Even though MMC is awesome!)

Good questions, both of them.

I was trying to write an idiot user proof friendly guide which anyone capable of installing minecraft would be able to follow and use. The most user friendly method of working with mods is MultiMC, because you don't have to worry about META-INF, or any of a dozen other problems. Heck, it's even more user friendly than MagicLauncher, which I used until I could update my OS to Precise for the Mono update.The flexibility, versatility, and utility of the program is such that I feel that anyone new to modding will find it to be extremely useful.

In general, if they are new to modding, then MultiMC will give them the user friendliness of something like Technic, but the flexibility of choosing precisely which mods they want. And, yanno, not supporting Technic (although they have at least made an effort to correct certain behaviour patterns that earned them their reputation for mod-stealing). If they are familiar enough with modding already, they probably already know how to resolve ID blocks, and thus not the target of this tutorial.

I can, however, put in a section 'If you don't have/want/use MultiMC, resolving the ID block conflicts is very similar. Just go into your .minecraft folder and manually edit them as follows'. In fact, I think I will. Thanks for the idea.

I'm at least familiar with ID Resolver, in fact I was in the DW20 IRC last night when the mod author found out Technic was including it and one other mod she developed without permission. Fortunately, IceWolf was very courteous and polite, and apologized profusely, and now does have permission, and appropriate credit given.

I've heard some horror stories about IDResolver breaking a lot of things, although it was a while back, which kind of discouraged me from testing it. Doing some reading, I've found that most of those horror stories were fixed in release 1.2. I'll play around with it and see if it does what I think it does, in which case I'll just suggest this. In fact, I might write up a new tutorial 'Modding for Dummies', which pretty much says "Pay Mojang for your copy of Minecraft. Download and install MultiMC. Put in Forge. Put in mods. Run IDResolver. Play with mods", similarly aimed primarily at new modders.

My whole goal with this tutorial is to reduce new modders' dependency on modpacks.

I also had an idea for making a mod, but it's probably too ambitious a project to someone as new to playing with Java as I am. New terrain structure generation, fractal structure creation, new mobs which only spawn in said structures, new items which provide effects by being in the hot bar... and the easy stuff, making new blocks... well, there's  only one new block in the whole mod, and even that I try to make too complicated by using damage values to color shift it. No new armor or ores. Kinda backwards from where I should be starting out. I think I'll just play around with Java for now until I get more comfortable with it. Fortunately, Eclipse IDE comes in the Ubuntu Software Center, and I already picked up the JDK, so it won't require a financial outlay.

Offline Zeerow0406

  • Tree Puncher
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1
  • Karma: +0/-0
  • I am new!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #4 on: August 28, 2012, 02:11:48 AM »
Hi. Thank you for this tutorial, I tried to resolve block ID's like this once before, but ended up making more conflicts haha. So I retried using your method (associating each mod with a different hundreds value) and it worked! But on the downside, it has messed up the textures of the mod's blocks which I had reassigned a value, so now that it shows 1 face of the block when in my inventory and hotbar. Did I miss something? Or is there a way I can fix it again? Thank you again for this tutorial and for any answers.

Offline infinus5

  • Tree Puncher
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: +0/-0
  • I am new!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #5 on: November 29, 2012, 04:47:43 AM »
thanks for this it really helpped me figure out how to change ids that have been plaguing me for ages !

Offline infinus5

  • Tree Puncher
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: +0/-0
  • I am new!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #6 on: December 17, 2012, 12:24:15 AM »
ok i am having an issue installing the following mods on the latest forge build for 1.4.5

build craft
Terrafirma craft
rail craft
train craft
forestry

i ve changed all the block ID's according to your recommendations but i get an odd block conflict
heres the error log

Hidden



      Minecraft has crashed!     
      ----------------------     

Minecraft has stopped running because it encountered a problem; Failed to start game

A full error report has been saved to C:\Users\Ian Douglas\AppData\Roaming\.minecraft\crash-reports\crash-2012-12-16_15.53.51-client.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash :(



--- BEGIN ERROR REPORT b03ae02a --------
Full report at:
C:\Users\Ian Douglas\AppData\Roaming\.minecraft\crash-reports\crash-2012-12-16_15.53.51-client.txt
Please show that file to Mojang, NOT just this screen!

Generated 16/12/12 3:53 PM

-- System Details --
Details:
   Minecraft Version: 1.4.5
   Operating System: Windows 7 (amd64) version 6.1
   Java Version: 1.7.0_07, Oracle Corporation
   Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
   Memory: 456543440 bytes (435 MB) / 599851008 bytes (572 MB) up to 954466304 bytes (910 MB)
   JVM Flags: 2 total; -Xms512m -Xmx1024m
   AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
   Suspicious classes: FML and Forge are installed
   IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
   FML: MCP v7.23 FML v4.5.62.495 Minecraft Forge 6.4.2.445 17 mods loaded, 17 mods active
   mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized
   FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized
   Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized
   mod_CodeChickenCore [CodeChicken Core] (coremods) Unloaded->Constructed->Pre-initialized
   mod_NotEnoughItems [Not Enough Items] (coremods) Unloaded->Constructed->Pre-initialized
   mod_ReiMinimap [mod_ReiMinimap] ([1.4.5]ReiMinimap_v3.2_05.zip) Unloaded->Constructed->Pre-initialized
   BuildCraft|Core [BuildCraft] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Pre-initialized
   BuildCraft|Builders [BC Builders] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Errored
   BuildCraft|Energy [BC Energy] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Pre-initialized
   BuildCraft|Factory [BC Factory] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Pre-initialized
   BuildCraft|Transport [BC Transport] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Pre-initialized
   BuildCraft|Silicon [BC Silicon] (buildcraft-A-3.2.2.jar) Unloaded->Constructed->Pre-initialized
   Forestry [Forestry for Minecraft] (forestry-A-1.6.2.3.jar) Unloaded->Constructed->Pre-initialized
   IC2 [IndustrialCraft 2] (industrialcraft-2_1.109.113-lf.jar) Unloaded->Constructed->Pre-initialized
   Railcraft [Railcraft] (Railcraft_1.4.5b-6.10.0.0.zip) Unloaded->Constructed->Pre-initialized
   TerraFirmaCraft [TerraFirmaCraft] (TFCraft-Universal-Core-B2-Build72.zip) Unloaded->Constructed->Pre-initialized
   TC [Traincraft] (Traincraft-3.1.12_014.jar) Unloaded->Constructed->Pre-initialized
   LWJGL: 2.4.2
   OpenGL: GeForce GT 640/PCIe/SSE2 GL version 4.2.0, NVIDIA Corporation
   Is Modded: Definitely; Client brand changed to 'forge,fml'
   Type: Client (map_client.txt)
   Texture Pack: Default
   Profiler Position: N/A (disabled)
   Vec3 Pool Size: ~~ERROR~~ NullPointerException: null

java.lang.IllegalArgumentException: Slot 400 is already occupied by amj@1aaa4a39 when adding buildcraft.builders.BlockArchitect@21eef1dc
   at amj.<init>(Block.java:323)
   at aju.<init>(BlockContainer.java:11)
   at buildcraft.builders.BlockArchitect.<init>(BlockArchitect.java:43)
   at buildcraft.BuildCraftBuilders.initialize(BuildCraftBuilders.java:260)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:440)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
   at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
   at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
   at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
   at com.google.common.eventbus.EventBus.post(EventBus.java:268)
   at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:140)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
   at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
   at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
   at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
   at com.google.common.eventbus.EventBus.post(EventBus.java:268)
   at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:83)
   at cpw.mods.fml.common.Loader.loadMods(Loader.java:480)
   at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:161)
   at net.minecraft.client.Minecraft.a(Minecraft.java:412)
   at net.minecraft.client.Minecraft.run(Minecraft.java:746)
   at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 2da2ccd8 ----------


every time i try to change the ID's in the 400 range i get this error
i can' t go higher as it effects world gen and anything below causes the same error as above

any help ?

Offline rich1051414

  • Forge Modder
  • Creeper Killer
  • ***
  • Thank You
  • -Given: 1
  • -Receive: 26
  • Posts: 147
  • Karma: +35/-0
  • Gender: Male
  • Creator of the Paint Mod and Damage Indicators Mod
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #7 on: December 19, 2012, 01:11:03 PM »
On correctly coded mods, deleting the config of the mod throwing the conflict should fix the problem, if it doesn't, add a z to the beginning of the mod's zip file to force it to pre-init last, then delete the config, and it should automatically reassign.

Another easy way to resolve conflicts if you don't plan on modifying configs often is to open forge.cfg and set B:enableGlobalConfig=true.

This will combine all the configs into a single global.cfg, and the blocks should be combined all in one area, the block category.

This however, will make modifying other config options a bit harder, as everything will now merge into the global.cfg file.

Also, if using mods with high customization, it might make everything very cluttered, but it is an option to help see where the conflict is happening.

Offline LexManos

  • Forge Code God
  • Reality Controller
  • *****
  • Thank You
  • -Given: 1
  • -Receive: 633
  • Posts: 5150
  • Karma: +1063/-239
  • I am new!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #8 on: December 19, 2012, 10:58:05 PM »
Global config will not combine all the categories
It just squashes all the files together.
It shouldnt really ever be used.
If you don't know how to run a java file you're a moron and should watch this: http://www.youtube.com/watch?v=j6uMF-PjGT4
BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn
Patreon: http://www.patreon.com/lexmanos (Because, people asked 0.o)

Offline L0neGamer

  • Tree Puncher
  • *
  • Thank You
  • -Given: 1
  • -Receive: 0
  • Posts: 1
  • Karma: +0/-0
  • I am new!
    • View Profile
Re: Resolving ID Block Conflicts for Dummies
« Reply #9 on: April 20, 2013, 12:19:52 PM »
So you manually go through every single mod, and change each and every one of those IDs?
i have ~50 mods....  :-\

 

Close
Please register or Login to join in on the community!