Main setup
Setting world type on single player as default
You simply start the game once. It will generate a config called forge-common.toml
. Change the only value in this
config to skyblockbuilder:skyblock
, or use this example and create a file called forge-common.toml
in the
config directory with this content:
[general]
defaultWorldType = "skyblockbuilder:skyblock"
Setting world type on server as default
If you want to provide a custom server.properties
file, set the level-type
to skyblockbuilder:skyblock
.
Otherwise, it's the same as in single player.
Creating a custom skyblock island
- Build an island.
- Use the custom item
Structure Saver
from the vanilla Tools tab in creative inventory. The output directory for this is<minecraft>/skyblock_exports/<name>.nbt
. If you set a Spawn Block, you'll also get an additional file with all the spawn points where the spawn blocks were. They are not present in the exported file. If you click the option to export everything into the config, the template will be generated into the correct directory. If you used spawn blocks, spawns will also be added toconfig/skyblockbuilder/templates.json5
. Alternatively, you can also use the vanilla Structure Block. Keep in mind that this can only save islands up to 48x48x48 blocks and the output is in<minecraft>/saves/<world>/generated/minecraft/structures/<name>.nbt
. - Copy the generated file from its directory (see previous step) to
config/skyblockbuilder/templates/<name>.nbt
. - Configure the template with a better readable name and spawns in
config/skyblockbuilder/templates.json5
. There can be multiple spawns, each one is an array with[x, y, z]
relative to the 0, 0, 0 from the template structure. You can also modify existing spawns and export them with/skyblock spawns EXPORT
. IMPORTANT: You need to be in a world with world-typeSkyblock
to use the commands. - To view your current spawns, you need to run
/skyblock spawns debug
to view all possible spawn points. - To apply the new spawn points to your template, copy the exported spawn points (you need to open the file) into the
file
config/skyblockbuilder/templates.json5
where needed.
Setting a default spawn island
You can set a default spawn island for new worlds by setting spawn
. If it's set to null
, it will use the default
template used for new teams. For more information about the value for spawn
, look at
Configuring templates.
Setting multiple templates
You can set multiple schematics by putting them into config/skyblockbuilder/templates/
. These schematics can the user
use by pressing the Customize
button in world options screen or changing the schematic with command
/skyblock manage islandShape <template>
where <template>
is the name specified in
next chapter.
Configuring templates
As described in Creating a custom skyblock island, you can improve the readability
of templates and set the spawn points for each template in the config here: config/skyblockbuilder/templates.json5
.
There you have multiple options. First the spawns
:
{
"spawns": {
"default": {
"east": [],
"west": [],
"north": [],
"south": [
[ 6, 3, 5 ]
]
}
}
}
default
) is important for the templates
option in a next step.
You can have multiple entries, but keep in mind that no key can be used twice! The content of each object are the
four directions as keys. These include an array of arrays. This array contains the spawn positions. The spawn positions
are formatted this way:
[ x, y, z ]
Second, the spreads
:
{
"spreads": {
"default": [
{
"file": "default.nbt",
"minOffset": [ -6, 3, 5 ],
"maxOffset": [ 4, 10, 3 ],
"origin": "center"
},
{
"file": "default2.nbt",
"offset": [0, 64, 0]
}
]
}
}
spawns
. It holds multiple objects. The key (here default
) is
important for the templates
option in a next step. You can have multiple entries, but keep in mind that no key can
be used twice! The content of each object is an array with other objects. These objects require a file
(file name of
a file located in config/skyblockbuilder/templates/spreads
and ends with .nbt
or .snbt
), and either minOffset
and maxOffset
, or just offset
for an offset relative to the 0 0 0 position of the main island. If you choose
minOffset
and maxOffset
, it'll be randomly generated somewhere between. There is also an optional config for the
origin
. This defines where the offset should be calculated at. There are two possible values:
zero
(default, if not defined) rightcenter
left
Next, the surroundingBlocks
:
{
"surroundingBlocks": {
"default": [
"minecraft:stone",
"minecraft:bedrock"
]
}
}
default
) is important for the templates
option in the next step.
You can have multiple entries, but keep in mind that no key can be used twice! The content of each object is an
array of resource locations for blocks. These blocks will be used to surround the template with these blocks, randomly
selected. Look at the surroundingMargin
in the next step for thickness.
Now the templates
:
{
"templates": [
{
"name": "default",
"desc": "Default template",
"file": "default.nbt",
"spawns": "default",
"offset": [ 0, 0, 0 ],
"surroundingBlocks": "default",
"surroundingMargin": 0
}
]
}
- The
name
is the name displayed in theCustomize
screen when selecting the world-preset. Use{
at start and}
at the end to create a language key. That way, you can translate the name into other languages using a resource pack. - The
desc
(optional - default "") is the description displayed in theCustomize
screen when selecting the world-type. Use{
at start and}
at the end to create a language key. That way, you can translate the name into other languages using a resource pack. - The
file
is the name of the file for that template. - The
spawns
is the spawn configuration name from thespawns
option. - The
direction
(optional - default "south") is the direction the user should look at for this template. If not provided, it'll besouth
. - The
offset
(optional - default [ 0, 0, 0 ]) is the offset for this specific template. Read here more about the offset. This specific offset can also be set for x (first number) and z (second number) separately. - The
surroundingBlocks
(optional - default "") is the surrounding blocks configuration name from thesurroundingBlocks
option. - The
surroundingMargin
(optional - default 0) is the thickness for the border. You can have the same file and the same spawns in multiple configurations. They all are only separated by the name.
You can also set an icon for each template. This is located in config/skyblockbuilder/templates/icon/<name>.png
. The
name needs to be lowercase.
NOTE: If you spawn inside a block, you could add this block to the
block tag 🔗
#skyblockbuilder:additional_valid_spawns
.
Loot chests on island
If you want a loot chest on an island, you need to set the NBT data to the chest with the /data merge block <x y z>
{LootTable: modid:path/to/loot_table}
command to set it as loot chest.
WARNING! Do not open that chest after merging this data into the chest.
Convert existing templates from .nbt
to .snbt
You can convert existing templates from .nbt
to .snbt
files with the command /skyblock templates_to_snbt
. This
will convert all templates in the config/skyblockbuilder/templates/
directory to .snbt
files while keeping the
original .nbt
files.