Shrooblord Posted March 10, 2013 Posted March 10, 2013 --Too long/don't want to read: scroll down to the bold text for the to-the-point question.-- Dear forum, I've been playing a world with altered IDs, because my friend Marklar (or Markarthian - he has multiple names...) and I wanted to add a specific mod, forcing us to rewrite some ID data values to make that happen. That led to a chain of more and more ID changes and - I know now we should never have done that - we replaced most original IDs with new ones using an automatic ID resolver we found somewhere on the official Minecraft forum. This was all fine, until my modpack received an update and all the config files got reset to what they were supposed to say. I had been working on an adventure map for a long time by now and I found out that I could no longer access my world, because the game and the world file had conflicting ID cases. I am sound in the idea that it is better to change the world file's IDs to the official ones to prevent future problems when updating. I tried using programs like MidasGOLD and tried the Minecraft Corrupted World Hotfix. However, while I could find some of the mods' ID configs for a singleplayer world, the one for Redpower remains hidden from me. So my question for you is: Where does Redpower store the IDs used in your singleplayer worlds? I know it must be in there somewhere, but where does the mod actually save the data that tells the game what ID is used by which blocks? I'd be more than eternally grateful if you could help me, because I've put a full week of hard work into making this map - it would be such a letdown if I have now permanently lost it. Thank you very much, ~Shrooblord EDIT: PS I've managed to duplicate a clean slate of my world by generating a new world with the same seed. Is there something in MCEdit I could try doing? Remember that I wouldn't be able to simply copy over the parts of my old world into my new one; the blocks described in my old world still have the wrong IDs attached to them.
Demonbarrage Posted March 10, 2013 Posted March 10, 2013 Well. I'm waiting for a response for my thread, might as well help out you. If you do the run, %appdata%, roaming, yada yada yada, go to your .techniclauncher inside it. Now inside it, go to whichever modpack you're using. Go into your config folder inside of the modpack. You should see a folder at the top that says "redpower". Go into that and there should be "Redpower.cfg". Open with your text editor (Notepad/notepad++) and you should find your IDs. Voila!
Markarthian Posted March 11, 2013 Posted March 11, 2013 Hey Shroob! I see you didn't manage to find it... Hmmm, I'll check tomorrow to see if I can find it. If I recall correctly, the config that we found earlier didn't cover everything, right? PS People here don't like it when you sign your posts, unlike rpc.
Shrooblord Posted March 11, 2013 Author Posted March 11, 2013 Well. I'm waiting for a response for my thread, might as well help out you. If you do the run, %appdata%, roaming, yada yada yada, go to your .techniclauncher inside it. Now inside it, go to whichever modpack you're using. Go into your config folder inside of the modpack. You should see a folder at the top that says "redpower". Go into that and there should be "Redpower.cfg". Open with your text editor (Notepad/notepad++) and you should find your IDs. Voila! This is what I thought too, but the config file in there only holds up to about 50 IDs max. That can't possibly be all the IDs Redpower uses - or does it use Damage Values to indicate what machine it is, like a Frame Motor of Battery Box for example? Because then the answer is there, right in front of me. Thanks! People here don't like it when you sign your posts, unlike rpc.Well I don't sign my posts at the RPC either, but are you serious? That's a bit weird, if people 'round here don't take to kindly to friendly politeness. :boon: EDIT: When I tried using MidasGOLD, by the way, the results were horrible. Advanced Computers had been replaced by pistons, RedPower Red Alloy Wire by Wood blocks... things were messed up badly.
theprolo Posted March 11, 2013 Posted March 11, 2013 or does it use Damage Values to indicate what machine it is, like a Frame Motor of Battery Box for example? Yep, you got it in one. Most of Redpowers stuff uses Metadata(damage values) to prevent spamming the block IDs. Things like the gem blocks and ores share IDs. It's all in there, somewhere.
Shrooblord Posted March 11, 2013 Author Posted March 11, 2013 Alright then, but if I change the 'base ID' of a block, will it change all IDs with added Damage Values along with it? So say I want to translate these IDs: 1 -> 5 1:1 -> 5:1 Would a translation of 1 -> 5 accomplish that?
theprolo Posted March 11, 2013 Posted March 11, 2013 Yeah, that's how it works. They all follow the original ID.
Markarthian Posted March 11, 2013 Posted March 11, 2013 Well I don't sign my posts at the RPC either, but are you serious? That's a bit weird, if people 'round here don't take to kindly to friendly politeness. :boon: I mean, at the RPC we have sigs. People here prefer not to use them (it's actually in the rules) for your name is shown above your post. Some rules are a bit weird at first, you'll get used to it
xanthan Posted March 11, 2013 Posted March 11, 2013 We all see your name next to it so WHY would you sign it? The point of signing is so people know who you are, which is already done here by a name next to the post.
Forum Administrators KakerMix Posted March 11, 2013 Forum Administrators Posted March 11, 2013 Well I don't sign my posts at the RPC either, but are you serious? That's a bit weird, if people 'round here don't take to kindly to friendly politeness. :boon: It's a honeypot meant to show if people *really* read the rules or not. :ssh:
Shrooblord Posted March 12, 2013 Author Posted March 12, 2013 Well I get it, but generally rules on forums are mostly the same: don't spam, don't harass, and you don't get bothered by the Mods. Basically: act like a civilised human being and you'll be fine - and so will the community as a whole. Signing is something I do out of courteousness when I'm new to a forum, or when I'm asking for help. Most forums display the name above the post, so it's not really necessary anywhere to sign your posts - but I do so anyway. BUT, thanks, theprolo, I will try that then.
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 Well, I ran into a problem: I opened a new world and placed all the blocks of which I could remember placing them in my world, so I could cross-reference the IDs of the new RedPower config to what it would be in my old world. However, MCEdit shows a RedPower frame having an ID of 250:0, while the RedPower config shows that it should have an ID of 762. I wanted to look up the new IDs of the blocks so I could tell MidasGOLD to convert the old blocks to the new IDs, but now the config and the blocks in the world don't match - which ID should I use now?
Markarthian Posted March 27, 2013 Posted March 27, 2013 Well, I ran into a problem: I opened a new world and placed all the blocks of which I could remember placing them in my world, so I could cross-reference the IDs of the new RedPower config to what it would be in my old world. However, MCEdit shows a RedPower frame having an ID of 250:0, while the RedPower config shows that it should have an ID of 762. I wanted to look up the new IDs of the blocks so I could tell MidasGOLD to convert the old blocks to the new IDs, but now the config and the blocks in the world don't match - which ID should I use now? I've got an other suggestion for you, instead of using MCEdit to figure out the IDs, why not use NEI? I don't know if it dumps the metadata as well as the ID when you press dump IDs, but you can look em up in game anyway. There should be a tooltip showing the ID and metadata, else you'll need to go into the options menu and check that. Edit: that would also be your problem, as I remember MCEdit replaced redpower stuff with vanilla stuff when you tried copying, right? Because 250 is IIRC a vanilla ID.
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 The point is I can't enter the world in Minecraft, because the game crashes and wants me to resolve the IDs. If I do that, it automatically replaces all blocks with what it thinks is right, which is absolutely not. It will replace Red Alloy Wire with Sand, for example. Then I can't recover the original Red Alloy Wire. In my map, that would be disastrous - you know how long I've been working on it already, Mark. I can't have NEI dump the IDs either, because that'll just be the new IDs. And that's not the problem. I need to know the old IDs so I can figure out which IDs have to be converted into which. I did it with this new world and MCEdit, because the naming of the objects can be a little cryptic, and this way, I know exactly which block has which ID (I've labelled all placed blocks using Signs). Thanks for the suggestion, but that won't do. EDIT: But yeah, it's not the best, because a lot of blocks are also just simply not showing. If there were any way to revert my game back to the state it was in before the update, that'd be grand. But there's not.
Markarthian Posted March 27, 2013 Posted March 27, 2013 The point is I can't enter the world in Minecraft, because the game crashes and wants me to resolve the IDs. If I do that, it automatically replaces all blocks with what it thinks is right, which is absolutely not. It will replace Red Alloy Wire with Sand, for example. Then I can't recover the original Red Alloy Wire. In my map, that would be disastrous - you know how long I've been working on it already, Mark. I can't have NEI dump the IDs either, because that'll just be the new IDs. And that's not the problem. I need to know the old IDs so I can figure out which IDs have to be converted into which. I did it with this new world and MCEdit, because the naming of the objects can be a little cryptic, and this way, I know exactly which block has which ID (I've labelled all placed blocks using Signs). Thanks for the suggestion, but that won't do. Oh yeah, I completely forgot about that, my bad... In that case, try the IDs from the config file first, that seems the most logical thing to me. If that doesn't work, try the other one (although that will probably not work, as MCEdit is a bit derpy when it comes to mods). And if that doesn't work, I'll have to take a look at the redpower source code, to find out exactly what is going on.
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 What do you mean by 'try the other one'? Also, I tried something with MidasGOLD and MCEdit and it completely, utterly failed. So I'm going to try to edit the config file of the current RedPower and see if I can get back into my world. But then how will I solve my problem, if replacing the blocks in my world with the right ID gives me a bunch of crap? What happened now was that I told MidasGOLD to transform all old Red Alloy Wires into new ones, but it turned them into Transposers instead...! I've lost all sight of what is actually going on now... goddamnit. EDIT: The RedPower config is quite confusing. Not only does it not accurately name the blocks used in RP, it also doesn't show what ID RedAlloyWire uses, which is a bit unhelpful. I guess it got moved to something else's ID in an update.
Markarthian Posted March 27, 2013 Posted March 27, 2013 You've got two options: either try the redpower config or the IDs that MCEdit gives you. Do you have the latest version of MidasGold? Versions 2.4/2.5 have improved conversion and added the possibility to convert metadata. I'm not on the machine right now (I should be studying >.<), but when I am, I'll check the redpower source code.
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 Thanks a lot. I've decided to use MidasGOLD as my ID checker, since it reads the IDs it finds in the world file and then shows you them in a list. I hadn't thought of that before, but that might work. If you could please find out what RedPower calls its stuff, that would be incredibly helpful. The config lists things like 'machine' and 'appliance', but that's very vague. I'd like to know what a Deployer is listed as, please, because I know all RP machines are derivatives from it. Also, could you check what the ID is of a placed Red Alloy Wire, not one that's an Item in your inventory?
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 !!! I almost got it working! Sorry for the bump, but this is an important update on the progress. Using MidasGOLD, I was able to succesfully replace all old RedPower machines, frames and all the logic blocks. I was able to find out that the IDs MidasGOLD lists are the IDs that RedPower uses. Strangely enough, these don't even remotely look like the IDs listed in the config. This is definitely worth looking into. I looked at what the IDs were in my savefile using MCEdit and was able to change those IDs to the ones that MidasGOLD gave me. For example, MidasGOLD lists Timers as using the ID 251. In my world, they had the ID 241. In the config file, logic blocks use ID 753. By transposing my 241 -> 251, the world now works and the Timers and other logic blocks are usable. My frames are all there and even have the covers and everything they had before the corruption. Strangely enough, though, the Red Alloy Wire didn't import, but the Blue Alloy Wire did! I didn't transpose any of them, because I couldn't find them. Apparently, Red Alloy Wire uses a new ID, but Blue Alloy Wire has remained the same. EDIT: [Red Alloy Wire imported just the same. It uses the same ID as it's always done.] The only problem with this method is that RedPower keeps throwing nullpointer exceptions at game launch (not World launch!). I can resolve this by deleting the RedPower config file. I'm going to try and transpose these new blocks to the IDs as listed in RedPower config and see if that does anything. This whole situation is incredibly weird...
Markarthian Posted March 27, 2013 Posted March 27, 2013 Okay, I've gone through the core of Rp. (God, her code is so confusing...) I haven't found much yet, so far I've found this blockMicro = new BlockMicro(Config.getBlockID("blocks.base.microblock.id")); blockMicro.b("rpwire"); and this public static final int idWiring = 5; Now to find where it's used, so I can get the full picture I'll keep you posted. EDIT: !!! I almost got it working! Sorry for the bump, but this is an important update on the progress. Using MidasGOLD, I was able to succesfully replace all old RedPower machines , frames and all the logic blocks. I was able to find out that the IDs MidasGOLD lists are the IDs that RedPower uses. Strangely enough, these don't even remotely look like the IDs listed in the config. This is definitely worth looking into. I looked at what the IDs were in my savefile using MCEdit and was able to change those IDs to the ones that MidasGOLD gave me. For example, MidasGOLD lists Timers as using the ID 251. In my world, they had the ID 241. In the config file, logic blocks use ID 753. By transposing my 241 -> 251, the world now works and the Timers and other logic blocks are usable. My frames are all there and even have the covers and everything they had before the corruption. Strangely enough, though, the Red Alloy Wire didn't import, but the Blue Alloy Wire did! I didn't transpose any of them, because I couldn't find them. Apparently, Red Alloy Wire uses a new ID, but Blue Alloy Wire has remained the same. EDIT: [Red Alloy Wire imported just the same. It uses the same ID as it's always done.] The only problem with this method is that RedPower keeps throwing nullpointer exceptions at game launch (not World launch!). I can resolve this by deleting the RedPower config file. I'm going to try and transpose these new blocks to the IDs as listed in RedPower config and see if that does anything. This whole situation is incredibly weird... Is this working for every item or block for you? If so, it'd spare me a pair of sore eyes and some time :P
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 Scratch what I said about Red Alloy Wire - that one works too. Whatever the ID is, it has remained the same as before. Phew! I'm going to check everything in my world now to see what has happened during transposing. I wonder how the game can nullpointer as soon as it launches, if all I've changed is some IDs in a world file. Surely Minecraft doesn't load all world files as it launches...? EDIT: Hm. RP Repeaters got replaced by Minecraft Redstone Repeaters. Well, it's a small price to pay - all my Frame machines still work fine! :D
Markarthian Posted March 27, 2013 Posted March 27, 2013 Scratch what I said about Red Alloy Wire - that one works too. Whatever the ID is, it has remained the same as before. Phew! I'm going to check everything in my world now to see what has happened during transposing. I wonder how the game can nullpointer as soon as it launches, if all I've changed is some IDs in a world file. Surely Minecraft doesn't load all world files as it launches...? Could you post the minecraft forge client-0.log? Then we can see what's happening
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 Dar you go: http://host-a.net/u/Shrooblord/ForgeModLoader-client-0.log
Markarthian Posted March 27, 2013 Posted March 27, 2013 Dar you go: http://host-a.net/u/Shrooblord/ForgeModLoader-client-0.log What the? Invalid ore recipes? Nullpointers at (as far as I can tell) invalid locations? :S I am sorry, but I can't help you out on this one... My best bet is that is has something to do with the configs, as you've been messing with them... after you've fixed the world, try deleting the rp2 config file (after having backed it up of course).
Shrooblord Posted March 27, 2013 Author Posted March 27, 2013 To reply to your previous post, no, it won't work for all blocks, because the objects MidasGOLD lists are limited. And that's the whole point - the game crashes only if I still have a config file in there. If I delete it, it boots just fine. If I keep it, it crashes. Every time I delete it, it recreates a default one. I haven't been messing with the config file, only with the world file by replacnig blocks with their new IDs. Strange, huh?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now