<- Return to Cuberite.org

Cuberite User's Manual

Updated on 23 April 2024, Commit: 5559187

0 - Introduction 1 - Installing 2 - Configuration Basics 3 - Configuring world.ini 4 - MultiWorlds

0 - Introduction

1 - Introduction

This is the Cuberite User's Manual. It is intended as a guide on how to operate the basics of Cuberite, as well as an introduction to some advanced features. It is organised into major sections as well as more detailed subsections and these are laid out in the Table of Contents. The first section deals with downloading, installing, and running Cuberite. The second section is an overview of configuring Cuberite. Reading those two sections is enough to get you started. The remaining sections cover more advanced features and further configuration options in greater depth.

As with Cuberite itself, this manual is in active development, and you can contribute yourself or file an issue if you find an error or ommission on the GitHub Repository. If you're using a printed version, note that the latest version of this manual is always available online.

Resources

Developer Resources

2 - What is Cuberite

Cuberite is a Free and Open Source (FOSS) game server compatible with Minecraft Java Edition. Cuberite is designed with performance, configurability, and extensibility in mind, and aims to accurately recreate most vanilla features. The server is written in C++, and there is an extensive plugin system that allows for the user to write their own plugins with Lua. In fact, many of the built in commands are implemented by the Core plugin, which has its own GitHub repository and developer community. For more information on the plugin system and how to use it, as well as how to develop for it, please see Plugins.

Today, Cuberite lives on thanks to its contributors and plugin developers. If you want to reward the developers for their work, you should set up a donation on Liberapay.

3 - History

Cuberite was created in late 2010 by FakeTruth with its original name "MCServer", as a replacement for the vanilla server, designed to be better performing and more configurable. It was later open-sourced, and other developers started contributing.

In the summer of 2013, the main MCServer repository was moved from Google Code to GitHub, and a new build system was introduced. Several new developers also joined the project around that time, and the project began to increase in members and popularity.

As of late 2014, MCServer had a team of more than 10 regular developers, and the codebase had grown to over 125,000 lines (excluding comments, blank lines and external libraries). Many new features were also introduced in 2014:

  • Chunk Sparsing (ram usage reduction)
  • New Redstone Simulator
  • New Water and Lava Simulators
  • New Generators (and improved speed)

In 2015, many new developers joined the project, and the community decided to adopt the current name of Cuberite. As of late 2015, Cuberite has over 1000 stars on GitHub.

2020 marks the 10th anniversary of Cuberite. As a longstanding project, Cuberite's lifecycle has seen several ups and downs. Despite periods of hibernation and developers with busy lives, Cuberite's development still continues thanks to new and old contributors.

1 - Installing

1 - Pre-Compiled Builds

For Windows, Linux, Raspberry Pi or Mac builds, the main download location is the official homepage, with the latest builds available. For developers who want more control over the builds they download, visit the buildserver.

On Linux, macOS, FreeBSD or Raspberry Pi, you can simply paste this command into your terminal to install Cuberite:

curl -sSfL https://download.cuberite.org | sh

Once you have downloaded Cuberite, you can skip straight to Running Cuberite.

Pre-compiled builds are faster to install and easier to use than compiling the source yourself, and are recommended for beginners. However, for some unusual hardware for which no pre-compiled build exists it may be necessary to compile the code yourself. Compiling yourself also has a significant performance advantage on modern machines. If you know how to use the command line or want extra speed you should compile Cuberite yourself.

2 - Compiling Cuberite Yourself

Compiling yourself takes longer and is more involved, but on modern processors can lead to a speed increase of up to 1.5 to 3x. If your operating system or hardware is not officially supported, compiling may be the only way to run Cuberite.

The automatic compilation script is recommended for *nix users. The automatic compilation script takes care of the compilation process for you. You only need to copy this command to your terminal:

sh -c "$(wget -O - https://compile.cuberite.org)"

If you prefer to manually compile, or want to compile for Windows, please see COMPILING.md in the main repository.

3 - Running Cuberite

Once you have a compiled copy of Cuberite, with the supporting files (in most cases these are distributed with the executable, in a directory called Server), you can run the server and generate yourself a world. It's easy to run the server, although the method varies depending on the operating system you are using.

