Consumables
Consumables are items that are used up when activated, providing effects such as health restoration, stat buffs, or transformations. Hytale has two main consumable categories: Food and Potions.
Asset Location
Section titled “Asset Location”Food Definitions: Assets/Server/Item/Items/Food/
Potion Definitions: Assets/Server/Item/Items/Potion/
Client Models: Assets/Common/Items/Consumables/
Consumable Categories
Section titled “Consumable Categories”Food Items (31 files)
Section titled “Food Items (31 files)”| Category | Description | Examples |
|---|---|---|
| Raw Meat | Uncooked animal products | Beef, Chicken, Pork, Wildmeat |
| Fish | Aquatic food items | Fish Raw (5 quality tiers) |
| Cooked Food | Prepared dishes | Grilled Fish, Cooked Wildmeat |
| Baked Goods | Oven-prepared food | Bread |
| Prepared Meals | Complex recipes | Kebabs, Pies, Salads |
| Special | Holiday items | Candy Cane, Popcorn |
Potions (38 files)
Section titled “Potions (38 files)”| Category | Description | Examples |
|---|---|---|
| Health | Restore health instantly | Health, Health Greater, Health Lesser |
| Stamina | Restore stamina instantly | Stamina, Stamina Greater, Stamina Lesser |
| Mana | Restore mana instantly | Mana, Mana Large, Mana Small |
| Signature | Restore signature energy | Signature Greater, Signature Lesser |
| Regeneration | Heal over time | Regen Health, Regen Mana, Regen Stamina |
| Morph | Transform into creatures | Morph Dog, Morph Frog, Morph Mouse, Morph Pigeon |
| Utility | Special effects | Antidote, Purify, Poison |
| Empty | Crafting containers | Empty, Empty Large, Empty Small |
JSON Schema Reference
Section titled “JSON Schema Reference”Core Consumable Properties
Section titled “Core Consumable Properties”| Field | Type | Description |
|---|---|---|
Parent | string | Template to inherit from (Template_Food, Potion_Template) |
TranslationProperties | object | Localization configuration |
Model | string | Path to .blockymodel file |
Texture | string | Path to texture file |
Icon | string | Path to inventory icon |
Quality | string | Quality tier |
Categories | string[] | "Items.Foods" or "Items.Potions" |
Consumable | boolean | Must be true for consumables |
Consumable-Specific Properties
Section titled “Consumable-Specific Properties”| Field | Type | Default | Description |
|---|---|---|---|
Consumable | boolean | false | Marks item as consumed on use |
MaxStack | integer | 25 (food), 10 (potion) | Stack size limit |
DropOnDeath | boolean | true | Whether item drops when player dies |
Scale | number | 1.0 | Model display scale |
BlockType (World Placement)
Section titled “BlockType (World Placement)”Every consumable defines a BlockType that controls how the item looks and behaves when placed as a block in the world (dropped on surfaces, set on tables, etc.). The item’s BlockType creates an inline block definition — its block ID is automatically set to the item’s own ID.
| Field | Type | Description |
|---|---|---|
Material | string | Block material type (typically "Empty" for consumables) |
DrawType | string | How the block is rendered ("Model" for all consumables) |
HitboxType | string | Collision shape ("Food_Large", "Food_Medium", "Potion") |
CustomModel | string | Path to the .blockymodel used when placed |
CustomModelTexture | object[] | Texture entries with Texture path and Weight |
CustomModelScale | number | Scale of the model when rendered as a block |
ParticleColor | string | Hex color for break/interact particles |
RandomRotation | string | Rotation behavior when placed (e.g. "YawStep1") |
Gathering | object | Gathering configuration (typically { "Harvest": {}, "Soft": {} }) |
Opacity | string | Transparency level ("Transparent", "Semitransparent") |
Support | object | Placement support rules (e.g. requires a full face below) |
Light | object | Light emitted by the block (potions glow with { "Color": "#522" }) |
BlockParticleSetId | string | Particle set for interactions ("Dust", "GlassMagic") |
BlockSoundSetId | string | Sound set for block interactions ("Glass") |
Flags | object | Block flags like { "IsUsable": true } |
Effect Properties (InteractionVars)
Section titled “Effect Properties (InteractionVars)”| Field | Type | Description |
|---|---|---|
Effect | object | Applied effect when consumed |
Stat_Check | object | Condition check before consumption |
ConsumeSFX | object | Sound while consuming |
ConsumedSFX | object | Sound after consumption |
RemoveEffect | object | Effect removal on use |
Food Template
Section titled “Food Template”Food items inherit from Template_Food:
{ "TranslationProperties": { "Name": "server.items.Template_Food.name" }, "Quality": "Template", "Icon": "Icons/ItemsGenerated/Plant_Crop_Corn.png", "Categories": ["Items.Foods"], "BlockType": { "Material": "Empty", "DrawType": "Model", "HitboxType": "Food_Large", "CustomModel": "Resources/Ingredients/Corn.blockymodel", "CustomModelTexture": [{ "Texture": "Resources/Ingredients/Corn_Texture.png", "Weight": 1 }], "ParticleColor": "#cabc3f", "RandomRotation": "YawStep1", "Gathering": { "Harvest": {}, "Soft": {} } }, "ItemLevel": 10, "ResourceTypes": [{ "Id": "Foods" }], "Utility": { "Compatible": true }, "PlayerAnimationsId": "Item", "Scale": 1.2, "Interactions": { "Secondary": "Root_Secondary_Consume_Food_T1" }, "InteractionVars": { "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": "Food_Health_Regen_Small" }] }, "ConsumeSFX": { "Interactions": [{ "Parent": "Consume_SFX", "Effects": { "LocalSoundEventId": "SFX_Consume_Bread_Local" } }] }, "ConsumedSFX": { "Interactions": [{ "Parent": "Consumed_SFX", "Effects": { "LocalSoundEventId": "SFX_Consume_Bread_Local" } }] } }, "InteractionConfig": { "Priorities": { "Secondary": 1 } }, "Consumable": true, "Tags": { "Type": ["Food"] }, "MaxStack": 25}Potion Template
Section titled “Potion Template”Potions inherit from Potion_Template:
{ "TranslationProperties": { "Name": "server.items.Potion_Health.name" }, "Quality": "Template", "PlayerAnimationsId": { "Parent": "Item", "Animations": { "Consume": { "FirstPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Drink/Drink_FPS.blockyanim", "ThirdPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Drink/Drink.blockyanim", "Speed": 1, "Looping": true } } }, "Categories": ["Items.Potions"], "Icon": "Icons/ItemsGenerated/Potion_Health.png", "Interactions": { "Secondary": { "RequireNewClick": false, "Interactions": [{ "Type": "Condition", "RequiredGameMode": "Adventure", "Crouching": false, "Next": { "Type": "Replace", "DefaultValue": { "Interactions": ["Stat_Check"] }, "Var": "Stat_Check" }, "Failed": "Block_Secondary" }] } }, "InteractionVars": { "RemoveEffect": { "Interactions": [{ "Type": "Simple" }] }, "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 10 }, "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" } }] }, "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 100 }, "ValueType": "Percent", "LessThan": true }] } }, "Utility": { "Compatible": false }, "BlockType": { "BlockParticleSetId": "GlassMagic", "BlockSoundSetId": "Glass", "CustomModel": "Items/Consumables/Potions/Potion.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Potions/Potion_Textures/Pink.png", "Weight": 1 }], "CustomModelScale": 0.5, "DrawType": "Model", "Flags": { "IsUsable": true }, "Gathering": { "Harvest": {}, "Soft": {} }, "HitboxType": "Potion", "Material": "Empty", "RandomRotation": "YawStep1", "Opacity": "Transparent", "Support": { "Down": [{ "FaceType": "Full" }] }, "ParticleColor": "#ff3730", "Light": { "Color": "#522" } }, "Consumable": true, "Tags": { "Type": ["Potion"] }, "Scale": 2, "MaxStack": 10}Complete Examples
Section titled “Complete Examples”Food Examples
Section titled “Food Examples”{ "TranslationProperties": { "Name": "server.items.Food_Fish_Raw.name", "Description": "server.items.Food_Fish_Raw.description" }, "Parent": "Template_Food", "Quality": "Common", "Icon": "Icons/ItemsGenerated/Food_Fish_Raw.png", "BlockType": { "Material": "Empty", "DrawType": "Model", "CustomModel": "Resources/Ingredients/Fish_Piece.blockymodel", "CustomModelTexture": [{ "Texture": "Resources/Ingredients/Fish_Piece_Raw_Texture.png", "Weight": 1 }], "ParticleColor": "#d97676" }, "InteractionVars": { "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": "Food_Instant_Heal_T1" }] } }, "Scale": 1, "MaxStack": 25, "Recipe": { "TimeSeconds": 1, "Input": [{ "ResourceTypeId": "Fish" }], "BenchRequirement": [{ "Type": "Crafting", "Id": "Cookingbench", "Categories": ["Ingredients"] }] }, "DropOnDeath": true, "ItemLevel": 1}{ "TranslationProperties": { "Name": "server.items.Food_Bread.name", "Description": "server.items.Food_Bread.description" }, "Parent": "Template_Food", "Interactions": { "Secondary": "Root_Secondary_Consume_Food_T2" }, "Quality": "Uncommon", "Icon": "Icons/ItemsGenerated/Food_Bread.png", "BlockType": { "Material": "Empty", "DrawType": "Model", "Opacity": "Semitransparent", "CustomModel": "Items/Consumables/Food/Bread.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Food/Bread_Texture.png", "Weight": 1 }], "HitboxType": "Food_Medium", "RandomRotation": "YawStep1", "Gathering": { "Harvest": {}, "Soft": {} }, "CustomModelScale": 0.5, "BlockParticleSetId": "Dust", "ParticleColor": "#e4cb69" }, "InteractionVars": { "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": "Food_Instant_Heal_Bread" }] } }, "Recipe": { "Input": [ { "ItemId": "Ingredient_Dough", "Quantity": 1 }, { "ResourceTypeId": "Fuel", "Quantity": 3 } ], "Output": [{ "ItemId": "Food_Bread" }], "BenchRequirement": [{ "Type": "Crafting", "Id": "Cookingbench", "Categories": ["Baked"] }], "TimeSeconds": 5 }, "Scale": 1.5, "ItemLevel": 7, "MaxStack": 25, "DropOnDeath": true}{ "TranslationProperties": { "Name": "server.items.Food_Kebab_Meat.name", "Description": "server.items.Food_Kebab_Meat.description" }, "Parent": "Template_Food", "Interactions": { "Secondary": "Root_Secondary_Consume_Food_T2" }, "Quality": "Uncommon", "Icon": "Icons/ItemsGenerated/Food_Skewer_Meat.png", "PlayerAnimationsId": { "Parent": "Item", "Animations": { "Consume": { "FirstPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Eat_Side/Eat_Side_FPS.blockyanim", "ThirdPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Eat_Side/Eat_Side.blockyanim", "Speed": 1, "Looping": true } } }, "BlockType": { "Material": "Empty", "DrawType": "Model", "CustomModel": "Items/Consumables/Food/Meat_Skewer.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Food/Meat_Skewer_Texture.png", "Weight": 1 }], "ParticleColor": "#f2de88" }, "InteractionVars": { "Effect": { "Interactions": [ { "Type": "ApplyEffect", "EffectId": "Food_Instant_Heal_T2" }, "HealthRegen_TierCheck_T2", "Meat_TierCheck_T2" ] } }, "Recipe": { "TimeSeconds": 1, "Input": [ { "ItemId": "Ingredient_Stick" }, { "ResourceTypeId": "Meats", "Quantity": 4 } ], "Output": [{ "ItemId": "Food_Kebab_Meat" }], "BenchRequirement": [{ "Type": "Crafting", "Id": "Cookingbench", "Categories": ["Prepared"] }] }, "ItemLevel": 3, "MaxStack": 25, "DropOnDeath": true}Potion Examples
Section titled “Potion Examples”{ "TranslationProperties": { "Name": "server.items.Potion_Health.name" }, "PlayerAnimationsId": { "Parent": "Item", "Animations": { "Consume": { "FirstPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Drink/Drink_FPS.blockyanim", "ThirdPerson": "Characters/Animations/Items/Main_Handed/Item/Attacks/Drink/Drink.blockyanim", "Speed": 1, "Looping": true } } }, "Categories": ["Items.Potions"], "Icon": "Icons/ItemsGenerated/Potion_Health.png", "Interactions": { "Secondary": { "RequireNewClick": false, "Interactions": [{ "Type": "Condition", "RequiredGameMode": "Adventure", "Crouching": false, "Next": { "Type": "Replace", "DefaultValue": { "Interactions": ["Stat_Check"] }, "Var": "Stat_Check" }, "Failed": "Block_Secondary" }] } }, "InteractionVars": { "RemoveEffect": { "Interactions": [{ "Type": "Simple" }] }, "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 40 }, "ValueType": "Percent", "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" } }] }, "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 100 }, "ValueType": "Percent", "LessThan": true }] }, "ConsumeSFX": { "Interactions": [{ "Parent": "Consume_SFX", "Effects": { "LocalSoundEventId": "SFX_Health_Potion_Low_Drink" } }] }, "ConsumedSFX": { "Interactions": [{ "Parent": "Consumed_SFX", "Effects": { "LocalSoundEventId": "SFX_Potion_Drink_Success" } }] } }, "Utility": { "Compatible": false }, "BlockType": { "BlockParticleSetId": "Dust", "CustomModel": "Items/Consumables/Potions/Potion.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Potions/Potion_Textures/Red.png", "Weight": 1 }], "CustomModelScale": 0.5, "DrawType": "Model", "Flags": { "IsUsable": true }, "Gathering": { "Harvest": {}, "Soft": {} }, "HitboxType": "Potion", "Material": "Empty", "RandomRotation": "YawStep1", "Opacity": "Transparent", "Support": { "Down": [{ "FaceType": "Full" }] }, "ParticleColor": "#ff3730", "Light": { "Color": "#522" } }, "Consumable": true, "Tags": { "Type": ["Potion"] }, "Scale": 2, "MaxStack": 10, "ItemLevel": 1, "DropOnDeath": true}{ "Parent": "Potion_Template", "TranslationProperties": { "Name": "server.items.Potion_Regen_Health.name" }, "Icon": "Icons/ItemsGenerated/Potion_Regen_Health.png", "InteractionVars": { "RemoveEffect": { "Interactions": [{ "Type": "Simple" }] }, "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 5 }, "Duration": 2, "DamageCalculatorCooldown": 4, "Debuff": true, "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" } }] }, "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 100 }, "ValueType": "Percent", "LessThan": true }] } }, "BlockType": { "CustomModel": "Items/Consumables/Potions/Potion.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Potions/Potion_Textures/Pink.png", "Weight": 1 }], "ParticleColor": "#f977be", "Light": { "Color": "#414" } }, "MaxStack": 10, "DropOnDeath": true}{ "Parent": "Potion_Template", "TranslationProperties": { "Name": "server.items.Potion_Morph_Dog.name" }, "Icon": "Icons/ItemsGenerated/Potion_Purify.png", "Recipe": { "TimeSeconds": 1, "KnowledgeRequired": false, "Input": [ { "ItemId": "Potion_Empty", "Quantity": 1 }, { "ItemId": "Ingredient_Life_Essence", "Quantity": 10 }, { "ItemId": "Ingredient_Bone_Fragment", "Quantity": 1 } ], "BenchRequirement": [{ "Id": "Alchemybench", "Type": "Crafting", "Categories": ["Alchemy_Potions_Misc"] }], "RequiredMemoriesLevel": 4 }, "Interactions": { "Primary": "Block_Primary", "Secondary": "Root_Secondary_Consume_Potion_Morph" }, "InteractionVars": { "RemoveEffect": { "Interactions": [{ "Type": "Simple" }] }, "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": "Potion_Morph_Dog" }] }, "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 1 }, "ValueType": "Percent", "LessThan": false }] } }, "BlockType": { "CustomModel": "Items/Consumables/Potions/Potion.blockymodel", "CustomModelTexture": [{ "Texture": "Items/Consumables/Potions/Potion_Textures/White.png", "Weight": 1 }], "ParticleColor": "#fafafb" }, "MaxStack": 10, "ItemLevel": 50, "DropOnDeath": true}Effect System
Section titled “Effect System”Consumables apply effects through the ApplyEffect interaction type.
Instant Effects
Section titled “Instant Effects”{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 40 }, "ValueType": "Percent", "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" }}Duration Effects (Regeneration)
Section titled “Duration Effects (Regeneration)”{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 5 }, "Duration": 2, "DamageCalculatorCooldown": 4, "Debuff": true, "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" }}Effect Properties
Section titled “Effect Properties”| Property | Type | Description |
|---|---|---|
StatModifiers | object | Stats to modify (Health, Mana, Stamina) |
Duration | number | Effect duration in seconds |
DamageCalculatorCooldown | number | Cooldown between effect ticks |
ValueType | string | "Percent" or absolute |
StatusEffectIcon | string | Icon shown in status bar |
OverlapBehavior | string | How multiple effects interact ("Extend", etc.) |
Debuff | boolean | Whether effect is negative |
Named Effects
Section titled “Named Effects”Effects can reference predefined effect IDs:
| Effect ID | Description |
|---|---|
Food_Instant_Heal_T1 | Small instant heal |
Food_Instant_Heal_T2 | Medium instant heal |
Food_Instant_Heal_Bread | Bread-specific healing |
Food_Health_Regen_Small | Small health regeneration |
Potion_Morph_Dog | Transform into dog |
Potion_Morph_Frog | Transform into frog |
Consume Interaction Tiers
Section titled “Consume Interaction Tiers”Food uses tiered consume interactions:
| Interaction | Tier | Typical Use |
|---|---|---|
Root_Secondary_Consume_Food_T1 | Basic | Raw foods, simple items |
Root_Secondary_Consume_Food_T2 | Standard | Cooked foods, prepared meals |
Root_Secondary_Consume_Potion_Morph | Special | Morph potions |
Stat Check System
Section titled “Stat Check System”Potions can check stats before consumption:
{ "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 100 }, "ValueType": "Percent", "LessThan": true }] }}This prevents consuming health potions when already at full health.
Stat Check Properties
Section titled “Stat Check Properties”| Property | Type | Description |
|---|---|---|
Costs | object | Stat threshold to check |
ValueType | string | "Percent" for percentage check |
LessThan | boolean | true = use only when below threshold |
Crafting Stations
Section titled “Crafting Stations”Consumables use specific crafting stations:
| Station | Categories | Produces |
|---|---|---|
Cookingbench | Baked, Prepared, Ingredients | Food items |
Alchemybench | Alchemy_Potions_* | Potions |
Farmingbench | Farming | Basic ingredients |
Potion Colors
Section titled “Potion Colors”Potions use color-coded textures in Items/Consumables/Potions/Potion_Textures/:
| Color | Texture | Potion Type |
|---|---|---|
| Red | Red.png | Health |
| Blue | Blue.png | Mana |
| Green | Green.png | Stamina |
| Pink | Pink.png | Regeneration, Signature |
| White | White.png | Morph, Purify |
| Purple | Purple.png | Poison |
Accessing Consumables in Code
Section titled “Accessing Consumables in Code”import com.hypixel.hytale.server.core.asset.type.item.config.Item;
public class ConsumableExample { public void accessConsumables() { // Get food item Item bread = Item.getAssetMap().get("Food_Bread");
// Get potion Item healthPotion = Item.getAssetMap().get("Potion_Health");
if (bread != null) { // Check if consumable boolean isConsumable = bread.isConsumable(); int maxStack = bread.getMaxStack();
// Get categories String[] categories = bread.getCategories(); // Should contain "Items.Foods" }
if (healthPotion != null) { // Potions have "Items.Potions" category boolean isPotion = Arrays.asList(healthPotion.getCategories()) .contains("Items.Potions"); } }}Creating Custom Consumables
Section titled “Creating Custom Consumables”Custom Food Item
Section titled “Custom Food Item”{ "Parent": "Template_Food", "TranslationProperties": { "Name": "server.items.MyPlugin_Food_Custom.name", "Description": "server.items.MyPlugin_Food_Custom.description" }, "Quality": "Rare", "Icon": "Icons/ItemsGenerated/MyPlugin_Food_Custom.png", "Interactions": { "Secondary": "Root_Secondary_Consume_Food_T2" }, "BlockType": { "Material": "Empty", "DrawType": "Model", "CustomModel": "MyPlugin/Food/Custom_Food.blockymodel", "CustomModelTexture": [{ "Texture": "MyPlugin/Food/Custom_Food_Texture.png", "Weight": 1 }], "ParticleColor": "#ffcc00" }, "InteractionVars": { "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 25 }, "ValueType": "Percent", "StatusEffectIcon": "UI/StatusEffects/Health_Potion.png", "OverlapBehavior": "Extend" } }] } }, "Recipe": { "TimeSeconds": 3, "Input": [ { "ItemId": "Ingredient_Custom", "Quantity": 2 }, { "ResourceTypeId": "Fuel", "Quantity": 1 } ], "BenchRequirement": [{ "Type": "Crafting", "Id": "Cookingbench", "Categories": ["Prepared"] }] }, "Scale": 1.2, "ItemLevel": 15, "MaxStack": 20, "DropOnDeath": true}Custom Potion
Section titled “Custom Potion”{ "Parent": "Potion_Template", "TranslationProperties": { "Name": "server.items.MyPlugin_Potion_Custom.name" }, "Icon": "Icons/ItemsGenerated/MyPlugin_Potion_Custom.png", "InteractionVars": { "RemoveEffect": { "Interactions": [{ "Type": "Simple" }] }, "Effect": { "Interactions": [{ "Type": "ApplyEffect", "EffectId": { "StatModifiers": { "Health": 20, "Stamina": 30 }, "Duration": 5, "StatusEffectIcon": "UI/StatusEffects/MyPlugin_Custom_Buff.png", "OverlapBehavior": "Extend" } }] }, "Stat_Check": { "Interactions": [{ "Parent": "Stat_Check", "Costs": { "Health": 100 }, "ValueType": "Percent", "LessThan": true }] } }, "Recipe": { "TimeSeconds": 2, "Input": [ { "ItemId": "Potion_Empty", "Quantity": 1 }, { "ItemId": "MyPlugin_Ingredient", "Quantity": 3 } ], "BenchRequirement": [{ "Id": "Alchemybench", "Type": "Crafting", "Categories": ["Alchemy_Potions_Misc"] }] }, "BlockType": { "CustomModel": "Items/Consumables/Potions/Potion.blockymodel", "CustomModelTexture": [{ "Texture": "MyPlugin/Potions/Custom_Texture.png", "Weight": 1 }], "ParticleColor": "#00ffaa", "Light": { "Color": "#0a5" } }, "MaxStack": 10, "ItemLevel": 25, "DropOnDeath": true}Best Practices
Section titled “Best Practices”- Use templates: Inherit from
Template_FoodorPotion_Template - Set appropriate MaxStack: Food typically 25, potions typically 10
- Include stat checks: Prevent wasteful consumption at full stats
- Provide consume sounds: Use
ConsumeSFXandConsumedSFXfor feedback - Balance healing values: Follow tier progression (T1 < T2 < etc.)
- Set DropOnDeath: Most consumables should drop on death
- Use color-coded textures: Follow established potion color conventions
- Prefix IDs: Use plugin name prefix for all custom consumables
Related
Section titled “Related”- Item System Overview - General item documentation
- Weapons - Combat item documentation
- Tools - Tool documentation
- Blockbench Setup - Creating consumable models
- Plugin Manifest - Including assets in plugins