
#######################################################################
# +-----------------------------------------------------------------+ #
# |                            BO3 object                           | #
# +-----------------------------------------------------------------+ #
#######################################################################

# This is the config file of a custom object.
# If you add this object correctly to your BiomeConfigs, it will spawn in the world.

# This is the creator of this BO3 object
Author: LordSmellyPants

# A short description of this BO3 object
Description: No description given

# The BO3 version, don't change this! It can be used by external applications to do a version check.
Version: 3

# The settings mode, WriteAll, WriteWithoutComments or WriteDisable. See WorldConfig.
SettingsMode: WriteDisable


#######################################################################
# +-----------------------------------------------------------------+ #
# |                          Main settings                          | #
# +-----------------------------------------------------------------+ #
#######################################################################

# This needs to be set to true to spawn the object in the Tree and Sapling resources.
Tree: false

# The frequency of the BO3 from 1 to 200. Tries this many times to spawn this BO3 when using the CustomObject(...) resource.
# Ignored by Tree(..), Sapling(..) and CustomStructure(..)
Frequency: 1

# The rarity of the BO3 from 0 to 100. Each spawn attempt has rarity% chance to succeed when using the CustomObject(...) resource.
# Ignored by Tree(..), Sapling(..) and CustomStructure(..)
Rarity: 5.0

# If you set this to true, the BO3 will be placed with a random rotation.
RotateRandomly: true

# The spawn height of the BO3 - randomY, highestBlock or highestSolidBlock.
SpawnHeight: highestBlock

# The height limits for the BO3.
MinHeight: 0

MaxHeight: 63

# Objects can have other objects attacthed to it: branches. Branches can also
# have branches attached to it, which can also have branches, etc. This is the
# maximum branch depth for this objects.
MaxBranchDepth: 10

# When spawned with the UseWorld keyword, this BO3 should NOT spawn in the following biomes.
# If you writer.write the BO3 name directly in the BiomeConfigs, this will be ignored.
ExcludedBiomes: All


#######################################################################
# +-----------------------------------------------------------------+ #
# |                      Source block settings                      | #
# +-----------------------------------------------------------------+ #
#######################################################################

# The block(s) the BO3 should spawn in.
SourceBlocks: AIR

# The maximum percentage of the BO3 that can be outside the SourceBlock.
# The BO3 won't be placed on a location with more blocks outside the SourceBlock than this percentage.
MaxPercentageOutsideSourceBlock: 100

# What to do when a block is about to be placed outside the SourceBlock? (dontPlace, placeAnyway)
OutsideSourceBlock: placeAnyway


#######################################################################
# +-----------------------------------------------------------------+ #
# |                              Blocks                             | #
# +-----------------------------------------------------------------+ #
#######################################################################