Windows

To run Cuberite on Windows, just double click on the executable. A command window will come up, and the world will generate.

Linux/Mac/BSD

To run Cuberite on Linux, Mac or FreeBSD, just run the executable in your shell:

./Cuberite

Joining Cuberite

Just like Vanilla, once you've started Cuberite, you can join the server on localhost:25565, or just localhost in your Minecraft client.

2 - Configuration Basics

1 - Configuration Overview

Cuberite can be configured by editing various files. Below is a list of all such files:

settings.ini
The main configuration file, which contains server-wide configuration variables.
webadmin.ini
Allows you to tweak the web admin interface, which is available at http://localhost:8080 or http://<Server IP address>:8080 by default.
<World name>/world.ini
This file configures world-specific aspects. This is where you choose your game mode. See GameMode. Note that each world has its own world.ini file, each stored in <World name>/world.ini.
monsters.ini
Allows you to tweak monster behaviour.
motd.txt
The Message of the Day, which is shown to players upon joining your server.
crafting.txt, brewing.txt, furnace.txt
These three files allow you to tweak crafting, brewing, and furnace recipes.
plugins/...
Many plugins have their own configuration files. For instance, the WorldEdit config is plugins/WorldEdit/config.cfg
favicon.png
This is the icon that will appear in the Minecraft server list. You may replace it with your own. The icon dimensions musts be 64x64.
items.ini
Edit item IDs. You probably shouldn't edit this file unless you know what you're doing.

2 - Permissions

Permissions allow different players to access different commands and features. Each plugin has its own permissions. Setting up player permissions is most easily done via the WebAdmin. You can also use the rank <playername> command from the server console. Note that there is no leading slash. The console command is not /rank. To see the command and permissions list for the default commands, which are provided by the Core plugin, see the Core Plugin readme.

To give yourself operator status, use the op <playername> command in the console. Alternatively, you can use the WebAdmin.

3 - WebAdmin

The WebAdmin allows you to control various aspects of Cuberite, including player permissions. By default, the webadmin is enabled but has no users. To use the webadmin it needs to be configured properly. A typical webadmin.ini configuration looks like this:

[User:john]
Password=cuberiteRocks

[WebAdmin]
Ports=8080
Enabled=1

In the example above, you can login to the web admin using the username john and the password cuberiteRocks by pointing your browser to http://<Server IP address>:8080. If you're running your server locally, point your browser to http://localhost:8080

4 - Worlds

By default, there are three worlds: world, world_nether, world_the_end. Each world can be tweaked by editing <World Name>/world.ini. You can use this file to edit things like the spawn point location, the game mode, and the diffculty level. See Configuring world.ini for details.

5 - Plugins

Plugins are an important method of customisation for Cuberite. There are many different first and third-party plugins available.

Cuberite plugins are written in Lua, and interact with the server through an extensive API. They are designed to be easy to write for anyone with basic programming experience, so if existing plugins don't fill your need you can easily write your own plugins. If you want to learn how to write your own plugins, check out the guide.

Cuberite has a plugin repository where you can upload your plugins publicly and download plugins others have released.

Activating a plugin

After downloading a plugin, you need to put it in the Plugins/ directory. You should then edit the [Plugins] sections of the settings.ini file and add a plugin entry there. Below is an example of adding a plugin called MyNewPlugin.

[Plugins]
Core=1
ChatLog=1
MyNewPlugin=1
MyDisabledPlugin=0

Writing a plugin

To get started with writing Cuberite plugins, read this article. Cuberite Plugins are written with the Lua programming language. Cuberite has a well-documented API.

You're good to go!

If you have read this far, you should now have enough knowledge to operate a Cuberite server. The rest of this book covers more features and further configuration options in greater depth.

3 - Configuring world.ini

1 - What is world.ini

It is possible to configure many different aspects of individual worlds with Cuberite. Configuration options include:

  • Changing the spawn point of a world.
  • Changing the game mode of a world.
  • Changing the world generator, so as to change the terrain generated.
  • Changing the types of plants that generate in the world.
  • Changing which types of animals are allowed to spawn.
  • There are many more things that can be done, and these are just examples.

