Jump to content

  • Curse Sites
Become a Premium Member! Help
Latest News Article

[1.6.4][SMP][Forge] Idfix and Idfix Minus: mods for resolving Id conflicts


  • Please log in to reply
469 replies to this topic

#1

AUTOMATIC_MAIDEN

Posted 07 August 2013 - 06:44 AM

*
POPULAR

There are two mods in this thread. They both attempt to resolves ID conflicts for blocks and items for mods, but in different way.

Idfix overrides Id values at the very core of Minecraft objects, in constructors, which, while effective, may have undesired effects: a mod would request to create a block with an Id of, say, 500, and created block would get Id of 4095, because Idfix overrides it to prevent a conflict. Most mods can handle this situation just fine, but some break in most unimaginable ways. Another disadvantage of Idfix is that it overrides the whole configuration system: you have the idfix.txt file with actual block/item Ids, and whatever is written in mod's configuration becomes almost irrelevant.
The mechanism of Idfix mod is taken directly from ID Resolver by ShaRose.

Idfix Minus is the new iteration of the Idfix mod. It overrides the (broken) Minecraft Forge Id resolving algorithm. With Idfix Minus, all fixes to block and item Id conflicts go directly to mods' config files. It's called Idfix Minus because after the conflicts are resolved, you can remove Idfix Minus mod, and things will keep working. The downside of Idfix Minus is that it doesn't fix conflicts for mods that don't use forge configuration module. The good news is that I have not been able to find one for 1.6.4.

Idfix Minus creates a list of all items/blocks Ids named idfixminus.txt. The existence of this global file is what allows to fix the not working Forge ID resolving algorithm. When all Ids are esolved and written into mods' configuration files, you can remove both the Idfix Minus mod and idfixminus.txt file. But, if at later point you want to add another mod to your set, you have to have both Idfix Minus mod and the idfixminus.txt present. So it's a good idea to keep the latter forever. In case idfixminus.txt is lost, you can regenerate the file by running minecraft with Idfix Minus installed: do that before adding new mods.

If you don't know which version you want, get Idfix Minus.
In any case, don't install both.

Downloads for Idfix Minus:
1.6.4: idfixminus-1.6.4-1.0.0.jar

Downloads for Idfix:
1.6.4: idfix-1.6.4-1.1.0.jar (alternative download )
1.6.2: idfix-1.6.2-1.1.0.jar

NOTE: If the extension of the file you downloaded is .jar.zip, you have to rename it to .jar to make it work

Old downloads:
(WARNING: 1.0.X versions are not compatible with 1.1.X - delete Idfix.txt if you have to upgrade).
1.6.2: idfix-1.6.2-1.0.3.jar
1.6.2: idfix-1.6.2-1.0.1.jar

Installation:
1. Install Minecraft forge.
2. Put the .jar file you downloaded into mods directory.

Video guides:
crazymitch42:
Permissions:
As long as you do not change my mod, you may use it any way you want. If you make any changes (or borrow code) and intend to distribute your derivative work, you need to make the source code for all of it available to public.
If that's not obvious from previous paragraph, you are allowed to include it into mod packs of any kind, without asking for permission.

Additionally, because of the nature of how Idfix Minus works, you are able to release your modpack without including it at all, while still benefiting from Id resolving it provides. If you use Idfix Minus to resolve Ids in your modpack, please add it to credits page, whether you include the mod itself or not.

THE FAQ

Q: How do I know I'm running Idfix?
A: ForgeModLoader-client-0.log file will have this line if you're running Idfix: [ForgeModLoader] Loaded coremod IdfixCore. If this line is missing in ForgeModLoader-client-0.log, you are not running Idfix. One possible cause it that the idfix mod file has extension .zip for some reason (I think newer firefox might be causing that) - rename it to .jar to make Forge recognize it as coremod which it is.

Q: Does Idfix work on a server?
A: Yes, this mod works both on client and server. In order for players to join the server, they must have the exact set of forge mods (with the exception of possibly some client-only mods like minimap: those can be on client and not on server) as the server is running, and the exact configuration of mods the server is running. This means, particularly, that if you're running server, you have to distribute the config directory and idfix.txt file to all players who want to join your server. The way Minecraft is right now, I don't see an easy workaround for this.
If you are creating a server, the easiest way is to set up your mods in a singleplayer game, and then copy configs to server, at least that's the way I do it.

