The legacy part of the Wiki
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This page will go over Basics in Regions
Every setting with a *
is mandatory for this file
Regions are the JSON Equivalent of a Library Subsection, where the books are the biomes, and each biome can tell a story. In normal language; Regions are a way for you to map biomes in your world, and have a system that lets you control all biomes of a certain type (in this region) with a single file.
Since a lot of the settings you can change here can also be changed in each of the biomes individually, we will only go over region-only settings here. This is not the case for the Mastering part, where we will include all settings.
The region files can be found in the regions
folder and usually have a descriptive name. We will be using the region "hot"
as found in the example project:
The name of the region. It is best to keep / make this the same as the name of the file you are editing.
Here you specify the biomes in the world as they connect to eachother. "landBiomes"
only connect to "shoreBiomes"
and "seaBiomes"
only connect to "shoreBiomes"
as well. "shoreBiomes"
connect land with sea.
These biomes are optional and have certain properties:
"caveBiomes"
can only spawn next to "landBiomes"
,
"lakeBiomes"
can spawn next to "landBiomes"
and "shoreBiomes"
, and
"riverBiomes"
can spawn connected to all other biome types.
All of the previous biome types have zooming factors to them. Making this number higher will make the biomes larger.
Ridge biomes are like real-life mountain chains:
These biomes have a few properties:
Here you specify the type of biome that should spawn as a ridge (a straight but fractal line through the land).
Here you specify the type of terrain ridges should spawn on, can be any of the previous types ("SHORE"
, "LAND"
, "SEA"
, "CAVE"
, "RIVER"
, and "LAKE"
) and "DEFER"
, where the last option uses a random type every time (not always the same).
Here you specify the chance that the biome will continue and / or spawn in any given location on the previously specified "type"
terrain. Ranges from 0 (never) to 1 (frequently).
For the use of Spot Biomes, this setting is replaced by "rarity",
but functions the same.
Spot biomes are very similar to the Ridge Biomes, all settings for this are explained there. These biomes can make for very interesting looks in the world, such as this real-life example:
This affects how "deep" the shores (beaches) are compared to the land. Making this 1 will make for very, very deep shores.
Places vanilla rivers in the world if turned to true
and not if false
.
If you cannot find the settings you're looking for here, check out the Template Mastering Page
This page will go over Basics in Dimensions
Every setting with a *
is mandatory for this file
Dimensions are json
files and they are placed in the dimensions
folder. Typically you only have one dimension file in your entire project. The dimension file is the first and highest level file Iris looks at when generating. It describes regions, and other base settings.
This file is the most impactful on your world as it controls every region, and every region controls every biome.
This is a relatively large and complex file and it is where people can get discouraged to continue using Iris' configurations.
Though, you have come this far already, so we are happy to tell you that you will only touch the Dimension files a couple times during your time editing in Iris. This is among the reasons that this page has relatively little settings.
When working on a Biome or Region we recommend that you Focus the biomes that you are working (only 1 at a time), If you are working on the terrain, we recommend that you turn off Decorate as to be able to see it better. As for Regions- they are like the bag holding all the biomes, but you can have as many regions in the dimension file as you want, as long as they are not duplicated.
The dimension file is called example.json
and can be found in the dimensions
folder:
You may notice "hot"
is specified twice. This is merely to show you how to add multiple items to the array. Adding "cold"
region now will mean 2/3rds "hot"
and 1/3rd "cold"
You may notice "focus"
being empty, this means that it does nothing.
This is required so we can see the changes made to other biomes.
Here you can specify the name of the dimension. This should be the same as the name of the file we are currently editing, so example
, this file must, in turn, should be called the same as the project we are working in, again example
. This can be anything you want (some limitations), but try keeping these three the same.
This is where you specify the version of the settings. This prevents you from breaking stuff where it's not supposed to. You do not have to change this value, but it may be useful when you are editing and want to keep track of the current version.
This affects the type of world you are in and can be any of three: "NORMAL"
, "NETHER"
, "THE_END"
for the Overworld, Nether and the End, respectively. (Affects the color of the sky and mob spawning defaults etc.)
Here you specify the regions which you want to have spawning biomes in your world. The names here are and must be the exact same as the names of the files in the regions
folder.
Here you can specify the height of the water level. Ranges between 0 and 255.
This does not raise the relative level of the water in the world, but rather moves the entire terrain up. This is caused by the way biomes spawn: relative to the water level. (See the Biomes' Generators Setting)
These toggles can turn on true
and turn off false
vanilla ravines, caves and structures. Note that the ravines and caves do not have the decoration block you may have specified.
This setting zooms your biomes and region respectively. A higher number will give larger biomes & region respectively. Ranges between 0.0001 and 512.
This setting will normally not be used in your world, but is very useful when you want to see only one biome in your world. Setting this to any biome will make that the only biome that can spawn. Must be a valid biome.
Here you can modify the ratio between ocean and land biomes in the world. Ranges from 0 (no land biomes) and 1 (only land biomes).
In the "deposits"
setting you can specify the ores you want to spawn in the ground. These ores have a few properties:
Here you can specify the height at which these ores can spawn. For example, setting "maxHeight"
to 30 with redstone ore would make sure the ores only spawn below level 30
Here you can specify the amount of ore patches that spawn per chunk. Setting this to 5 and 20, like in the example, will make sure there are at least 5 and at most 20 patches per chunk.
Here you can specify the size of each of the patches. Setting it to 10 and 20, like in the example, will make each patch consist of at least 10 and at most 20 blocks.
Here you can specify the amount of different shapes of patches Iris will create. Making this very high will cause a lot of lag since Iris has to create all of these as objects, making this too low will make it so that all the patches look very similar. Note that these patches can be rotated along the y-axis.
In the palette you specify information about the blocks used in this patch. You can use multiple blocks by adding more objects at the bottom like this:
You may notice the "weight"
property. This indicates how much this block should spawn relatively to others. The current setup (2 for andesite and 1 for diorite) will make andesite twice as likely as diorite for each of the blocks in the patch
You can also specify block data here, which is used for rotating stairs etc, and is required for enabling the use of modded blocks. Example (will make the fence waterlogged):
You can also specify ores in region and biome files separately. This is done in the same manner as described here.
If you cannot find the settings you're looking for here, check out the Dimensions Mastering Page.
This page teaches you how to create a new project and set up Iris Studio
This tutorial assumes you have Visual Studio Code installed and working.
For starters, projects are located in the packs
folder (found at */plugins/Iris/packs
). Each project contains dimensions, biomes, regions and more. Each project has its own VSCode Workspace.
Iris Studio is the system that allows you to easily design your own dimensions, or edit existing ones. To start using studio, first you will need to turn on studio in the settings and restart your server.
To start working with Iris Studio in a new project, we first have to create a new project. Do so with the in-game studio create command. In this command you specify a template, which is the baseline from where we start editing.
If you're following this Wiki as a tutorial to go over all Understanding topics, you must use /iris studio create <packName> template=example
as we will assume you use this later.
You can use this command for any project to create a copy, but if you're just looking to edit something small, you can also use /iris studio open <packName>
to directly edit the original.
Once you run the command for your project, Iris will create a new project test world (called a Studio World) and should open VSCode with your project in it. After the first time, you can use the studio open command instead of the create command to re-open this project world & VSCode workspace. Once finished working on the Dimension, use the studio close command to delete the world and save your workspace progress.
If Visual Studio Code does not open like it is supposed to, please navigate to the following folder: */plugins/Iris/packs/<packName>
and open packName.code-workspace
.
It is recommended that you use GitHub. If you are not familiar with using this program, check out the documentation on GitHub. Putting your project in a repository would give you the power to revert, to back-up and have many additional options regarding project changes.
This will cover everything essential to know when starting a project. If you read everything from start to finish, you will know how to build a dimension and make the most important edits.
We understand that this may be the first time you are doing something like this. This is why we chose to make the Understanding section elaborate and simple to understand.
We would like to warn new users that the Mastering section is more abstract and will contain less examples, images, videos etc. and will thus be more challenging to comprehend. That does however contain more settings and configuration than this section.
Note before we begin.
This page assumes you have created a new project using template=example
when creating the project, and that you also have VSCode open, and that you know how to close and (re-)open studio worlds and project files.
All references to folders are as you see them in the VSCode workspace (*/plugins/iris/packs/example/
).
Folders and files and are generally marked like this
.
If the referenced folder does not exist, you can create it.
Make sure to make no mistakes when entering the name of the folder, as this will lead to issues later on.
Projects can be very complex or very simple. It's really how far you want to go. Below is a description of top level JSON object syntax and, further down, Iris types. This should be enough to get you set-up for basic editing.
Good luck and have fun :)
From here on we assume you know this. Make sure to read this and not skip to editing. Thank me later.
You can easily create new objects by right clicking the folder of your project in VSCode, and creating the folder type if it doesn't exist. Then right click that new folder and click new file. Name it <name>.json
.
Typically file names should be all lower case with hyphens (-) for spaces.
Objects start like this:
Arrays look like this:
Variables look like this:
You will see these being used throughout, on top, and inside of one-another throughout the configurations.
Once you have created a new top level type, use CTRL+SPACE in VSCode to show options & documentation about each property in the workspace.
This feature is an absolute life-saver in many cases. Make yourself familiar with it, you will use it a lot.
Dimensions are json
files and they are placed in the dimensions
folder. Typically you only have one dimension file in your entire project. The dimension file is the first and highest level file Iris looks at when generating. It describes regions, and other base settings. See Dimensions.
Regions are json
files and they are placed in the regions
folder. Regions are comparable to biomes, but they contain groups of biomes, instead of a single one. For example, some regions in the Overworld pack are hot
, temperate
, or cold
. In regions, you define the biomes for each region. See Regions.
Biomes are json
files and they are placed in the biomes
folder. Biomes are what you would expect. They define block types, layers, objects and a lot of other stuff in the world. This is also where you reference noise generators to get your terrain shape. See Biomes.
Generators are json
files and they are placed in the generators
folder. Generators are Noise Generators. Noise generators take a coordinate x,z or x,y,z and convert it into a height value. You can explore different base noise styles by using the studio noise command. Generators can take multiple noise styles with additional options and are used to decide the shape of your terrain. See Generators.
Objects are a special type of file, iob
and they are placed in the objects
folder. Objects are the block schematics of Iris, comparable to World Edit schematics. You can use the object commands to create them easily. With objects you can also create sub folders inside the objects
folder such as objects/trees/tree-1.iob
. See Objects.
Structures are json
files and they are placed in the structures
folder. Structures reference multiple Objects to create a tiled village/mineshaft/stronghold-like generator. These can also be referenced to by Procedural Structures
in the support Discord. You can design one easily by using the structure commands. See Structures.
Loot are json
files and they are placed in the loot
folder. Loot tables can be referenced when defining loot in different dimensions, biomes, regions and even structures. They decide which items spawn in the chests they are assigned to. See Loot.
Entities are json
files stored in the entities
folder. Entities can be spawned and have customized options for each entity object, such as armor, effects, attributes and more. See Entities.
We offer support on our Discord. Ask questions you cannot answer using the Wiki there. We ask you to look on the Wiki for a solution for your issue before going there. Thank you for using Iris!
The Volmit Software Team
Introduction into Dimensions
Before you start with making edits to the Overworld, or any other pack, know this:
NEVER DELETE FILES
The files are referenced from other files, removing a file will not remove the feature, it will break the generator. Instead, you should remove the reference.
If you would like to change something simple and quick, skip to Creating a Project, make sure to read Understanding (both are quite short), and then navigate to your type.
This plugin is not just a block-placer. Iris comes with additional features to make the experience feel special. Examples of these features are custom particles and mob spawns.
Iris comes with several tools designed to allow the manipulation and handling of world generation with ease and power. Additionally, Iris makes full use of the VSCode workspace system, allowing for handy tool-tips and autocomplete in VSCode.
A core philosophy of Iris is flexibility, meaning that Iris is capable of generating any terrain imaginable (within the technical limitations of Minecraft, sadly), while also catering towards those who just want pretty looking terrain without much fuss.
For any given world, Iris takes a set of instructions and uses that to shape the world. You are in full control; whether that is determining which block should be placed at any given location, how biomes should be arranged, how structures should spawn, and so on, you decide everything!
Such a set of instructions is called a pack. The Overworld is an example of a pack. Iris world generation is handled on a per-world basis, meaning you can set up any multitude of worlds, each with their own custom pack, or have multiple worlds share the same pack if you so desire.
If a world hasn’t been set up with Iris then don’t worry - only worlds which are set up with Iris will be affected by Iris. We're not destroying your existing worlds.
An Iris pack is a collection of configuration files that define how Iris generates a world. Packs are designed to be highly customizable - allowing you to create and manipulate world generation to your liking - and packs are made easy to understand and have logical structures - allowing for easy yet powerful editing. If the Iris engine was a builder, then packs would be the blueprints that tell Iris what to do.
Packs are stored within the */plugins/iris/packs
folder within your server’s files, and can be broken down into several folders, each containing a separate group of configuration files. This includes things like biomes, schematics, terrain generators and more. (We will cover the specifics later on!).
If creating a pack is not your thing, Iris has you covered - The Iris team has created the Overworld pack. This, as a de-facto standard, comes bundled with Iris, and contains a set of stunning pre-made biomes, thousands of schematics, and utilises almost all of Iris’ comprehensive features. The Overworld pack, as well as other community curated packs, can be found on the Iris Dimension Collection, hosted on GitHub. You can use the Download Command to download the pack directly. You can then use the template
parameter when creating a workspace / project you can edit: e.g. /iris std create myPack template=overworld
.
This page will go over Basics in Biomes
Every setting with a *
is mandatory for this file
Biomes are json
files and they are placed in the biomes
folder. Biomes are what you would expect. They define block types, layers, objects and a lot of other stuff in the world. This is also where you reference noise generators to get your terrain shape.
A friendly reminder to keep using ctrl
+space
for autocompletions, it makes live so much easier :)
Also - not all settings hare handeled here, so make sure to check out Biome Mastering for more
The template file is called templatefile.json
and can be found in the template
folder:
The name of the region. It is best to keep / make this the same as the name of the file you are editing. This will only be seen when getting the name of the biome with the what biome command.
The type of biome that Minecraft uses for a number of things:
The name of the biome as seen in the F3
debug screen.
The variants of colors in the leaf blocks as made by the client.
The variants of colors of water in the oceans & rivers (for example swamp water)
The default type of mobs that spawn in the biome unless overridden
The environment sound effects that you may hear
This can be any vanilla biome.
Layers dictate the topmost layers of blocks on the surface. They are stacked ontop of eachother. The order in which the block objects are pasted (the part between the outermost {
and }
), is the order in which they are placed vertically: The sand in the top of the "layers"
array will spawn on top of the dirt, which is at the bottom.
We will now go over the parameters in each of the layer objects (elements in the array):
Here you specify the block type of the layer. You can also specify multiple blocks by adding more in the following fashion:
In the optional style object you can specify a noise layer to spawn the overlay blocks with. You can see the different noise options with the noise command.
The min- and maxHeight specified are the minimal and maximal height of the overlay layer. Note that the noise layer will overwrite the minimal, since it cuts away blocks after these parameters took effect.
The generators dictate the way the terrain is generated. You can combine multiple generators in one biome, they will then connect to form terrain you want. This is done by adding a second object to the array like this:
These are the required parameters:
The generator dictates the noise type that generator object uses.
"vanilla"
is a mimic of the terrain vanilla Minecraft uses, and "iris"
is a custom noise type we created. You can see the different noise options with the noise command.
Here you specify the minimal and maximal height relative to the "fluidHeight"
in the Dimensions. Note that Iris will, even if your "min"
and "max"
heights do not overlap with other biomes in the Land, Sea & Shore Biomes, always make the biomes spawn and connect up properly.
The objects array contains all objects that can spawn in the world. There are a couple of essential parameters to go over:
The "place"
element contains an array of objects. These objects will be placed with the settings you provide in the object (the curly brackets, not the schematic), such as the one on the next page, "chance"
The chance is the likelyness of the object to spawn for each suitable location. Making this equal to 1
will make it so that there is a guaranteed chance at spawning on every suitable location.
Note that there are other options that can add spawning requirements to the object, these can cause the object to never spawn.
For more information, see Mastering/Objects
Decorators are similar to Objects in that they have similar required parameters. The "chance"
functions the same and they have some corresponding spawning conditions, but Decorations are blocks, rather than schematics. Using decorators you can have dead bushes spawn around the biome, like in the example.
Slabs are literal slabs on the terrain that will cause a nice curve. Instead of blocky transitions you can have Iris place half slabs automatically. The required parameter is the "palette"
array, which takes a "block"
.
The rarity can make certain biomes more rare. The higher the number, the lower the spawnrate (the more "rare"). Ranges from 1 to 512. See this as 100% / value
chance of spawning for each location.
The color is the color that represents this biome when using /iris studio map
. It is in hexidecimal format and is not the color of the biome you see in game.
You can use a website with a hexidecamal color picker to get a color.
What do do with the parent table (if specified):
ADD: Adds items to the parent
CLEAR: Removes the parent's items if an item is places on that position
REPLACE: Replaces items in the parent's table if selected
The multiplier of the loot if the loot check is passed (directly multiplies the loot by x)
The array of tables used to pick loot for the chests.
If you cannot find the settings you're looking for here, check out the Biomes Mastering Page.
This page introduces you to Iris' configuration Wiki pages. Read this thoroughly so you can find information more easily.
It is highly recommended that you host a local server on the same machine that you run the Minecraft client on when designing dimensions. Iris has tools that open GUIs from the server process, which it can only do on the same machine. It also makes hot-loading effective.
It is also highly recommended that you have VSCode Installed. Iris takes full advantage of its workspace functionality and allows for effective content assist features. This means that VSCode can autocomplete fields as well as reference other files in all the correct spots. This will make your life significantly easier when using Iris!
Please install VSCode before using Iris Projects.
To be added later
We will provide two types of tutorials: Understanding and Mastering. As these types suggest, Understanding
is for the basic know-how of the files to be able to make quick changes and tweaks, whereasMastering
contains all options with a short, more abstract, description of their respective effects to allow full control.
Both Understanding and Mastering have pages. These pages correspond with the types of objects as found in the "Overworld" pack like follows:
These are ordered in order of importance (most impactful highest)
Dimensions
Regions
Biomes
Generators
Objects
Structures
Loot
Entities
Editing can be fairly simple in one and very complex in another area. We ask you to use the Wiki when you are in search for answers regarding editing Dimensions. If the Wiki is insufficient, unclear, incomplete, outdated, or you would rather talk to someone directly, the support Discord is always open for questions.
In the pages for each of the types you can find a video tutorial at the top if available for that section.
Hopefully these pages are enough to get the hang of the near-infinite possibilities you have with Iris. The sky is the limit (or the build height actually, ha-ha)!
Sometimes you need to get to a biome you created and you may not be able to find it. Maybe you set it to be a rare biome or something else is causing low spawn rates. You can use the studio GOTO command to find your biome. This command can check 2,000+ locations per second without loading a single chunk.
You can also find out what a block you are looking at is, what an item in your hand is or what biome you are in.
This page will go over Basics in Entities
Entities are, well, entities used within Iris. They can be any normal mob in minecraft and even customized.
Entities should be located within the entities
directory within your pack. Each should be named appropriately
The file above is for a panda that spawns with foxes on its back.
This can be referenced within Iris spawners or initial entity spawns in biomes/regions
type
- The type of mob. Should be from this list
surface
- What kind of surface should this mob be spawned on. See the table bellow:
Surface
Description
LAND
(Default)
The mob can be spawned on any solid blocks
WATER
The mob can spawn within water blocks
ANIMAL
Spawn only on grass, dirt and other surfaces animals can spawn on
OVERWORLD
Spawn on any land OR water block. Useful for turtles
LAVA
Spawn only on lava blocks
Coming soon. Requires Iris 1.6+
This feature is inactive in Iris 1.6+ as Iris has switched to using the new spawners feature.
It may be enabled again in the future but right now, use spawners
In each dimension, region and biome, there is a section called entityInitialSpawns
.
entity
- This is the name of the entity class to spawn. As you can see, we used the pandaUwU
file used in the example above.
minSpawns
- Minimum about of mobs to spawn in the chunk if the chance to spawn passes
maxSpawns
- Same as above, but the max
rarity
- The 1 in <rarity> chance for these mobs to spawn in a chunk
The things that literally make the world
This page will cover all advanced options for Objects within biome or region files. To see how to create an object and use it, see Understanding Objects
This tutorial will make use of multiple examples to provide you with the best understanding of how different parameters can be used in different scenarios.
In case you forget everything you learned, here is what was shown previously:
chance
- The chance to place this object in this chunk
density
- How many to place per chunk if the chance is successful.
place
- An array of objects to place
Easy enough, right? Lets get started then!
This example places a buried greek temple underground and replaces the gold blocks in it (placeholder chest locations) with either dirt or a chest to fill with loot.
"mode" is used to define how the object is placed.
Mode
Description
CENTER_HEIGHT
(default)
This mode picks a center point (where the center of the object will be) and takes the height. That height is used for the whole object.
MAX_HEIGHT
Samples only 4 points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried, though it will often float off of cliffs.
FAST_MAX_HEIGHT
Very similar to MAX_HEIGHT
but it uses a slightly different method to make this mode faster to calculate. Best to use this one over MAX_HEIGHT
if possible.
MIN_HEIGHT
Samples a lot of points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff, though it gets buried a lot
FAST_MIN_HEIGHT
Just like FAST_MAX_HEIGHT
, it is similar to MIN_HEIGHT
but is faster. Once again, it's best to use this over MIN_HEIGHT
if you can.
STILT
Stilt uses MAX_HEIGHT
but it repeats the bottom-most block of your object until it hits the surface. This is what vanilla villages use. Use with caution as it is very intensive and should only be done when neccassary.
FAST_STILT
Just like stilting but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts underground further)
PAINT
Samples the height of the terrain at every x,z position of your object and pushes it down to the surface. It's pretty much like a melt function over the terrain. This is what village paths use to meld the object to the terrain.
VACUUM
Pulls the terrain heightmap up to meet the object's surface. This ensures the terrain will be flat where the object is.
There are more options to combine with mode bellow at Other Placement Options
Where should this object be placed? Supports SURFACE_ONLY
, CARVING_ONLY
and ANYWHERE
, placing on the surface, in caves or anywhere, respectively.
Translating an object's position changes where it is placed on the terrain. Making this negative (on the Y-axis) will make the object place in to the terrain and making this positive will place it above the terrain.
You can also translate the X and Z if you really want to.
yRandom
allows you to randomize the output of the translated Y value. This value is always positive, so in the example above, the Y will range from -10 all the way to +2
Rotation allows you to randomly rotate your object when it's placed. We recommend always allowing rotation on the Y axis with intervals of 90 degrees to let it placed in all 4 directions.
Valid axis are xAxis
, yAxis
and zAxis
. Not specifying an axis will disable it by default
enabled
- Whether to enable rotation. It can also be enabled/disabled within an individual axis as shown above
interval
- Within the minimum and maximum range of degrees, what should the angle always be a multiple of. We recommend keeping this to 90.
min
- The minimum angle to rotate
max
- The maximum angle to rotate
The edit section allows you to edit an object's blocks and replace them with others. You can even use styles to change which blocks are chosen to replace.
find
- A Pallete array of blocks to find to replace
chance
- The chance a block in the find
will be replaced.
exact
- If this is true, the find
pallete must match the block found EXACTLY (so the block data must be the same and not just the material). Defaults to false.
replace.pallete
- The Pallete array of blocks to replace with.
replace.style
- The style to replace with. If not provided, STATIC
is used.
replace.zoom
- How zoomed the style should be. Defaults to 1
We can define what loot to populate this object with when the object is placed. If we don't provide anything, the containers will just be filled from the loot tables provided by the biome/region/dimension
name
- The name of the loot table to use
exact
- Whether to match the filter pallete exactly (match block data as well as material)
filter
- A pallete array of all the blocks to fill. Blocks MUST be a container of some sort (chests, barrels, dispensers, etc)
weight
- The weight of this entry. If more than one entry are put in the array that have the same filter, higher weights will mean that entry will be picked more.
Scale allows you to resize an object. It can be scaled up and scaled down and the size can even be randomized. The scaling is done on pack load and the objects are cached, so objects are not scaled when cached, but rather, placed from a cached version of the scaled object.
We suggest you play with scaling using the paste command to figure out what you think looks best.
interpolation
- The interpolation method. Should be either TRILINEAR
, TRICUBIC
, TRIHERMITE
or NONE
. If the names seem familiar, it's because they are the same interpolation methods a lot of image editing software use but in 3D (2D is Bilinear and Bicubic).
minimumScale
- The minimum size this object will scale to.
maximumScale
- The maximum size an object will scale to.
variantions
- If the scale range is randomized (from the range decided by the min/max), how many size variations should we cache in memory. Set this to 1 if you're planning on having a single size scaled object
The option that allows you to regrow this object with saplings!
As states, adding a trees
parameter allows you to regrow objects (like tree objects) with saplings.
The sizes
parameter dictates the formation of saplings. You can put multiple sizes in here, but generally ,you want to keep both depth
and width
the same. Setting these both to 1
would mean it can be grown from a 1x1 sapling. Following the same logic, setting them both to 2
would mean a user needs to put the saplings in a 2x2 formation to grow this object/tree.
The anySize
parameter will bypass any sizes specified when set to true, and will allow the object to be grown from any size sapling.
The anyType
follows a similar style and when set to true, will allow the sapling to be grown from any type of sapling.
treeTypes
specifies what type of saplings can be used to grow the tree. Or more accurately, it dictates what kind of tree it should override when that tree is grown from a sapling (of the correct specified size)
Tree Type
Description
TREE
Small Oak Trees
BIG_TREE
Large Oak Trees (the ones with branches)
BIRCH
Birch Trees
REDWOOD
Small Spruce Trees
MEGA_REDWOOD
Large (2x2) Spruce Trees
SMALL_JUNGLE
Normal Jungle Trees
JUNGLE
Large (2x2) Jungle Trees
ACACIA
Acacia Trees
DARK_OAK
Dark oak trees (always 2x2)
AZALEA
The new tree type introduced in 1.17 with Lush caves
WARPED_FUNGUS
Warped fungus trees from the nether
CRIMSON_FUNGUS
Crimson fungus trees from the nether
CHORUS_PLANT
End chorus plants
RED_MUSHROOM
A large red mushroom
BROWN_MUSHROOM
A large brown mushroom
There are some types not includes on this list as while they are tree types, they cannot be grown with saplings. These include SWAMP
, TALL_BIRCH
, TALL_REDWOOD
, JUNGLE_BUSH
and COCOA_TREE
These are other options to do with the object being placed that may come in handy
bore
- Makes the object place air before it is placed
boreExtendMinY
- Extends the range of the bore
boreExtendMaxY
- The same thing but the max the range of the extend bore can be
smartBore
- Will make Iris try find "pockets" that should be air using raytracing
onwater
- Whether to place on the top of the water rather than in the water. Useful for boat objects
waterloggable
- Will make any block that can be waterlogged automatically waterlogged if placed in water
vacuumInterpolationMethod
- If using vacuum, what method should the terrain use to interpolate to the flat area.
vacuumInterpolationRadius
- The radius of the interpolation
bottom
- Whether to place this object from the bottom up. Shouldn't be used with rotation.
meld
- Will only place the object in places where blocks already exist. This allows you to spawn dungeons with caves carving into them, but is very performance intensive!
overStilt
- If using stilt mode, this will extend the stilt into the ground by the number of blocks specified (1 would be stilt 1 block past the ground level).
clamp
allows you to make sure the object only spawns within the minimum and maximum y levels.
These values are the Y level values that the object should be placed on. So if you have the minimum set to 60 and the maximum set to 65, and have an object 10 blocks high, it will still be placed on terrain 60-65 blocks high.
This will cover everything not covered in Understanding. Realise that most of the concepts explained here are more complex than in Understanding. Know that you can always call for help in Discord.
For now we have just thrown in what we had a couple versions ago in this section. It'll be the most outdated section of all for a while. Please be careful :]
Iris in general is very user friendly, you just need to understand the basics. If you don't understand the basics, however, you will be in for a frustrating time in this section, and face lots of problems. We strongly suggest that you toy with the example dimension, region, and biome to familiarize yourself with VSCode, have created and built at least one dimension and know - or have at least read - most of the basics in Understanding.
These pages will feel more like Java Docs (if you know what those are).
We offer support on our Discord. Ask questions you cannot answer using the Wiki there. We ask you to look on the Wiki for a solution for your issue before going there. Thank you for using Iris!
We are now getting into seriously complex territory. This means that not all support members may have the skill level required to answer your questions. Please bear with us as we try to figure it out ourselves, ha-ha.
The Volmit Software Team
A not so typical dimension file breakdown. This is likely going to be one of the longest section in this documentation. Part 2, Key Values in Iris
These are the Boolean values that are toggle able in the dimension file. The ones below may not have their default values, but are just values set for the purpose of explanations.
The Version of this dimension, Changing this will prevent you from accidentally upgrading your file and corrupting the world. The version of the configuration files in the pack.
The fluid height for this dimension. The vanilla default is 63, this makes the base water level at 63
You can rotate the input coordinates by an angle. This can make terrain appear more natural (less sharp corners and lines). This literally rotates the entire dimension by an angle. Try 12 degrees or something not on a 90 or 45 degree angle. Default Value is 0.0, Maximum allowed is 360.0, Minimum allowed is 0.0
The land chance. Up to 1.0 for total land or 0.0 for total sea This is the land to ocean percentage. The minimum is 0, and max is 1. Our recommendation is 0.625
Try to fill a container with loot up to this many times to avoid too many empty chests. Defaulted at 5, the amount of times that a global loot table will be tried to place an item inside of a chest, increasing this will fill a chest with things, reducing it will empty. no lower than zero, no higher than 512* (you can go higher but why)
Coordinate Zoom: Higher = less frequent warping, Lower = more frequent and rapid warping / swirls. Coordinate Fracture Distance: Applies noise to the input coordinates. This creates the 'iris swirls' and wavy features. The distance pushes these waves further into places they shouldn't be. This is a block value multiplier.
This zooms in the elements by a multiplier: Imagine using a crumpled ball of paper, then zooming into it. that's what this does.
Land Zoom
Region Zoom
Biome Zoom
Terrain Zoom
Sea Zoom
Rock Zoom
Default: 1
Min: 1.0e-4
Max: 512
Default: 1
Min: 1.0e-4
Max: 512
Default: 1
Min: 1.0e-4
Max: 512
Default: 2
Min: 1.0e-4
Max: 512
Default: 1
Min: 1.0e-4
Max: 512
Default: 5
Min: 1.0e-4
Max: 512
This zooms in the land space
Change the size of regions
This zooms in the biome colors if multiple derivatives are chosen
This stretches the terrain.
This zooms oceanic biomes
The rock zoom mostly for zooming in on a wispy palette
Note that for Terrain zoom Higher than 2.0 may cause weird rounding artifacts. Lower = more terrain changes per block
****
The world Environment. This is fairly straightforward, only 3 possible options NORMAL, NETHER, and THE_END.
Keep this undefined or empty, setting this to a value will force the overworld to only generate that biome. Great for testing, Must be a valid biome. Focus mode allows you to have a specific biome be the only biome that shows up when you are making your biome. This was used in almost every step of developing the Overworld pack, and others. Below you would only see a desert
The human readable name of this dimension Name of Dimension. no real explanation needed
A not so typical dimension file breakdown. This is likely going to be one of the longest section in this documentation. Part 1, Booleans in Iris
These are the Boolean values that are toggle able in the dimension file. The ones below may not have their default values, but are just values set for the purpose of explanations.
Carve Terrain or not Carving is a 3D Noise layer that will just CUT through mountains and terrain, making some neat cliffs in mountain regions. This has a reasonable performance hit, but is on by default- well worth it in out opinion.
Generate Caves or not. Literally just a true or false as to allow iris generate IRIS caves not to be confused with Vanilla Caves
Generate Decorations or not. Literally just a true or false as to allow iris generate predefined decorators in each biome. Example: if you have a biome decorator that says to generate flowers, toggling this in the dimension will toggle it everywhere
Instead of filling objects with air, fill with cobweb so you can see This is to help show you where iris thinks blocks are, and are not. It places cobwebs in the air blocks to show you where the Structure module thinks it should Cut blocks and stuff out, without overwriting the other surroundings.
Disable this to stop placing objects in biomes This is the 'hand that gives, or the hand that takes away' in regards to objects. It prevents the placement of all iris schematics in biomes.
Use Post Processing or not. Post processing is the unessential, finishing touches that iris does to make the world more pretty, at the cost of a sleight performance hit. It is fine to leave this on. If you turn it off, you may not see the Slabber , Pot-Hole-Filler, Nipple-Remover, Stacker-Fixer working, this is because you just turned them off.
Slabber
Pot-Hole-Filler
Nipple-Remover
Stacker-Fixer
The module that puts slabs on slopes for a more natural look.
The generator might make a small hole, Iris will remove this.
The generator might make a small bump, Iris will remove this.
Prevents the rare occurrence, of buttons stacking as a decorator.
Use post processing in caves or not Post processing is the unessential, finishing touches that iris does to make the world more pretty, at the cost of a sleight performance hit. It is fine to leave this on. If you turn it off, you may not see the Slabber , Pot-Hole-Filler, Nipple-Remover, Stacker-Fixer working, this is because you just turned them off. See post processing for an explanation.
Add Slabs or walls to the post processor instead. Post processing is the unessential, finishing touches that iris does to make the world more pretty, at the cost of a sleight performance hit. It is fine to leave this on. If you turn it off, you may not see the Slabber , Pot-Hole-Filler, Nipple-Remover, Stacker-Fixer working, this is because you just turned them off. See post processing for an explanation.
Prevent Leaf Decay Whenever iris places a schematic, or anything leaf related- especially with big trees. We use this in iris Overworld Dimension for the trees we place.
Generate Vanilla caves and Cave things Working vanilla caves that can intersect with iris caves. this creates some gnarly looking caves and ravines.
Generate Vanilla Structures Currently not working in the way that you might intend, this for now is default to false because it cause instability, gen failure, and other sorts of issues. We plan to just make out own villages in the future.
This page will go over Basics in Generators
Video Tutorial
Introduction
Default in the example
Settings
Interpolator *
Seed *
Composite *
Setting
Setting
Setting
Setting
Setting
Setting
Every setting with a *
is mandatory for this file
Generators are json
files and they are placed in the generators
folder. Generators are Noise Generators. Noise generators take a coordinate x,z or x,y,z and convert it into a height value. You can explore different base noise styles by using the studio noise command. Generators can take multiple noise styles with additional options and are used to decide the shape of your terrain.
The Generator file is called generator.json
and can be found in the generators
folder:
The interpolator describes the way Iris connects this biome to another. It is the way this biome is placed inside the other biome. Below is a screenshot of an example of a more radical version where, as you can see, the mountain biome is being placed into the beach / desert biome.
The interpolator uses two settings which must both be specified:
This is where you specify the type of function used in the transition. These are not normal noise functions as they do very different things. We recommend the Bilinear Starcast 9 since it gives nice transitions. You can read more about these functions by hovering your mouse over the one specified.
The horisontal scale indicates the size of the checked range. The larger this is, the smoother, the smaller this is, the more detail.
The seed is a number you can pick which randomises the algorithms behind the functions. Changing this value may lead to completely different outcomes, but never predictably so.
The composite is the main generator of the biome this generator is used for. We again see seed, which functions similarly to the previously explained Seed and will not be handled here again.
This function can completely change the way your terrain looks, from very spiky to smooth. Note that this does not affect the height of the terrain, this is done in the Biome under Generator.
Style
The style is the actual noise configuration for this generator. This has the greatest influence on the terrain.
The style is the noise algorithm for this noise layer. It has all the noises found in the Studio Noise GUI and directly influences height for the terrain. You can get more information on the algorithm by hovering over the entered one.
The zoom quite literally zooms in and out on the specified noise. If you feel like the biome is too smooth, for example, you can make this number lower so it zooms out, giving more detail in the terrain. Making this higher achieves the opposite, a smoother terrain.
The fracture is an additional noise object which distorts the input coordinates for the style or, if there is another fracture in the fracture (which you can indeed stack), for the parent fracture. This can make for more natural looking terrain, but it can also make it look more randomized (which is not usually natural. It takes the same parameters as the Style object we are already editing.
The exponent is a power on the noise. Making this higher will result in more spiky terrain with less noticeable detail. Making this too low will make the area flat and can cause generation errors.
Other
The Bezier curve is a curve used in computing graphics for making circular / curved lines more smooth. Keeping this on will make the curves of the terrain more smooth. Turning it off will make terrain more spiky.
This functions the same way as the exponent in the Style but it affects terrain slope instead of terrain detail.
Explanation
Explanation
Explanation
Explanation
Explanation
Explanation
If you cannot find the settings you're looking for here, check out the Template Mastering Page
This page will go over Basics in Objects
Objects are Iris' schematics. They are used to place objects in the world.
They cannot be directly modified, so this will be a short guide on how objects can be:
Created,
Edited,
Added to the world, and
Imported from EWG
You can create a new object by building one in game and then saving it. The object can be any size under 512 x 256 x 512. Note that sizes that large will be heavy on the server to place.
After building the object, you can select it using the wand (get a wand using the wand command) and then save it using the save command. You can modify your selection with the other commands in the object command section.
We recommend checking out the video above to see what they do precisely.
You cannot directly edit an object from a file, but you can edit it in-game. You can do so by using the paste command, editing the structure and then using the same set of steps as with Create a new object above.
Within every dimension, region and biome, there is an array of objects that can be spawned. It will often look something like this:
chance
- The chance to place this object in a chunk. Max is 1
density
- How many to place per chunk if the chance to place in this chunk is successful.
place
- An array of objects to place. If multiple are specified, a random one is chosen.
You can add as many objects to this section as you like. Biomes often have lots and lots of different objects to spawn, all with different chances and densities.
If you want more information on editing objects, check out the Mastering Objects section below
Note: This feature has been removed from Iris and no longer works on Iris 1.5 and above. It is just documented here for legacy reasons.
You can import objects from Epic World Generator by putting .EWG
schematic files in the */plugins/Iris/convert
folder and using the convert command.
A not so typical dimension file breakdown. This page specifically is going to explain the default, parameters. these parameters WILL be covered in the elsewhere the same. this is a quick start
This page has not yet been updated in accordance with the new structure. Most information should still be valid, but keep this warning in mind.
Use Post Processing or not. Post processing is the unessential, finishing touches that iris does to make the world more pretty, at the cost of a sleight performance hit. It is fine to leave this on. If you turn it off, you may not see the Slabber , Pot-Hole-Filler, Nipple-Remover, Stacker-Fixer working, this is because you just turned them off. (More on Post Processing )
The world Environment. This is fairly straightforward, only 3 possible options NORMAL, NETHER, and THE_END.
Define all regions to include in this dimension. This is essential for any dimension file. The listings in here are required for you to see any kind of impact or biomes generate.
Generate Caves or not. Literally just a true or false as to allow iris generate IRIS caves not to be confused with Vanilla Caves
Keep this undefined or empty, setting this to a value will force the overworld to only generate that biome. Great for testing, Must be a valid biome. Focus mode allows you to have a specific biome be the only biome that shows up when you are making your biome. This was used in almost every step of developing the Overworld pack, and others. Below you would only see a desert
The human readable name of this dimension Name of Dimension. no real explanation needed
Carve Terrain or not Carving is a 3D Noise layer that will just CUT through mountains and terrain, making some neat cliffs in mountain regions. This has a reasonable performance hit, but is on by default- well worth it in out opinion.
The Version of this dimension, Changing this will prevent you from accidentally upgrading your file and corrupting the world. The version of the configuration files in the pack.
We highly recommend that you familiarize yourself, and toy around with them before diving straight into the heavy lifting- that is, dimensional manipulation. (that sounds funny) But in all seriousness the Dimensional file is likely the hardest of the files to learn, as all are relatively self explanatory in most other circumstances.
This page will go over Basics in Jigsaw
This is a tutorial based on Astrash written tutorial in discord.
Jigsaw pieces are basically objects with jigsaw connectors plus some other stuff. A jigsaw piece is just a config file, with an object attached to it - multiple pieces could share the same object (if that's what you want to do)
Pieces can be created with /iris jigsaw create <name> <pack> <object>, this is where you place your connectors. When you use that command, a copy of that specified object will spawn in the world, with that copy, right click block faces to add connectors, and shift right click to remove.
Once finished you can use /iris jigsaw save to save that jigsaw piece, and a config file will be automatically generated with your connectors.
Connectors are stored as json objects, and have some key properties. For now the only important parts you have to worry about are "pools", "position" and "direction".
INSERT CODE EXAMPLE HERE
Once you create a piece, there will be a folder called jigsaw-pieces in your pack folder, which will be automatically set up with the essentials for a piece, the only thing you really need to change is the "pools" option, which is where you tell Iris what you want that connector to attach to
Now try creating a test object the way any object would be made, maybe something like square like so
Just for the sake of learning, try make 3 pieces like so
The next step after you have your pieces is to create a Jigsaw structure, here is an example of the stronghold structure. Ensure you make a folder called jigsaw-structures and create a new json file titled after your structure. This could be called anything you want. Copy the config here and fill out the piece with the one you have already made
The piece you put in the structure is essentially your starting piece, where the jigsaw system will expand outwards from. You should only have one jigsaw structure file per structure (note you could also provide several starting pieces). Once this is made, try out /iris jigsaw place <name of jigsaw structure file> - if you did everything correctly, you should have a single piece spawn in the world.
The next step is defining a Jigsaw pool. A jigsaw pool is basically a group of jigsaw pieces, defined in a file.
First of all, create a folder called jigsaw-pools, then similary to the structure setup, make a json file named whatever you'd like (for example i use path for my group of path pieces in the stronghold)
Within that file you just created, simply list out pieces you've created like so
Continuing on with pools, when Iris picks a connector to continue the structure, it will take a look at that connector's configured "pools" option, and see what pieces it can place next. So in order for a connector to place stuff, you will need to define pools (as outlined above) to that list for each connector
As an example, when iris looks at this connector, it will look at "pools", see the "stronghold/paths" pool, and pick a jigsaw piece from that list to connect to. Once it picks a piece from that list of pools, it will check 1. if it has a valid connector, and 2. if that piece will collide with any other piece. If check #2 fails, then Iris will try place another piece from the pool. If none of those pieces can be placed, then Iris will simply not place anything at the connector.
Also another thing to note - if a piece is set up with a connector inside its bounding box, then you will most likely need to set innerConnector to true, since it will check for collision with its self in addition to other pieces
Here is an example of multiple pools, note that:
the green pool also has a piece in it that connects to a purple pool
the purple L pieces are free to rotate on all axes ("rotateConnector": true) whereas all other pieces only rotate on the Y axis
If you have any further questions or get stuck and want to get some help, please ask on Discord.
A typical biome file breakdown. This page specifically is going to explain the default, parameters. these parameters WILL be covered in the elsewhere the same. this is a quick start
This page has not yet been updated in accordance with the new structure. Most information should still be valid, but keep this warning in mind.
The information below is a variant of the Biome tutorial, and we would recommend that you familiarize yourself with that first. this would then make more sense especially the complexity will become less complex.
Name - What is the biome called in-game, filename refers only to what internal schema know
Layer - What blocks makeup the biome floor, and sub-terrain (not including caves)
Objects - This lists the 'things' that you want to place all over the place eg: trees, rocks, etc...
Generators - The way the terrain Height-map is designed
Derivative - This sets the Vanilla Color, Mob spawn, Weather, and some other event
Many of these here will give you a world that 'looks' like a normal world, but Iris is able to give you so much customization that you can have many types of variants that can look otherworldly.
Much of what you have seen above, IS used in the example projects, when it comes to what a final project biome looks like, they would look like something like this
This page is to explain parameters that are not unique to each file. For example, this can have information for Regions, that can also be in Dimensions, or Biomes.
Style
Blocks
Drops
Deposits
Loot
Palette
Slope
Generator
Objects (too many options!)
Text
Rarity
Regions
Style/Generator is the 4-D (that's one more D than 3D) rules that draw the carve layer. Static is a commonly used style, with any multiplier, or zoom- it is easy noise. IRIS, is our home-brewed Style that we use in places all over the Overworld
Style is the 4-D (that's one more D than 3D) rules that draw the carve layer. Static is a commonly used style, with any multiplier, or zoom- it is easy noise. IRIS, is our home-brewed Style that we use in places all over the Overworld
Drops are the items that are dropped when broken, or are tossed into chests as loot. If you were linked here, that means the things here are referenced in whatever module you are looking into
Deposits are the ores, or clumps of stuff that is spawned in the ground. like Dirt patches, or Ores. This is a great way to set ores, This also supports custom blocks- Using the palette you can have whatever spawn, from custom blocks to doors can be deposits. This can be set in the Dimension, Region, and Biome.
The palette is the set of blocks that are included in the parent function's list of parameters. you can have as many as you want as long as everything is properly labeled.
Fluid layers are a simple way to set a sort of water-layer or anything-layer in the parent. upi can put blocks here, but its built for fluids.
Slope is the generator that determines the direction/form of the parent function.
Slope is the generator that determines the direction/form of the parent function.
Objects have loads of edits, and things you can do with them. (Psycho caused this) but this is one of the biggest, if not the biggest set of information and toggles that you can do.
The rarity of this biome (integer) Generally speaking the higher the number is, the more common it is, but if you have only a few biomes try to keep the results as you would want, try and keep it under 256 (you can go higher), but higher would make the biome almost invisible in a general schema of 100 biomes, as every biome (and region) is a roll at random EACH usage so if its 1-in-10, there will NOT guarantee a biome every 10, as its a random roll.
Effects that play in this biome. Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects. Due to performance reasons, effects will play aground the player even if where the effect was played is no longer in the biome the player is in.
This page will go over Basics in Loot
Every setting with a *
is mandatory for this file
Loot are json
files and they are placed in the loot
folder. Loot tables can be referenced when defining loot in different dimensions, biomes, regions and even structures. They decide which items spawn in the chests they are assigned to.
Note that loottables are somewhat sensitive and can quite easily be broken by, for example, placing the minimal amount of items higher than the maximal amount the chest can actually hold.
Make sure the settings you make are possible beforehand.
The Loot file is called loot1.json
and can be found in the loot
folder:
Loot tables have many different RNG based rolls.
This is the name of the loot table which does not affect anything other than the result of getting area information with the Statistics command.
To make sure you don't confuse yourself or Iris, name this the exact same as the file name.
The loot array contains all types of loot that can spawn using this loot configuration.
Each element contains the following:
The item
The chance this item is picked on each iteration. Always 1 / x chance if this element is picked.
The type of the slot the item can spawn in. Types:
STORAGE
Most used, simple slot like in a chest, barrel, etc.
FUEL
Fuel slot of any type of furnace
FURNACE
Furnace slot of a normal furnace
SMOKER
Furnace slot of a smoker
BLAST_FURNACE
Furnace slot of a blast furnace
Respectively the minimal and maximal boundary on the amount of this type of item that is / are picked
The name of the item
The (possible) enchantments applied to the item.
This should only work on items that can actually get that enchantment but that may not always be the case.
Note that the minimal and maximal level are equally distributing all levels inbetween and including themselves after chance is picked. This means that if the enchantment is applied, the chance of all levels of the enchantment is equal.
There are far more settings under loot which do stuff like add lore, durability and more. All these settings (with a short explanation, hopefully) are findable with the ctrl + space keycombination in VSCode.
Respectively the minimal and maximal boundary on the amount of times this loot tree that is picked
The overall chance a container this loot table is assigned to gets loot from this. This is absolute chance, meaning if this random roll fails, nothing will come from this table.
A not so typical dimension file breakdown. This is likely going to be one of the longest section in this documentation. Part 2, Key Values in Iris
These are the values that list, compile, or involve other objects in the dimension file. The ones below may not have their default values, but are just values set for the purpose of explanations. All of these have a default value so you don't need all of these values, this is merely just to tell you what they do.
Define carve layers, If you put this in the file you need to have it defined or remove it. it will cause problems. the carve layers are
Define cave layers, If you put this in the file you need to have it defined or remove it. it will cause problems.
Represents an entity spawn during initial chunk generation When an entity is spawned this is run to determine any interaction with that spawn. This is usually a list of objects (entities)
This represents the Event of an event spawn When an entity is spawned this is run to determine any interaction with that spawn. This is usually to either challenge that, or change that
Define biome mutations for this dimension Mutations are an interesting example of Subdivided Biomes. Whenever a biome is next to another biome, you will get a have a connection between the two, this is a great way to cross-fade trees when you have biomes mixing. You need to make the trees and organics that you want to show up, this is meerly just a region where things will propagate. Below is an example of a mutation file
Region Style
Placement style of regions
Cave Biome Style
Placement style of cave biomes
Continental Style
Placement of land/sea
Island Biome Chance Style
Placement style of biomes (fractal water looks cool)
Island Biome Style
Placement style of island Biomes
Lake Biome Style
Placement style of lake biomes
Land Biome Style
Placement style of land/Overworld biomes
River Biome Style
Placement style of river biomes
Sea Biome Style
Placement style of sea biomes
Shore Biome Style
Placement style of shore biomes
Skyland Biome Style
Placement style of Biomes that are set above the terrain
A not so typical Biome file breakdown. This is going to cover the Non-Object based values in the biomes file. All of the flags and objects, and changes can all be found here and on the next page
This zooms in the biome colors if multiple derivatives are chosen: Imagine using a crumpled ball of paper, then zooming into it. that's what this does. margionally pointless with only 1 derivative Default: 1 Min: 1.0e-4 Max: 512
When iris carves in this biome, this is the biome that gets plastered in that region. This is a great way to make carves sound spooky in the dark. Any vanilla biome is supported here.
This defines the layers of materials in this biome. Each layer has a palette and min/max height and some other properties. Usually a grassy/sandy layer then a dirt layer then a stone layer. Iris will fill in the remaining blocks below your layers with stone. List of BiomePaletteLayers (Objects)
Derivatives are fairly straightforward, in what they do- should hopefully be a simple concept to understand. That being said, it plays an important role in biome creation. This will determine what mobs spawn (that can be tweaked to prevent this), What the color of blocks will be (Grass being green to dark brown etc), and some of the sounds you may hear (can also be tweaked). As a visual see below:
The layers to iterate below the surface for locked layer biomes (mesa). This is very good at creating a mesa or stacked style of terrain, There is nothing from carving to smoothing that will cancel this from generating. this affects the terrain layer and below. ASSUMING that you marked it as true
This is an important key to remember, if you are locking layers, and you have a set of layers. This represents the max possible layers that can stack, assuming that locklayers is on, and you have layers defined.
The human readable name of this biome Name of biome. no real explanation needed
The rarity of this biome (integer) Generally speaking the higher the number is, the more common it is, but if you have only a few biomes try to keep the results as you would want, try and keep it under 256 (you can go higher), but higher would make the biome almost invisible in a general schema of 100 biomes, as every biome (and region) is a roll at random EACH usage so if its 1-in-10, there will NOT guarantee a biome every 10, as its a random roll.
Debug color for visualizing this biome with a color in the MAP. ie: #F13AF5 This in the map changes the visual representation of a biome so you can see it more clearly, in the image below any of the colors represent a biome, and how the noise/layers interact with them.
A not so typical Biome file breakdown. This is going to cover the Object based values in the biomes file. All of the flags and objects, and changes can all be found here and on the previous page
You can instead specify multiple biome derivatives to randomly scatter colors in this biome FLOOR. This sets the gradients of colors that are done by derivatives, this is great to set the ground colors to look bruised or else-wise.
You can instead specify multiple biome derivatives to randomly scatter colors in this biome SKY. Since 1.13 supports 3D biomes, you can add different derivative colors for anything above the terrain. (Think swampy tree leaves with a desert looking grass surface) This is a great way for setting a 3D color dynamic in leaves or in biome-sky related changes.
Have a biome generate in the midst of this biome List any biome names (file names without.json) here as children. Portions of this biome can sometimes morph into their children. Iris supports cyclic relationships such as A > B > A > B. Iris will stop checking 9 biomes down the tree.
Decorators are used for things like tall grass, bisected flowers, and even kelp or cactus (random heights) This is the best place where you can set the flowers, and organics that are in a per biome basis.
Entity spawns during generation What entity spawns here during the generation of this world. This may soon have support for mythic/other mob providers in the future
If the following entity type spawns, spawn this entity. Set to unknown for any entity spawn. This is a fantastic way to prevent the spawn of a cow or any other vanilla spawned mobs. Maybe Mythic mobs in the future etc...
Generators are a form of STYLE generators:
Modes "CENTER_HEIGHT": The default place mode. This mode picks a center point (where the center of the object will be) and takes the height. That height is used for the whole object.
"MAX_HEIGHT": Samples a lot of points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.
"FAST_MAX_HEIGHT": Samples only 4 points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.
"MIN_HEIGHT": Samples a lot of points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot
"FAST_MIN_HEIGHT": Samples only 4 points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot
"STILT": Stilting is MAX_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.
"FAST_STILT": Just like stilting but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)
"PAINT": Samples the height of the terrain at every x,z position of your object and pushes it down to the surface. It's pretty much like a melt function over the terrain.
"VACUUM": Applies multiple terrain features into the parallax layer before this object places to distort the height, essentially vacuuming the terrain's heightmap closer to the bottom of this object. Uses MAX_HEIGHT to place
We highly recommend that you familiarize yourself, and toy around with them before diving straight into the heavy lifting- that is, advanced biome manipulation. Biomes are the some of the most important parts of this plugin. I don't think i need to explain how important that the biomes are, please familiarize yourself with Vs-code and make a custom biome using [] to do so; once you do that feel free to dive into the harder parts in the next page. Good luck, we hope that you make a world of your dreams.
Place text all over the terrain, literally. Text can actually be printed all over the ground, see this it's able to print with specific fonts as well, see all the info below
Check out to add the loot table you configure using this page to biomes.
If you cannot find the settings you're looking for here, check out the
Define custom block drops for this dimension Block Drops are the items that are dropped when broken, or are tossed into chests as loot. Drops are a UNIVERSAL PARAMETER, Here is the link for a TOTAL Breakdown of this []
Define biome deposit generators that add onto the existing regional and global deposit generators This is the best way to set ORES that are for the dimension: Overworld, or Nether etc. This can also be set in a REGION or in a BIOME. To see Usage go []
The palette of blocks for fluid This is the palette where you set what the fluid is going to be. This is what is generally water in the Overworld, only 1 water-level fluid can be set, you can use sub-water layers using subsets in other parents. To learn about how to use palettes go . Zoom is the only really specific information that is unique, this only uses the style, and multiplies a zoom scale, default at 1.
Try to fill a container with loot up to this many times to avoid too many empty chests. Loot tables are unique to each file. The Dimensional files are global loot, Region and Biome loot all have their own files respectively. To learn about loot go .
Overlay additional noise on top of the interpolated terrain. For example, if you want to overlay IRIS dtyle generator over a flat terrain of the global dimension you can do that here. See to see how to use generators, and the min and max values just affect the min and max block value changes.
The palette of blocks for 'stone' Assuming that you are in the ground, what are the stones around you going to look like? but this involves , and , with zoom, that zoom just being a multiplier of the zoom in or out as usual.
Literally the Sky Create an inverted dimension in the sky (like the nether) This is essentially creating an additional terrain layer directly above you. (inverted) if you want to learn how to use this, it had every single possible parameter that Overworld has. LMAO see for that. you can put everything that you have in the Overworld in here and you will get a mirror of the Overworld
All of these have the SAME usage, please refer , to understand how to use style. This specific area will just tell you what they are for
The fluid type that should spawn here The type of fluid if this biome is underwater. To 'defer' this value to whatever the parent dimension fluid type is, use an empty string. you can see fluid settings(dim) .
If you want to know how to use this tool to see biomes go
The child (if set) shape if, and when it is generated If this biome has children biomes, and the gen layer chooses one of this biomes children, How will it be shaped? The represents the biomes/children very well, See to see how to use it
Carve Terrain or not This changes the dispersion of the biome colors if multiple derivatives are chosen. Please See to see how to use it, this is just a shape filter
Define custom block drops for this biome Drops are the items that are dropped when broken. This is a universal parameter see to see how to use it.
Creates ore & other block deposits underground This ADDS this list of deposits to the dimensional/regional parent. This is explained , this can be set for multiple parents thus its a dimensional parameter
Effects that play in this biome. Effects are ambient effects such as potion effects, random sounds, or even particles around each player. This has a large explanation .
Style/Generator is the 4-D (that's one more D than 3D) rules that draw the carve layer. Please refer to the Universal Parameters to see the usage of generators
What Generates in conatiners here in this biome This is a global parameter, and a regional, AND a biome parameter. is a great breakdown of loot. Beware that by default this stacks with other parent loot rolls unless otherwise specified
This is an interesting way to quite literally put text on the surface Please refer to , for a full explanation of how to use this interesting tool. you can make a trademark per biome if you wanted. the possibilities are strangely endless.
Exponent
Fracture
Multiplier
Style
Zoom
Max: 64
Min: 0.01562
Exponent to the Multiplier.
This Distorts the Parent Gen/Style With this.
The Output Multiplier (use only if this is not the Parent).
Type of noise, Many to pick from.
The zoom in, or out of the style.
Backup
Data
Debug
Key
Weight
You put [block] here, its just a replacement
Optional Data, Such as Water-logging
Print to the console when a block is replaced [Bool]
The Resource Key, usually Minecraft text
If this is a part of a list, how many times will this be considered
Attributes
Custom Model
Display Name
Dye Color
Enchantments
This applies attribute modifiers to the item
Custom Model Identifier [1.14+] int-Id
In-game Name of this item
If color-able, What color
Applies an enchant to this item
Item Flags
Leather Color
Lore
Max Amount
Max Durability
Adds Flags to items, no limit.
If Leather, What color, default empty
String of text that is the in-game description
How many Max stack, default 1
If has Durability, what is maximum
Min Amount
Min Durability
Rarity
Slot Types
Type
Minimum amount that can drop
If has Durability, what is minimum
The sub rarity of loot POST loot table roll
STORAGE, is what you are looking for usually. others are available
The Type of item, if it were to be included in a sub-menu: DIAMOND_SWORD, or DIRT, etc...
Unbreakable
Boolean for if the item is unbreakable. The reader of this is Unbreakable ♥
Max Height
Max Per Chunk
Max Size
Min Height
The Maximum Height the Deposit can generate
The Maximum 'Clumps' that can be spawned in a chunk
Max blocks in the clump
The Minimum Height the Deposit can generate
Min Per Chunk
Min Size
Palette
Variance
The Minimum 'Clumps' that can be spawned in a chunk
Min blocks in the clump
This in itself is a universal Parameter, learn about it [Here]
How many different object shapes will be generated. Max is 64
Backup
Block
Data
In the event that the block cant be placed in this version of MC, the backup is a palette of alternatives.
This can have as many blocks as you want
Extra block data, like Waterlogged, or Count etc
Debug
Key
Weight
This prints to the console whenever this block is placed, or whenever the palette rolls.
This is the resource key- leave blank unless you are using a pack
The number of this block in a hypothetical random list. more = better chance
Fluid-Height
Fluid Type
Inverse Height
The layer and below that in the parent that this block will propagate
This is a palette layout. To learn how to use a palette go here
Inverts the Fluid-Height, if its 15, and this is inverted so its everything above 15.
Generator
Min
Max
This is an essential Fork of Style, and allows for Fracturing Learn how to use it here
Min block level in the slope
Max block level in the slope
Mode
Multiplier
Tables
What to do with the parent table (if any)
ADD, CLEAR, REPLACE
Multiplier for the loot if loot check is passed.
The loot tables that will be included in the parent's loot drop
Boar Extend MaxY
Boar Extend MinY
Bore
Bottom
Assuming Bore is enabled, this will expand the bore Height Cuboid range by [num]
Assuming Bore is enabled, this will expand the bore Width Cuboid range by [num]
A bool as to if on placement of an object, will it erase everything in a cube around this object
If set to true, this object will place from the ground up instead of height checks when not y locked to the surface. This is not compatible with X and Z axis rotations (it may look off)
Carving Support
Chance
Clamp
Density
This object can place ANYWHERE, CARVING_ONLY or SURFACE_ONLY, all of the objects interact with carving how you would expect.
The chance for this to place in a chunk. If you need multiple per chunk, set this to 1 and use density.
Limit the Max height or min height of a placement of an object
If the check passes. this number of an object will place in a chunk
Edit
Meld
Mode
On-Water
This is the module where you find and replace blocks in the objects.
If set to true, this object will only place parts of itself where blocks already exist. Warning: Melding is very performance intensive!
This is the mode pf placement. See placement modes here.
A boolean that determines if it places on water.
Over Stilt
Place
Rotation
Smart Bore
When the place mode is set to STILT, this will stilt 1-3 blocks into the ground additionally
This is just a list of objects to place
If this object will receive a random rotation degree, if so, what degree
If set to true, Iris will try to fill the insides of 'rooms' and 'pockets' where air should fit based off of Ray-Tracing (Yea We have RTX on) checks. This prevents a village house placing in an area where a tree already exists, and instead replaces the parts of the tree where the interior of the structure is.
Snow
Translate
Translate Center
Underwater
This is percentage (0-1) of the amount of a snow filter that puts a snow stacks on a block
On an X, Y, and Z Coordinate plane, this moves an object on placement
If the place mode is set to CENTER_HEIGHT_RIGID and you have an X/Z translation, Turning on translate center will also translate the center height check.
If set to true, objects will place on the terrain height, ignoring the water surface.
Warp
WaterLoggable
This is an interesting one, you will need to use a generator to warp the field of coordinates. Using simplex for example would make a square placement warp like a flag
If set to true, Blocks placed underwater that could be waterlogged are waterlogged
Chance
Clamp
Density
Mode
Water-Loggable
Chance to place this text per chunk
The clamp Height for this text if any.
The amount of times to print this, if the chance pass, per chunk.
See Mode in SubParameters
Boolean as to if the text should be waterlogged
On Water
Render
Rotation
translate
Underwater
Can it place on water regions or not. ie: if an area is labeled as ocean, even on an edge it cant place here if toggled off
This is the style of text printed, See render
If this object will receive a random rotation degree, if so, what degree
On an X, Y, and Z Coordinate plane, this moves an object on placement
Boolean to see if this ever places underwater.
Option
Setting
Effect
"enchantment":
"KNOCKBACK"
Applied enchantment
"chance":
0.2
Chance of application
"minLevel":
1
Minimal level
"maxLevel":
2
Maximal level
Max Height
Min Height
Style
Threshold
The highest possible carve layer.
The lowest possible carve layer.
This is a complex topic, go here for explanation.
carved = (x,y,z) > Threshold
Between 0 and 1
this is a multiplier.
Can Break Surface
Cave Thickness
Cave Zoom
The highest possible carve layer.
The lowest possible carve layer.
This is a complex topic, go here for explanation
Fluid
Horizontal Slope
Vertical Slope
Fluid is child of a layer, in this case its the cave layer. see here for more info.
This is the horizontal slope that a cave generators follows. Learn about slope here.
This is the vertical slope that a cave generators follows. Learn about slope here.
Entity
Max Spawns
Min Spawns
Rarity
This is the entity, if you have a plugin that has a unique ID entity, put that here. EG: "COW"
Max of this entity to spawn on a Single entity chance Spawn
Min of this entity to spawn on a Single entity chance Spawn
The rarity of the Spawn, Min=1, higher = more rare
Cancel Source Spawn
Entity
Rarity
Trigger
This is a Boolean that prevents the spawn of 'entity' if trigger is passed.
This is the entity, if you have a plugin that has a unique ID entity, put that here. EG: "COW"
The rarity of the Spawn, assuming the trigger is not false, Min=1, higher = more rare
In the event of "ENTITY" spawns, This trigger is true.
Checks
Objects
Radius
Side A/B
How many times Per chunk will this check for a connection
This is what iris does to the objects, look here to see what happens to the objects
This is a per-block scan radius for placing this mutation
This determines the sides of the mutation, this name is the name of the biome file.
Blocks
Mob Spawns
Audio
Will change depending on what the derivative is, and you can not change this anywhere but here.
The mobs that spawn will mirror whatever the derivative is in vanilla terms (Cow in forest, Ghast in Nether Wastes) mobs can be changed elsewhere.
Some of the audio you might hear in this biome is from the derivative, this can be changed elsewhere.
Here you find information on packaging and publishing your dimensions for others to use.
You can package your project by using the studio package command. This compresses the project (copy) and strips away unused objects and files (only in the package, your project is not modified itself). This can be used for sending dimensions to others quickly. Simply place this .iris
file in a packs folder to use it.
You can publish your project to the Iris GitHub community so that anyone can use /iris create type=YOURWORLD. Iris will then download your project & start generating it for them. To do this, you must fill a few requirements:
Your project must be on GitHub (sorry, not any other Git site for now) and be setup properly,
The dimension should be unique or have content in it that offers something new.
Simply make a Pull Request to this list and add your dimension name, followed by a space and the URL to your GitHub project.