Mods / Landforms Need Curves
- Tags:
- Author:
- MadSeraph
- Side:
- Server
- Created:
- Mar 27th 2025 at 7:15 PM
- Last modified:
- Jun 12th at 11:52 PM
- Downloads:
- 354
-
Recommended download (for Vintage Story 1.22.3):
LNCurves_1.2.0.zip 1-click install
Warning: 1.2.0 can alter terrain generation slightly vs 1.1.0!
Please read the release notes! If you just update then the change that does this will be disabled, but the change was made for a good reason. It resolves cases where floating dirt or overhangs with 1 block air gaps at the bottom of hills can happen with certain curve settings. I added a before and after screenshot to the images above so you can see what I mean. If you are experiencing this in your world, you can enabled the new smoothing setting by setting it to a value above 0. The default value for new installs is 2, and it is tuned for world heights of 256. If you still see these artifacts on taller worlds, try increasing it by 1 until they go away.
The changes will be subtle, but they are enough to alter things like structure spawning or feature placement of things such as Watersheds streams. It shouldn't produce major seams in existing worlds, but always test to be sure! And of course, it will not affect already generated chunks.
After having tried many landform mods I found myself dissastified in some way with all of them. I wanted some way to tweak them to better suite my tastes. This mod is the result of that desire.
Landforms in part define themselves by how tall features will be. Whether a mountain, a raised valley with sinkholes, stone pillars, etc. This mod allows you to create a curve that can suppress or exagerate those features based on their height. You can make those stone pillars short or flatten them out completely while still keeping tall mountains tall. Several screenshots show various curves applied to a vanilla scene.
To help with configuration, full integration with Auto Config Lib is provided. You can define default curves, or you can give specific landforms their own curves. A curve with control points at (0,0) and (1,1) is neutral and will not alter terrain. This is the default for the mod. You will not notice any changes with the default configuration. You must create your own curves! To alter a specific landform, you must provide its code name from the worldgen/landforms.json file and its own control points.
I very heavily suggest installing Auto Config Lib to help with configuration.
There is an "Apply" button when viewing the GUI in Auto Config Lib. This does work to make real time changes, but you need to prune chunks and regenerate them to actually see them. I've noticed that the game gets a bit buggy when you prune more than once in a session, so this might not be as helpful as hoped. If you're not seeing changes, restart the game.
There are a couple of utilities to help visualize some of this:
First is a utility to help visualize landform height settings provided by Tyron. To use it, paste the TerrainYKeyPositions and TerrainYKeyThreshold lines from any landform definition into the utility.
http://tyron.at/vs/landformcreator.html
Second is a simple utility to help create your control points and visualize the curves:
This mod is a bit technical, but I hope once learned it will allow players to fine tune their worlds to perfection. Good luck!
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 1.2.0 | lncurves | 76 | Jun 12th at 11:52 PM | LNCurves_1.2.0.zip | 1-click install | ||
|
This version introduces a new feature to address possible generation artifacts as a result of applying the curve. It presents as either floating patches of dirt with stone underneath, or as overhangs where flatlands start to rise into hills 1 block high with stone underneath. It applies a slight smoothing to affected parts of the post processed landform. I've added pictures to the main page to demonstrate the before and after. | |||||||
| 1.1.0 | lncurves | 49 | May 10th at 2:45 AM | LNCurves_1.1.0.zip | 1-click install | ||
|
Updated for 1.22.2 | |||||||
| 1.0.0 | lncurves | 229 | Mar 27th 2025 at 7:16 PM | LNCurves_1.0.0.zip | 1-click install | ||
|
Initial Release | |||||||