All this configuration can be done through one file. It is called world.ini and can be found in each world's individual folder. When a world is first created by Cuberite, the file is filled out with default values that are fairly close to vanilla minecraft.

The world.ini file is split into many different sections, each with a name surrounded in square brackets. For example [SpawnPosition] is a section. Each section contains configuration options related to a specific feature of Cuberite.

Default Settings


[General]
Dimension=Overworld
UnusedChunkCap=1000
IsDaylightCycleEnabled=1
Gamemode=0
Weather=0
WorldAgeMS=0
TimeInTicks=0

[Broadcasting]
BroadcastDeathMessages=1
BroadcastAchievementMessages=1

[SpawnPosition]
MaxViewDistance=10
X=0.500000
Y=115.000000
Z=0.500000
PregenerateDistance=20

[Storage]
Schema=Default
CompressionFactor=6

[Plants]
MaxCactusHeight=3
MaxSugarcaneHeight=3

[Physics]
DeepSnow=1
ShouldLavaSpawnFire=1
TNTShrapnelLevel=2
WaterSimulator=Vanilla
LavaSimulator=Vanilla
SandInstantFall=0
RedstoneSimulator=Incremental

[Mechanics]
CommandBlocksEnabled=0
PVPEnabled=1
UseChatPrefixes=1
MinNetherPortalWidth=2
MaxNetherPortalWidth=21
MinNetherPortalHeight=3
MaxNetherPortalHeight=21

[Monsters]
VillagersShouldHarvestCrops=1
AnimalsOn=1
Types=bat, cavespider, chicken, cow, creeper, guardian, horse, mooshroom, ocelot, pig, rabbit, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie

[Weather]
MaxSunnyTicks=180000
MinSunnyTicks=12000
MaxRainTicks=24000
MinRainTicks=12000
MaxThunderStormTicks=15600
MinThunderStormTicks=3600

[LinkedWorlds]
NetherWorldName=world_nether
EndWorldName=world_the_end

[Generator]
BiomeGen=Grown
ShapeGen=BiomalNoise3D
CompositionGen=Biomal
Finishers=RoughRavines, WormNestCaves, WaterLakes, WaterSprings, LavaLakes, LavaSprings, OreNests, Mineshafts, Trees, Villages, SinglePieceStructures: JungleTemple|WitchHut|DesertPyramid|DesertWell, TallGrass, SprinkleFoliage, Ice, Snow, Lilypads, BottomLava, DeadBushes, NaturalPatches, PreSimulator, Animals, OverworldClumpFlowers
Generator=Composable
BiomeGenCacheSize=16
BiomeGenMultiCacheLength=128
SeaLevel=62
BiomalNoise3DFrequencyX=40.000000
BiomalNoise3DFrequencyY=40.000000
BiomalNoise3DFrequencyZ=40.000000
BiomalNoise3DBaseFrequencyX=40.000000
BiomalNoise3DBaseFrequencyZ=40.000000
BiomalNoise3DChoiceFrequencyX=40.000000
BiomalNoise3DChoiceFrequencyY=80.000000
BiomalNoise3DChoiceFrequencyZ=40.000000
BiomalNoise3DAirThreshold=0.000000
BiomalNoise3DNumChoiceOctaves=4
BiomalNoise3DNumDensityOctaves=6
BiomalNoise3DNumBaseOctaves=6
BiomalNoise3DBaseAmplitude=1.000000
CompositionGenCacheSize=64
RoughRavinesGridSize=256
RoughRavinesMaxOffset=128
RoughRavinesMaxSize=128
RoughRavinesMinSize=64
RoughRavinesMaxCenterWidth=8.000000
RoughRavinesMinCenterWidth=2.000000
RoughRavinesMaxRoughness=0.200000
RoughRavinesMinRoughness=0.050000
RoughRavinesMaxFloorHeightEdge=8.000000
RoughRavinesMinFloorHeightEdge=30.000000
RoughRavinesMaxFloorHeightCenter=20.000000
RoughRavinesMinFloorHeightCenter=6.000000
RoughRavinesMaxCeilingHeightEdge=56.000000
RoughRavinesMinCeilingHeightEdge=38.000000
RoughRavinesMaxCeilingHeightCenter=58.000000
RoughRavinesMinCeilingHeightCenter=36.000000
WormNestCavesSize=64
WormNestCavesGrid=96
WormNestMaxOffset=32
WaterLakesProbability=25
LavaLakesProbability=10
MineShaftsGridSize=512
MineShaftsMaxOffset=256
MineShaftsMaxSystemSize=160
MineShaftsChanceCorridor=600
MineShaftsChanceCrossing=200
MineShaftsChanceStaircase=200
VillageGridSize=384
VillageMaxOffset=128
VillageMaxDepth=2
VillageMaxSize=128
VillageMinDensity=50
VillageMaxDensity=80
VillagePrefabs=PlainsVillage, SandVillage
BottomLavaLevel=10
PreSimulatorFallingBlocks=1
PreSimulatorWater=1
PreSimulatorLava=1
OverworldClumpFlowers-1=Forest, -2, 2; ForestHills, -3, 2; FlowerForest = yellowflower; redflower; lilac; rosebush
OverworldClumpFlowers-2=Plains, -2, 1; SunflowerPlains = yellowflower; redflower; azurebluet; redtulip; orangetulip; whitetulip; pinktulip; oxeyedaisy
OverworldClumpFlowers-3=SunflowerPlains, 1, 2 = sunflower
OverworldClumpFlowers-4=FlowerForest, 2, 5 = allium; redtulip; orangetulip; whitetulip; pinktulip; oxeyedaisy
OverworldClumpFlowers-5=Swampland; SwamplandM = brownmushroom; redmushroom; blueorchid
OverworldClumpFlowers-6=MushroomIsland; MushroomShore; MegaTaiga; MegaTaigaHills; MegaSpruceTaiga; MegaSpruceTaigaHills = brownmushroom; redmushroom
OverworldClumpFlowers-7=RoofedForest, 1, 5; RoofedForestM, 1, 5 = rosebush; peony; lilac; grass