# All the blocks used in the BO3 are listed here. Possible blocks:
# Block(x,y,z,id[.data][,nbtfile.nbt)
# RandomBlock(x,y,z,id[:data][,nbtfile.nbt],chance[,id[:data][,nbtfile.nbt],chance[,...]])
# So RandomBlock(0,0,0,CHEST,chest.nbt,50,CHEST,anotherchest.nbt,100) will spawn a chest at
# the BO3 origin, and give it a 50% chance to have the contents of chest.nbt, or, if that
# fails, a 100% percent chance to have the contents of anotherchest.nbt.
Block(-7,-13,-3,LOG:3)
Block(-7,-13,1,LOG:3)
Block(-7,-12,-3,LOG:3)
Block(-7,-12,1,LOG:3)
Block(-7,-11,-3,LOG:3)
Block(-7,-11,1,LOG:3)
Block(-7,-10,-3,LOG:3)
Block(-7,-10,1,LOG:3)
Block(-7,-9,-3,LOG:3)
Block(-7,-9,1,LOG:3)
Block(-7,-8,-3,LOG:3)
Block(-7,-8,1,LOG:3)
Block(-7,-7,-3,LOG:3)
Block(-7,-7,1,LOG:3)
Block(-7,-6,-3,LOG:3)
Block(-7,-6,1,LOG:3)
Block(-7,-5,-3,LOG:3)
Block(-7,-5,1,LOG:3)
Block(-7,-4,-3,LOG:3)
Block(-7,-4,1,LOG:3)
Block(-7,-3,-3,LOG:3)
Block(-7,-3,1,LOG:3)
Block(-7,-2,-3,LOG:3)
Block(-7,-2,1,LOG:3)
Block(-7,-1,-3,LOG:3)
Block(-7,-1,1,LOG:3)
Block(-7,0,-3,LOG:3)
Block(-7,0,1,LOG:3)
Block(-7,1,-3,LOG:3)
Block(-7,1,1,LOG:3)
Block(-7,2,-3,LOG:3)
Block(-7,2,1,LOG:3)
Block(-6,1,-4,WOOD:3)
Block(-6,1,-3,WOOD:3)
Block(-6,1,-2,WOOD:3)
Block(-6,1,-1,WOOD:3)
Block(-6,1,0,WOOD:3)
Block(-6,1,1,WOOD:3)
Block(-6,1,2,WOOD:3)
Block(-6,4,-4,WOOD:3)
Block(-6,4,-3,FENCE)
Block(-6,4,-2,FENCE)
Block(-6,4,-1,FENCE)
Block(-6,4,0,FENCE)
Block(-6,4,1,FENCE)
Block(-6,4,2,WOOD:3)
Block(-6,5,-4,WOOD_STEP:3)
Block(-6,5,-3,WOOD:3)
Block(-6,5,-2,FENCE)
Block(-6,5,-1,FENCE)
Block(-6,5,0,FENCE)
Block(-6,5,1,WOOD:3)
Block(-6,5,2,WOOD_STEP:3)
Block(-6,6,-3,WOOD_STEP:3)
Block(-6,6,-2,WOOD:3)
Block(-6,6,-1,WOOD:3)
Block(-6,6,0,WOOD:3)
Block(-6,6,1,WOOD_STEP:3)
Block(-6,7,-1,WOOD_DOUBLE_STEP:3)
Block(-5,-13,-5,LOG:3)
Block(-5,-13,3,LOG:3)
Block(-5,-12,-5,LOG:3)
Block(-5,-12,3,LOG:3)
Block(-5,-11,-5,LOG:3)
Block(-5,-11,3,LOG:3)
Block(-5,-10,-5,LOG:3)
Block(-5,-10,3,LOG:3)
Block(-5,-9,-5,LOG:3)
Block(-5,-9,3,LOG:3)
Block(-5,-8,-5,LOG:3)
Block(-5,-8,3,LOG:3)
Block(-5,-7,-5,LOG:3)
Block(-5,-7,3,LOG:3)
Block(-5,-6,-5,LOG:3)
Block(-5,-6,3,LOG:3)
Block(-5,-5,-5,LOG:3)
Block(-5,-5,3,LOG:3)
Block(-5,-4,-5,LOG:3)
Block(-5,-4,3,LOG:3)
Block(-5,-3,-5,LOG:3)
Block(-5,-3,3,LOG:3)
Block(-5,-2,-5,LOG:3)
Block(-5,-2,3,LOG:3)
Block(-5,-1,-5,LOG:3)
Block(-5,-1,3,LOG:3)
Block(-5,0,-5,LOG:3)
Block(-5,0,3,LOG:3)
Block(-5,1,-5,LOG:3)
Block(-5,1,-4,WOOD:3)
Block(-5,1,-3,WOOD:3)
Block(-5,1,-2,WOOD:3)
Block(-5,1,-1,WOOD:3)
Block(-5,1,0,WOOD:3)
Block(-5,1,1,WOOD:3)
Block(-5,1,2,WOOD:3)
Block(-5,1,3,LOG:3)
Block(-5,2,-5,LOG:3)
Block(-5,2,-3,LOG:3)
Block(-5,2,-2,STAINED_CLAY:13)
Block(-5,2,-1,STAINED_CLAY:13)
Block(-5,2,0,STAINED_CLAY:13)
Block(-5,2,1,LOG:3)
Block(-5,2,3,LOG:3)
Block(-5,3,-3,LOG:3)
Block(-5,3,-2,STAINED_CLAY:13)
Block(-5,3,-1,STAINED_CLAY:13)
Block(-5,3,0,STAINED_CLAY:13)
Block(-5,3,1,LOG:3)
Block(-5,4,-4,WOOD:3)
Block(-5,4,-3,LOG:3)
Block(-5,4,-2,STAINED_CLAY:13)
Block(-5,4,-1,STAINED_CLAY:13)
Block(-5,4,0,STAINED_CLAY:13)
Block(-5,4,1,LOG:3)
Block(-5,4,2,WOOD:3)
Block(-5,5,-3,WOOD:3)
Block(-5,5,-2,LOG:3)
Block(-5,5,-1,STAINED_CLAY:13)
Block(-5,5,0,LOG:3)
Block(-5,5,1,WOOD:3)
Block(-5,6,-2,WOOD:3)
Block(-5,6,-1,WOOD:3)
Block(-5,6,0,WOOD:3)
Block(-5,7,-1,WOOD_STEP:3)
Block(-4,1,-4,WOOD:3)
Block(-4,1,-3,WOOD:3)
Block(-4,1,-2,WOOD:3)
RandomBlock(-4,1,-1,CHEST,../../nbt/VanillaLoot/simple_dungeon.nbt,50,CHEST,../../nbt/VanillaLoot/stronghold_crossing.nbt,100)
Block(-4,1,0,WOOD:3)
Block(-4,1,1,WOOD:3)
Block(-4,1,2,WOOD:3)
Block(-4,2,-3,STAINED_CLAY:13)
Entity(-4,2,-1,Zombie,1,Husk.txt)
Block(-4,2,1,STAINED_CLAY:13)
Block(-4,3,-3,STAINED_CLAY:13)
Block(-4,3,1,STAINED_CLAY:13)
Block(-4,4,-4,WOOD:3)
Block(-4,4,-3,SKULL:1)
Block(-4,4,1,BOOKSHELF)
Block(-4,4,2,WOOD:3)
Block(-4,5,-4,WOOD_STEP:3)
Block(-4,5,-3,WOOD:3)
Block(-4,5,1,WOOD:3)
Block(-4,5,2,WOOD_STEP:3)
Block(-4,6,-3,WOOD_STEP:3)
Block(-4,6,-2,WOOD:3)
Block(-4,6,-1,WOOD:3)
Block(-4,6,0,WOOD:3)
Block(-4,6,1,WOOD_STEP:3)
Block(-4,7,-2,WOOD_STEP:3)
Block(-4,7,-1,WOOD_STEP:3)
Block(-4,7,0,WOOD_STEP:3)
Block(-3,1,-4,WOOD:3)
Block(-3,1,-3,WOOD:3)
Block(-3,1,-2,WOOD:3)
Block(-3,1,-1,WOOD:3)
Block(-3,1,0,WOOD:3)
Block(-3,1,1,WOOD:3)
Block(-3,1,2,WOOD:3)
Block(-3,2,-3,STAINED_CLAY:13)
Block(-3,2,1,STAINED_CLAY:13)
Block(-3,3,-3,STAINED_CLAY:13)
Block(-3,3,1,STAINED_CLAY:13)
Block(-3,4,-4,WOOD:3)
Block(-3,4,-3,BOOKSHELF)
Block(-3,4,1,BOOKSHELF)
Block(-3,4,2,WOOD:3)
Block(-3,5,-3,WOOD:3)
Block(-3,5,1,WOOD:3)
Block(-3,6,-2,WOOD:3)
Block(-3,6,-1,WOOD:3)
Block(-3,6,0,WOOD:3)
Block(-2,1,-4,WOOD:3)
Block(-2,1,-3,WOOD:3)
Block(-2,1,-2,WOOD:3)
Block(-2,1,-1,WOOD:3)
Block(-2,1,0,WOOD:3)
Block(-2,1,1,WOOD:3)
Block(-2,1,2,WOOD:3)
Block(-2,2,-3,STAINED_CLAY:13)
Block(-2,2,1,STAINED_CLAY:13)
Block(-2,3,-3,STAINED_CLAY:13)
Block(-2,3,1,STAINED_CLAY:13)
Block(-2,4,-4,WOOD:3)
Block(-2,4,-3,BOOKSHELF)
Block(-2,4,1,BOOKSHELF)
Block(-2,4,2,WOOD:3)
Block(-2,5,-4,WOOD_STEP:3)
Block(-2,5,-3,WOOD:3)
Block(-2,5,1,WOOD:3)
Block(-2,5,2,WOOD_STEP:3)
Block(-2,6,-3,WOOD_STEP:3)
Block(-2,6,-2,WOOD:3)
Block(-2,6,-1,WOOD:3)
Block(-2,6,0,WOOD:3)
Block(-2,6,1,WOOD_STEP:3)
Block(-2,7,-2,WOOD_STEP:3)
Block(-2,7,-1,WOOD_STEP:3)
Block(-2,7,0,WOOD_STEP:3)
Block(-1,-13,-5,LOG:3)
Block(-1,-13,3,LOG:3)
Block(-1,-12,-5,LOG:3)
Block(-1,-12,3,LOG:3)
Block(-1,-11,-5,LOG:3)
Block(-1,-11,3,LOG:3)
Block(-1,-10,-5,LOG:3)
Block(-1,-10,3,LOG:3)
Block(-1,-9,-5,LOG:3)
Block(-1,-9,3,LOG:3)
Block(-1,-8,-5,LOG:3)
Block(-1,-8,3,LOG:3)
Block(-1,-7,-5,LOG:3)
Block(-1,-7,3,LOG:3)
Block(-1,-6,-5,LOG:3)
Block(-1,-6,3,LOG:3)
Block(-1,-5,-5,LOG:3)
Block(-1,-5,3,LOG:3)
Block(-1,-4,-5,LOG:3)
Block(-1,-4,3,LOG:3)
Block(-1,-3,-5,LOG:3)
Block(-1,-3,3,LOG:3)
Block(-1,-2,-5,LOG:3)
Block(-1,-2,3,LOG:3)
Block(-1,-1,-5,LOG:3)
Block(-1,-1,3,LOG:3)
Block(-1,0,-5,LOG:3)
Block(-1,0,3,LOG:3)
Block(-1,1,-5,LOG:3)
Block(-1,1,-4,WOOD:3)
Block(-1,1,-3,WOOD:3)
Block(-1,1,-2,WOOD:3)
Block(-1,1,-1,WOOD:3)
Block(-1,1,0,WOOD:3)
Block(-1,1,1,WOOD:3)
Block(-1,1,2,WOOD:3)
Block(-1,1,3,LOG:3)
Block(-1,2,-5,LOG:3)
Block(-1,2,-3,LOG:3)
Block(-1,2,-2,STAINED_CLAY:13)
Block(-1,2,0,STAINED_CLAY:13)
Block(-1,2,1,LOG:3)
Block(-1,2,3,LOG:3)
Block(-1,3,-3,LOG:3)
Block(-1,3,-2,STAINED_CLAY:13)
Block(-1,3,0,STAINED_CLAY:13)
Block(-1,3,1,LOG:3)
Block(-1,4,-4,WOOD:3)
Block(-1,4,-3,LOG:3)
Block(-1,4,-2,STAINED_CLAY:13)
Block(-1,4,-1,STAINED_CLAY:13)
Block(-1,4,0,STAINED_CLAY:13)
Block(-1,4,1,LOG:3)
Block(-1,4,2,WOOD:3)
Block(-1,5,-3,WOOD:3)
Block(-1,5,-2,LOG:3)
Block(-1,5,-1,STAINED_CLAY:13)
Block(-1,5,0,LOG:3)
Block(-1,5,1,WOOD:3)
Block(-1,6,-2,WOOD:3)
Block(-1,6,-1,WOOD:3)
Block(-1,6,0,WOOD:3)
Block(-1,7,-1,WOOD_STEP:3)
Block(0,1,-4,WOOD:3)
Block(0,1,-3,WOOD:3)
Block(0,1,-2,WOOD:3)
Block(0,1,-1,WOOD:3)
Block(0,1,0,WOOD:3)
Block(0,1,1,WOOD:3)
Block(0,1,2,WOOD:3)
Block(0,4,-4,WOOD:3)
Block(0,4,-3,FENCE)
Block(0,4,-2,FENCE)
Block(0,4,-1,FENCE)
Block(0,4,0,FENCE)
Block(0,4,1,FENCE)
Block(0,4,2,WOOD:3)
Block(0,5,-4,WOOD_STEP:3)
Block(0,5,-3,WOOD:3)
Block(0,5,-2,FENCE)
Block(0,5,-1,FENCE)
Block(0,5,0,FENCE)
Block(0,5,1,WOOD:3)
Block(0,5,2,WOOD_STEP:3)
Block(0,6,-3,WOOD_STEP:3)
Block(0,6,-2,WOOD:3)
Block(0,6,-1,WOOD:3)
Block(0,6,0,WOOD:3)
Block(0,6,1,WOOD_STEP:3)
Block(0,7,-1,WOOD_DOUBLE_STEP:3)

