This guide will outline process of creating your own world! This guide assumes that you have a running minecraft server with Terra installed and working.
This guide is a work in progress.
This section goes over basic workspace setup, and creating a config from a template. See Config Packs for more information on config packs.
Set up a test server, and install and run Terra.
plugins/Terra/config.ymlin a text editor, and set
Navigate to the packs directory (
plugins/Terra/packs) and make a copy of the
defaultdirectory. Name the copy whatever you want, this tutorial will call the new config
Open the new pack directory in a text editor like VS Code. Do not use Notepad/Notepad++! You'll want to set up your workspace in a text editor with file browsing support.
pack.yml, found in the root directory of the new config pack. Change
idto the ID you wish to assign your config. This tutorial will use
EXAMPLEas the config ID.
Set your test server's world to use the new config:
bukkit.yml(Found in the root of the server).
Assign your new generator to the default world by adding the following lines to the end of the file:
worlds: world: generator: Terra:EXAMPLE # Replace EXAMPLE with the ID of your config.
Stop your test server, delete the
worldfolder, and start your server again. Your test server will now be using your new config pack!
You now have a copy of the default config, called
EXAMPLE. It's running on your test server, and is assigned to the overworld. You have a workspace in VS Code set up to work on this new config.
This section overviews the many options available to adjust world generation in your new config.
In this section, we will go through some basic changes to the world generation to explain you all the different settings. When adjusting your configuration, remember that most values can be reloaded live! If your server is in debug mode, simply run
/te reload to reload all configurations. You will need to fly into un-generated chunks to view any changes.
Terra has a vast amount of options for configuring world generation from the ground up. This tutorial will begin at the largest scale, then narrow down into finer aspects of generation.
The Largest Scale: "The Zone"
A Biome Zone holds Biome Grids (overviewed later in this page). Zones generally define large differences in terrain, for example, in the image below, which shows a zone, there are 5 grids:
- Mountains Low
- Mountains High
Each section of the zone contains a BiomeGrid with biomes containing unique types of terrain. For example, all biomes that fall under the OCEAN category should probably be grouped together in the world, so they would be arranged in the OCEAN grid, then put in the zone together.
The Biome Zone is configured in
pack.yml. See the pack.yml page for more information. The zone in the image above would be configured as:
grids: - OCEAN - OCEAN - BEACH - BEACH - LAND - LAND - MOUNTAINS_LOW - MOUNTAINS_HIGH
The layout of the list is important! Grids that are adjacent in the Biome Zone will be adjacent in the world. Using the above example, the generator must place BEACH between the OCEAN and LAND grids, MOUNTAINSHIGH must border MOUNTAINSLOW, and MOUNTAINSLOW must border either MOUNTAINSHIGH or LAND. Repeating grids allows to make larger areas of e.g. OCEAN.
The Biome Zone can be a maximum of 4096 grids long.
Since there are already many default icy, ocean or mountain biomes (and you can create tons more), it would not be meaningful to start manually configuring which biomes can be next to each other at the largest scale. So let's rather define a collection of biomes that make up an environment, called a biome "grid". You could have an "ocean" grid, a "beach" grid or a "low mountain" and a "high mountain" grid. Each grid then will be built of all the biomes that you think make sense for that grid. A biome can appear in several grids. For your Zone, you can then define which of these grids can be next to each other in a list. This list can be found for the default pack in
\plugins\Terra\packs\default\pack.yml. Details how to configure this list can be found here: Biome-Selection#biome-zones.
Terra will go through that list and make sure that those grids are next to each other only in the sequence listed in pack.yml. While there is a complex randomization happening the background to determine which biome in the end will be next to each other, the rules of the zone's grid list will always be followed.
To start with, it's highly recommended to have Ocean biomes on the one end of the list and Mountain on the other with flat land in the middle, as in the default pack.
fig: Coming to the next level of detail now, you have to configure the grids that you listed in your pack.yml. Essentially, you can now define a 2-D pattern of biomes that you think look good next to each other in order to make the grid look nice. For each entry on your list in pack.yml, you need to have a file in
/plugins/Terra/packs/default/grids/ such as
Within this file, there is a 2-dimensional list (hence a grid) of biomes that defines all the biomes that can appear in that grid. If biomes in this list are next to each other (vertically or horizontally), they will also have a chance to be next to each other in the real world. The neighboring biome will not be chosen by jumping diagonally.
This list can be maximum the same length as the Zone file grid list (4096) in either direction, so quite huge if you need to. You can find more information about Biome Grids here: Biome-Selection#biome-grids
Biomes have several components, See Biome-Configuration for details. Some introduction of components here:
Minecraft worlds are dimensioned by X, Y and Z coordinates. Y is the height, the other two are North-South (X) and East-West (Z). Terra uses a so-called noise function that calculates how the world looks like.
Can't find what you're looking for? Join our Discord server and we'll be happy to help you!
To see these configurations in the wild, check out our Default Config!