[WaterSimulator]
Falloff=1
TickDelay=5
NumNeighborsForSource=2

[LavaSimulator]
Falloff=2
TickDelay=30
NumNeighborsForSource=-1

[FireSimulator]
BurnStepTimeFuel=500
BurnStepTimeNonfuel=100
Flammability=50
ReplaceFuelChance=50000

[Seed]
Seed=775375601

[WaterSprings]
HeightDistribution=0, 0; 10, 10; 11, 75; 16, 83; 20, 83; 24, 78; 32, 62; 40, 40; 44, 15; 48, 7; 56, 2; 64, 1; 255, 0
Chance=24

[LavaSprings]
HeightDistribution=0, 0; 10, 5; 11, 45; 48, 2; 64, 1; 255, 0
Chance=9

[Animals]
AnimalSpawnChunkPercentage=10

[SpawnProtect]
ProtectRadius=10

[Difficulty]
WorldDifficulty=1

[WorldLimit]
LimitRadius=0

2 - General

Specifies the spawn point for new players. The coordinates are absolute, in blocks, and may be fractional. If any of the values are missing, Cuberite provides a default.

Available Options

Variable Meaning Default
Dimension The Dimension of this World. Can be: Overworld, Nether, End Overworld
UnusedChunkCap Maximum number of chunks in memory before the server starts to start an early save (See below). 1000
IsDaylightCycleEnabled Enables/Disables the Server to stop time in the world. Boolean: Can be 0 or 1. 1
GameMode 0 means Survival mode
1 means Creative mode
2 means Adventure mode
3 means Spectator mode
0
Weather The current weather in the world. This is set by the server on shutdown and will be replaced if edited while the server is running!
0 means clear weather
1 means rainy weather
2 means thunderstorm
0
WorldAgeMS Age of the world in milliseconds. Internal use only. None
TimeInTicks This is used to keep track of the ingame time of the world measured in Ticks. In be in the range of [0, 20000]. None

Unused Chunk Cap

A chunk is a 16x16x256 segment of blocks. Cuberite performs a save cycle every 5 minutes. In a save cycle, all unused chunks are saved to disk and then removed from RAM. Saves cause a drop in memory usage. If the number of unused chunks waiting to be saved exceeds UnusedChunkCap, Cuberite will perform an early save cycle to free RAM earlier.

