Jump to content

Block ID "Crouption Helper" is EVIL


tim.vrakas

Recommended Posts

Hi all.

As you may know, if minecraft detects integer level data values for bricks when opening saves, it removes them.

 

THIS SUCKS!!

 

I have repetadly overwritten worlds before I took heed of the "backup before using" warnings. I am working on a launcher and I need your help fixing this issue. It would probably cut my time doing Skype repairs in half.

 

Forge should change it so that on world load it asks you if more than one or two blocks have irregular values and warns you about it/tells you to back it up.

 

It would mean a lot to me. Thx!

Link to comment
Share on other sites

Umm What the fuck are you talking about?

Forge does not 'remove' anything.

'integer level data values' ... what?

Honestly I think you're just being stupid and trying to load a world with mismatched block ids. And VANILLA MINECRAFT will ignore those values.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Nonono!

You misunderstand me (beacuse I am confusing).

 

If I install RedPower, play around with it, make an invention.

If I uninstall it and reopen my world, all the RedPower blocks are gone (duh). They are often replaced by wooden stairs.

But if I reinstall RedPower the blocks are still gone. This is beacuse minecraft detects the RedPower block IDs as corruption.

 

By integer level I meant block IDs that were int forms not byte forms (mod IDs) (over 256) (ignore this bit)

Link to comment
Share on other sites

Nonono!

You misunderstand me (beacuse I am confusing).

 

If I install RedPower, play around with it, make an invention.

If I uninstall it and reopen my world, all the RedPower blocks are gone (duh). They are often replaced by wooden stairs.

But if I reinstall RedPower the blocks are still gone. This is beacuse minecraft detects the RedPower block IDs as corruption.

 

By integer level I meant block IDs that were int forms not byte forms (mod IDs) (over 256) (ignore this bit)

 

Yeah, that's because vanilla removes unused block- / item-IDs from the world save. Just backup your world before you change things.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

I completely agree and I back my world up automatically every day, but often people do not. Or for example they are not "modding" per say, but just using a per-modded launcher or they had their friend do it for them. Then they accidentally screw it up and lose their world.

 

Before you say anything, I do not approve of "premodding" and they should all learn to do it themselves, but I have seen a lot of people disappointed when their mod stuff is gone.

 

I would write a mod to do this but it would be pointless because if they delete all their mods then I would be gone too.

Link to comment
Share on other sites

I completely agree and I back my world up automatically every day, but often people do not. Or for example they are not "modding" per say, but just using a per-modded launcher or they had their friend do it for them. Then they accidentally screw it up and lose their world.

 

Before you say anything, I do not approve of "premodding" and they should all learn to do it themselves, but I have seen a lot of people disappointed when their mod stuff is gone.

 

I would write a mod to do this but it would be pointless because if they delete all their mods then I would be gone too.

 

If Forge would prevent MC from removing the unused stuff from the world save, the problem would be, if the user screws up something and they delete all their mods (which would include Forge being removed, too) then those people would still loose their modded stuff.

The best way would be if Mojang would implement a warning message (similar to what Forge already provides), which notifies the User if the world has unused Block-/Item-IDs. Then they can choose, if they wanna continue to load (which would involve loosing mod-stuff) or canceling the loading and brings the user back to the world list.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

This is all vanilla mechanics. And here is the kicker, how exactly, without the block existing, are we supposed to know that the block has an associated tile entity. And how that tile entitie's data should be read/written to disc?

Basically if you're loading a world with corrupt/changed mods/whatever you're assuming the responsibility for what will happen.

 

Hell FML now even warns you and you have to click yes before entering a world if it detects that you don't have the same id mapings as you did last time. Its not a forge issue and its really not something we should/will fix. Welcome to vanilla mechanics?

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

  • 2 weeks later...

This is all vanilla mechanics. And here is the kicker, how exactly, without the block existing, are we supposed to know that the block has an associated tile entity. And how that tile entitie's data should be read/written to disc?

Basically if you're loading a world with corrupt/changed mods/whatever you're assuming the responsibility for what will happen.

 

Hell FML now even warns you and you have to click yes before entering a world if it detects that you don't have the same id mapings as you did last time. Its not a forge issue and its really not something we should/will fix. Welcome to vanilla mechanics?

 

I did some work back in the early fragmented mod era towards fixing exactly that, by using name-based dynamic mappings in the save file.  Since vanilla blocks were at their same numbers, it was compatible with vanilla.  All mods got dynamic IDs, and I added a tag to each chunk that was a compressed form of the mapping (Vanilla{1=1,2=2,3=3} Buildcraft{1=4096,2=4097}...)  Basically it didn't matter what mods you had or what order they loaded in, the world was always coherent.  When loading, if a mapping corresponded to a mod you didn't have, it cloned an airblock to that ID.

 

I could start a world (with mods), place mod blocks, save it, remove the mods, load the world - the missing mod blocks looked and acted like air - save it again, re-add the mods, re-load and the mod blocks were back where they should be.  It also worked when multiple mods claimed the same ID, by presenting blocks to them with the ID they expected, but maintaining a different ID in the in-memory storage.

 

It didn't have much overhead in runtime or storage, since the on-disk format was identical to vanilla with an extra compound tag that vanilla would ignore.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.