Custom Objects and Structures (BO2/BO3/BO4 configs)

Note: This page was written for OTG 1.12.2, however most of the information applies to 1.16.x as well. OTGEdit is not updated past 1.12.2 and commands have changed slightly.

OTG can spawn user-made content as part of world generation via the Tree(), CustomObject() and CustomStructure() resources in the Biome Config. OTG uses BO2/BO3/BO4 files to store blocks and settings for each object.

## BO2/BO3/BO4 files

Users can export a WorldEdit selection to BO files via the /otg export command, or convert a .schematic file to BO files via OTGEdit, BulkEdit or similar tools. BO files can be spawned via the /otg spawn command. See the relevant articles (Tutorial: Spawning Custom Object, Tools & Resources, Console Commands).

* BO2 files: Legacy file format, used for small objects and trees (max 32x32). Some presets still use old BO2 files.

* BO3 files: Successor to BO2. Can be max 32x32 when used as Tree() or CustomObject(). When used with CustomStructure(), multiple BO3 files can be chained together as branches to create a larger structure.

* BO4 files: Can only be used with CustomStructure(), offers advanced structure features over BO3's (see below).

## BiomeConfig: Tree(), CustomObject() and CustomStructure()

User-made BO2/BO3/BO4 files can be added to the world via a Biome Config's resource queue. The Tree(), CustomObject() and CustomStructure() resources provide different settings to spawn objects like trees, small houses or large structures with the appropriate rarity and distribution.

* Tree: The Tree() resource is used with BO2 or BO3 files to spawn small user-made objects (max 32x32) as trees.
* CustomObject: The CustomObject() resource is used with BO2 or BO3 files to spawn user-made objects (max 32x32), such as boulders or small buildings.
* CustomStructure: The CustomStructure() resource is used to spawn large (>32x32) structures, made up of multiple BO files (branches), that are connected via a branching pattern. BO3/BO4 CustomStructures can use either a static branching pattern, so their branches always spawn in the same configuration, or a randomised branching pattern, to create a randomised layout based on spawn chance and terrain.

## Differences between BO3 and BO4 CustomStructures

Each world/dimension must use either BO3 or BO4 files for its CustomStructures. This can be toggled via the WorldConfig IsOTGPlus:true (1.12) / BOType:BO4 (1.16), BO3 files are the default. Presets like Biome Bundle use BO3 structures for villages and dungeons, while Wildlands uses BO4 structures to spawn large terrain features like mountains that blend in with terrain generation.

* BO3's: Behave like vanilla structures, and are placed based on seed. There can be only 1 type of BO3 CustomStructure per biome, options for placement/rarity/distribution are limited. BO3 structures scale poorly with performance and don't spawn all their branches reliably at large sizes, so they have a maximum size. Other than that, they are easy to use and offer plenty of options for vanilla-like structures.
* BO4's: Are not placed based on seed, but rather plotted and generated as the world is being explored. This approach is intentionally different from vanilla and BO3 structures, so as to allow for different features. BO4 structures support fine control over placement and distribution and can blend in with terrain. Any number of BO4 structures can be spawned in a biome, and use collision detection so as not to overlap. Advanced branching features support structures of any shape or size, and allow for randomised structures that can shape to fit any available space.

Note: Bo4's are still under development, there are some limitations that we hope to lift in the future, such as allowing BO3 and BO4 customstructures to exist in the same world.

See also: BO4 CustomStructures