Jump to content

Save Converter


rienafairefr
 Share

Recommended Posts

Have you ever grown tired of losing all your stuff when updating mod versions, updating your minecraft, installing new versions of mods, and then finding out that IDs have been remapped, or ids have been unexpectedly changed and messed up your saves and whatnot ? You don't want to go into countless config files just to find that small number and hopefully change it to something that'll *maybe* work ? Don't bother anymore, with this you will convert your saves smoothly from one installation of minecraft to another.

I'm looking for alpha testers. There is still a lot of work in progress, especially in the UX department, most functionality should be OK, but I need feedback from people who would use it. This is an ALPHA release. Please backup your stuff before using it on saves or modded installation you cherish. I'm not responsible for any harm that comes to you, your dog or cat due to the usage of this software.

Deep down, I'm using SK's minecraft launcher to launch instances of Minecraft and fetch the mapping of blocks and items IDs to their respective names/classnames via a small ModLoader hook. Launching of MC is done fully via SK's minecraft launcher, full credit to him. There is support for user/pass or offline mode.

Requirements:

- All Minecraft versions are handled up to 1.4.7 and down to 1.2.3.

- The modded minecraft must use ModLoader or a ModLoader backward compatible ForgeModLoader

- Should work with technic pack/tekkit, as long as the jar supports ML

- The different modded versions should be in different folders (e.g. [...]/MCmod1/.minecraft and [...]/MCmod2/.minecraft) or in the same .minecraft folder but different jars.

- The jar should be modded (bare minimum, ML or FML inside), so no magic launcher and other launchers that don't modify the jar, AFAIK. If there is a need for that functionality, let me know.

Download (executable jar):

Modded Save Converter release 01

Screenshots

cQ8wbYm.png

nkLYtfE.png

b4VBgcG.png

WorkFlow:

- "choose save" : choose the level.dat of the save

- "Choose destination jar" : Choose the .jar file of the modded installation to which you want to convert

- "Choose origin jar" : Choose the .jar file of the modded installation in which the save was created

- "Test minecraft*" : Test the installation for ModLoader and other sanity checks. Should be done automatically

- once tested, the Version combobox underneath should change to the proper version. If no version found but you know the version it should be, select it there. If your version is unsupported, tell me.

- IDmap to get the ID mapping. Should be done automatically once the jar is selected. If you already mapped that jar, it will load from a cache file and not launch it. The cache file corresponds to a given jar file incorporating its md5 hash: if you mod the jar after the mapping and try to load the old mapping, it should detect that and redo the mapping.

- "Relaunch" checkbox is there in case you want to discard the ID mapping that have been saved in cache and redo the mapping for that Minecraft.

- Username+pass self explanatory, so you can launch Minecraft if there is no lastlogin.

- "Save Password", password is saved encrypted (handled like SK's launcher)

- "Offline Mode" uses the lastlogin file for launching Minecraft.

- On the right is the log where everything that happens is hopefully logged and problems are shown.

- Once you tested and mapped and chose a version, you can "Convert". This will show you a ID list window with the conversion: each block with its id on the left(original) is mapped to another id on the right(destination). If the line is red, the id hasn't been found (I try to look for the same getName() and sometimes the Class Name of the Block/Item/Entity). Green: same id in original and destination. Yellow:different ids in original and destination. Orange: there's an id in the destination at that id and the names don't match. Usually found with old saves before minecraft updates that added some blocks at that id. Red: id not found in minecraft2. Anything not green or yellow will be removed from the save

- Blocks that are to be discarded are replaced with air(if above heightmap) or stone (if below it).

- Items/Entities/Tile entities to be discarded are deleted from the save

Miscellaneous:

- The software will create a xml config (configModdedSaveConverter.xml) file where it saves the state between runs. No need to redo everything (selecting files, customising the conversion map, etc ) every time you launch it.

- The software will create a "moddedsaveconverter" folder inside the selected .minecraft/bin/ folders, where it will put the cached ID maps.

License : skmclauncher is property of sk89q https://github.com/sk89q/skmclauncher. Other projects have been used (see LICENSE.txt)

Link to comment
Share on other sites

  • 3 weeks later...

I would be pretty interested in testing this.

How do you deal with situations where package name of the mod has changed(as this is the source of getName())?

Where is the source repository for this?

Hi !

Sorry for the lat(ish) response.

The soft tries to "heuristically" guess a correspondence between package names. For example, if in one version the name is com.eloraam.blockMultipart, and in another version it is com.minecraft.eloraam.blockMultipart, it should detect it. It's nice for mods from different persons but with same functions, like a coal block with package name com.nameofmod1.coalblock will probably be detected as the same as net.mysuperusername.random.coalblock . There's always manual checking that should be done before launching the convert, the soft will tag whatever is nice (i.e. no name change) and whatever he tried to guess differently so you can eyeball if you need to manually adjust things.

The source is not posted anywhere, but it's a jva program so you can see what's going on inside with any java decompiler, a good chunk of the soft is skmclauncher which is open source.

You don't usually need to put your user name and pass in the program, if you've played before in offline mode with the minecraft versions you want to convert from or to.

Did you manage to download the soft from the link I've put ?

I'l try to put up an updated version and post the source if there's any interest. There's been (apart from you) none for now ^^

Link to comment
Share on other sites

As far as modpacks go, would origin be mod pack.jar, or minecraft.jar?

The minecraft.jar I think. In the modpack you probably have a .minecraft folder, in which you have a /bin/minecraft.jar .

I just looked in a technic pack/tekkit installation there is no .minecraft folder. Well, I have to modify a bit the software. I'll post an updated link.

Link to comment
Share on other sites

Yeah I'd be interested in the source. You should probably publish it anyway as you are obliged to keep an up to date version of the source available by the GPL3 licence that skmclauncher uses.

For now, it's a really deep work in progress, as in, things tend to change a lot when I'm coding.

Anyway, I did a first (messy) release of the source in my git https://github.com/rienafairefr/moddedSaveConverter

I'm very new to the coding/open source, so please forgive the noobyness in the code or the git.

Link to comment
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

 Share

×
×
  • Create New...