Main Setup
Setting World Type on Single Player as Defaultβ
See Default World Type. Use skyblockbuilder:skyblock
as config value.
Alternatively, you can manually create the forge-common.toml
file in the config directory with the above content.
Setting World Type on Server as Defaultβ
For servers, you can provide a custom server.properties
file by setting the level-type
to
skyblockbuilder:skyblock
. The rest of the setup is 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 the creative inventory. The output directory for this will be<minecraft>/skyblock_exports/<name>.nbt
. Alternatively, use the vanilla Structure Block, noting it can only save islands up to 48x48x48 blocks. The output for this will be in<minecraft>/saves/<world>/generated/minecraft/structures/<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
. - Copy the generated file to
config/skyblockbuilder/templates/<name>.nbt
. - Configure the template with a readable name and spawns in
config/skyblockbuilder/templates.json5
. Multiple spawns can be defined as arrays with[x, y, z]
coordinates relative to the template structure's origin (0, 0, 0). You can also modify existing spawns and export them using/skyblock spawns EXPORT
. Note: These commands require the world typeSkyblock
. - View current spawns by running
/skyblock spawns debug
. - Apply the new spawn points by copying them into the
config/skyblockbuilder/templates.json5
file.
Setting a Default Spawn Islandβ
To set a default spawn island for new worlds, use the spawn
setting. If spawn
is set to null
, the default team
template will be used instead.
For more details on how to configure spawn
, see Configuring Templates.
Setting Multiple Templatesβ
To enable multiple schematics, place them in config/skyblockbuilder/templates/
. Users can select these templates by
pressing the Customize
button in the world options screen or by changing the schematic with the
/skyblock manage islandShape <template>
command, where <template>
is the name specified in
the next chapter. IMPORTANT: Do not name any schematic files template.nbt
to avoid
overwriting the default schematic.
Configuring Templatesβ
To set up templates and spawn points, youβll need to edit the config/skyblockbuilder/templates.json5
file. This guide
helps you configure it step by step.
Spawnsβ
The spawns
section specifies spawn point sets. For example:
{
"spawns": {
"default": {
"east": [],
"west": [],
"north": [],
"south": [
[ 6, 3, 5 ]
]
}
}
}
Here, "default"
is the key, and it contains four directional keys (e.g., "north"
, "south"
, etc.). Each directional
key holds a list of coordinate arrays ([x, y, z]
) that define spawn positions. You can configure multiple entries, but
each top-level key (like "default"
) must be unique.
Spreadsβ
The spreads
section defines islands that surround the main island. For example:
{
"spreads": {
"default": [
{
"file": "default.nbt",
"minOffset": [ -6, 3, 5 ],
"maxOffset": [ 4, 10, 3 ],
"origin": "center"
},
{
"file": "default2.nbt",
"offset": [0, 64, 0]
}
]
}
}
This section is similar to the previously explained spawns
. It allows you to define multiple keys (like "default"
) holding arrays of objects. Each key must be unique.
Each object in the arrays specifies the following:
file
: The name of the file (located inconfig/skyblockbuilder/templates/spreads
) with a.nbt
or.snbt
extension.- Offsets:
- Use
minOffset
andmaxOffset
to define a random range for the object's position relative to[0, 0, 0]
(main island). - Alternatively, use
offset
for a fixed position relative to the main island.
- Use
- Origin (Optional): Determines how offsets are calculated. Possible values:
zero
(default) starts offset from the origin coordinates.center
starts offset from the center of the object.
Hereβs a visual representation of the origin
options:
To debug spreads, use the /locate
command with the spread
option:
/locate spread <team> <spread>
This provides all the positions related to the specified spread type.
Surrounding Blocksβ
The surroundingBlocks
section determines the blocks that will surround the template. For example:
{
"surroundingBlocks": {
"default": [
"minecraft:stone",
"minecraft:bedrock"
]
}
}
- The key (e.g.,
"default"
) must be unique and is linked to thetemplates
option in the next section. - The value is a list of block identifiers (resource locations). These blocks will randomly surround the template.
- Thickness of this surrounding area is determined by
surroundingMargin
(explained below).
Templatesβ
The templates
section defines the actual templates, connecting them with spawn points and block settings. Here's an
example:
{
"templates": [
{
"name": "default",
"desc": "Default template",
"file": "default.nbt",
"spawns": "default",
"offset": [ 0, 0, 0 ],
"surroundingBlocks": "default",
"surroundingMargin": 0
}
]
}
Key | Default Value | Description |
---|---|---|
name | β | The name displayed on the Customize screen. Use { at the start and } at the end for lang keys. |
desc | "" (empty string) | A description shown on the Customize screen when selecting the world preset. Use { at the start and } at the end for lang keys. |
file | β | The filename of the template. |
spawns | β | The name of the spawn configuration, taken from the spawns option. |
direction | south | The direction the user will face when using this template. If not specified, defaults to south . |
offset | [ 0, 0, 0 ] | The positional offset for this template. Learn more about offsets here. |
surroundingBlocks | "" (empty string) | The configuration name for surrounding blocks, taken from the surroundingBlocks option. |
surroundingMargin | 0 | The thickness of the border around the template. |
Settings with default values are optional.
You can differentiate multiple configurations with the same file
and spawns
using unique names. Additionally, you
can set an icon for each template by placing it in config/skyblockbuilder/templates/icon/<name>.png
, where <name>
must be in lowercase.
If spawning inside a block, add the block to the
#skyblockbuilder:additional_valid_spawns
block tag.
Loot Chests on Islandβ
To add a loot chest to an island, set the NBT data to the chest with the command:
/data merge block <x y z> {LootTable: modid:path/to/loot_table}
Do not open the chest after merging this data.
Converting .nbt
Templates to .snbt
β
To convert your existing .nbt
templates to .snbt
, use the command:
/skyblock templates_to_snbt
.
This command will convert all templates located in the config/skyblockbuilder/templates/
folder into .snbt
files.
The original .nbt
files will remain unchanged.