Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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 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 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
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.
Style
The style is the actual noise configuration for this generator. This has the greatest influence on the terrain.
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
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 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.
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 :)
The template file is called templatefile.json
and can be found in the template
folder:
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:
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.
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.
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.
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.
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 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.
The Volmit Software Team
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.
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.
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 . Generators can take multiple noise styles with additional options and are used to decide the shape of your terrain.
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 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 .
The style is the noise algorithm for this noise layer. It has all the noises found in the and directly influences height for the terrain. You can get more information on the algorithm by hovering over the entered one.
If you cannot find the settings you're looking for here, check out the
Also - not all settings hare handeled here, so make sure to check out for more
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 .
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 .
"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 .
Here you specify the minimal and maximal height relative to the . Note that Iris will, even if your "min"
and "max"
heights do not overlap with other biomes in the , always make the biomes spawn and connect up properly.
For more information, see
Decorators are similar to 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.
You can use to get a color.
If you cannot find the settings you're looking for here, check out the .
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 .
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 .
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 .
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 .
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 .
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 .
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 .
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 .
We offer support on our . 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!
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
Option
Setting
Effect
"enchantment":
"KNOCKBACK"
Applied enchantment
"chance":
0.2
Chance of application
"minLevel":
1
Minimal level
"maxLevel":
2
Maximal level
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