About
Minecraft Save Manager (or MSM for short) is the end result of experiments into saved game clouding (original thread). It is a small launcher tool that will back up and synchronize your saved games across multiple computers, performing file operations both before and after Minecraft is launched. It's meant to be a zero-effort tool so you don't have to go through the pain of loading your saved games from a USB drive or cloud folder.
It also stores multiple 'undo' backups locally, just in case you do something silly like blowing up your base. It can be used as a standalone backup tool without synchronization.
It is currently in the Beta phase, and I will hopefully be making the program more robust. Any suggestions, bugs, or criticism are welcome.
Requirements
[*:1ng90b9e]Windows XP, 7 or Vista. If there is more demand, I may be expanding to Linux / OSX
[*:1ng90b9e]The Minecraft standalone executable. This is obviously not distributed with MSM.
[*:1ng90b9e]Java 1.6 Runtime. You probably already have this.
[*:1ng90b9e](Optional) A cloud computing program like Windows Live Sync or Dropbox.
Note: If you get Dropbox, use my referral. It gives us both 250MB of extra space.
Installation [*:1ng90b9e]It is probably a good idea to manually back up your saves before installation.
[*:1ng90b9e]Extract the archive. Unless you have identical home directories on both computers, it is not recommended that you cloud MSM. Keep the .jar and .properties file in the same folder.
[*:1ng90b9e]Open the MSM.properties file in a text editor like Notepad.
[*:1ng90b9e]Replace the placeholder paths with your own minecraft save path, path to your shared folder, and path to your Minecraft executable. Environment variables are currently not supported, so please use full paths. Also, remember to escape your backslashes (by putting '\\' instead of '\') You need to do this or MSM will not work
[*:1ng90b9e]Set the number of backups you want to retain. The default is 5, but it really depends on the size of your saves and how much disk space you want to take up.
[*:1ng90b9e]You can also disable sharing if you don't plan to sync with a USB or cloud folder.
Usage
When you want to play Minecraft, simply execute MSM.jar instead of Minecraft.exe. Close Minecraft when you're done playing and MSM will back it up. Simple as that. Don't close MSM before it is finished; it will close on its own. If you're syncing with a USB, make sure it is plugged in before you play, and is plugged in when you close Minecraft. For people on XP Home Edition:
For whatever reason, Microsoft didn't include a tasklist program in this version. In the event you don't support conventional PID gathering means, you will see something along these lines:
Click 'Done' when you are finished playing and Minecraft is closed. I really don't know what will happen if you try and back up while you are still playing, and I don't want to find out. Don't freakin' do it.
Known Issues & To-Dos
[*:1ng90b9e]Add handling & prompts for when user doesn't have their USB drive plugged in.
[*:1ng90b9e]Add Linux\MacOS support. (This is a major effort and will likely not be done anytime soon, sorry!)
[*:1ng90b9e]Add a GUI front-end for the properties.
[*:1ng90b9e]Add options to only sync specific worlds.
[*:1ng90b9e]Split shared backups into discrete saves to reduce cloud synchronization overhead.
[*:1ng90b9e]Indeterminate progress bar for non-predictable program steps.
[*:1ng90b9e]First-time-setup handling if user launches MSM without configuring their properties.
[*:1ng90b9e]Enable manual override in all environments with a properties boolean.
[*:1ng90b9e]Add the ability to specify which worlds are to be backed up and which are not.
Disclaimer
This program is provided as-is, and is still in development. I am not responsible for any damage to your saves as a result of an unforeseen error. Every effort has been made to ensure that the program runs consistently, and if it fails, does not damage your save data. However, I cannot foresee every eventuality.
If you have any technical issues or problems, please let me know via PM, and I'll try to get a resolution for you as quickly as possible.
How does this thing work, anyway? [*:34djvmcq]When MSM is first launched, it looks for a specifically-named archive in your shared location. If none is found, it asks if you want to continue. You can proceed without an archive, but your local data will be used.
[*:34djvmcq]MSM scans the world.dat files for each save in the archive. If the local data has an identical checksum to your archived data, no change is made to that save (this is a time-saving measure). If your local data is different, but has a NEWER modification date, you will be asked if you want to keep it instead of syncing with the archive. If your local data is older, it will automatically be overwritten. A different action can be taken for each save.
[*:34djvmcq]Local copies of the saves to be synchronized are deleted.
[*:34djvmcq]Shared versions of the saves to be synchronized are extracted from the archive.
[*:34djvmcq]Minecraft is launched, and its process ID is monitored.
[*:34djvmcq]When Minecraft closes, a full backup of save data is stored in a timestamped archive.
[*:34djvmcq]This archive is copied over your shared archive.
[*:34djvmcq]If you are exceeding your specified limit of backups to retain, the oldest existing backup is deleted from your local folder.
Version History 0.9b - Initial Release 0.95b - Added handling for failed process ID capture and fixed incompatibility with XP. Also added feedback message for manifest phase between analyzing and clearing old data. 0.97b - Opened up the source code. Also added auto-detection of the saves directory and a small stability fix. 0.98b - Added support for versions of windows without access to tasklist.
Currently prioritizing the GUI properties manager, as well as the -1 PID issue, though that problem has literally only surfaced once. Also adding javadocs and embedded comments to make the source a little more readable. I believe I'll be moving the next iteration to sourceforge or a similar site.
I'm also wrapping my head around a Linux/OSX port, and while I can test on Linux, I'd really like a volunteer to test this thing on a mac. If you feel like being a guinea pig sometime in the near future (provided multiplayer doesn't make this program obsolete), please drop me a PM.
0.95b is out, and hopefully this fixes the issue involving Windows XP. Apparently the same command pipes to different output streams in XP as opposed to 7/Vista. As always, PM me if you encounter any issues.
If you're updating, you should be able to overwrite the MSM.jar and keep your old MSM.properties.
I follow instructions, and i just can't seem to get it to work.
I double-click on MSM.jar and it just does nothing.
I have the 'Share Path' set to a local folder on my C Drive and disabled shared saves. (In case that matter)
Hopefully you can help me, here is my properties file ("****" = My actual user name, i removed it because it's my full name, but in my actual properties it's my actual user name)
#Always be sure to escape your backslashes by making them double-backslashes.
#Never give your pathnames trailing backslashes.
#The path to your Minecraft 'saves' folder.
MINE_PATH=C:\\Users\\****\\AppData\\Roaming\\.minecraft\\saves
#The path to your clouded or removable shared save directory
SHARE_PATH=C:\\Users\\****\\AppData\\Roaming\\.minecraft\\saves\\Backups
#The path to your minecraft executable
EXE_PATH=C:\\Users\\****\\Desktop\\Minecraft.exe
#The number of local backups to retain
BACKUP_COUNT=5
#Set to 'YES' for save sharing, or 'NO' for local backups only.
SHARED_SAVES=NO
I follow instructions, and i just can't seem to get it to work.
I double-click on MSM.jar and it just does nothing.
I have the 'Share Path' set to a local folder on my C Drive and disabled shared saves. (In case that matter)
Hopefully you can help me, here is my properties file ("****" = My actual user name, i removed it because it's my full name, but in my actual properties it's my actual user name)
#Always be sure to escape your backslashes by making them double-backslashes.
#Never give your pathnames trailing backslashes.
#The path to your Minecraft 'saves' folder.
MINE_PATH=C:\\Users\\****\\AppData\\Roaming\\.minecraft\\saves
#The path to your clouded or removable shared save directory
SHARE_PATH=C:\\Users\\****\\AppData\\Roaming\\.minecraft\\saves\\Backups
#The path to your minecraft executable
EXE_PATH=C:\\Users\\****\\Desktop\\Minecraft.exe
#The number of local backups to retain
BACKUP_COUNT=5
#Set to 'YES' for save sharing, or 'NO' for local backups only.
SHARED_SAVES=NO
Looks like there's some sort of logic bomb scenario going on because you've put the share path inside the mine path. I'll try and figure this out with you via PM.
Absolutely loving this program, but I must ask: Is it required that I use MSM.jar from now on to run Minecraft or will the system automatically handle everything from now on?
Rollback Post to RevisionRollBack
Quote from Thescorpi0n »
They're Climbin in yo window, Snatching yo people up.
so Y'all need to hide your kids, Hide your wife.
Hide you're husband cus the spiders are raping everybody out here...
Love this program. It has saved me quite a bit of grief. Great job on this.
Rollback Post to RevisionRollBack
Quote from Thescorpi0n »
They're Climbin in yo window, Snatching yo people up.
so Y'all need to hide your kids, Hide your wife.
Hide you're husband cus the spiders are raping everybody out here...
I love this program and have used it for a while, but I am getting just a bit aggravated at the fact that it is impossible to add an external save game with it. When I add it to the .minecraft folder on my computer, it updates and saves over the level I just added. When I add it to the saves archive on DropBox, it ignores it and saves over it. Any help?
Rollback Post to RevisionRollBack
Quote from Thescorpi0n »
They're Climbin in yo window, Snatching yo people up.
so Y'all need to hide your kids, Hide your wife.
Hide you're husband cus the spiders are raping everybody out here...
have you tried copying the save into both folders?
Wow. Talk about awareness fail. How did I not think of that? Thanks for the tip. I'll try that.
Rollback Post to RevisionRollBack
Quote from Thescorpi0n »
They're Climbin in yo window, Snatching yo people up.
so Y'all need to hide your kids, Hide your wife.
Hide you're husband cus the spiders are raping everybody out here...
I installed dropbox, I have all the paths set correctly.
The thing Im confused about, is the MSM-MinecraftSaves.zip file. Where does that come from?
Ive got my minecraft saves (local) in the default location, then I also saved them to my dropbox folder (\my dropbox\minecraft\msm) but do I have to zip that file too? (I just grabbed the "saves" folder under appdata\roaming\.minecraft).
I recently made my own backup utility (Minecraft Assist Utility) and to be honest I was inspired to do so by MSM. I believe my program improves upon/addresses several of the lacking features that MSM currently has. Such as being able to launch Minecraft from web browser, proper error handling, easy to use configuration Gui, unique backup system that improves speed and drive space by only coping new or modified files rather then a whole directory of thousands of files.
Here's my post on the forums, not much content there but it directs you to my poorly made website.. viewtopic.php?f=25&t=39921
(I do have plans to make a sever backup version depending upon the success of MAU)
Whenever I try to run the msm.jar, I get an error. The program says capturing process ID (but the bar doesn't fill up at all), and it gets a fatal error "Minecraft executable encountered a runtime error". This is windows XP. Oddly, if I remove the saves from my local machine and run it, it will get the worlds just fine, and then crash. It also can't give back the worlds if I change them locally.
@AgentAnorexia, I've sent you a PM. I'll try and get to the bottom of the issue, but try out 0.97 first.
And to the rest of you...
Good news, everyone! MSM is now open-source, and available from Sourceforge. I've also added a few stability tweaks based on user-encountered issues, and most importantly, it now auto-detects Minecraft's save directory. One less thing to consider.
Sorry about the lack of updates. I've been working a second job, and I'm sure that doesn't require explanation in this economy. In case you're wondering, I'm saving the GUI configurator for v1.0.
Importing a saved world will be added to the list of feature ideas.
edit: The easiest way by far to manually patch in a world is to rename your MSM-MinecraftSaves.zip and then run the program. This is assuming that the other worlds besides the one you're overwriting are up-to-date. Interesting use case, though. I guess the world you were trying to import had an older timestamp than the one in your archive, hence the automatic overwrite.
Yeah, Java's native IO doesn't have the proper chops for UNC network paths.
As for the runtime error, chances are that it can't find the minecraft executable in the place you've specified, or it simply isn't able to run the executable for whatever reason.
I've put up a trace-enabled MSM here. Please download it, put it where your MSM is currently located, and try the same thing. PM me a screencap of the error message.
Quote from Darkslave »
EDIT: I think I've misread some stuff.. let's see if I can fix it.
ANOTHER EDIT: I was under the assumption it would sync files between different pcs in a network using shared folders. Signed up for a dropbox now and put the save files in there as well as on both computers, set the path to grab/save files from dropbox, but I'm still getting the runtime error.
ORIGINAL:
I'm having the same issue as AgentAnorexia (except deleting local saves has no effect whatsoever). Whenever I try to run the jar it tells me it can't find the MSM-MinecraftSaves.zip and asks if I want to use the local data. When I press ok i instantly get a "minecraft executable has encountered a runtime error" message, and a little window that says "capturing process ID" with an empty progress bar.
I have my properties set up like this in case you need to know/I am doing something horribly wrong (koenpc is the pc with the saves on it and the folder is shared with writing/editing enabled)
#Always be sure to escape your backslashes by making them
double-backslashes.
#Never give your pathnames trailing backslashes.
#The path to your clouded or removable shared save directory
SHARE_PATH=\\\\koenpc\\.minecraft\\saves
#The path to your minecraft executable
EXE_PATH=C:\\Minecraft.exe
#The number of local backups to retain
BACKUP_COUNT=2
#Set to 'YES' for save sharing, or 'NO' for local backups only.
SHARED_SAVES=YES
DOWNLOAD HERE
About
Minecraft Save Manager (or MSM for short) is the end result of experiments into saved game clouding (original thread). It is a small launcher tool that will back up and synchronize your saved games across multiple computers, performing file operations both before and after Minecraft is launched. It's meant to be a zero-effort tool so you don't have to go through the pain of loading your saved games from a USB drive or cloud folder.
It also stores multiple 'undo' backups locally, just in case you do something silly like blowing up your base. It can be used as a standalone backup tool without synchronization.
It is currently in the Beta phase, and I will hopefully be making the program more robust. Any suggestions, bugs, or criticism are welcome.
Requirements
[*:1ng90b9e]Windows XP, 7 or Vista. If there is more demand, I may be expanding to Linux / OSX
Note: If you get Dropbox, use my referral. It gives us both 250MB of extra space.[*:1ng90b9e]The Minecraft standalone executable. This is obviously not distributed with MSM.
[*:1ng90b9e]Java 1.6 Runtime. You probably already have this.
[*:1ng90b9e](Optional) A cloud computing program like Windows Live Sync or Dropbox.
Installation
[*:1ng90b9e]It is probably a good idea to manually back up your saves before installation.
[*:1ng90b9e]Extract the archive. Unless you have identical home directories on both computers, it is not recommended that you cloud MSM. Keep the .jar and .properties file in the same folder.
[*:1ng90b9e]Open the MSM.properties file in a text editor like Notepad.
[*:1ng90b9e]Replace the placeholder paths with your own minecraft save path, path to your shared folder, and path to your Minecraft executable. Environment variables are currently not supported, so please use full paths. Also, remember to escape your backslashes (by putting '\\' instead of '\') You need to do this or MSM will not work
[*:1ng90b9e]Set the number of backups you want to retain. The default is 5, but it really depends on the size of your saves and how much disk space you want to take up.
[*:1ng90b9e]You can also disable sharing if you don't plan to sync with a USB or cloud folder.
Usage
When you want to play Minecraft, simply execute MSM.jar instead of Minecraft.exe. Close Minecraft when you're done playing and MSM will back it up. Simple as that. Don't close MSM before it is finished; it will close on its own. If you're syncing with a USB, make sure it is plugged in before you play, and is plugged in when you close Minecraft.
For people on XP Home Edition:
For whatever reason, Microsoft didn't include a tasklist program in this version. In the event you don't support conventional PID gathering means, you will see something along these lines:
Click 'Done' when you are finished playing and Minecraft is closed. I really don't know what will happen if you try and back up while you are still playing, and I don't want to find out. Don't freakin' do it.
Known Issues & To-Dos
[*:1ng90b9e]Add handling & prompts for when user doesn't have their USB drive plugged in.
[*:1ng90b9e]Add Linux\MacOS support. (This is a major effort and will likely not be done anytime soon, sorry!)
[*:1ng90b9e]Add a GUI front-end for the properties.
[*:1ng90b9e]Add options to only sync specific worlds.
[*:1ng90b9e]Split shared backups into discrete saves to reduce cloud synchronization overhead.
[*:1ng90b9e]Indeterminate progress bar for non-predictable program steps.
[*:1ng90b9e]First-time-setup handling if user launches MSM without configuring their properties.
[*:1ng90b9e]Enable manual override in all environments with a properties boolean.
[*:1ng90b9e]Add the ability to specify which worlds are to be backed up and which are not.
Disclaimer
This program is provided as-is, and is still in development. I am not responsible for any damage to your saves as a result of an unforeseen error. Every effort has been made to ensure that the program runs consistently, and if it fails, does not damage your save data. However, I cannot foresee every eventuality.
If you have any technical issues or problems, please let me know via PM, and I'll try to get a resolution for you as quickly as possible.
[*:34djvmcq]When MSM is first launched, it looks for a specifically-named archive in your shared location. If none is found, it asks if you want to continue. You can proceed without an archive, but your local data will be used.
[*:34djvmcq]MSM scans the world.dat files for each save in the archive. If the local data has an identical checksum to your archived data, no change is made to that save (this is a time-saving measure). If your local data is different, but has a NEWER modification date, you will be asked if you want to keep it instead of syncing with the archive. If your local data is older, it will automatically be overwritten. A different action can be taken for each save.
[*:34djvmcq]Local copies of the saves to be synchronized are deleted.
[*:34djvmcq]Shared versions of the saves to be synchronized are extracted from the archive.
[*:34djvmcq]Minecraft is launched, and its process ID is monitored.
[*:34djvmcq]When Minecraft closes, a full backup of save data is stored in a timestamped archive.
[*:34djvmcq]This archive is copied over your shared archive.
[*:34djvmcq]If you are exceeding your specified limit of backups to retain, the oldest existing backup is deleted from your local folder.
0.9b - Initial Release
0.95b - Added handling for failed process ID capture and fixed incompatibility with XP. Also added feedback message for manifest phase between analyzing and clearing old data.
0.97b - Opened up the source code. Also added auto-detection of the saves directory and a small stability fix.
0.98b - Added support for versions of windows without access to tasklist.
I'm also wrapping my head around a Linux/OSX port, and while I can test on Linux, I'd really like a volunteer to test this thing on a mac. If you feel like being a guinea pig sometime in the near future (provided multiplayer doesn't make this program obsolete), please drop me a PM.
If you're updating, you should be able to overwrite the MSM.jar and keep your old MSM.properties.
I follow instructions, and i just can't seem to get it to work.
I double-click on MSM.jar and it just does nothing.
I have the 'Share Path' set to a local folder on my C Drive and disabled shared saves. (In case that matter)
Hopefully you can help me, here is my properties file ("****" = My actual user name, i removed it because it's my full name, but in my actual properties it's my actual user name)
I'll use it if I plan on being generally silly.
Looks like there's some sort of logic bomb scenario going on because you've put the share path inside the mine path. I'll try and figure this out with you via PM.
♖ Occam ♖
- - 24/7 SMP Server - -
♖ Occam ♖
- - 24/7 SMP Server - -
♖ Occam ♖
- - 24/7 SMP Server - -
Wow. Talk about awareness fail. How did I not think of that? Thanks for the tip. I'll try that.
♖ Occam ♖
- - 24/7 SMP Server - -
I installed dropbox, I have all the paths set correctly.
The thing Im confused about, is the MSM-MinecraftSaves.zip file. Where does that come from?
Ive got my minecraft saves (local) in the default location, then I also saved them to my dropbox folder (\my dropbox\minecraft\msm) but do I have to zip that file too? (I just grabbed the "saves" folder under appdata\roaming\.minecraft).
What am I doing wrong here?
i'm just wondering if there is something to automatically backup my server. maybe do a sync every hour or so?
Here's my post on the forums, not much content there but it directs you to my poorly made website..
viewtopic.php?f=25&t=39921
(I do have plans to make a sever backup version depending upon the success of MAU)
And to the rest of you...
Good news, everyone! MSM is now open-source, and available from Sourceforge. I've also added a few stability tweaks based on user-encountered issues, and most importantly, it now auto-detects Minecraft's save directory. One less thing to consider.
Sorry about the lack of updates. I've been working a second job, and I'm sure that doesn't require explanation in this economy. In case you're wondering, I'm saving the GUI configurator for v1.0.
Importing a saved world will be added to the list of feature ideas.
edit: The easiest way by far to manually patch in a world is to rename your MSM-MinecraftSaves.zip and then run the program. This is assuming that the other worlds besides the one you're overwriting are up-to-date. Interesting use case, though. I guess the world you were trying to import had an older timestamp than the one in your archive, hence the automatic overwrite.
As for the runtime error, chances are that it can't find the minecraft executable in the place you've specified, or it simply isn't able to run the executable for whatever reason.
I've put up a trace-enabled MSM here. Please download it, put it where your MSM is currently located, and try the same thing. PM me a screencap of the error message.