Modules
OverviewLatCalendarLatAnglerLatCandyDropsLatFrostbiteLatGhostHuntLatUnwrapPteroAlertsPteroCrashguardPteroGroupsLatSantasSleighLatTrickOrTreatLatWitchsCauldronLatWrappedLatWitchsCauldron
Throw ingredients into a cauldron and watch it brew a reward
Overview
- Module id
- witchs-cauldron
- Version
- 1.0.0
- Platforms
- Price
- $3.99
- Authors
- Atlantis Services
Install
- Install Lattice on a Paper or Folia server, if it is not there yet.
- Drop the LatWitchsCauldron jar into
plugins/Lattice/modules/. It loads straight away. - Put your license key in
lattice.yml, then run/lat license refresh. - Edit
config/global/witchs-cauldron/and apply it with/lat reload witchs-cauldron.
Commands
Command names and aliases are set in config.yml, so yours may differ. <required> [optional]
| Command | Description | Permission |
|---|---|---|
/cauldron
also /brew
|
Your cauldron recipe book | witchscauldron.use |
/cauldron book |
Your cauldron recipe book | witchscauldron.use |
/cauldron place |
Mark the cauldron you are looking at | witchscauldron.admin |
/cauldron remove |
Unmark the cauldron you are looking at | witchscauldron.admin |
/cauldron list |
List marked cauldrons | witchscauldron.admin |
Permissions
| Permission | Lets a player use |
|---|---|
witchscauldron.use |
/cauldron, /cauldron book |
witchscauldron.admin |
/cauldron place, /cauldron remove, /cauldron list |
Placeholders
Filled in Lattice's own messages, and in any plugin that reads PlaceholderAPI when it is installed.
| Placeholder | Notes |
|---|---|
%witchscauldron_brewed_today% |
|
%witchscauldron_discovered% |
|
%witchscauldron_recipes% |
config.yml
Written to config/global/witchs-cauldron/config.yml on first start. Edit it, then /lat reload witchs-cauldron.
# Witch's cauldron: staff mark cauldrons with /cauldron place. Players throw ingredients in; # when the pile matches a recipe the cauldron bubbles, then pops out a reward. # Generated from WitchsCauldronSettings. Keys you delete return to their default; # keys that are not in the schema are ignored and reported on load. command: # Command for the recipe book, and for staff to mark cauldrons. Takes effect on restart. name: "cauldron" aliases: - "brew" permission: "witchscauldron.use" # Permission for /cauldron place, remove and list. admin-permission: "witchscauldron.admin" # Timezone for start, end and the daily reset of brews, e.g. Europe/London. timezone: "UTC" # First day, as MM-DD, repeating every year. Leave start and end empty to run all year. # An end before the start runs over the new year. start: "10-01" # Last day, inclusive, as MM-DD. end: "11-01" # Most ingredients a cauldron holds, 1 to 16. A full pot that matches no recipe fizzles. # No recipe may have more ingredients than this. max-ingredients: 6 # Ticks a matched recipe bubbles before the reward pops out, twenty to a second. brew-ticks: 60 # Seconds without a new ingredient before a half-filled cauldron fizzles. The ingredients are lost. idle-seconds: 30 # Brews each player can finish per day, across all recipes. max-per-day: 20 # Ticks the result takes to fly from the cauldron to the brewer, twenty to a second. fly-ticks: 16 # Size of the flying result, 0.1 to 4. Only for show. fly-size: 0.6 # Seconds a thrown item is watched for falling into a cauldron before it is ignored. item-seconds: 20 # Seconds before a player is told again that a cauldron refuses their items. 0 tells them every time. notice-seconds: 3 # How far, in blocks, staff can be from the cauldron they mark or unmark, 1 to 10. place-reach: 5 # Recipes, by id. The id is stored per player, so renaming one forgets who has found it. # Ingredients are item names, repeated for more than one. Order never matters. # result is the item that pops out (empty for none); the reward runs on top of it. # firstTimeReward runs once, the first time a player brews the recipe. # A recipe whose ingredients are a subset of another's would always win, so that is refused. recipes: witchs-stew: # Shown to players in the recipe book and when it pops out. name: "Witch's Stew" # Item names, repeated for more than one, e.g. BONE twice. Order never matters. ingredients: - "RED_MUSHROOM" - "BROWN_MUSHROOM" - "SPIDER_EYE" # Item that flies to the brewer when it is done. Empty for none. result: "MUSHROOM_STEW" # How many of the result item, 1 to 64. result-amount: 2 # Given every time this recipe is brewed. reward: # Console commands. {player} is the player's name. commands: [] # Sent to the player as a success line in the server theme. Empty for none. message: "<body>The cauldron coughs up a steaming stew." # Sound key, e.g. entity.player.levelup. Empty for none. sound: null # Given the first time a player brews this recipe, on top of the reward. first-time-reward: # Console commands. {player} is the player's name. commands: - "minecraft:xp add {player} 10 points" # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>New recipe discovered!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "ui.toast.challenge_complete" # Seconds before the same player can brew this recipe again. 0 for none. cooldown-seconds: 0 glowing-draught: # Shown to players in the recipe book and when it pops out. name: "Glowing Draught" # Item names, repeated for more than one, e.g. BONE twice. Order never matters. ingredients: - "GLOWSTONE_DUST" - "GLOW_BERRIES" - "SLIME_BALL" # Item that flies to the brewer when it is done. Empty for none. result: "GLOWSTONE" # How many of the result item, 1 to 64. result-amount: 2 # Given every time this recipe is brewed. reward: # Console commands. {player} is the player's name. commands: [] # Sent to the player as a success line in the server theme. Empty for none. message: "<body>It glows. It really glows." # Sound key, e.g. entity.player.levelup. Empty for none. sound: null # Given the first time a player brews this recipe, on top of the reward. first-time-reward: # Console commands. {player} is the player's name. commands: - "minecraft:xp add {player} 10 points" # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>New recipe discovered!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "ui.toast.challenge_complete" # Seconds before the same player can brew this recipe again. 0 for none. cooldown-seconds: 0 bone-broth: # Shown to players in the recipe book and when it pops out. name: "Bone Broth" # Item names, repeated for more than one, e.g. BONE twice. Order never matters. ingredients: - "BONE" - "BONE" - "ROTTEN_FLESH" # Item that flies to the brewer when it is done. Empty for none. result: "COOKED_BEEF" # How many of the result item, 1 to 64. result-amount: 3 # Given every time this recipe is brewed. reward: # Console commands. {player} is the player's name. commands: [] # Sent to the player as a success line in the server theme. Empty for none. message: "<body>Somehow, it smells delicious." # Sound key, e.g. entity.player.levelup. Empty for none. sound: null # Given the first time a player brews this recipe, on top of the reward. first-time-reward: # Console commands. {player} is the player's name. commands: - "minecraft:xp add {player} 10 points" # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>New recipe discovered!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "ui.toast.challenge_complete" # Seconds before the same player can brew this recipe again. 0 for none. cooldown-seconds: 0 pumpkin-potion: # Shown to players in the recipe book and when it pops out. name: "Pumpkin Potion" # Item names, repeated for more than one, e.g. BONE twice. Order never matters. ingredients: - "PUMPKIN" - "SUGAR" - "EGG" # Item that flies to the brewer when it is done. Empty for none. result: "PUMPKIN_PIE" # How many of the result item, 1 to 64. result-amount: 3 # Given every time this recipe is brewed. reward: # Console commands. {player} is the player's name. commands: [] # Sent to the player as a success line in the server theme. Empty for none. message: "<body>A potion, if you squint. Mostly pie." # Sound key, e.g. entity.player.levelup. Empty for none. sound: null # Given the first time a player brews this recipe, on top of the reward. first-time-reward: # Console commands. {player} is the player's name. commands: - "minecraft:xp add {player} 10 points" # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>New recipe discovered!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "ui.toast.challenge_complete" # Seconds before the same player can brew this recipe again. 0 for none. cooldown-seconds: 0 dragons-breath: # Shown to players in the recipe book and when it pops out. name: "Dragon's Breath" # Item names, repeated for more than one, e.g. BONE twice. Order never matters. ingredients: - "FERMENTED_SPIDER_EYE" - "BLAZE_POWDER" - "GUNPOWDER" - "NETHER_WART" # Item that flies to the brewer when it is done. Empty for none. result: "EXPERIENCE_BOTTLE" # How many of the result item, 1 to 64. result-amount: 2 # Given every time this recipe is brewed. reward: # Console commands. {player} is the player's name. commands: [] # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>The cauldron roars!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "entity.ender_dragon.growl" # Given the first time a player brews this recipe, on top of the reward. first-time-reward: # Console commands. {player} is the player's name. commands: - "minecraft:xp add {player} 10 points" # Sent to the player as a success line in the server theme. Empty for none. message: "<accent>New recipe discovered!" # Sound key, e.g. entity.player.levelup. Empty for none. sound: "ui.toast.challenge_complete" # Seconds before the same player can brew this recipe again. 0 for none. cooldown-seconds: 600 sounds: # Sound keys, e.g. entity.witch.celebrate. Empty for none, here and below. Played when an ingredient drops in. plop: "entity.slime.squish_small" # Played when a recipe starts brewing, and again every second while it does. brewing: "block.brewing_stand.brew" # Played when the reward pops out. done: "entity.witch.celebrate" # Played when a brew fizzles. fizzle: "entity.generic.extinguish_fire" # Played when the result reaches the brewer. collect: "entity.item.pickup" particles: # Particles for each moment. Kinds: NONE, BUBBLES, SMOKE, WITCH, ENCHANT, SOUL, FLAME, SPARKLE, CLOUD. # Played when an ingredient drops in. plop: BUBBLES # Played all the while a recipe brews. bubbling: BUBBLES # Played now and then while a recipe brews, over the bubbles. wisps: WITCH # Played when the reward pops out. done: SPARKLE # Played when a brew fizzles. fizzle: SMOKE
Messages
Every line players see, in config/global/witchs-cauldron/messages.yml. Uses MiniMessage formatting.
Show messages.yml (30 lines)
# Player-facing text for witchs-cauldron. # Placeholders in {braces} are filled in by the module. # A key you delete falls back to its built-in default. already-marked: That cauldron is already marked. book-found: <muted>-</muted> <accent>{recipe}</accent><muted>:</muted> <body>{ingredients} book-header: '<body>Recipe book: <accent>{found}</accent><muted>/</muted><accent>{total}</accent> found, <accent>{today}</accent><muted>/</muted><accent>{limit}</accent> brews today' book-unknown: <muted>- ???</muted> <body>{count} ingredients brewed: <body>The cauldron pops out <accent>{recipe}</accent>! brewing: <body>The cauldron begins to bubble... busy: Your recipe book is still loading. Try again in a moment. closed: The cauldrons are cold right now. fizzle-cooldown: <emphasis>{recipe}</emphasis> needs to rest. Try again in {seconds} seconds. fizzle-idle: The cauldron cools and fizzles. The ingredients are gone. fizzle-limit: You have brewed enough for today. The ingredients are gone. fizzle-no-match: The cauldron fizzles. That was not a recipe. fizzle-storage: The cauldron fizzles. Your recipe book could not be reached. limit-reached: You have brewed enough for today. Come back tomorrow! list-empty: No cauldrons are marked. Look at one and use /cauldron place. list-entry: <muted>-</muted> <accent>{where}</accent> list-header: '<body>Marked cauldrons (<accent>{count}</accent>):' no-target: Look at a cauldron, within {reach} blocks. not-a-cauldron: That is not a cauldron. not-marked: That cauldron is not marked. occupied: Someone else is brewing here. placed: <body>Marked the cauldron at <accent>{where}</accent>. players-only: Only a player can do that. removed: <body>Unmarked the cauldron at <accent>{where}</accent>.
