Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Custom Potions

Custom Potions

Allows adding custom potions and potion recipes through datapacks

1,303
18
Magic
Utility

Compatibility

Minecraft: Java Edition

1.21.x
1.20.6

Platforms

Fabric
Quilt

Supported environments

Server-side

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source

Creators

AshyBoxy
AshyBoxy Member

Details

Licensed MIT
Published last year
Updated 5 months ago
DescriptionGalleryChangelogVersions

Custom Potions

Provides a server side only way to add custom potions using datapacks.

When installed on the client, it provides integration with REI and EMI. (Only up to 1.21.1. If you experience issues with it, you can disable it starting with 2.1.2+1.21.1 in config/custompotions.json)

Adding a potion

In a datapack, make a data/id/custom_potions/id.json file for your potion.

The available parameters are "fallback" for the fallback name of the potion, if translations are unvailable (Potion of {fallback}, Arrow of {fallback}, Splash {fallback}, Lingering {fallback}), an array of effects following the vanilla format, and an optional color using the same format as vanilla.

For example:

{
    "fallback": "Bad Luck",
    "effects": [
        {
            "id": "minecraft:unluck",
            "duration": 6000,
            "amplifier": 1
        }
    ],
    "color": 5841183
}

Adding a potion recipe

In your datapack, make a data/id/potion_recipes/id.json file for your recipe. The available parameters are "reagent", which takes in an item id, and is the ingredient used in the top of the brewing stand to make the potion. There are also "base" and "result", which both use the same format, and define the input and output potions used in the recipe. They have the parameters "type", which takes in either "custompotions:vanilla" for vanilla (or modded) potions, and "custompotions:custom" for potions added by datapack using this mod.

For example:

{
    "reagent": "minecraft:poisonous_potato",
    "base": {
        "type": "custompotions:vanilla",
        "potion": "minecraft:awkward"
    },
    "result": {
        "type": "custompotions:custom",
        "potion": "potionstuffs:bad_luck"
    }
}
{
    "reagent": "minecraft:nautilus_shell",
    "base": {
        "type": "custompotions:vanilla",
        "potion": "minecraft:awkward"
    },
    "result": {
        "type": "custompotions:vanilla",
        "potion": "minecraft:luck"
    }
}

Translating

The translation key follows the format of custompotion.namespace.id.type. For example, custompotion.mypotions.bad_luck.normal, custompotion.mypotions.bad_luck.splash, custompotion.mypotions.bad_luck.lingering, and custompotion.mypotions.bad_luck.arrow.

You can use these in a language json file like so:

{
    "custompotion.mypotions.bad_luck.normal": "Unlucky Potion",
    "custompotion.mypotions.bad_luck.splash": "Throwable Unlucky Potion",
    "custompotion.mypotions.bad_luck.lingering": "Lingering Unlucky Potion",
    "custompotion.mypotions.bad_luck.arrow": "Unlucky Arrow"
}

Modrinth is open source.

main@396f737

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.