- Overview
- Changelog
- Crops
- Contents
- Integrations
Bottle Gourds
Bottle gourds are climbing plants that can be found in small patches in savanna biomes. They grow and spread much like vines and each blocks can bear their own fruits.


Savanna gourd patches
Bottle gourds and gourd bottles can sometimes be traded for emeralds with savanna or desert villagers.
A desert farmer villager with a listing for water-filled bottles.
Bottle Gourd Seeds and Crop
Bottle gourd seeds can be obtained via crafting recipe below.
They can be planted on any dirt. They don't drop their seeds when the plant block is broken.
Bottle gourd seeds can also be collected from rotten bottle gourds.
From time to time, the main plant will try to attach vines to its surrounding available blocks. These vines would also try to spread copy of themselves vertically and horizontally. The vines cannot stray too far from the main plant and they'll die out if they do.
The vines and main plant have 4 stages of growth. The final stage is indicated by the prescence of a white flower. After some time in bloom, they'll try to place their fruit in place. Destroying the vine itself in the process.
The vines has 6 sides to fill inside a block's space. If it has the bottom side and is supported by a non-full block, like trellises, and the block below the supporting block is empty, it will try to bear a hanging fruit instead. Replacing the empty space with the fruit.
Gourd Bottles
Gourd bottles can stack up to 16 and can be used to hold a configurable amount of fluid. By default, the amount of fluid each bottle can hold is 2000 mB or 2 standard vanilla buckets.
Gourd bottles are placeable. Retaining their fluid contents when placed. They can also be emptied via crafting.
Gourd bottles can be used like so.
- When used on a fluid source, it will attempt to take the fluid and fill the bottle with it.
- If it fails to fill the bottle, The player would attempt to drink the fluid inside the bottle.
- When used on an empty space, it will attempt to place the fluid inside it.
- Again. If it fails to place the fluid, The player would attempt to drink the fluid inside the bottle.
- When used on a valid surface while sneaking, it will attempt to place the bottle itself.
The contents of gourd bottles are shown by their item tooltips and a graphical tooltip visible when the player is sneaking while looking at their placed blocks.
Gourd bottle blocks outputs comparator signal. Emitting the full range of redstone signal from 0 to 15.
Obtaining
Gourd bottles are mainly obtained from smoking bottle gourds as shown below.
Desert villages would sometimes have drinking wells inside them, featuring the bottles.
A drinking well found in a desert village
Savanna and desert village house chests sometimes contain some number of bottles with a random amount of water inside.
By default, naturally-grown bottle gourd fruits may sometimes rot and leave behind a gourd bottle filled with a random mixture.
Filling
Gourd bottles can be filled in various ways. Fluid-containing items could be used on the bottle without sneaking to attempt transfer from them into the bottle. By default, the amount of transfer is set to one bucket or 1000 mB.
Common ways to fill fluid containers from other mods can also be used to fill gourd bottles.
As an item, gourd bottles have the IFluidHandlerItem capability.
Gourd bottle blocks also exposes the IFluidHandler capability but only from their top and bottom sides.
Vanilla milk buckets, honey bottles, and potions can also be used to fill gourd bottle blocks. Using them on a gourd bottle would empty their respective contents into the bottles.
Some items may need further configuration via recipes to work as they may not be 'coded' in the common way of fluid-handling items. Some of these examples are vanilla milk buckets, honey bottles, and potions.
If an IFluidHandlerItem item is configured to have a recicropal:filling recipe, it will prioritize the recipe first.
To allow other items to be used to fill the bottle, filling recipes could be configured. The structure of a recicropal:filling recipe can be described as below.
- type : recicropal:filling
- conditions Predicates to achieve conditionally-loaded data.
- ingredient A vanilla-esque item ingredient to be emptied.
- fluid A fluid definition to fill the bottle with.
- Either a tag or fluid but not both.
- tag If this is set, it will find the first fluid registered that has the tag specified.
- fluid A fluid ID.
- amount The amount of fluid to be filled. Defaults to zero if not specified.
- nbt The NBT to attach to the fluid filled structured as-is. Optional.
- Either a tag or fluid but not both.
- result A serialized ItemStack representing the item returned after its contents are emptied e.g. glass bottles.
- id The item's ID. Must be specified in order to work.
- Count The number of items. Must be specified in order to work.
- nbt The item's NBT. Optional.
- process A string value for a special process's ID. Currently, only recicropal:potion exists and should only be used for potion items.If this property exists, the recipe will ignore all other properties.
Milk, Honey, and Potion Fluid
They are what milk buckets, honey bottles, and potions contain respectively. They cannot be placed in the world.
Potion fluids contains all of the potion item's NBT that is considered necessary, including potion ID, effects, and color.
To appropriately handle other mod's potion fluids, fluid conversion might be needed. Check out current integrations to see the mods that have built-in support.
Fluid Conversion
For integration purposes, fluids inserted into the bottle can be converted into other fluids. This allows certain fluids to be handled properly when interacted with the bottle.
By default, every milk under the tag #forge:milk would be converted into default milk. Note that this may cause complications when there are other kinds of milk that the packdev may want to preserve.
When there's already any fluid inside the bottle and filling is attempted, fluid mixing would be attempted.
Fluid conversion recipes' structure can be described as following.
- type : recicropal:fluid_conversion
- conditions Predicates to achieve conditionally-loaded data.
- from A fluid ingredient to convert.
- Either a tag or fluid but not both.
- tag A fluid tag to match.
- fluid A fluid ID.
- Either a tag or fluid but not both.
- to An ID specifying the fluid to convert the input fluid into.
- function A function ID to use. If not specified, it would only swap the fluid types. Currently hardcoded and only available for certain mods for built-in integration. Read more here.
- ingress A flag that specifies the direction of flow. Currently does nothing.
Pouring out Fluids
Similarly, there are various mechanisms that allow the fluid inside the bottle to be extracted. Common ways to empty fluid containers from other mods can be used to extract fluid from gourd bottles. Fluid container items can also take out the stored fluid when used on the bottle while sneaking.
By default, glass bottles can be used to extract water, potion, and honey from gourd bottle blocks. Vanilla buckets can also be used to extract milk from a gourd bottle.
To allow other items to be used to extract fluid from the bottle, pouring recipes could be configured. The structure of a recicropal:pouring recipe can be described as below.
- type : recicropal:pouring
- conditions Predicates to achieve conditionally-loaded data.
- ingredient A vanilla-esque item ingredient to be filled.
- fluid A fluid definition to fill the item with.
- Either a tag or fluid but not both.
- tag If this is set, it will match for fluids with the tag specified.
- fluid A specific fluid ID to match.
- amount The amount of fluid to be poured out. Defaults to the drinkingMaxAmount config if not specified.
- nbt An optional NBT structured as-is. If this is specified, the recipe would sensitively match for the NBT. If not, the recipe woould ignore the fluid's NBTs.
- Either a tag or fluid but not both.
- result A serialized ItemStack representing the item returned after it has been filled with the fluid e.g. honey bottles.
- id The item's ID. Must be specified in order to work.
- Count The number of items. Must be specified in order to work.
- nbt The item's NBT. Optional.
- process A string value for a special process's ID. Currently, only recicropal:potion exists and should only be used for potion items.If this property exists, the recipe will ignore all other properties.
Rotting
Naturally-grown bottle gourd fruits may rot from time to time. Turning into gourd bottles that drop seeds when broken. These bottles may contain mixtures with interesting compositions of potion effects.
Glamorous Gourd
Bottle gourd fruits can be crafted into glamorous gourds as shown below.
Glamorous gourds are currently used only for brewing Potion of Revitalization which gives health boost, regeneration, and instant healing.