does this work with custom sea level mods?
No. The sea level is hard coded for now. What is the most popular mod for altering the sea level right now? I could look into integration.
https://mods.vintagestory.at/show/mod/46611 This one is the mod most people use i think.
Would it be possible to disable the logging or move it to debug though? Kinda messing up the log file 😅
Possibly, you mean the log on startup where it shows the before and after landform numbers? It shouldn't be logging anything during regular play I hope!
Sir, you have given me what I have craved for years. Far-stretching plains, gentle rolling hills, rare towering mountians. To some, this might seem boring, but to me, it is bliss. Thank you.
If anybody cares, for worldgen I'm combining Terra Prety, LNCurves, Rivers (they flatten large areas of terrain, visible on the map all the way to the east, where the biggest river spills into the sea - the mountain is carved out around it) and Watersheds (erosion smoothes out slopes towards the sea... I think). I also love it generated a continent with one singular snow-covered mountain in the center.
The values I used for LNCurves are
"DefaultLandCurveControlPoints": {
"p1x": 0.0,
"p1y": 0.12,
"p2x": 0.5,
"p2y": -0.15
}
https://cubic-bezier.com/#0,.12,.5,-0.15
That's an interesting configuration, a little nudge right there near sea level, and nice use of a negative coordinate to dampen that nudges total impact.
Thai nudge on the first point was to counteract something (probably rivers land carving) turning huge areas of the world to wetlands 😄
Oh, wow! That is a _really nice_ result! Thank you for sharing. :)
Hi. I kept trying to use autoconfig to adjust the slider and fix the issue of "floating" terrain, but the ground just kept rising until the landscape changed completely into something I didn't like. I even tweaked the curve parameters—setting the Y position to -0.000001—because the ground wasn't level with the water; instead, it was sitting one block above the water level (creating mini-cliffs). Also, I should mention that I'm setting the world height to 384.
The "Threshold Smoothing Radius" is the setting that deals with the terrain gaps shown in the last two screenshots, and it can only be set to whole numbers between 0 and 16. You really shouldn't need anything higher than 3, maybe 4, to remove most if not all of them.
The control point positions being negative in the Y axis is allowed, but I don't think it does what you think it does. These are control points for a cubic bezier easing curve. I highly recommend using the linked website to visualize and generate your control point coordinates. Imagine the grey diagonal line going from the bottom left to the top right of the graph as the baseline height of features, from 0 to 100%. Where the curve is in relation to that line in any vertical slice is how features of that height will be adjusted. If the curve sits below the line at that point, features of that height will be made shorter. If it sits above, they will be made taller.
The control points I tend to prefer are:
"DefaultLandCurveControlPoints": {
"p1x": 0.4,
"p1y": 0.1,
"p2x": 0.25,
"p2y": 0.25
},
I leave the below sea level curves alone. There's usually not much reason to mess with those. You can see it graphed at https://cubic-bezier.com/#.4,.1,.75,.75. It suppresses low lying areas a decent amount then eases off.
You can create some pretty wild curves with negative coordinates, some that could produce numbers the vanilla terrain generator might not be able to cope with. For example, this one pushes mid level altitudes back below sea level! - https://cubic-bezier.com/#.59,.12,.75,-0.6 - I've not tested much if at all with these kinds of crazy settings, YMMV.
If you're still struggling, please send me a seed, your settings, and any terrain generation altering mods you are using.
Hello,
I managed to level the terrain, which I quite like.
Above sea level:
X: 1
Y: 0.2
X: 1
Y; 0.2
And I haven't seen any terrain that bothers me anymore ;-)
The strange horizontal gaps and various types of fungi (some small mounds had caps, but there was no opening all the way through just a slight indentation 2–3 blocks deep) have disappeared, and the terrain has leveled out to sea level, eliminating the mini-cliffs that were there before.
I'm glad you found one that suites you! It's very similar to the one used on the first screenshot. Very aggressive, very flat, but you'll still see a very steep mountain or two. Should make road building and traversal mich nicer! :)
I've installed a lot of mods for world generation, which have more flat terrain and don't have the odd mountain every now and then. I'm also playing at a higher sea level so I can dig more underwater. We'll see what happens with the world generator, because after over 40 hours of playing, I found myself over 6,000 squares away, and the terrain was ugly again. But thank you for your help. Previously, if I remember correctly, my world was set above sea level to 0, 0, 1, 0, or 1, 0, 1, 0.
would love to try this with some examples, or templates. even if you just post them here for us. thanks!
Here are a few control point parameters to try:
0.7, 0.05, 0.85, 0.1 - https://cubic-bezier.com/#.7,.05,.85,.1 - This will greatly flatten things, suppressing the height of all but the tallest features.
0.1, 0.85, 0.85, 0.1 - https://cubic-bezier.com/#.1,.85,.85,.1 - This one will raise features up until half way to max height, then it will shorten features past that.
0.95, 0.05, 0.05, 0.95 - https://cubic-bezier.com/#.95,.05,.05,.95 - This one will greatly suppress features below half world height, then greatly exaggerate features beyond half world height.
These are all for the land settings. Honestly, the sea settings are probably best left alone, unless you really want to do something like turn the entire ocean into a shallow pond with a small scattering of sudden deep trenches, which you could do.
if you can make this apply to world gen automatically it will be a game changer
What do you mean? It directly alters worldgen already by modifying landforms as they are processed by the engine.
I was seed hunting and found one with curves!
Let me know if anyone happens to want the seed and info. I have several mods and custom config.
https://imgur.com/a/ChQjkqb
WickedSchnitzel
That's fair. What it does and why you'd want it are niche and technical. Right now I've been a little consumed with Satisfactory, but once I come out of that haze I can add some buttons to the configlib interface to apply some simple presets. :)
Couldn't you provide some templates? Would be great. Because i don't quite get it. And i may not be the only one (i hope).
Very cool concept, I'll have to play around with this!