WitchMoArsenal
WitchMoArsenal makes witches more flexible, dangerous, and configurable. Instead of being locked to the vanilla potion set, witches can use the potions and effects you define in a JSON config.
The mod is server-side in spirit: it changes witch behavior and does not add new blocks, items, or screens.
Features
- Replace or extend the vanilla witch potion list.
- Configure splash potions thrown at enemies.
- Configure potions witches drink on themselves.
- Let witches drink milk to clear effects.
- Optional support behavior: witches can throw potions at nearby mobs.
- Supports both potion ids and effect ids.
- Custom effect potions are tinted with the effect color instead of using the default purple color.
- Config reloads when a world/server starts.
Examples
Make witches throw levitation:
{
"potion": "minecraft:levitation",
"weight": 1,
"condition": "always",
"duration": 200,
"amplifier": 0
}
Make witches buff creepers with speed for 20 seconds:
{
"potion": "minecraft:swiftness",
"weight": 2,
"condition": "ally_type:minecraft:creeper",
"duration": 400
}
Make witches heal undead allies with harming when they are low:
{
"potion": "minecraft:harming",
"weight": 4,
"condition": "ally_undead_health_below_half"
}
Config
The config file is created after the first launch:
config/witchmoarsenal.json
Main sections:
replaceVanilla: use only configured potions or mix them with vanilla behavior.splashPotions: potions thrown at enemy targets.drinkPotions: potions witches drink on themselves.milk: milk-drinking behavior.supportThrows: optional potions thrown at other mobs.
Potion Entries
Potion entries are used in splashPotions, drinkPotions, and supportThrows.potions.
Fields:
potion: potion id or effect id, for exampleminecraft:harmingorminecraft:levitation.weight: random selection weight. Higher means more common.condition: when the entry can be used.duration: optional duration override in ticks. 20 ticks = 1 second.amplifier: optional amplifier override. 0 = level I, 1 = level II.ambient: optional effect flag.showParticles: optional effect flag.showIcon: optional effect flag.
If potion is a normal potion id, the vanilla potion data is used. If duration or amplifier is set, WitchMoArsenal converts it into a custom potion effect with the configured values.
If potion is an effect id, WitchMoArsenal creates a custom potion effect and colors the potion from the effect color.
Conditions
General target conditions:
alwaystarget_fartarget_closetarget_health_above_halftarget_health_below_halftarget_missing_effect
Self-use conditions:
self_health_below_halfself_on_fireself_underwaterself_missing_effect
Support conditions:
ally_health_below_halfally_health_above_halfally_missing_effectally_undead_health_below_halfally_type:<entity_id>
Examples:
ally_type:minecraft:creeperally_type:minecraft:skeletonally_type:minecraft:zombie
Witches will not throw an effect at a target that already has that effect.
Support Throws
Support throws are disabled by default. Enable them in the config:
"supportThrows": {
"enabled": true,
"cooldownTicks": 80,
"range": 12.0,
"throwRange": 8.0,
"approachSpeed": 1.0,
"requireLineOfSight": true,
"onlyHostileMobs": true,
"potions": []
}
Behavior notes:
- Witches only support other mobs when they are not currently attacking a target.
- If the support target is too far away, the witch walks toward it first.
- If
requireLineOfSightis enabled, witches will not throw through blocks. - Before throwing, the witch stops and turns toward the target.
- Other witches are ignored as support targets.
Milk
Milk behavior is enabled by default:
"milk": {
"enabled": true,
"cooldownTicks": 200,
"drinkingTicks": 32,
"condition": "self_has_effects"
}
Milk conditions:
alwaysself_has_effectsself_has_harmful_effects
Requirements
- Fabric API
License
MIT