Water erodes the landscape creating streams and waterfalls producing gravel, sand, clay, and moss
Water escapes from lakes and aquifers. Dirt and sand wash away to deepen stream beds and cut river banks. Find Forest brooks and Mountain creeks in your explorations. Pass through a dry Desert valley one day and find it flooded the next. Supports Forge for 1.12+ and Fabric for 1.14+.
Erosion in Minecraft, just like real life, is a slow process. You must wait see to the effects or increase the random tick speed.
Goals
- Implement Water Erosion as though it were a default Minecraft feature to make worlds more dynamic.
- Provide a renewable source of Coarse Dirt, Sand, and Clay fitting into the stock game mechanics.
- Avoid breaking stock existing game play.
Features/Rules
- Water flowing over an edge erodes the block below.
- Water flowing into a block "saturates", then dissolves the "wall." Turns towards the closest air space.
- Water flow ends "saturate", then dissolve the block below to potentially continue the flow downhill.
- Water Sources dissolve blocks to the side in the direction of air spaces.
- Erodable blocks include sand, gravel, clay, farmland, dirt, grass, and, rarely, cobblestone.
- Erodable blocks have differing resistances to erosion depending on their density, but all erode over time.
- Blocks decay during erosion to weaker blocks before disappearing.
- Blocks decay upstream in stream beds.
- Cobblestone and Stone Bricks grow moss near water.
- Enable/disable Farmland erosion via config file (Forge for 1.14+ only for now)
Decay hierarchy:
- Cobblestone -> Mossy Cobblestone -> Gravel
- Stone Bricks -> Mossy Stone Bricks -> Gravel
- Grass Path -> Grass -> Dirt -> Coarse Dirt -> Gravel
- Gravel -> Sand -> Clay(rarely) -> Air/Water.
Have an idea about how it could be even better? Let me know in the comments or issues!
Media
Installation
Fabric versions
Download the current release water-erosion-x.x.x-fabric-x.x.x.jar
and add to your installation.
Forge versions
The Forge version for Minecraft 1.12.2 is a Coremod containing an embedded copy of the org.spongepowered.asm.launch.MixinTweaker library. It does NOT require MixinBootstrap.
The Forge versions for Minecraft 1.14.4+ require MixinBootstrap. Download the current release water-erosion-x.x.x-forge-x.x.x.jar
, then download the MixinBootstrap-1.0.0.jar
. Put both files in your MinecraftForge Mod folder.
TODO features
- Optionally drop items of eroded blocks
- Configurable Erosion odds and types - Slow, Medium(default), Fast, Custom - Version 1.1.2 for Forge 1.14+ adds a config file to enable/disable Farmland erosion. 1.2.0 will contain more options.
Technical Notes
This "core mod" adds code to the Water block randomTick()
functions using the Mixin framework. randomTick()
is only called by the Minecraft runtime for a 128 block radius around the player, so the odds of erosion occurring are set fairly high.
Tutorial
Sand can be generated from gravel with a simple machine
Test Areas
Create each world, teleport to the specified location, and, optionally, change the randomTickSpeed
setting to speed up the process. Note: You must wait upwards of 30 real minutes to see the effects if you do not change the randomTickSpeed, such as in a survival world.
/teleport X Y Z
/gamerule randomTickSpeed NUMBER # Suggest 150
Seed -1988839586448825536
Tested on Minecraft 1.15.1
1052 79 229
- A Savanna stream near a town flows into a crevasse.1103 102 467
- A Savanna hilltop lake creates multiple waterfalls, which may change direction or dry up.1303 80 579
- A Savanna underground lake breaks through the hillside to create a waterfall.1309 89 753
- A Savanna source block flows through tunnel, then creates a small steam through trees to a pond.
Seed 837828468367153798
Tested on Minecraft 1.15.1
683 92 163
- A Giant Tree Tiaga hilltop lake creates multiple creeks around a Pillager Outpost.1424 89 7
- A Giant Tree Tiaga hilltop lake flows into an underground lake and to seaside wetlands.1973 93 634
- A Mountain lake creates a 30 block tall set of waterfalls into a cave and a forest.4378 70 2779
- A Tiaga underground lake flows out of both sides of a hill creating three waterfalls.4300 77 3511
- Three Plains lakes create a short river of rapids.
Closed Source for now, but will be open sourced soon.
Mod File Usage
These files may only be hosted directly on Curseforge.com. Mod Pack authors are free use this mod in any Curseforge-based mod pack.
Please file bug reports in the issue queue. Thanks!
In the 1.12.2 version (but I guess for all versions)..... given enough time would this mod just result in the whole world being a shallow lake over stone? I'm unclear how to use this mod in a longterm server setup, though it looks great fun.
In reply to Aecht_Rob:
No, because the water flows can only travel the regular water distance. It's not supposed to be completely destructive. I've carefully adjusted the settings to make this act like a standard part of the game.
Wow, this looks incredible! I appreciate the two videos, too.
What are the chances we can config what blocks erode to? Such as a low % chance of cobblestone to ores, or sand to occasionally drop gold nuggets?
I'd love to see something similar for lava as well, especially considering we just got a Nether update. Blackstone > Netherrack > Soul Soil > Soul Sand? Netherrack could rarely drop off Gold ore, Netherrack: Quartz, Soul Soil: Nether Wart
Excited to try this out in game and see what it looks like after a couple hours
In reply to Drahkovi:
Config is on my todo list. I like the idea of cobblestone going to ores!
I like the idea of the Lava eroding, but I'm not sure how to implement in a way which makes logical sense to me. I'll think about it more.
Could we please get an update which removes farmland erosion? Either that, or a release of the source code so I can do it myself?
In reply to thegiggitybyte:
You mean for Fabric? Forge already has that option.
In reply to 13rac1:
Yes, for Fabric.
In reply to thegiggitybyte:
There are programs that allow you to look at the code in a jar file. If you really want it so you could decompile the entire thing and do it yourself however if you do do that I do not recommend publishing it for obvious legal and etiquette reasons.
In reply to Jasonpra:
I'm going to get to this, but there's been severe distractions from anything fun lately.
In reply to 13rac1:
To be honest I personally wouldn't bother porting it to fabric unless I actually wanted to. The people using these mods do not have the right to demand things of the artist. If it were me and I didn't want to Port it myself I'd let the people wanting the port figure out how to do it themselves. Of course with the stipulation that they're not allowed to take credit for the mod. My point is "just keep doing what you want to be doing." I'm loving your mod by the way it works great!
I've seen loads of artists get burned out worrying about what other people want from them.
Will this ever be available for 1.7.10? I'd love to be able to use it with this mod - https://www.curseforge.com/minecraft/mc-mods/realistic-fluids-overhaul-compatibility-and
In reply to Adriano1804:
Sorry, no. The backport to 1.12 was complex enough. I'll be supporting new versions though.
Is version 1.1.1 for fabric on 1.16.4 equivalent to 1.1.2 for forge on 1.16.4?
In reply to Cubby989:
Fabric does not yet support Feature: Configurable Erosion Odds, Types, and overall Speed: https://github.com/13rac1/Minecraft-Water-Erosion/issues/1
does this mod work in 1.16.3? I know that 1.16.2 mods should work in 1.16.3 but idk if this do something wit the worldgen
In reply to grillo715:
It should work exactly the same. I've just uploaded a version for 1.16.4
So I have no clue how i'm supposed to be able to set up a sugar cane farm with this mod actually. I cannot even set it up the usual way without the blocks being at risk of being destroyed by the water. Is there something i'm missing here?
In reply to drakeman1234:
The usual ways I use to farm sugar cane work without issue. Which layout are you using? I specifically don't want there to be an issue with any stock farming functionality. Can you explain what you are doing?
In reply to 13rac1:
I was doing my usual setup which is source blocks of water around the sand. Naturally this was resulting in the blocks getting eroded. Suppose I could try flowing streams towards an unerodable block.