Hey folks, I'm a datapack/mod creator and I thought you people would be interested in a project I created, given how techy Lemmy is. I "revamped" the Minecraft Shipwreck structure to have randomized sections.
The issue with the Shipwreck structure is their diversity, or rather, lack thereof. Each of the 8 possible woodtype combinations "only" have 20 different variants. Definitely nothing to sneeze at, but after playing for a few years, they get a little samey. There are 8 right-side up variants, 6 that are upside-down, and 6 on their side (tangent, but did you know vanilla sideways shipwrecks can exclusively be laying on their left side!? Try seeing them the same ever again I dare you). Half of these variants are also just slightly more degraded versions of the other half, which brings us to a total of 10 unique exploration experiences.
Here are the vanilla shipwreck variants:
There are a couple ways of solving this "issue." You could add new shipwreck models, new variations of the existing wreck, or what I opted for: cut them into smaller pieces, shake the box, and glue them back together. Note that I did also make new variations of the vanilla pieces, and maybe one day I'll also make new ship models to apply the same technique to!
When splitting each variant into 3 different sections, the first and obvious place to chop was at the masts on both the middle and back end, however this would place two chests in the back end and none in the midsection, which would limit the amount of chest variability. I decided to put a split at the middle mast, but 2 blocks behind the back mast.
Unavoidably, this location for makes some.. interesting pieces.
This is my first big divergence from vanilla: the chest locations. If we were to make the sections split in the same place in every rotation, we'd still end up with 2 chests in the backend in ships on their sides, because the chest location is different for that rotation. I decided, if the vanilla chest locations weren't possible anyway, might as well use that as an excuse to change that gameplay entirely! In most of these modified wrecks the chest location is the same as possible to vanilla, but that's not the case in not so intact wrecks. This may or may not be a sneaky nerf.
But beyond just chest locations, I also added around double the options for the jigsaws to choose from. Each custom section was designed to have unique entrance holes and/or interesting degradation. In the image below, the pieces with black backgrounds are "vanilla" segments, which are pieces directly chopped off vanilla wrecks.
Obviously, not all pieces can go with well with each other, for example, that segment that's only 4 blocks total. It'd look terrible if it was attached to a barely damaged piece. So the template_pool that each part is selected from had to be split into 5, accounting for each degradation stage. In the above image, the outline visualizes which degradation stage the piece is in. Parts can select from both the degradation stage above them and the degradation stage under them, making for realistic degradation that isn't always consistent throughout the whole wreck. A ship that starts in perfect condition can end up looking pretty tarnished!
All of this together makes for a unique diving experience! All vanilla shipwrecks are still possible to generate, but are far rarer now that there are so many other options to choose from. This, admittedly, is a subtle and easy to miss difference, but sometimes a collection of subtle differences is all you need to feel like you're playing a new game.
These also come in every vanilla shipwreck woodtype combo, and every vanilla shipwreck rotation (now with laying on the right side, revolutionary).
I think it's allowed, so here's the Modrinth page.
It's on CurseForge as well, but I had to make two pages for mod & datapack, they're both on the same Modrinth versions list.
I should mention, you can actually play this in completely vanilla Minecraft Java Edition using the Datapack version of the mod!
When creating a new world, click "Datapacks" and drag the .ZIP into there, then move it from the left side to the right side and click OK. If done properly it should say "Validating Datapacks" for a second, then you're good to go, it will work just like the mod in that world.