If Cuberite is using too much RAM when the server is under load, lowering UnusedChunkCap from its default of 1000 may help significantly. Setting the value to 0 means chunks are always saved immediately when they are no longer used. Alternatively, if you'd like Cuberite to maximize performance and utilize more RAM, increase UnusedChunkCap.

The effect of UnusedChunkCap will likely be unnoticeable on light load, when the cap is never being reached and save cycles are being performed in 5 minutes intervals. In contrast to that, the effect is often significant when travelling fast and loading many chunks, such as flying at high speed.

The optimal value varies depending on settings, system hardware, and playstyle. We currently have no official recommended value, and recommend trial and error. A more intuitive setting is planned for the future, where the exact amount of maximum RAM desired is configured.

3 - Broadcasting

Specifies setting to broadcast certain events to all players.

Available Options

Variable Meaning Default
BroadcastDeathMessages If the server should broadcast death messages in this world. Boolean: Can be 0 or 1. 1
BroadcastAchievementMessages If the server should broadcast achievement messages in this world. Boolean: Can be 0 or 1. 1

4 - SpawnPosition

Specifies the spawn point for new players. The coordinates are absolute, in blocks, and may be fractional. If any of the values are missing, Cuberite provides a default.

Available Options

Variable Meaning Default
MaxViewDistance Sets the maximum viewing Distance for Clients. Lower this for better performance on weaker or busy systems. 10
X X coordinate of the spawn point 0
Y Y coordinate of the spawn point The height of the terrain at the point (X, Z)
Z Z coordinate of the spawn point 0
PregenerateDistance Number of chunks in each direction that are generated on initial world generation. 20 on release. 9 on Debug.

5 - Storage

This section specifies if Cuberite should save world chunks or not, as well as the compression level for world files.

Available Options

Variable Meaning Default
Schema Specifies if world chunks should be saved or not. May be one of "Default", "Anvil" and "Forgetful". See table below for their description. Default
CompressionFactor How much the world files should be compressed. Lower values mean much larger file sizes, but slightly increased performance, and higher values mean slightly smaller file sizes and much lower performance. It is recommended just to keep with the default. 6

Schema Options

Schema File Type Description
Default .mca This is just an alias for Anvil at the moment.
Anvil .mca Saves chunks. Storage is compatible with other Minecraft-related tools and programs. MCA files are stored in the "region" subfolder of the world folder, and a "level.dat" file is generated inside the world folder.
Forgetful N/A Doesn't save chunks. Changes to the world are lost as soon as the chunks are unloaded, making this useful for read-only public servers. Please note that Cuberite will still load chunks using other schemas.

6 - Plants

Specifies setting on plants in this world.

Available Options

Variable Meaning Default
MaxCactusHeight Limits the cactus growing height in this world. 3
MaxSugarcaneHeight Limits the sugar cane growing height in this world. 3

7 - Physics

Specifies setting for internal physics setup.

Available Options

Variable Meaning Default
DeepSnow Enables/Disables that snow can stack up on itself during downfall. 1
ShouldLavaSpawnFire Enables/Disables the ability of lava to spawn fire on surrounding blocks. Boolean: Can be 0 or 1. 1
TNTShrapnelLevel Sets the blocks that should fly away after an explosion. This is disabled at the moment.
0: No blocks are blown away.
1: Only the ones affected by gravity.
2: Any block is affected.
2
WaterSimulator Sets the water simulator.
Vanilla: Notchian-like behaviour.
Floody: A way more aggressive water distribution.
Vaporise: Water will disappear (mostly used for nether behaviour).
null: No water simulation.
Vanilla and Floody can be further manipulated. See here.
Vanilla
LavaSimulator Sets the lava simulator.
Vanilla: Notchian-like behaviour.
Floody: A way more aggressive lava distribution.
Vaporise: Lava will disappear.
null: No lava simulation.
Vanilla and Floody can be further manipulated. See here.
Vanilla
SandInstantFall Enables/Disables the falling animation for sand. Boolean: 0 -> Animation, 1 -> No animation. 0
RedstoneSimulator Sets the redstone simulator.
Incremental: notchian-like behaviour.
noop: disables redstone.
Incremental

8 - Mechanics

Specifies setting for some game mechanics.

Available Options

Variable Meaning Default
CommandBlocksEnabled Enables/Disables command blocks. Command blocks are VERY experimental at this point. Boolean: Can be 0 or 1. 0
PVPEnabled Enables/Disables PVP. Boolean: Can be 0 or 1. 1
UseChatPrefixes Enables/Disables the chat prefixes for all players. Boolean: Can be 0 or 1. 1
MinNetherPortalWidth Sets the minimum nether portal width. 2
MaxNetherPortalWidth Sets the maximum nether portal width. 21
MinNetherPortalHeight Sets the minimum nether portal height. 3
MaxNetherPortalHeight Sets the maximum nether portal height. 21

9 - Monsters

Specifies setting for the monsters.

Available Options

Variable Meaning Default
VillagersShouldHarvestCrops Villagers don't do anything at this point. So this changes nothing. 1
AnimalsOn 1
Types Sets a list of allowed monsters (both aggressive and passive). All should be lowercase and comma separated. bat, cavespider, chicken, cow, creeper, guardian, horse, mooshroom, ocelot, pig, rabbit, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie

10 - Weather

Specifies setting for the weather in the world. All the values are measured in ticks.

Available Options

Variable Meaning Default
MaxSunnyTicks 180000
MinSunnyTicks 12000
MaxRainTicks 24000
MinRainTicks 12000
MaxThunderStormTicks 15600
MinThunderStormTicks 3600

11 - Generator

Specifies setting for the generator of this world. This is the most powerful tool when customizing worlds.

Variable Meaning Default
Generator Various types of generators: Composable



Composable Generator

The composable generator is a very powerful tool. You can mix and match different methods of generation and customize them.
This results in many different options for you to choose:
BiomeGen This value will determine the way the server chooses the biomes. Grown
ShapeGen This determines the way the world is shaped. BiomalNoise3D
CompositionGen This determines the way the generator fills the actual blocks. Biomal
CompositionGenCacheSize 64
Finishers Default Finishers


BiomeGen

You can read more in depth about the different methods here
Constant The constant biome generator (just one biome).
Options:
ConstantBiome Will determine the biome generated. See list of available biomes without the leading "bi".
Checkerboard Will generate biomes in a checkerboard layout. You can set the size of the squares and the used biomes.
Options:
CheckerBoardBiomes List of biomes. Separated by ",". Optionally you can set a frequency by appending ":%integer%" to any biome.
CheckerboardBiomeSize Size of the squares.
Voronoi Options:
VoronoiCellSize
VoronoiJitterSize
VoronoiOddRowOffset
DistortedVoronoi Options:
DistortedVoronoiCellSize
DistortedVoronoiBiomes
TwoLevel Options:
TwoLevelLargeCellSize
TwoLevelSmallCellSize
TwoLevelDistortXOctave1Freq
TwoLevelDistortXOctave1Amp
TwoLevelDistortXOctave2Freq
TwoLevelDistortXOctave2Amp
TwoLevelDistortXOctave3Amp
TwoLevelDistortZOctave1Freq
TwoLevelDistortZOctave1Amp
TwoLevelDistortZOctave2Freq
TwoLevelDistortZOctave2Amp
TwoLevelDistortZOctave3Freq
TwoLevelDistortZOctave3Amp
MultiStepMap Options:
MultiStepMapOceanCellSize
MultiStepMapMushroomIslandSize
MultiStepMapRiverCellSize
MultiStepMapRiverWidth
MultiStepMapLandBiomeSize
GrownProt
Grown


ShapeGen

The Shape generator determines the shape of the world. Depending on what your choose it can create overhangs. So two blocks facing air at the top.