Q: I get an error: A mod has attempted to assign BlockID XXX to the Fluid 'diesel' but this Fluid has already been linked to BlockID YYYY. Configure your mods to prevent this from happening.
A: From what I understand, this is happening because two mods are setting fluid (a special concept introduced by minecraft forge) named 'diesel' each to its own block. Forge does not want to deal with a situation like this (even though it should), and just exists with an error. This would happen even without reassigning IDs, so this is not a problem 0f Idfix.
MickyFoley has suggested an easy solution:
• Open forge.cfg
• Locate B:forceDuplicateFluidBlockCrash=true
• Set it to B:forceDuplicateFluidBlockCrash=false

Q: A game crashes in a very suspicious way, and after a long time of staring at "shutting down internal server", I find "java.lang.OutOfMemoryError: PermGen space" in game logs.
A: This is an oddity of Java. Fix it by adding -XX:MaxPermSize=128m to your JVM Arguments option of your profile in launcher.

Q: I still get block conflicts even after installing the mod.
A: (this only applies to Idfix - not Idfix Minus) Some mods don't want to play nice with an external mod changing their IDs. MrCrayfish's Furniture mod will silently ignore everything, but will use incorrect IDs when interacting with its blocks, producing very unwanted results. AE will refuse to create a block if it thinks there might be a conflict. My mod resolves conflicts when mods create blocks with conflicting IDs, but AE stops working before that. So, Idfix by itself does not have a solution for a problem like that. When you are creating a pack of mods and don't yet have a world populated with blocks, there is a way to handle this problem by letting those mods that don't play nice with Idfix claim IDs they want:
1. Delete the Idfix.txt file, delete configs directory.
2. Move all mods away from the mods directory.
3. Put mods that don't play nice (you usually can figure out what those are by examining log files) and idfix mod into the mods directory.
4. Start the game. Pray it works. If it doesn't, you're on your own (but most often it will).
5. Put all mods back into the mods directory.
6. Enjoy.
What happens is those bad mods receive IDs that they want, when launched without all other mods, and Idfix remembers which IDs those are. After this, when IDs for bad mods are stored in the idfix.txt file, you can add all other mods to the mods directory, and it's going to work.
Here's the list of mods for 1.6.2 that I know don't behave nicely:
Spoiler:

Q: Why do I have to use Idfix? I can assign all my IDs manually?
A: You don't have to. I use Idfix as a tool to make my like easier, and I released it for some people who want to try it. Repeatedly posting in this thread about how you keep assigning your IDs manually only serves to make you look like an ­.

Q: I have some other problem that is not addressed by this FAQ.
A: Make sure that you are running Idfix. See answer #1 for that. If you are, please be as descriptive as you can and make a post about your problem. I try to help when I can, but to posts that don't even attempt to describe an error, I won't even respnd.

Register or log in to remove.

#2

CaliberElit3

Posted 07 August 2013 - 07:01 AM

Thanks, saves me So much trouble, kinda prefer it over ShaRose's

#3

DemonicDaVinci
  • Location: the Philippines
  • Minecraft: DemonicDaVinci
  • Xbox:makes me sick
  • PSN:PC master race

Posted 07 August 2013 - 07:07 AM

Oh yeah. No need for .cfg's ow...

Posted Image

ED-E Approved!


#4

NeoLink
    NeoLink

    Carpenter

  • Members
  • 63 posts
  • Location: Minecraftopia
  • PSN:NeonColorzz

Posted 07 August 2013 - 12:50 PM

Really Simple. I like it.

Still kinda like ShaRoses more but I perfer both either way.
Posted Image
Makato Naegi: You've got that Wrong!  
My Answer 99% of the time...  

#5

DismalAmoeba
  • Location: Cutting tall grass to see if I can find money.
  • Minecraft: ConstantNexus
  • Xbox:Yeah...No.

Posted 07 August 2013 - 03:12 PM

What about biome, dimension, GUI, and entity conflicts? (Just naming other conflicts off the top of my head)
Posted ImagePosted Image
Hey, guys. Quote me if you want me to respond. Otherwise I'll have no idea what the hell you want with me.
Friend Code: 1263-6258-8121 (Poison)
Friend Safaris: Poison: Swalot, Whirlipede, Seviper.

