Terra icon

Terra -----

World generation modding/configuration platform




This minor version fixes a critical terrain generation issue involving linear interpolation in fractal samplers. All users of 6.4 versions should update IMMEDIATELY.
----------, Dec 24, 2023

This version introduces many new features including:

  • Support for Minecraft 1.20.2
  • Experimental support for Folia
  • The removal of a dedicated Quilt platform. Quilt users may now use the Fabric jar instead
  • Various other minor changes, optimizations, and bug fixes
Config pack development changes:

  • New SCATTERED_ORE config type added via the config-ore addon
  • Terrascript changes:
    • New rsqrt function
    • Additional optional boolean argument to the block function that determines if the block should use physics (Such as setting water to flow on generation)
  • Noise sampler changes:
    • New sampler DISTANCE - Provides the distance from a configured position
    • New sampler TRANSLATE - Allows translating sampler coordinate inputs
    • New sampler EXPRESSION_NORMALIZER - Allows modifying the output of a sampler using an expression
    • New LocalNoiseLookup CELLULAR sampler return type - Uses coordinates relative to closest cell origin for noise lookup
  • New experimental optional image caching parameters available in pack.yml to reduce memory usage once images are no longer needed:
    • images.cache.load-on-use: true - Only load images into memory upon first use
    • images.cache.timeout: SECONDS - Delay to unload an image after last use
----------, Dec 10, 2023

Added 1.20.1 support, includes the default Overworld 1.3.3 config featuring updated sakura mountains.
----------, Jul 14, 2023

This update adds 1.19.4 support.

This version also introduces an overhaul for image handling via the library-image addon. Notable new capabilities include:

  • Image stitching support for large scale image distribution.
  • Coordinate transformations on images, allowing the configuration of the world position of images.
  • More flexible color to biome mappings.
  • Distance transform noise sampler, allowing applications such as height maps from pure-black/pure-white images.
  • Image source for pipeline v2.

You can find the documentation for this new addon here.

In addition are the following changes:
  • Fixed a bug in pipeline v2 where the correct base biome was not returned, resulting in extrusions incorrectly working.
  • Added a new alternative method of calculating slant palettes that better supports overhanging terrain.
  • Reduced the amount of caching done by pipeline v2, reducing memory consumption for applicable config packs.
  • Fixed relative offset handling for Sponge v2 schematics exported by WorldEdit and Sponge v3 schematics.
----------, Jul 14, 2023

This is an EXPERIMENTAL 1.19.3 development snapshot for Bukkit. It should not be used in production.

1.19.3 required a lot of internal changes to how Terra interfaces with Minecraft. This release is intended to test those changes before a full beta release. Please report any issues to the issue tracker.
----------, Dec 22, 2022

This update adds a new Pipeline addon, and fixes a few Bukkit-specific issues:
  • Adds beardification on Bukkit. This should fix floating Vanilla structures.
  • Fixes Bukkit's misnaming of the end crystal in the Entity enum.

Terra releases are primarily distributed via Modrinth now. You can view the project page for Terra here.
----------, Nov 16, 2022

This version adds full support for 3D biomes in the following addons:
  • 3D Noise Chunk Generator (3D biomes are sampled for noise)
  • Feature Generation Stage (Feature generator uses ranges in biome columns to place features)

A number of optimisations regarding 3D biomes were added:
  • Addition of "biome columns" to avoid repeating expensive 3D computations
  • Optional override for a `BiomeProvider` implementation to return a "base biome" used in biome columns
  • More advanced biome caching
  • Finer control over biome caches

Several other general-purpose optimisations were added:
  • TerraScript backend was rewritten to store LVs in an array-based table with reference and store nodes containing table indices, rather than storing in an ID-based hashmap
  • 3D Noise Chunk Generator was optimised to avoid biome lookups when possible
  • Adjacent palette locators no longer instantiate 4 extra `Column` instances
  • Iteration over `Range` using foreach was replaced with index-based iteration in hot code.

This version also adds a new core addon, the Biome Extrusion Provider.

The Extrusion Provider takes another biome provider as a parameter, which it uses as a "base." Through "extrusion" layers, 3D biomes are inserted on top of the base biomes.
----------, Jul 8, 2022

