Skip to content

Tree Packs: Species

Max Hyper edited this page Nov 27, 2023 · 16 revisions

What is it

Properties

The following properties MUST be included:

  • "family": The family of trees this species belongs to. It will define the trunk block and other global behaviors. It must first be defined in the Families folder.

The following properties can be included:

  • General
    • "type": Allows for custom behavior beyond these properties. The options are {nether_fungus, swamp_oak, palm}. More can be added by addons. (Default is none)
    • "always_show_on_waila": On true, will always show species under the block indicator (when waila, hwyla or similar is installed). On false, it will never show up. On null it will only show up when the species is not the family's common species. (Default: null)
    • "transformable": Whether transformation potions can be used on this species (Default: true)
    • "leaves_properties": What leaves properties will be used. They must first be defined in the Leaves Properties folder. (By default it will be the family's common leaves)
    • "mega_species": The species' mega variant, if it has one. (Default: none)
    • "can_bone_meal_tree": Whether bonemeal can be used to grow the tree. (Default: true)
    • "acceptable_soils": A list of the soil categories this tree can be planted on. (Default: ["dirt_like"])
    • "features": An array of the generation features of this species.
    • "does_rot": Whether the tree branches decay when the conditions aren't feasible. (Default: true)
  • Growth properties
    • "tapering": How much the tree thickens per block from the branches to the base.
    • "up_probability": When calculating the probability maps, the chance for a branch to prefer to go upwards.
    • "signal_energy": The energy that each growth signal starts with. It defines the max size of the tree from trunk to tips.
    • "soil_longevity": The number of pulses in average that it takes to lower the soil's fertility.
    • "growth_rate": A multiplier of how fast the tree grows. (Default: 1.0)
    • "lowest_branch_height": The lowest block height branches will start growing away from the trunk.
    • "max_branch_radius": The maximum radius of any branch of this species. Must be equal or lower to the Family's max radius. (Default: 8)
    • "growth_logic_kit": The custom logic kit used to shape the tree as it grows. By default options are {null, dark_oak, conifer, jungle, nether_fungus, palm}. More can be added by addons. (Default: null)
    • "environment_factors": The environmental factor multipliers of the species.
    • "acceptable_growth_blocks": An array of blocks that the tree can only grow on. When left empty it will not have this requirement. (Default: none)
    • "seasonal_growth_offset": [When a season mod is installed] The offset from summer that the species is on season for growth. Affects growth speed. (Min: 0.0, Max: 4.0, Default: 0.0)
  • Seed and saplings
    • "seed": The seed item, if a custom one is being used. (By default its generated on its own)
    • "generate_seed": Whether a seed should be created for this species. (Default: true)
    • "generate_sapling": Whether a sapling block should be created for this species. (Default: true)
    • "sapling_name": The name of the generated sapling block. (By default its [species]_sapling)
    • "seed_name": The name of the generated sapling block. (By default its [species]_seed)
    • "sapling_sound": The sound type of the generated sapling block. (Default: GRASS)
    • "sapling_shape": The hitbox and collision box for the genrated sapling block. By default options are {"empty", "block", "sapling", "slim_sapling", "flat_mushroom", "round_mushroom", "round_mushroom_rim"}. More can be added by addons (Default: sapling)
    • "seed_composter_chance": The chance for the composter level to raise when the seed is composted. (Default: 0.3)
    • "sapling_grows_naturally": Whether the sapling can grow on its own without using bonemeal. (Default: true)
    • "primitive_sapling": A sapling recipe to obtain the seed from the sapling or vice-versa.
    • "primitive_saplings": An array of sapling recipes to obtain the seed from the sapling or vice-versa.
    • "seasonal_seed_drop_offset": [When a season mod is installed] The offset from summer that the species is on season for voluntarily dropping seeds. Affects expansion of forests. (Min: 0.0, Max: 4.0, Default: 0.0)
  • Fruits and pods
    • "fruits": A list of all the fruits assigned to this species. The fruit feature must still be added for fruit to generate. (Default: none)
    • "pods": A list of all the pods assigned to this species. The pod feature must still be added for pods to generate. (Default: none)
    • "seasonal_fruiting_offset": [When a season mod is installed] The offset from summer that the species is on season for generating fruit. Affects fruit/pod production. (Min: 0.0, Max: 4.0, Default: 0.0)
    • "inherit_fruiting_offset_to_fruits": If set to true, the "seasonal_fruiting_offset" will be inherited to the fruits' "season_offset". (Default: false)
    • "inherit_fruiting_offset_to_pods": If set to true, the "seasonal_fruiting_offset" will be inherited to the pods' "season_offset". (Default: false)
  • Generation
    • "world_gen_leaf_map_height": The maximum height for which leaves will be placed during world gen. Must be increased for huge trees. (Default: 32)
    • "world_gen_acceptable_soils": A list of soil categories that will be checked for world gen instead of "acceptable_soils". (Default: none)
    • "common_override": A list of biomes for which this species will override the family's common species configuration. All trees planted in this biome will automatically become this species instead. (Default: none)
    • "perfect_biomes": A list of biomes for which suitability will always be 1.0 (the max value), despite the environmental factors. (Default: none)

Gen Features

Generation features are additional things added to trees either during world generation or when growing naturally.

Features can be further configured by modifying their properties. Each feature has its own configuration, and some properties must be included for it to work properly. If no property needs to be modified the feature with its default configuration can be added by including the name directly instead of using an object.

Including default properties without configuring them
    "features" : [
        "bottom_flare",
        "mound",
        "roots"
    ]
Using a configured feature
    "features" : [
        {
            "name": "rot_soil",
            "properties": {
                "rotten_soil": "podzol"
            }
        },
        "mushroom_rot",
        "bee_nest"
    ]

By default, Dynamic Trees includes a vast array of these generation features that can be used by Tree Packs without any other additional mods. However, addons can easily add new features for their trees and in turn be available to use in Tree Packs as well.

  • "fruit": This feature generates a specified fruit under the tree's leaves. The "fruit" property is required.
    properties:
    • "fruit": The fruit that will generated. It must first be defined in the fruits folder.
    • "quantity": The amount of attempts during growth on every tree pulse. (Default: 4)
    • "fruiting_radius": The minimum radius for the base of the trunk before fruit start to grow. (Default: 8)
    • "place_chance": The chance on every attempt that a fruit block will be placed. (Default 1.0)
  • "pod": This feature generates a specified pod on the tree's branches. The "pod" property is required.
    properties:
    • "pod": The pod that will generated. It must first be defined in the pods folder.
    • "place_chance": The chance on every attempt that a pod block will be placed. (Default: 0.125)
  • "vines": Generates vines blocks hanging from the leaves, like in jungle trees.
    properties:
    • "vine_type": The type of vine. Can be {side, ceiling, floor}. (Default: side)
    • "block": The vine block used. (Default: minecraft:vines)
    • "tip_block": When using ceiling or floor type, the block at the tips. (Default: none)
    • "quantity": The amount of vines that will be attempted to be placed. (Default 4)
    • "max_length": The maximum length of the vine column. (Default: 8)
    • "vertical_spread": The variation in angle (degrees) for the ray used to place the vines. (Default: 60)
    • "ray_distance": The max distance from the ray used to place the vines. (Default: 5)
    • "fruiting_radius": The minimum radius for the base of the trunk before fruit start to grow. (Default: -1, meaning no vines generate during growth)
  • "bee_nest": This feature adds a chance to generate bee nests under the branches of the tree.
    properties:
    • "nest_block": The block that gets generated. (Default: minecraft:bee_nest)
    • "max_height": The maximum height that a nest block will be placed on. (Default: 32)
    • "max_count": The maximum ammount of nests. (Default: 1)
  • "shroomlight": This feature generates a block under branches just like shroomlight in nether fungi trees.
    properties:
    • "shroomlight_block": The block that gets generated. (Default: minecraft:shroomlight)
    • "max_height": The maximum height that a block will be placed on. (Default: 32)
    • "place_chance": The chance for a block to be placed on each attempt. (Default: 0.4)
    • "max_count": The maximum ammount of blocks. (Default: 4)
  • "conifer_topper": Generates a pointy tip on conifer trees. If this feature is used, the family containing this species must have the conifer_topper property set to TRUE.
    properties:
    • "leaves_properties": The leaves placed. If not set the species' leaves will be used instead. They must first be defined in the leaves properties folder. (Default: none)
  • "mound": Used to create a 5x4x5 rounded mound that is one block higher than the ground surface. This is meant to replicate the appearance of a root hill and gives generated surface roots a better appearance.
    properties:
    • "mound_cutoff_radius": Trees with a smaller radius than this value will generate a smaller 3x3 mound instead. (Min: 0, Max: 8, Default: 5)
  • "roots": Generates big roots around the base of the trunk, like the dark oak tree. If this feature is used, the family containing this species must have the generate_surface_root property set to TRUE.
    properties:
    • "min_trunk_radius": The minimum radius for the tree to generate roots. (Default: 13)
    • "level_limit": The length of the roots in blocks. (Default: 2)
    • "scale_factor": The size of the roots is defined by dividing the radius of the trunk by this factor. (Default: 24)
  • "clear_volume": Erases a 3x3 volume of blocks that could potentially get in the way during world generation.
    properties:
    • "height": The height of the volume from the base of the tree that blocks will be cleared from. (Default: 8)
  • "bottom_flare": Put a cute little flare on the bottom of trees like dark oak.
    properties:
    • "min_radius": The minimum radius of the trunk for it to flare. (Default: 6)
  • "undergrowth": Generates non-dynamic bushes around the base, used in jungle trees.

  • "podzol": Slowly generates podzol under the tree after growth.

  • "bush": Generates a bush (using non-dynamic blocks) instead of a tree. This feature is deprecated and it is recommended to create a bush species instead.
    properties:
    • "biome_predicate": A biome selector for the biomes where the feature will be generated. (Default is any biome)
    • "log":
    • "leaves":
    • "secondary_leaves":
    • "secondary_leaves_chance":
  • "huge_mushroom": Generates a huge mushroom instead of a tree.
    properties:
    • "mushroom": The block used for the mushroom cap. (Default: minecraft:red_mushroom_block)
    • "stem": The block used for the mushroom stem. (Default: minecraft:mushroom_stem)
  • "huge_mushrooms": Generates multiple huge mushrooms instead of a tree.
    properties:
    • "mushroom": The block used for the mushroom cap. (Default: minecraft:red_mushroom_block)
    • "stem": The block used for the mushroom stem. (Default: minecraft:mushroom_stem)
    • "max_mushrooms": The maximum amount of mushrooms placed. (Default: 2)
    • "max_attempts": The maximum amount of attempts to place a mushroom. (Default: 4)
  • "mushroom_rot": Places a mushroom on the ground after a tree roots away.
    properties:
    • "mushroom": A mushroom placed after rot. (Default: minecraft:brown_mushroom)
    • "alternate_mushroom": A secondary mushroom placed after rot. (Default: minecraft:red_mushroom)
    • "alternate_mushroom_chance": Chance that the mushroom placed will be the secondary one. (Default: 0.25)
  • "rot_soil": Replaces the ground block after a tree roots away.
    properties:
    • "rotten_soil": The block placed after rot. (Default: minecraft:dirt)
  • "biome_predicate": The biome predicate allows to configure a feature to only generate in certain biomes. The "gen_feature" property is required.
    properties:
    • "gen_feature": The generation feature to apply the predicate to.
    • "biome_predicate": A biome selector for the biomes where the feature will be generated. (Default is any biome)
    • "only_world_gen": Whether the feature should only be applied in world gen. (default: false)
  • "random_predicate": The random predicate allows to configure a feature to only generate sometimes. The "gen_feature" property is required.
    properties:
    • "gen_feature": The generation feature to apply the predicate to.
    • "place_chance": The probability for the feature to generate. (Default: 0.5)
    • "only_world_gen": Whether the feature should only be applied in world gen. (default: false)
  • "alt_leaves": Makes a percentage of the tree's leaves change into another type of leaves. Either "alt_leaves" or "alt_leaves_block" is required.
    properties:
    • "alt_leaves": The leaves properties that will be used. They must first be defined in the leaves properties folder.
    • "alt_leaves_block": Alternatively, instead of using leaves properties a simple block can be used.
    • "place_chance": The chance on every attempt that random leaf block will be swapped for the alt leaves. (Default: 0.5)
    • "quantity": The amount of leaves that will be attempted to be swapped on every pulse. (Default: 5)
  • "root_system": Generates an underground pillar of blocks after the tree is placed during world generation, like with azalea trees.
    properties:
    • "max_root_column_height":
    • "root_radius":
    • "root_replaceable_tag":
    • "root_replacement_attempts":
    • "root_block":
    • "hanging_root_radius":
    • "hanging_root_vertical_span":
    • "hanging_root_replacement_attempts":
    • "hanging_root_block":

Sapling Recipes

//to-do

Environment Factors

//to-do

Loot Tables

Drops from the species' leaves when felled must be defined through loot tables. When working on an addon the runData task can be setup to generate them automatically, otherwise when working on a treepack they must be defined manually.

The following properties are only useful for generating Loot Tables through the runData task:

  • "drop_seeds": Whether the species' seeds are dropped from the tree when chopped down. (Default: true)