#######################################################################
# +-----------------------------------------------------------------+ #
# |                            BO3 checks                           | #
# +-----------------------------------------------------------------+ #
#######################################################################

# Require a condition at a certain location in order for the BO3 to be spawned.
# BlockCheck(x,y,z,BlockName[,BlockName[,...]]) - one of the blocks must be at the location
# BlockCheckNot(x,y,z,BlockName[,BlockName[,...]]) - all the blocks must not be at the location
# LightCheck(x,y,z,minLightLevel,maxLightLevel) - light must be between min and max (inclusive)

# You can use "Solid" as a BlockName for matching all solid blocks or "All" to match all blocks that aren't air.

# Examples:
#   BlockCheck(0,-1,0,GRASS,DIRT,biomesoplenty:grass:0,biomesoplenty:grass:1,biomesoplenty:grass:2,biomesoplenty:grass:3,biomesoplenty:grass:4,biomesoplenty:grass:5,biomesoplenty:grass:6,biomesoplenty:grass:7,biomesoplenty:dirt:0,biomesoplenty:dirt:1,biomesoplenty:dirt:2,biomesoplenty:dirt:3,biomesoplenty:dirt:4,biomesoplenty:dirt:5,biomesoplenty:dirt:6,biomesoplenty:dirt:7,biomesoplenty:dirt:8,biomesoplenty:dirt:9,biomesoplenty:dirt:10,biomesoplenty:dried_sand:0,biomesoplenty:hard_ice:0,biomesoplenty:white_sand:0,biomesoplenty:white_sandstone:0,biomesoplenty:mud:0,biomesoplenty:ash_block:0)  Require grass or dirt just below the object
#   BlockCheck(0,-1,0,Solid)       Require any solid block just below the object
#   BlockCheck(0,-1,0,WOOL)        Require any type of wool just below the object
#   BlockCheck(0,-1,0,WOOL:0)      Require white wool just below the object
#   BlockCheckNot(0,0,0,WOOL:0)   Require that there is no white wool below the object
#   LightCheck(0,0,0,0,1)          Require almost complete darkness just below the object 

#######################################################################
# +-----------------------------------------------------------------+ #
# |                             Branches                            | #
# +-----------------------------------------------------------------+ #
#######################################################################

# Branches are objects that will spawn when this object spawns when it is used in
# the CustomStructure resource. Branches can also have branches, making complex
# structures possible. See the wiki for more details.

# Regular Branches spawn each branch with an independent chance of spawning.
# Branch(x,y,z,branchName,rotation,chance[,anotherBranchName,rotation,chance[,...]][IndividualChance])
# branchName - name of the object to spawn.
# rotation - NORTH, SOUTH, EAST or WEST.
# IndividualChance - The chance each branch has to spawn, assumed to be 100 when left blank

# Weighted Branches spawn branches with a dependent chance of spawning.
# WeightedBranch(x,y,z,branchName,rotation,chance[,anotherBranchName,rotation,chance[,...]][MaxChanceOutOf])
# MaxChanceOutOf - The chance all branches have to spawn out of, assumed to be 100 when left blank

WeightedBranch(0,0,8,VikingShip1,NORTH,33,VikingShip2,NORTH,33,VikingShip3,NORTH,34,100)