This version adds NMS bindings for 1.19
----------, Jun 13, 2022

This version fixes a bug that occurs during first load on Windows.
----------, Jun 8, 2022

  • Include overworld config version 1.1.0
    • Added Arid Highlands biomes (by @ Eris#0075).
    • Added Eucalyptus trees and forests biome.
    • Added Sakura biomes.
    • Added Palm Forest biome.
    • Added new boulder type.
    • Added small/big dripleaf features to many jungle-like biomes.
    • Replaced Warm Hills biomes and variants with Chaparrals.
    • Improved Highlands biomes (by @ Eris#0075).
    • Improved Autumnal forest density and biome colors.
    • Updated Evergreen tree types.
    • Evergreen Forests now inherit from Rainforests.
    • Amethyst crystals now generate in geodes.
  • Fix TerraScript `==` operation on Strings
  • Beardifier now produces air for bearded structures

This release is still for Minecraft version 1.18. We are waiting for Paper to update to 1.19, then work will begin on updating the Bukkit version of Terra. If you want to play Terra on 1.19, try the Fabric Version!
----------, Jun 8, 2022

Version 6 is a near complete rewrite of Terra; more changes were made during 6.0 development than the entirety of Terra development prior. Here's a short overview of the changes:

* Addon API was completely separated from common implementations
* Addon loader was rewritten to use "bootstrap addons" to define loading process
* Config schemas are now implemented by "core addons" bundled with platform distributions
* Brand new Overworld config

You can see a full list of changes in the 6.0 tracking Pull Request.

You can read more about the new API at the new Terra wiki

[​IMG]
[​IMG]

To get help with installing Terra, creating/modifying configurations, using the Terra API, or to just talk about Terra, join our Discord server!

Enjoy!
----------, Jun 1, 2022

Our SpigotMC page has skipped several versions!

This is because we did a day 1 release for 1.17 on Fabric, and have been targeting 1.17 since then. We've waited for Paper to update before releasing a Bukkit 1.17 build. Paper has now updated to 1.17, and as such, we are very happy to announce our second Day 1 1.17 release!

Changes since 5.3.3:
  • 1.17 Default Config
    We have updated the default config to contain all new 1.17 features. PR.
  • Multiple Inheritance
    We have updated our config library, Tectonic, to support multiple inheritance. PR.
----------, Jun 19, 2021

This update fixes a structure location issue that occasionally causes the server to pause for several seconds when locating a structure that does not exist.
----------, May 19, 2021

This update offers many improvements to the default config, specifically:
  • Improved Desert Biome
    The default desert biome now has realistic dune formations.
  • Oasis Biome
    Added an oasis biome with procedurally generated palm trees, which generates in small patches in deserts.
  • Improved Mesa Biome
    Improved the default Mesa biome, the new biome is designed to look like Monument Valley.
  • Improved Dark Oak Trees
    New procedurally generated Dark Oak trees
  • Improved Rivers
    New river palettes.
----------, May 11, 2021

This version offers numerous default config improvements, including:
  • Pumpkin patches in plains
  • Melon patches in jungles
  • Improved river biomes
  • Custom birch trees.
----------, May 5, 2021

This update bumps the Tectonic version used. The new version gives much more helpful error information, namely by giving the specific file where the error occurred.

We now also have a Forge version available, get it on Modrinth. This update also fixes Fabric server-side issues, making the Fabric Server companion mod obsolete.
----------, May 3, 2021

This update introduces a new stack-based profiler for performance monitoring. The new profiler is very useful in config development, for monitoring the performance of TerraScript.
----------, Apr 28, 2021

This update adds warnings about "dead" registry entries (entries that are added but never accessed). It also fixes some dependency shading issues, some default config issues, and fixes physics updates on Fabric.
----------, Apr 12, 2021

This update adds warnings about "dead" registry entries (entries that are added but never accessed). It also fixes some dependency shading issues, some default config issues, and fixes physics updates on Fabric.
----------, Apr 12, 2021

This update adds 2 additional events that addons can listen to:
  • LootPopulateEvent
  • EntitySpawnEvent
----------, Apr 3, 2021

This version adds API that allows addons to add generation stages. It also adds config options to enable/disable default populators, as well as the ability to set custom water/fog/sky colors for biomes (currently a Fabric-only feature, since Bukkit still handles biomes in an enum).
----------, Mar 29, 2021

This update adds some new TerraScript functions and contains some code cleanup.
  • Added setWaterlog TerraScript function for automatic waterlog
  • Added dynamicBlock function for dynamic block data in TerraScripts
  • Removed legacy fractal trees. They have been implemented in an addon.
----------, Mar 17, 2021

This update adds some new TerraScript functions and contains some code cleanup.
  • Added setWaterlog TerraScript function for automatic waterlog
  • Added dynamicBlock function for dynamic block data in TerraScripts
  • Removed legacy fractal trees. They have been implemented in an addon.
----------, Mar 17, 2021

This update adds a proper addon loader to allow for platform-agnostic addon development using our API. See the Example Addon Template Repository for a commented example addon to get started with developing Terra addons! The MythicMobs addon has been updated to use our addon loader.


This update also contains significant performance improvements, and adds Gabor noise.


We have also mostly finished our Fabric implementation. It is available on Modrinth and CurseForge.
----------, Mar 17, 2021

This update adds a ton of fancy new noise options.
  • Fractal samplers have been made into their own noise type. This means that you can now fractalize any function.
  • Added Gaussian noise.
  • Added Expression samplers. Expression samplers use Paralithic expressions for noise functions, meaning you can define custom noise functions as mathematical expressions.
  • Moved noise templates to a registry, so addons can register their own noise functions.
This version breaks parity with old configs.
----------, Feb 19, 2021

This update adds an event API, allowing addons to inject data into config packs. The MythicMobs Addon has been released along with this, which adds a mythicMob function to TerraScript.

We also have created a template repository, to make creating addons a simple process.
----------, Feb 16, 2021

This update implements our new expression evaluator/parser, Paralithic. Paralithic allows user-defined expressions to achieve performance matching hard-coded math, significantly boosting performance in base terrain generation and cave generation. In the default config, base generation improvements from 15-30% are common. In configs with more complex equations, higher performance improvements may be seen.

This update also adds a new normalizer type, called CLAMP, used to clamp an input function.

The default config now has 2 new biomes, Yellowstone and Sky Islands. Both are very rare.

This update should maintain parity with old worlds/configs. The new default config will break parity, however, so do not reset configs on an existing world.
----------, Feb 16, 2021

This update includes a few minor changes:
  • Villages in the default config were altered to increase the frequency of houses generating
  • Sapling overrides should now not take priority over other plugins (e.g. SlimeFun)
----------, Feb 8, 2021

Parity with old worlds/configs will be broken!

This version completely redoes biome distribution to use our new Biome Pipeline system. It also adds many new options to noise configurations, and redoes image generation.

  • Biome Pipeline
    The biome pipeline is a new biome distribution system that is much more powerful than the previous Biome Grid system. It uses a biome source to provide base biomes, then passes biomes through stages to mutate/expand selection. This allows for much more natural distribution of biomes, and makes adding new biomes much easier.
  • Image Generation Changes
    Image generation now uses color matching. Each biome now has a color config attribute. When using image generation, the biome at a location is chosen based on which biome most closely matches the color of the image.
  • Noise Config Changes
    Noise configs now have support for using images as noise functions, as well as normal redistribution options. Many more cellular noise return types have also been added.
  • Biome Blending Changes
    The biome blending algorithm has been completely rewritten to allow per-biome blending distances, and to make blending much more natural.

Many biome additions to the default config have been made:
  • Bamboo Jungles
  • Coral Reefs
  • Mushroom Islands
None of these would have been easily achievable with the old Biome Grid system.

Parity with old worlds/configs will be broken!
----------, Feb 7, 2021

This is a very small update that allows all Terra structures to be located as if they were Vanilla structures. There is an option in pack.yml that allows configuring which custom structures to locate instead of Vanilla structures.

This will only work with Paper builds 427 or later. Update your server, or Terra will yell at you and use the workaround Spigot events until you do.

Terra monument being located by Vanilla explorer map:
[​IMG]
----------, Jan 18, 2021

This update adds more options to data-driven noise, as well as more places to use it, such as:
  • Palette distribution
  • Tree Layers
  • Flora Layers
See more information about noise configuration on the wiki.
----------, Jan 12, 2021

You will need to update your configs for this version! See below for instructions.

Terra v3.0 is finally here, after almost a month and a half of hard work!
3.0 is by far the largest update Terra has ever seen (over 25,000 lines of diff)! This update adds several insane new features:
  • Platform-Agnostic Engine
    Terra no longer depends on an implementation of Minecraft. We have a completed Bukkit implementation and mostly finished Fabric and standalone implementations. We plan to do a Sponge implementation as well once we finish up Fabric and standalone. This also removes dependency on Gaea.
  • TerraScript
    TerraScript is our custom scripting engine, designed for the creation of custom procedurally generated structures. In the 3.0 default, we use TerraScript to generate procedural villages and mineshafts, as well as procedurally generated trees. You can convert your old structures to TerraScript very easily with our conversion tool.
Default config changes:
  • Procedurally generated trees
    Using TerraScript, Oak and Spruce trees are procedurally generated now!
  • Villages
    Procedurally generated TerraScript villages have finally been added. Structures made by @_DeathShade_
  • Mineshafts
    Procedurally generated Mineshafts
  • Ruined Portals
    Ruined portals were added. PR by @solonovamax

You will need to update your configs for this version!

If you are using the default config, simply delete Terra's packs and lang folders. Note that parity with old configs is broken.

If you are using a custom config, delete the lang folder, update your structures with the conversion tool, and update your structure configs to the new format, described on the wiki.
----------, Jan 11, 2021

This update simply adds several default config improvements. It will retain parity with old worlds, meaning you can safely regenerate your default config to take advantage of the additions and fixes.

Additions:

Fixes:
  • Fixed sugarcane not spawning in rivers due to height issue.

What's next?
We are currently working on making Terra platform-agnostic. Terra will be coming to Fabric first, then most likely to Sponge in the future. We are also working on a multipart/procedural structure system. Join our Discord to keep up with the latest news!
----------, Dec 18, 2020

This update fixes some minor issues, and adds a powerful new option to Flora configs.

Issues fixed:
  • Fixed compatibility with WorldEdit's //regen command. Note that due to how WorldEdit has implemented this command, only base terrain will be regenerated (populators will not be run)
  • Fixed some reloading issues.
  • Fixed wall rotation in structures.
Flora feature:
  • The new rotatable material set in Flora configs allows you to set blocks that rotatable items will automatically rotate to face!
  • Single-direction blocks (like signs) will choose a random valid rotatable face.
  • Multi-direction blocks (like vines) will face all valid faces.
  • This has been implemented in the default config with the new VINES flora option. It's used in Jungle Rivers and Jungle Caves.
----------, Dec 10, 2020

This update fixes a language bundling issue.
----------, Dec 9, 2020

This update fixes an issue with structure features, and adds a new structure to the default config.

  • Structure Features are actually applied to structures now B)
  • Fixed parsing issue with te structure load raw command
  • New Pillager Outpost structure was added to the default config, contributed by @_DeathShade_
----------, Dec 8, 2020

2.0.0 is finally here! This update is a near complete rewrite of the plugin, so the changelist is pretty huge. Before listing all the changes/additions that were made, here are steps for upgrading from 1.x to 2.0.0:
  1. Delete (or manually upgrade) your config packs.
  2. Delete your Terra/lang folder.
  3. Install Gaea 1.15.0
  4. Regenerate Terra worlds (optional, if you don't do this you will get chunk cliffs between old and new generation)
Now it's time for the changelog:
  • Configs are now handled with Tectonic
    Tectonic is Polyhedral Development's very own config API for heavily data-driven applications. Tectonic vastly improves upon Terra's abstraction system, allowing for multi-level inheritance, and allowing all configs (not just biomes) to be abstracted.
  • Flora and Tree configurations have been vastly improved
    Flora and Trees are now generated in "layers". You may have as many of these layers as you want in your biomes, and each layer gets its own noise function/probability, and Y-level range. Check out the YELLOWSTONE biome in the new default config to see just how powerful Flora has become!
  • Config Packs can now be loaded from ZIPs and JARs
    Distributing config packs just got a lot easier! Simply ZIP your config pack and send it to someone, they can load it into their server without needing to extract it. The default and nether configs are now bundled as ZIPs. (Loading from folders still works as well)
  • Ore Spawning Additions
    A new ore spawning algorithm has been added, designed to replicate Vanilla. The default config now uses this over the legacy deformed sphere algorithm. If you want to use the deformed sphere algorithm, you may set the type: SPHERE key in any ore configs.
  • Biome Zone Options
    A new BiomeZone type, RADIAL has been added. This zone type generates a certain grid within a radius, then a different grid outside. This will be used in our upcoming End default config, and I'm excited to see what else it can be used for!
  • The default config has received many additions
    The default config has several new biomes, and a few new structures.
    • Mountain Rivers!
      These beautiful biomes generate when rivers intersect mountains, and are, quite frankly, some of the coolest terrain generation I have ever seen.
      [​IMG]
      [​IMG]
      [​IMG]
    • Cave Improvements
      Using Gaea 1.15.0's improved carving API, caves are now many times faster than before, allowing for tons of additional complexity. The default config now contains almost 2 times as many caves, with much more complexity, yet still performs better during carving than v1's default!
      [​IMG] [​IMG] [​IMG]
    • Ore Improvements
      Ores now generate almost identically to Vanilla.
    • New Structures
      The default config has received 2 new structures, the Desert Temple and the Swamp Hut, both contributed by @_DeathShade_
----------, Dec 7, 2020

This update fixes some minor issues, and significantly improves performance.

Issues fixed include:
  • Elevation equations sometimes generated strange spikes.
  • Tree Sapling Overrides would only grow in locations that used to be valid.
Performance improvements:
  • 2D Noise cache was significantly optimized (PR by @BudG and @dfsek)
  • Carvers were significantly optimized
  • Ores were significantly optimized.
  • Flora was slightly optimized.
  • Population management was optimized (PR by @BudG)
  • Snow was optimized
  • General minor optimizations to lots of different things (PRs by @dfsek and @BudG)
Additions:
  • Several functions were added to noise equations. You may now use bitwise functions in your equations, along with a proper PRNG, which comes with a new variable, seed, which is set to the world's seed.
This update will break parity with old worlds, most notably with ores and carvers. Be careful when updating!
----------, Nov 25, 2020

This is a rather massive update that brings numerous improvements and additions.
  • Noise has been moved to a data-driven approach! You now define noise functions per-pack in pack.yml. This means you can have as many noise functions, and as many types of noise as you wish, in your config! Terra currently supports Simplex, Perlin, Value, Cellular (Voronoi) and their fractal variants. Each noise function may be given a custom seed (offset from the world seed), custom frequency, fractal octave amount, etc. This unlocks amazing possibilities for your custom configs. As for upgrading existing custom configs, see the section at the bottom of this update post.
  • The structure load command has been vastly improved, and has learned a few new tricks! Its new syntax is /te structure load raw|chunk|full structure_name rotation. RAW will load the raw structure, with structure void blocks, and reconstruct all magic signs in the structure, making editing structures much easier. FULL will load the structure in full, and CHUNK will load the structure into the current chunk. The command will now also tab-complete with structure names in the export directory, and rotation values.
  • Generation handling has been rewritten to be more stable and performant. The performance boost is minor, but noticeable. Multi-world is now a lot less sketchy, as each world is now given exclusive access to its own parser, rather than the same parser being shared and synchronized across all worlds.
  • The default config has received many more custom trees, and a new biome, courtesy of our first default config contributor, Khasar! Images can be found at the bottom. If you wish to contribute to the default config, fork and make a PR in our default config repo!

UPGRADING CONFIGS
If you don't want to reset your world, and wish to keep using your old default/custom config, replace the noise key in pack.yml with the following. This will register the standard noise2 and noise3 functions with the same values as in legacy configs.
Code (YAML):
noise:
  noise2
:
    dimensions
: 2
    type
: OpenSimplex2
    frequency
: 0.0075
    offset
: 0
    fractal
:
      type
: FBm
      octaves
: 5
  noise3
:
    dimensions
: 3
    type
: OpenSimplex2
    frequency
: 0.0075
    offset
: 0
    fractal
:
      type
: FBm
      octaves
: 5
New Rocky Tall Forest biome, contributed by Khasar
[​IMG]
Custom Oak trees, contributed by Khasar
[​IMG]
Custom Birch trees, contributed by Khasar
[​IMG]
Custom Dark Oak trees, contributed by Khasar
[​IMG]
----------, Nov 18, 2020

This version allows users to define global variables in pack.yml that may be used in Noise Equations throughout the config pack. It also includes a new biome in the default config, the Crag biome:
[​IMG]
----------, Nov 14, 2020

This version adds several new options to base terrain generation that vastly improve Terra's capabilities. These options are Slant Palettes and Elevation Equations.

Slant Palettes are Block Palettes to be inserted on slanted terrain. This allows separate blocks to be used on cliffsides/steep hills.

Elevation Equations define a second, high-resolution 2D noise function to pass over terrain a second time. This allows true vertical steps/cliffs to be created.

More info on these new options can be found on the wiki.

[​IMG]
[​IMG]
[​IMG]
[​IMG]

This version also improves cave generation, and adds more config options to carvers. Note that this update will break cave parity, but not generation parity.
----------, Nov 12, 2020

This version switches internal handling of Trees to use a per-config registry. This allows Structure Trees to override Vanilla trees in the world (including sapling growth). If a structure tree shares an ID with a Vanilla/Terra default tree, the default tree will be overridden in any worlds using that config pack, in both generation and sapling growth. The default config has been updated to demonstrate this with the SPRUCE custom tree.

Sapling overrides may be disabled in pack.yml by setting the prevent-sapling-override option to true. This option may be left out of configs, if so it defaults to false.

This version requires a Gaea update (1.14.1 or later) to run!
----------, Nov 9, 2020

This update contains minor performance improvements, and adds a configuration option to Flora, called "irrigable". This option allows you to define blocks that can surround the block the Flora is to be planted on for it to be considered "irrigated". For example, in the new Sugar Cane config, sugarcane can only be planted if it is on a block bordering water.
----------, Nov 9, 2020

This version fixes a minor issue that caused random chunks to be left unpopulated, if they were generated in a very specific order.

It requires a Gaea update (Gaea v1.13.2 or later) to work properly!
----------, Nov 5, 2020

This update adds the ability to configure mob spawning within structures.

It also adds the ability to enable Vanilla Caves, Decorations, Structures, and Mobs within Config Packs. Note that these options are not recommended! They simply provide access to Bukkit's built-in options for these things, which are known to be buggy, no support will be given for broken Vanilla structures, mismatched biomes for caves/mobs, etc. All these quirks are issues with Bukkit, not Terra.

More info on these new features can be found on the Wiki. If you need help configuring these features, join our Discord and we'll be happy to help.
----------, Nov 5, 2020

This update adds a small caching mechanism for 2D noise values, so they aren't pointlessly re-calculated. Adjust the cache size in config.yml with the cache-size value (Note that larger values see diminishing returns in performance improvements, the default should be just fine).

This update also switches to the latest version of Gaea, make sure you have it!
----------, Nov 1, 2020

This update overrides /locate to use Terra's implementation, since Vanilla's implementation just crashes the server when structures are disabled B)
( /locate is now identical to /terra structure locate)

This update also completely overhauls the default config. No more gigantic frozen oceans! Biome distribution has been improved drastically, and an exciting rare new biome has been added, the Sky Islands:
[​IMG]
A non-exciting, more common biome has been added as well, the Birch Forest.


Do not reset your config on existing worlds unless you're OK with chunk cliffs. Existing custom configs are not affected by this update.
----------, Oct 28, 2020

This update fixes a rather elusive crash that sometimes occurred after a very specific pattern of shutdowns and chunk loads.
----------, Oct 27, 2020

This update fixes the BIOME: alias in pack.yml BiomeGrid configs. You can now once again use BIOME:BIOME_ID as a shortcut for a single-biome grid.
----------, Oct 26, 2020

This update cleans up the default config, and makes minor biome layout changes. It also adds helpful tips to a few error messages, to make diagnosing config issues easier.
----------, Oct 25, 2020

Resource Information
Author:
----------
Total Downloads: 132,245
First Release: Oct 25, 2020
Last Update: Dec 24, 2023
Category: ---------------
All-Time Rating:
160 ratings
Find more info at terra.polydev.org...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings