- JEI support
- Neoforge support only as of 0.4+
- 1.21.1 and 26.1.2
- Uses Modomomicon for in-game wiki
Ritual JSON, directory: ritual
Rituals are data-driven and run through an ordered list of ritual_events. Each event is either a requirement (at least one has to be present), an output (a produced effect), or neutral (an ambient/ongoing effect), and all requirements need to come before anything else in the list. As soon as the first output event is reached, the ritual enters its "output phase": altar_power gets consumed, altar_power_per_second starts draining, and a sound plays. Outputs can also run in parallel.
{
"type": "witchery:ritual",
"altar_power": 2000,
"altar_power_per_second": 0,
"block_mapping": {
"G": "witchery:golden_chalk",
"M": "witchery:otherwhere_chalk",
"S": "witchery:otherwhere_chalk"
},
"celestial_conditions": ["night"],
"weather": ["storm"],
"require_cat": false,
"coven_count": 0,
"pattern": [
"___MMMMM___",
"__M_____M__",
"_M__SSS__M_",
"M__S___S__M",
"M_S_____S_M",
"M_S__G__S_M",
"M_S_____S_M",
"M__S___S__M",
"_M__SSS__M_",
"__M_____M__",
"___MMMMM___"
],
"ritual_events": [
{
"type": "witchery:consume_items",
"items": [
{ "count": 1, "item": "witchery:spirit_of_otherwhere" },
{ "count": 1, "tag": "minecraft:logs" }
],
"timeout": 400
},
{
"type": "witchery:consume_sacrifice",
"entities": [
"minecraft:pig",
["minecraft:villager", "minecraft:cow"],
"#minecraft:raiders",
["#c:animals", "minecraft:villager"]
],
"timeout": 600,
"drop": false
},
{
"type": "witchery:parallel",
"events": [
{
"type": "witchery:run_command",
"command": "witchery infusion setAndKill {owner} otherwhere",
"min_witch_power": 2,
"max_witch_power": 3
},
{
"type": "witchery:summon_item",
"items": [{ "count": 1, "id": "minecraft:stick" }],
"floating": false
}
]
}
]
}| Key | Description |
|---|---|
type |
Always "witchery:ritual". |
ritual_events |
Ordered list of ritual events (see below). Requirement events must all precede non-requirement events. |
pattern |
Visual layout using characters defined in block_mapping, forming the ritual circle shape. |
block_mapping |
Mapping of pattern characters to block IDs. |
altar_power |
Amount of altar power consumed once the ritual enters its output phase. |
altar_power_per_second |
Amount of altar power drained per second while in the output phase (ritual cancels if it can't be paid). |
celestial_conditions |
List of celestial events required ("day", "night", "full_moon", "new_moon", "waxing", "waning"). Empty means no requirement. |
weather |
Required weather conditions: "clear", "rain", "storm". Empty means no requirement. |
coven_count |
Minimum number of coven members required nearby (0 means not required). |
require_cat |
If true, requires a cat familiar (or a coven member with one) to start the ritual. |
Every event shares a common delay field: ticks to wait, from when its turn comes up, before it starts ticking.
Requirement
| Type | Description | Extra fields |
|---|---|---|
witchery:consume_items |
Waits for matching items dropped near the chalk or held in Grasspers | items, timeout |
witchery:consume_items_with_particles |
Same as above, with particle feedback per item consumed | items, timeout, particle_speed, particles_per_item |
witchery:consume_sacrifice |
Waits for and kills nearby living entities, one per slot in entities (see below) |
entities, timeout, drop |
entities is an ordered list of slots. Each slot needs one sacrifice, filled in order, so the list length is the total number of sacrifices required. A slot is one of:
| Form | Example | Meaning |
|---|---|---|
| Entity type | "minecraft:pig" |
Needs exactly that entity type |
| Entity tag | "#minecraft:raiders" |
Needs any entity in that entity type tag |
| Any-of list | ["minecraft:villager", "minecraft:cow"] |
Needs any ONE of the listed types or tags |
Any-of lists can mix types and tags, e.g. ["#c:animals", "minecraft:villager"]. Tags use the # prefix and live in data/<namespace>/tags/entity_type/.
An any-of list is one slot, not one per option. To require several sacrifices, add several slots (e.g. three cows is three "minecraft:cow" entries).
Output
| Type | Description | Extra fields |
|---|---|---|
witchery:run_command |
Runs a command with placeholder substitution (see below) | command, altar_power_cost, min_witch_power, max_witch_power, duration, repeat_every_ticks |
witchery:summon_item |
Drops (or floats, if floating) item stacks above the chalk |
items, floating |
witchery:mirror_pair |
Summons a bound mirror pair and demonic contract, used for the Mirror Demon ritual | - |
witchery:summon_entities |
Spawns entities above the chalk | entities, count, duration |
witchery:parallel |
Runs its child events simultaneously instead of sequentially | events (list of ritual events) |
witchery:play_sound |
Plays a sound at the chalk | sound_id, volume, pitch, duration |
witchery:spawn_particles |
Spawns particles around the chalk | particle, count, spread, speed, duration |
witchery:particle_disc |
Scatters particles outward in a flat disc | count, radius, time, particle |
witchery:particle_sphere |
Scatters particles outward through a full sphere | count, radius, time, particle |
witchery:particle_sphere_inward |
Particles converge inward from a radius into a sphere | count, radius, time, speed, particle |
witchery:block_break_particle_disc |
Scatters block-break particles (matching the block below each point) in a disc | count, radius, time |
witchery:remove_curse |
Removes the target player's oldest active curse | - |
witchery:bind_familiar |
Binds a nearby unbound cat/frog/owl to a nearby player as a familiar | search_radius, search_height |
witchery:resurrect_familiar |
Resurrects a nearby player's dead familiar | search_radius, search_height |
witchery:bind_spectral_creatures |
Chains nearby spectral entities to a nearby Effigy block | search_radius |
witchery:bestial_call |
Spawns a burst of random animals around the chalk | count, radius |
witchery:mine_blocks_below |
Mines a target ore out of the column below the chalk, dropping collected items | target_ore_id, target_deepslate_ore_id, radius |
witchery:set_midnight |
Sets the level's time to the next midnight | - |
Neutral (ongoing/ambient effects, still have to be ordered after all requirement events, but don't themselves trigger the altar power consume or output phase transition)
| Type | Description | Extra fields |
|---|---|---|
witchery:rot |
Slowly zombifies nearby villagers/pigs/horses/skeletons, rots certain meats, and withers nearby crops/flowers | effect_radius, transform_delay, duration |
witchery:pull_mobs |
Pulls nearby hostile mobs toward the chalk | radius, strength, duration |
witchery:push_mobs |
Pushes nearby hostile mobs away from the chalk | radius, strength, duration |
witchery:raining_toad |
Forces rain and periodically drops poisonous frogs from above for the duration | duration, spawn_interval, spawn_radius, drop_height |
Command strings in witchery:run_command support contextual placeholders, replaced at runtime:
| Placeholder | Description |
|---|---|
{taglockPlayer} |
Target player whose taglock was used in the ritual |
{taglockEntity} |
Target entity whose taglock was used in the ritual |
{taglockPlayerOrEntity} |
Target player OR entity, whichever taglock was used |
{waystonePos} |
Coordinates of the waystone's bound position |
{ownerPos} |
Current position of the ritual's owner |
{moonPhase} |
Current moon phase name |
{weather} |
Current weather: clear, rain, or storm |
{isDay} |
true/false, whether it's currently daytime |
{dimension} |
Dimension the ritual is running in |
{witchPower} |
The caster's Witch Power, calculated from cat/coven |
{owner} |
Player who started the ritual |
{chalkPos} |
Block position of the ritual center (golden chalk) |
{targetBiome} |
Biome bound to a Biome Note used in the ritual |
Nature Altar power JSON, directory: nature
Limit is how much power one altar can take. Power is power per block. Matches either a specific block or a tag.
{
"block": "minecraft:carrots",
"limit": 20,
"power": 4
}or
{
"tag": "minecraft:crops",
"limit": 20,
"power": 4
}Altar Augments JSON, directory: altar_augments
A fuller example:
{
"block": "minecraft:skeleton_skull",
"category": "head",
"bonus": {
"light_bonus": 0.0,
"head_bonus": 0.15,
"chalice_bonus": 0.0,
"range_multiplier": 1.0,
"has_pentacle": false,
"has_infinity_egg": false
}
}You don't need to fill in every field:
{
"block": "witchery:chalice",
"bonus": {
"chalice_bonus": 1.0
},
"category": "chalice"
}Matches by block or by tag, and can also require specific blockstate values via state_conditions:
{
"tag": "witchery:candelabras",
"bonus": {
"light_bonus": 2.0
},
"category": "light",
"state_conditions": [
{ "property": "lit", "value": "true" }
]
}Augments are split into 5 categories. Only the best augment in each category applies, so multiple augments of the same category don't stack.
| Category | Effect |
|---|---|
light |
Increases power multiplier. Affects power generation rate |
head |
Increases both power multiplier and power boost |
chalice |
Increases power boost. Adds flat power to max capacity |
range |
Multiplies the altar's detection range for nature power sources |
special |
Unique effects like has_pentacle or has_infinity_egg |
| Field | Type | Description |
|---|---|---|
light_bonus |
double | Percentage increase to power multiplier (0.1 = 10% faster charging) |
head_bonus |
double | Percentage increase to both power multiplier and power boost (0.15 = 15% faster and 15% more max power) |
chalice_bonus |
double | Percentage increase to power boost only (0.2 = 20% more max power) |
range_multiplier |
double | Multiplies altar's detection range (2.0 = double range) |
has_pentacle |
boolean | If true, doubles the final power multiplier |
has_infinity_egg |
boolean | If true, multiplies power multiplier by 10 and power boost by 2 |
state_conditions is a list of { "property": "<blockstate property name>", "value": "<expected value>" } pairs. Every property listed has to match the block's current state for the augment to apply, for example requiring a candle block to be lit=true.
Fetish Effect JSON, directory: fetish
Maps a combination of trapped spirit counts to a fetish effect.
{
"poltergeist_count": 1,
"banshee_count": 2,
"specter_count": 0,
"effect": "witchery:shrieking"
}| Field | Description |
|---|---|
poltergeist_count |
Required number of poltergeists (optional, default 0) |
banshee_count |
Required number of banshees (optional, default 0) |
specter_count |
Required number of specters (optional, default 0) |
effect |
The fetish effect to grant when the counts match |
Hobgoblin Trades JSON, directory: hobgoblin_trades
{
"costA": "minecraft:emerald",
"costACount": 1,
"costB": "witchery:spirit_of_otherwhere",
"costBCount": 1,
"result": "witchery:drop_of_luck",
"resultCount": 1,
"maxUses": 12,
"xp": 1,
"priceMultiplier": 0.05
}Overworld Infusion metal extraction JSON, directory: overworld_infusion
Used by the Overworld infusion type's metal extraction ability: right-clicking a mapped metal block (costs 100 infusion charge) drops 2 of item and turns the block into toBlock.
{
"fromBlock": "minecraft:iron_ore",
"toBlock": "minecraft:stone",
"item": "minecraft:iron_ingot"
}Imp Trades JSON, directory: imp_trades (JAWR Forbidden Magic only)
Requires the JAWR: Forbidden Magic addon.
Defines soul-trading offers sold by imps. count is optional and defaults to 1.
{
"item": "witchery:spirit_of_otherwhere",
"count": 1,
"soulCost": 50
}| Field | Description |
|---|---|
item |
Item granted by the trade |
count |
Quantity granted (optional, default 1) |
soulCost |
Number of souls the trade costs |
- Model and texture of Witches oven is made by WK/AtheneNoctua.
- Texture of Taglock is made by WK/AtheneNoctua.
- Model and texture of Hunter Armor is made by TheRebelT
- Tarot Arcana Major by starsinabox
- Added Dispenser behaviour for witchery brews and potions
- Added missing Garlic loot table
- Added config for vampire immortality
- Added config for vampire sun damage protection in dimensions
- Added Sacrifice ritual support entity tags and either or entities.
- Added support for clear vampirism and lycantropy for remove curse ritual.
- Tweak village structure spawn
- Made level 2 -> 3 vamp quest text more clear
- Tweaked poppets to hopefully fix poppet disconnect
- Fixed Arthana dissapearing on world reload
- Fixed Owl
- Fixed missing lang for advancements
- Fixed baby animals not having a blood pool
- Fixed vampire food to support tag
- Fixed kick when going to spirit world sometimes
- NeoVitae compat: Added empowered bloodstone pendant allowing replenishing one's blood from Anima
- Icy slippers
- More book entries
- Blacklist config for mutandis
- empowered sunstone pendant is now visible in JEI
- Fixed server crash with forbidden magic related to creative tab banners
- Some book entries are advancement gated (26.1.2)
- Werewolf book entry trigger
- Some villages will have Walls and Watchtowers
- Garlic now damages vampires
- NeoVitae integration reworked: vampires drink blood from orb and altar now, not from Anima directly
- Fixed quest system only showing up in singleplayer
- Fixed Vampire bat flying thorugh village quest to be more generous with area
- Sacrifical circle can now be assembled with the skull last
- Sacrifical circle needs solid ground under it
- Wine glass acting weird in off-hand
- Skull renders correctly in sacrifical circle (1.21.1)
- abilities should now all be visible on smaller screens
- Appleskin support for Vampire, hides overlay
- Compatibiltiy with NeoVitae, vampires can feed off Anima network when holding a blood orb and using drink ability
- Set default config for enable empowered charms to false.
- Made Vamp not able to gain fire resistance
- Increased Bone Needle self stab damage from 2 to 4
- Running out of blood causes Vampires to become weak
- Sun damage doesn't affect vampires during rain or thunder
- Regular food causes Vampires to get nausea and hunger
- Fixed vampire immortality to not block everything.
- Fixed Vampires blood drink ability not killing entities with 0 blood.
- Fixed render box for Cage.
- Fixed Blood particle height for sleeping villagers.
- Fixed Voodoo poppet unable to get stabbed by bone needle
- Fixed Bone needle use durability
- Fixed Bone needle crafting durability
- Fixed vampire drink blood ability hurting transfixed villagers
- Fixed cage not dropping its item when top block was broken