BiomalNoise3D This generates a terrain shape by combining a lerp of two 3D noises with a vertical linear gradient.
Options:
SeaLevel The sea level generated from the generator
BiomalNoise3DFrequencyX
BiomalNoise3DFrequencyY
BiomalNoise3DFrequencyZ
BiomalNoise3DBaseFrequencyX
BiomalNoise3DBaseFrequencyZ
BiomalNoise3DChoiceFrequencyX
BiomalNoise3DChoiceFrequencyY
BiomalNoise3DChoiceFrequencyZ
BiomalNoise3DAirThreshold
BiomalNoise3DNumChoiceOctaves
BiomalNoise3DNumDensityOctaves
BiomalNoise3DNumBaseOctaves
BiomalNoise3DBaseAmplitude All those options will modify the look of the world. They influence the randomness so you can't 100% say what they will actually do.
DistortedHeightmap Options:
SeaLevel The sea level generated from the generator
DistortedHeightmapFrequencyX
DistortedHeightmapFrequencyY
DistortedHeightmapFrequencyZ
End The ShapeGenerator used for the end.
Options:
EndGenMainIslandSize The size of the island at coordinates 0, 0. This value also affects the size of the void between the main islands and the smaller islands.
EndGenIslandThickness The height of the islands.
EndGenIslandYOffset The distance from Y=0 where islands will start generating.
EndGenMainFrequencyX Decreasing this value will result in smaller islands on the X-axis.
EndGenSmallFrequencyX
EndGenMainFrequencyY Decreasing this value will result in rougher terrain.
EndGenSmallFrequencyY
EndGenMainFrequencyZ Decreasing this value will result in smaller islands on the Z-axis.
EndGenSmallFrequencyZ
EndGenMainMinThreshold Decreasing this value will result in smaller islands.
EndGenSmallMinThreshold
HeightMap This is a old relict. The server previously used HeightGenerators instead of ShapeGenerators. This is deprecated and won't yield any overhangs or similar. This enables the property: "HeightGen"
Noise3D Options:
Noise3DHeightAmplification
Noise3DMidPoint
Noise3DFrequencyX
Noise3DFrequencyY
Noise3DFrequencyZ
Noise3DBaseFrequencyX
Noise3DBaseFrequencyY
Noise3DBaseFrequencyZ
Noise3DAirThreshold
Noise3DNumChoiceOctaves
Noise3DNumDensityOctaves
Noise3DNumBaseOctaves
Noise3DBaseAmplitude
TwoHeights Merges two HeightMaps generated from the same as DistortedHeightMap Options:
TwoHeightsFrequencyX
TwoHeightsFrequencyY
TwoHeightsFrequencyZ
Default: Biomal

Height Map

The settings for the HeightMap Shape Generator
Generator Type Results
Flat
Classic
MinMax
Mountains
Steppy
Biomal


CompositionGen

Generator Type Results
Biomal
BiomalNoise3D
Classic
DebugBiomes
DistortedHeightmap
End
Nether
Noise3D
SameBlock Fills everything with the same Block.


Finishers

Finisher Functions Options
RoughRavines Creates the big ravines.
RoughRavinesGridSize
RoughRavinesMaxOffset
RoughRavinesMaxSize
RoughRavinesMinSize
RoughRavinesMaxCenterWidth
RoughRavinesMinCenterWidth
RoughRavinesMaxRoughness
RoughRavinesMinRoughness
RoughRavinesMaxFloorHeightEdge
RoughRavinesMinFloorHeightEdge
RoughRavinesMaxFloorHeightCenter
RoughRavinesMinFloorHeightCenter
RoughRavinesMaxCeilingHeightEdge
RoughRavinesMinCeilingHeightEdge
RoughRavinesMaxCeilingHeightCenter
RoughRavinesMinCeilingHeightCenter
WormNestCaves Creates the small caves going through the ground.
WormNestCavesSize
WormNestCavesGrid
WormNestMaxOffset
WaterLakes Creates the water lakes at sea level.
WaterLakesProbability
WaterSprings Creates the one-block water springs.
LavaLakes Creates the laval lakes at sea level.
LavaLakesProbability
LavaSprings Creates the one-block lava springs.
OreNests Creates the ores in the ground.
Mineshafts Creates Mineshafts
MineShaftsGridSize
MineShaftsMaxOffset
MineShaftsMaxSystemSize
MineShaftsChanceCorridor
MineShaftsChanceCrossing
MineShaftsChanceStaircase
Trees Creates the trees (and tree-like [e.g. Mushroom]) structures.
Villages Creates the villages
VillageGridSize
VillageMaxOffset
VillageMaxDepth
VillageMaxSize
VillageMinDensity
VillageMaxDensity
VillagePrefabs There are multiple Villages available:
  • AlchemistVillage
  • JapaneseVillage
  • PlainsVillage
  • SandVillage
  • SandFlatRoofVillage
