Wiki 9Minecraft Botany Pots Wiki
Botany Pots WikiDocumentation › Crafttweaker Support

Crafttweaker Support

CraftTweaker + Botany Pots

If you are using an older version of the game please refer to the archived versions of this page.

  • 1.15.x
  • 1.14.x

Crops

Crops can be modified using the crop manager. To do this you will need to import the following into your script.

import mods.botanypots.ZenCrop;
val crops = <recipetype:botanypots:crop>;

Creating Crops

To create a crop you use the create method from the manager. This method will return a ZenCrop value which you can use to do further changes.

// Simple crop entry
// crops.create(id, seedInput, renderBlock, growthTicks, soilCategory);
val goldCrop = crops.create("examplepack:gold", <item:minecraft:gold_nugget>, <blockstate:minecraft:gold_block>, 3000, "dirt");

// Crop with multiple render blocks and multiple soil categories.
// crops.create(id, seedInput, renderBlockArray, growthTicks, soilCategoryArray);
val ironCrop = crops.create("examplepack:iron", <item:minecraft:iron_nugget>, [<blockstate:minecraft:iron_block>, <blockstate:minecraft:iron_ore>], 3000, ["dirt", "nether"]);

This crop will have no drops. You need to add some for the crop to work properly. Information about this is in the next section.

Modifying Crops

To modify a crop you will need to get a ZenCrop value. This is provided when you create the crop but can also be retrieved using crops.getCrop("cropid");.

val wheat = crops.getCrop("botanypots:crops/wheat");

// Adds a soil category.
wheat.addCategory("soil_category_name");

// Removes a soil category.
wheat.removeCategory("dirt");

// Removes all soil categories.
wheat.clearCategories();

// Adding new drop entries.
// addDrop(item, chance);
wheat.addDrop(<item:minecraft:gold_nugget>, 1); // 100% drop rate
wheat.addDrop(<item:minecraft:gold_ingot>, 0.75); // 75% drop rate

// addDrop(item, chance, rolls);
wheat.addDrop(<item:minecraft:iron_nugget>, 1, 4); // 100% drop rate AND 4 attempts.

// addDrop(item, chance, minRolls, maxRolls);
wheat.addDrop(<item:minecraft:iron_ingot>, 0.75, 1, 5); // 75% drop rate AND 1 to 5 attempts.

// Removes all drops.
wheat.clearDrops();

// Removes a drop.
// removeDrop(ingredientToRemove);
wheat.removeDrop(<tag:forge:seeds>);

// Set the growth ticks of the crop.
wheat.setGrowthTicks(10000);

// Sets the seed item.
wheat.setSeed(<tag:forge:seeds/wheat>);

// Sets the display block.
wheat.setDisplay(<blockstate:minecraft:gold_block>);

// Sets the display to multiple blocks stacked.
wheat.setDisplay([<blockstate:minecraft:iron_block>, <blockstate:minecraft:iron_ore>]);

Soils

Soils can be modified using the soil manager. To do this you will need to import the following into your script.

import mods.botanypots.ZenSoil;
val soils = <recipetype:botanypots:soil>;

Creating Soils

To create a soil you use the create method from the manager. This method will return a ZenSoil value which you can use to do further changes.

// soils.create(id, input, renderBlock, growthModifier, category);
// Growth can be any value less than or equal to 1. Higher = faster, 0 = no change.
// category may also be a string array.
val stoneSoil = soils.create("examplepack:stone", <tag:forge:stone>, <blockstate:minecraft:stone>, 0.15, "stone");

Modifying Soils

To modify a crop you will need to get a ZenSoil value. This is provided when you create the soil but can also be retrieved using soils.getSoil("soilid");.

val dirt = soils.getSoil("botanypots:soils/dirt");

// Adds a category.
// addCategory(category);
dirt.addCategory("test");

// Removes a category.
// removeCategory(category);
dirt.removeCategory("dirt");

// Removes all categories.
// clearCategories();
dirt.clearCategories();

// Sets the input.
// setInput(input);
dirt.setInput(<tag:forge:stone>);

// Set display block.
// setDisplay(state);
dirt.setDisplay(<blockstate:minecraft:stone>);

// Set growth modifier.
// setGrowthModifier(modifier);
dirt.setGrowthModifier(0.20);

Fertilizers

Fertilizers can be modified using the fertilizer manager. To do this you will need to import the following into your script.

import mods.botanypots.ZenFertilizer;
val fertilizers = <recipetype:botanypots:fertilizer>;

Creating Fertilizers

To create a fertilizer you use the create method from the manager. This method will return a ZenFertilizer value which you can use to do further changes.

// fertilizers.create(id, input, ticks);
// fertilizers.create(id, input, minTicks, maxTicks);
val stickFertilizer = fertilizers.create("examplepack:test", <item:minecraft:stick>, 1000);

Modifying Fertilizers

To modify a fertilizer you will need to get a ZenFertilizer value. This is provided when you create the fertilizer but can also be retrieved using fertilizers.getSoil("fertilizerId");.

val bonemeal = soils.getSoil("botanypots:fertilizers/bone_meal");

// Set the input of the fertilizer.
// setInput(input);
bonemeal.setInput(<item:minecraft:stick>);

// Sets the growth tick amount.
// setGrowthAmount(ticks);
// setGrowthAmount(min, max);

bonemal.setGrowthAmoun(1200, 1500);