Skip to content

Custom Tree Types ​

Add your own tree shapes by dropping JSON files into the config folder. No coding needed. Every resource type grows as every tree type, so one new tree type adds a sapling and leaves block for each resource type.

The built-in tree types are listed on Resources Types.

Client & Server must match

This config registers actual blocks and items, so the client and server must use the exact same config. If they differ, the client will fail to connect (registry mismatch) and textures/models won't load correctly. Distribute the same config/resourcestrees files to every player and the server.

Generator ​

Pick a built-in tree to copy its vanilla blocks, then name your tree. The file list under the JSON shows the textures you need to draw.

Vanilla blocks
Preview with the built-in Oak textures in place of yours
Save asconfig/resourcestrees/tree_type/maple.json
{
  "name": "maple",
  "treeGrowerName": "oak",
  "saplingTexture": "resourcestrees:block/maple_sapling",
  "leavesTexture": "resourcestrees:block/maple_leaves",
  "originalSapling": "minecraft:oak_sapling",
  "originalLeaves": "minecraft:oak_leaves",
  "log": "minecraft:oak_log"
}

Put the same file on the server and every client. Then add these grayscale textures to a resource pack:

  • assets/resourcestrees/textures/block/maple_sapling.png
  • assets/resourcestrees/textures/block/maple_sapling_layer1.png
  • assets/resourcestrees/textures/block/maple_leaves.png

File location ​

Place JSON files in:

config/resourcestrees/tree_type/<name>.json

JSON Format ​

json
{
  "name": "oak",
  "treeGrowerName": "oak",
  "saplingTexture": "resourcestrees:block/oak_sapling",
  "leavesTexture": "resourcestrees:block/oak_leaves",
  "originalSapling": "minecraft:oak_sapling",
  "originalLeaves": "minecraft:oak_leaves",
  "log": "minecraft:oak_log",
  "particle": 0.01,
  "ambient_leaves_block_sound_player": {
    "ambient_sound": "minecraft:block.poplar_leaves.ambient",
    "satisfying_blocks": "minecraft:required_for_poplar_leaf_ambience"
  }
}

Fields ​

FieldRequiredDefaultDescription
name✅—Unique identifier (e.g. "oak", "birch")
treeGrowerName✅—Name of the grower type used to grow this tree (e.g. "oak", "spruce", "birch", "jungle", "acacia", "dark_oak", "cherry", "pale_oak")
saplingTexture✅—Resource location of the model/texture to use for the sapling block/item
leavesTexture✅—Resource location of the model/texture to use for the leaves block/item
originalSapling✅—Registry name of the vanilla sapling to copy block properties from
originalLeaves✅—Registry name of the vanilla leaves to copy block properties from
log✅—Registry name of the log block used as the trunk and for Tree Simulator recipe generation
particle❌0.01Per-tick chance (0.0–1.0) for the leaves block to spawn falling tinted leaf particles. Set to 0 to disable.
ambient_leaves_block_sound_player❌no soundControls the ambient rustling sound emitted by the leaves block. Omit for silent leaves. See below.

Ambient leaves sound ​

The optional ambient_leaves_block_sound_player object uses Minecraft's vanilla AmbientLeavesBlockSoundPlayer format. In 26.3 the only vanilla leaves ambience is minecraft:block.poplar_leaves.ambient, which poplar leaves play near the blocks in minecraft:required_for_poplar_leaf_ambience. All of its fields are optional:

FieldDefaultDescription
ambient_soundnoneSound event id played as the ambient rustle. If omitted, no sound plays.
chance300Average number of ticks between sound attempts (higher = rarer).
satisfying_blocksnoneA block tag id, written without #. The sound only plays when enough of these blocks are next to the leaves.
nearby_satisfying_blocks_required1How many satisfying_blocks must be next to it for the sound to play.
nearby_same_leaves_required3How many of the same leaves block must be next to it for the sound to play.

"Next to" means the four blocks around it on the same level.

WARNING

Without satisfying_blocks, set nearby_satisfying_blocks_required to 0. Otherwise the default of 1 can never be met and the sound never plays.

Textures ​

A new tree type needs its own textures, in a resource pack. The paths below match the ids in the example above: saplingTexture and leavesTexture point at them, so use whatever ids you set there.

Leaves texture ​

assets/resourcestrees/textures/block/<tree_type_name>_leaves.png

The leaves texture needs to be grayscale (black & white) because it is tinted with the resource type's colour.

Sapling texture ​

A sapling needs two textures:

assets/resourcestrees/textures/block/<tree_type_name>_sapling.png
assets/resourcestrees/textures/block/<tree_type_name>_sapling_layer1.png

The first texture is the stem of the sapling and is drawn as is.

The _layer1 texture is the leafy part of the sapling. It needs to be grayscale (black & white) because it is tinted with the resource type's colour.

For example, these are the built-in oak textures, and how they come out for a few resource types:

Oak sapling stemOak sapling leaves layerOak leaves ➜

All Rights Reserved.