tl;dr Use MCA_Selector and Amulet to recover a build from the shipyard around X = -28672000 and Z = 12288000 and put it back where it needs to go.

In this guide I will detail how to restore a build or ship from the Valkyrien Skies shipyard.

Background and Issue Description
Valkyrien Skies (VS) is a mod and framework which implements physics into Minecraft. There are many mods that implement VS framework such as Eureka! Ships!, Clockwork, VMod, Trackwork, and Clockwork, but there are many more that can be found here. In my experience, particularly using Eureka! Ships, it is possible that your VS ships may get deleted, disappear, despawn, or in creating them you accidentally turn your entire base into an airship since by default Eureka! Ships will turn all connected blocks that were placed by players into an airship without warning, and then the game crashes and deletes the ship… This could occur due to user error/accident (for example if you placed a ship helm on a ship and there happened to be blocks connected) or due to buggy software (Like if for some reason your ship speeds off and despawns). Regardless, this problem can occur, and the results can be catastrophic if you spent hours on a build, and the mod you're using deletes your ship.

How to recover ship from shipyard

Step 1: The tools we will use to recover the ship from the shipyard are MCA_Selector (Used to locate the build in the shipyard easily), and Minecraft Amulet (Used to relocate the build from the shipyard to where it belongs).

Step 2: Make a copy of your world. This is very important, as if we make a change to the copy or if we make a mistake while trying to recover the build, we can always restart using the original. If this was a single player world, clone the world's directory located in %appdata%\.minecraft\saves.

Step 3: Open MCA_Selector and do File > Open World, now select the world directory. This should load the world chunks into the application, and you may need to wait a few seconds for your chunks to appear. If you recieve an error saying No dimensions found in... You may need to select the actual world\ directory within the directory that you copied to get it to appear.

Step 4: From the VS wiki, we find:
“`
Where are the blocks of the ship stored?

In an area colloquially known as the 'shipyard', from the coordinates -28672000 <= X <= 28672000, and 12288000 <= Z <= 28672000.

In MCA_Selector press
View > Gotoor pressCtrl + G. Now type in the coordinates of the lower bound of the shipyard region i.e. X =-28672000and Z =12288000`. In order to see the actual chunks that are allocated for ships, you will likely need to zoom out using the scroll wheel. You will also need to pan using the middle click functionality on your mouse (likely pressing and holding the scroll wheel).
In this general area, you should see chunks loaded which are all black, but some may contain data or things resembling ships. Either way, keep panning right down the line of allocated chunks in the shipyard until you find one containing your build that you want to recover (there may be a lot so keep panning until you see your build). You may need to zoom in a bit to check if it is your build in a chunk.
Take note somehow of the coordinates of the chunks containing your build.

Step 5: Open Amulet MC editor and open the world file like we did in step 3.
Press 3D editor on the left sidebar.
Take note of the coordinates where you want to copy your build. (This doesn't have to be exact we just need to remember them so we can get back to the location to place your build)
Press Edit > Goto or do Ctrl + G to open the teleport menu. Enter the coordinates that you took note of in Step 3 to go to where your build is in the shipyard. Select your build in the shipyard by clicking and dragging over some blocks in your build to start. To expand the selection, click and drag the faces of this initial selection to cover the entire build you want to copy. Next, press Edit > Copy or press the copy button on the left of the viewer.
Now, use the Edit > Goto command to go back to the coordinates where we want to restore our build.
Next, use Edit > Paste or the paste button on the left side menu, and click where you want to paste your build. This won't automatically paste it will let you adjust. Now you can edit where the build gets pasted in your world by adjusting the location coordinates in the left side menu based off of the preview that appears in the 3d view. Make sure you turn off paste air to avoid pasting over other stuff in your world, and press the Confirm button to finalize the paste.

Step 6: Save your world using Ctrl + S or File > Save, and you can then close Amulet.

Step 7: Now your copied world has your build back where you want it. You can now put this world back in %appdata%\.minecraft\saves for single player or if it's a server world you can put it where you need to run the server.

Conclusion & Rant:
Certain mods implementing Valkyrien Skies need to implement better safeguards to protect user builds, and prevent user error. It should not be as easy as a single button click to instantly destroy hours of work while using a mod in a normal use case/circumstance. For Eureka! Ships, the mod should also use something like create superglue to designate a selected area as a ship rather than just making the ship out of any user placed blocks that are connected to the helm. At the bare minimum the helm menu should display a count of how many blocks would be connected to the ship if the user clicked assemble. This would make it clear how large the ship would be, and would help prevent user error.

by graphtheory16

Leave A Reply