SinglePieceStructures Creates Structures that consist of single piece. You have a choice of:
  • JungleTemple
  • WitchHut
  • DesertPyramid
  • DesertWell
You may select those by adding SinglePieceStructures:%YourChoices% separated by "|"
If you want to add custom models you need to add them in the Prefabs/SinglePieceStructures folder and add the file name without the file ending to the list.
TallGrass Adds the tall grass and fern to the world.
SprinkleFoliage Generates the small flowers and similar blocks.
Ice Adds ice to the world.
Snow Adds snow to the world.
Lilypads Adds lilypads to the world.
BottomLava Places the lava at the bottom of the world.
BottomLavaLevel
DeadBushes
NaturalPatches
PreSimulator The calculates the behaviour of different blocks at the point of generation instead of ticking it. This saves performance. PreSimulatorFallingBlocks=1
PreSimulatorWater=1
PreSimulatorLava=1
Animals
OverworldClumpFlowers Places flowers into the world

12 - Other

Variable Meaning Default
ProtectRadius Sets the radius in which non-admin players are not able to build. 10
WorldDifficulty Sets the difficulty of this world. 1
LimitRadius Limits the world similar to the nothcian world border. 0

13 - Example Configurations

Superflat world

To generate a Superflat world, change the values under the [Generator] section to:

BiomeGen=Constant
ConstantBiome=Plains
HeightGen=Flat
FlatHeight=3
ShapeGen=HeightMap
SeaLevel=0
Finishers=Villages

Empty world

To generate a world that only contains air, change the values under the [Generator] section to:

BiomeGen=Constant
ShapeGen=HeightMap
HeightGen=Flat
FlatHeight=0
CompositionGen=SameBlock
SameBlockType=air
SameBlockBedrocked=0
Finishers=

4 - MultiWorlds

1 - Multiworlds Overview

Cuberite supports multiple worlds. Each world has its own world.ini file. Additional Worlds can be added by editing settings.ini. This is explained in the example below.

Adding Worlds

[Worlds]
DefaultWorld=world
World=world_nether
World=world_the_end
World=myNewWorld
World=HappyLand

In the example above, 2 extra worlds are added to the server. Note that this automatically creates 2 additional configuration files, namely myNewWorld/world.ini and HappyLand/world.ini.

Dimensions (World types)

To create a nether type world, you should append the _nether suffix to your world name, e.g. World=myHellishWorld_nether. This creates a world.ini preconfigured as a nether. For end worlds, the same rules apply, append the _the_end suffix to your world name. Once a default world.ini is created, you are free to tweak it to your liking.

The _nether and _the_end suffixes are only used when no world.ini exists, and guide the server in choosing the contents of the default world.ini it's about to create. When a world.ini is present, the suffixes do not matter any more and the dimension is dictated by the Dimension option inside each world.ini. The _end suffix is treated like _the_end suffix for compatibility with previous Cuberite versions.

The rest of this section deals with linking worlds and travelling between them.

2 - Traveling by Command

If you have the core.portal permission, you may use the following command to travel between worlds: /portal Worldname. To list all available worlds, use /worlds.

3 - Linking Worlds Without Plugins

You can easily link worlds without resorting to plugins by modifying world.ini files. However, this method is limited: Each world can only be linked to 2 different worlds.

By default, the overworld is linked to two worlds: The Nether and The End. Stepping through any Nether Portal leads to the Nether, and stepping through any End Portal leads to the End. The behavior of Nether and End portals can be tweaked, and you can make each portal type teleport to a world of your choice. This is done by editing the [LinkedWorlds] section of each world's world.ini file. Note that with this method, you can't make two different portals of the same type teleport you to two different worlds. If you want such behavior, you should use a plugin. See the next subsection.

4 - Linking Worlds with a Plugin

The most configurable way to link worlds together is using a dedicated plugin, such as Portal V2. More plugins can be found at the respository.

5 - Bungeecord

Cuberite has experimental Bungeecord support.

^