#6

AUTOMATIC_MAIDEN

Posted 07 August 2013 - 03:17 PM

I'm pretty sure GUI and entity are resolved by forge. Biomes, possibly. Dimension, no, mods use dimension IDs as constants, and changing them would make things just not work.

#7

Neur0t
    Neur0t

    Tree Puncher

  • Members
  • 31 posts

Posted 07 August 2013 - 05:29 PM

Brilliant, thanks so much... Testing now!

#8

Lgjoka2002
  • Minecraft: Lgjoka2002

Posted 07 August 2013 - 05:33 PM

Awesome!

#9

sheenrox82
  • Location: In my room.
  • Minecraft: sheenrox82
  • Xbox:sheenrox82

Posted 07 August 2013 - 05:37 PM

View PostAUTOMATIC_MAIDEN, on 07 August 2013 - 03:17 PM, said:

I'm pretty sure GUI and entity are resolved by forge. Biomes, possibly. Dimension, no, mods use dimension IDs as constants, and changing them would make things just not work.
Changing the IDs manually for dimension doesn't effect anything, so why not add it to this?

Posted Image

"Nothing is impossible, it's just that you haven't figured out a way to make it work."


#10

AUTOMATIC_MAIDEN

Posted 07 August 2013 - 06:27 PM

sheenrox82:

because of code like this:

DimensionManager.registerDimension(properties.LimboDimensionID, properties.LimboProviderID);
<...>
if ((!par1World.isRemote) && (par1World.provider.dimensionId == properties.LimboDimensionID))

If my code registers the dimension under different ID, this code will break.
You might argue that you'd want dimension ID replacing anyway, just in case some mods handle it correctly.
But for me that means adding code that won't do anything useful but I will still have to maintain. So I refuse.

#11

DaCormyr
    DaCormyr

    Out of the Water

  • Members
  • 7 posts
  • Location: Currently Mexico City but I am Canadian

Posted 08 August 2013 - 01:49 AM

I believe it does not work for biomes. I had Plenty O Biomes, ExtrabiomesXL and Highlands working fine (after some manual biome ID changes): After loading and playing a world for a bit I then added Better World Generation 4 and your IDFix. Ended up manually changing IDs to get BWG4 working with the others.

#12

Paulitix
    Paulitix

    Tree Puncher

  • Members
  • 39 posts

Posted 09 August 2013 - 03:07 PM

Does this work server side? Cuz when I add the mod, I now get ID conflicts whereas I wasn't before.

#13

glaciatexiii

Posted 09 August 2013 - 04:53 PM

View PostPaulitix, on 09 August 2013 - 03:07 PM, said:

Does this work server side? Cuz when I add the mod, I now get ID conflicts whereas I wasn't before.

I want to know this too.

#14

YellowEmperor

Posted 09 August 2013 - 10:37 PM

it says block from the mod are missing

#15

CammyL
    CammyL

    Tree Puncher

  • Members
  • 26 posts

Posted 10 August 2013 - 11:00 AM

I still get errors such as The ID Set in xxxx is already used

#16

Geo_Terra
  • Location: Ontario, Canada

Posted 10 August 2013 - 06:00 PM

Question: Do you have special handling for terrain block IDs that need to be placed under 255? For instance, several of the blocks from Biomes o' Plenty MUST be assigned a value below 255.

#17

RONNOC777_is_kwl
  • Minecraft: RONNOC777

Posted 11 August 2013 - 01:34 AM

Does this work on 1.5.2?

Cause I would like to use it in my modpack, cause apparently you need 9 magic wands to make a copper block so that's kinda messed up.

#18

Minecraftpvper

Posted 11 August 2013 - 01:37 AM

I can already tell this is going to be popular

#19

YellowEmperor

Posted 11 August 2013 - 10:34 PM

dooes it work for servers?

#20

blockout22
  • Minecraft: blockout22

Posted 11 August 2013 - 10:41 PM

View PostPaulitix, on 09 August 2013 - 03:07 PM, said:

Does this work server side? Cuz when I add the mod, I now get ID conflicts whereas I wasn't before.

View PostYellowEmperor, on 11 August 2013 - 10:34 PM, said:

dooes it work for servers?

run it on the client and then just copy and paste all configs over to the server
Posted Image