COWMODSКаталог модов

Iron's Spells: Incantation

Voice-cast Iron's Spells 'n Spellbooks by saying spell names out loud. Standalone and offline — Incantation captures your microphone itself, so no voice-chat mod is required. Only spells you actually have equipped will fire.

Автор: hoggormino4,7 тыс.33обновлён 8 сент. 2026 г.
СнаряжениеМагияУтилиты

Описание

Iron's Spells: Incantation

Say a spell's name. Cast it.

Incantation captures your microphone directly, runs the audio through an offline speech recognizer (Vosk), and casts whichever Iron's Spells 'n Spellbooks spell you just said. No voice training, and the speech model installs itself on first launch.


How it works

Incantation opens your microphone itself — no voice-chat mod involved — and feeds the audio straight to a Vosk recognizer whose grammar is built from the spell names your installed mods actually register. A closed grammar's only way to say no is its [unk] token, and it will often prefer the least-bad spell name over it - so 0.10.6 adds the defences that make that safe: a match has to have been spoken long enough to plausibly be that phrase, and any spell you list in perSpellMinConfidence waits for the complete utterance and its own confidence bar before it will fire.

Casting is then gated on what you actually have equipped: a spellbook in your Curios slot, an imbued weapon you're holding, or imbued armor you're wearing. Saying the name of a spell you don't have does nothing. Servers that would rather let you cast from a spellbook held in hand can set castMode = ANY_SPELLBOOK.

Recognition runs entirely on your machine. No accounts, no telemetry, and your microphone audio is never transmitted, never recorded, never written to disk. The one time Incantation touches the network is the speech-model download on first launch; set autoDownloadModel = false and install the model yourself if you would rather it didn't.

When it listens

By default the microphone is only open while you have a spellbook, staff, imbued weapon or imbued armor — in either hand, worn, or in your Curios slot. Stow or remove it and the mic closes. No keybind involved.

That means conversation with your spellbook stowed can never cast anything, which matters because a lot of people run a voice-chat mod on the same microphone. But if you keep a spellbook in your Curios slot permanently, this is close to ALWAYS_ON in practice — so if you talk to friends mid-fight, use HOLD_KEY_AND_ITEM. Carrying a spellbook isn't on its own evidence you meant to cast; that mode requires a held key too, so speech never reaches the recognizer unless you asked.

Set gatingMode to taste:

ModeMicrophone is open
HOLD_ITEMwhile a spell focus is in your hands, worn, or in your Curios slot (default)
HOLD_KEY_AND_ITEMwhile holding the cast key and a spell focus
HOLD_KEYwhile holding the cast key
ALWAYS_ONwhenever you are in a world — fully hands-free

These gate capture, not recognition: in every mode but ALWAYS_ON the recognizer never receives the audio, and the device is closed rather than merely ignored. The mic is also released whenever the game is unfocused or paused.

The HUD's mic chip tells you which state you're in at a glance — the dot is dim when the mic is closed, lit when it's open, and pulses while it's actually hearing you, with a live level meter beside it.

Features

  • Speak any indexed spell — works with Iron's Spells, all its addons, and any mod that registers spells through Iron's API.

  • Equipped-only casting (default ON) — a spell only fires if you actually have it on you. Anything else is rejected before it leaves your client.

  • Imbued weapons and armor supported — hold an imbued sword or staff, or wear an imbued chestplate, say the spell it carries, it casts via the same mechanism as right-clicking.

  • HUD chip — corner-anchored chips showing a live mic indicator and level meter, plus last cast, recent cast history, queued spells, miss toast, the last phrase heard, and "did you mean…?" alias suggestions.

  • Vanilla advancements — voice-cast milestones (1, 10, 50, 200, 1000) and combo casts surface as standard advancement toasts.

  • Spell List screen — browse every spell the registry exposed with the exact phrase Vosk listens for, plus per-spell cast counts and school filtering.

  • Voice Codex — personal stats (top-cast spell, daily streak, median latency).

  • Test Arena — safe practice mode that records what would have cast without firing anything. Useful for tuning aliases or learning a tricky spell's pronunciation.

  • Welcome wizard on first launch — walks you through mic + model + first cast.

  • Aliases & custom phrases — bind words the model can pronounce to any spell id.

  • Play in your own language — Spanish, Russian and French speech models are one config line away (modelId), and config/voicespells/phrasebook.json is generated with every installed spell and an editable override field, so you can translate the whole spell list in one file instead of adding aliases one at a time. Your overrides survive updates, and newly installed spells are appended automatically.

    The model is only half of it. The recogniser only listens for words its model knows, so the spell phrases have to be translated too — a Russian model against English spell names hears nothing at all. The repository's contrib/ folder has a Spanish phrasebook contributed by the community, translated and ready to use. The Russian one is a blank template: 294 entries with every override empty, because the machine-translated version that used to fill it had never been spoken into a microphone, and a wrong phrase gets trusted where a blank one asks to be filled. Russian recognition therefore needs that file filled in first. /voicespells vocab tells you which of your phrases the loaded model can actually pronounce.

    German does not work yet, and not for want of a model: Iron's Spells ships no German translation, so there are no German spell names to start from. It needs a hand-written phrase pack. If you speak German and fancy writing one, please get in touch.

  • Loadout shortcuts — say one word, cast the first castable spell from a list (cooldown + mana aware).

  • Voice commands — say no to clear spells waiting in the cast queue, or yes to accept a "did you mean…?" alias suggestion (enable handsFreeConfirm first).

  • Reward speaking (server, off by default) — voice casts can come back faster, hit harder, or both: voiceCooldownPercent scales the cooldown, voiceLevelBonus adds spell levels, and the extra levels are charged at the spell's ordinary mana cost rather than the higher one. Set them per player if you want, with playerAdvantages:

    playerAdvantages = [
        "Steve=cooldown:50,level:2",   # Steve casts faster and harder
        "!Alex",                       # Alex plays by ordinary Iron's Spells rules
    ]
    

    Out of the box nothing is changed — the defaults are plain Iron's Spells. Turn on voiceVolumeScaling and the bonus has to be earned: the level your item itself would cast at — the spellbook, the imbued item, or the scroll, affinity bonus included (level 1 under FREE) — is always the floor, and how much of voiceLevelBonus a cast adds on top depends on how loudly you said it: a whisper earns none, your normal speaking voice about half, a raised voice all of it — rounded to a whole level, judged against your own calibrated speaking voice.

  • Incantation-only mode (server, off by default) — require spells to be spoken. FIRST_CAST makes a player voice-cast a spell once before they can click it, so learning the incantation unlocks it; ALWAYS means spells can only ever be spoken.

  • Server-side controls — per-player whitelist, blocklist, rate limit, broadcast-nearby, cast logging.

Requirements

  • Minecraft 1.21.1 (NeoForge 21.1.x) or 1.20.1 (Forge 47.x)
  • Iron's Spells 'n Spellbooks by iron431
  • Curios API — recommended, and an Iron's Spells dependency anyway
  • A microphone
  • No voice-chat mod required. Incantation captures the microphone itself, and coexists with Simple Voice Chat if you use one to talk to friends.

Setup

  1. Drop the Incantation jar in your mods/ folder alongside Iron's Spells.
  2. Launch the game. On first run Incantation downloads vosk-model-small-en-us-0.15 (~40 MB) into config/voicespells/ for you.
  3. Join a world, equip a spellbook (hand or Curios slot), and say a spell it carries.

Prefer to install the model yourself? Set autoDownloadModel = false, grab one from alphacephei.com/vosk/models, and unzip its contents into config/voicespells/model/ so you end up with config/voicespells/model/am/, config/voicespells/model/conf/, etc.

For tricky spell names (Traveloptics, Cataclysm, anything with unusual phonetics), map an alias in config/voicespells-client.toml:

customPhrases = [ "dark beam=traveloptics:abyssal_blast" ]

then use More… → Reload grammar now — no restart needed.

Configuration

Most settings are accessible in-game from Mods → Iron's Spells: Incantation → Config.

  • Recognition tab — gating mode, equipped-only restriction, fuzzy tolerance, substring match, dedup window, debug monitor.
  • HUD tab — corner, offset, opacity.
  • More menu — welcome wizard, Voice Codex, Diagnostics, Test Arena, reload grammar, profile export/import, calibrate mic.

Client commands: /voicespells devices lists every capture device the game can see and which one is selected — start there if the microphone looks dead.

Server settings (config/voicespells-server.toml): cast mode (CURIO_SPELLBOOK / ANY_SPELLBOOK / FREE), per-player whitelist, blocklist, rate limit, broadcast-nearby radius.

Troubleshooting

  • Nothing happens when you speak — check the gating mode first. By default the mic is only open while a spellbook, staff, imbued weapon or imbued armor is in your hands, worn, or in your Curios slot. The HUD mic dot tells you: dim means closed.
  • Chat says "Vosk model not found" (or Diagnostics shows Vosk model: FAIL) — no model under config/voicespells/model/. Recheck the layout: am/, conf/, graph/ should sit directly under that path.
  • Microphone looks dead — run /voicespells devices to see what the game can find, and set captureDevice if the default isn't the one you want.
  • Recognition feels slow — open More → Calibrate mic and say a few spell names. Or use the Diagnostics screen to verify each prerequisite.
  • Test Arena doesn't cast — by design. It records would-be casts so you can practice safely.

License

MIT.

Credits

  • Vosk — Alpha Cephei (Apache 2.0)
  • Iron's Spells 'n Spellbooks — iron431
  • Spanish phrasebook — NeoTargetStudios (Spidercat0926), who translated close to 300 spell names across nine spell mods and helped with the mod itself

Галерея

Последние версии

Все версии →
release

Incantation 0.10.6 for Forge 1.20.1

0.10.6
8 сент. 2026 г.796Minecraft: 1.20.1forge
Скачать
Что нового
# 0.10.6 Everything since 0.10.5. Two bugs from the CurseForge comments and one found on the way to the second. The first two are the same unpleasant kind: the mod heard you and then quietly did the wrong thing about it — once by refusing a repeat, once by casting on a guess it had not finished checking. --- ## Fixed **Some spells could only be cast once.** Say a spell, and saying it again did nothing — no cast, and nothing in the Live Monitor either, as though the microphone had stopped working. Saying a *different* spell first brought it back, and everything looked fine in the Test Arena. Three symptoms, one cause. The mod counts utterances so it can tell "the recogniser is still chewing on the word I just said" apart from "the player said it again", and it only counted a new one when the recogniser produced a running guess before its final answer. It does not always produce one. With a short spell name the speech engine often keeps its running guess empty and commits everything at the end, so the mod saw a single answer with nothing before it. Two of those in a row left the counter frozen, and from then on every repeat of that spell was treated as an echo of the first — for as long as you kept saying it. Saying a different spell reset the comparison, which is the workaround the reporter found on their own. An utterance is finished when the recogniser gives its final answer, so anything after that is the next one. That is now what the mod counts, and a spell can be cast as many times in a row as you can say it. The silence was a second bug on top of the first. A suppressed repeat wrote nothing anywhere, so there was no way to tell it apart from a dead microphone — which is exactly how it was reported. The Live Monitor now shows `(repeat too soon)` for a repeat that lands inside the echo window, one line per utterance. The Test Arena looked healthy throughout because it stops at "a menu is open" before it ever reaches the echo check. Thanks to **tomasek1a** for a report that described all three symptoms precisely enough to find the cause from. **Invisibility could be cast from words that sound nothing like it.** The recogniser is only ever allowed to hear spell names, so when it hears something else it picks the closest name it knows — and a long name is the natural magnet, because it can absorb the most audio. The mod then cast on the recogniser's *running guess*, before the final answer, and that path had no check on it at all: the confidence setting only ever applied to the final result. Two things changed. Every match now has to have been *spoken* for long enough to plausibly be that phrase — 25 ms per letter by default (`minMsPerLetter`; "heal" 100 ms, "invisibility" 300 ms), measured from the recogniser's own word timings. Real spell names measure roughly 50-120 ms per letter; short one-syllable names like "shield" are the tightest, around 40, which is why the default sits well under that rather than close to it. A running guess that comes up short is not cast — the final answer decides, and nothing is held waiting for more audio. Only when the completed word still comes up short does it get rejected, shown as `(too short 150ms < 300ms)` in the Live Monitor. And `perSpellMinConfidence` now has teeth: a spell listed there never casts from a running guess. It waits for the complete utterance and is judged at its own threshold, so `irons_spellbooks:invisibility=0.7` is the knob for a spell that keeps getting force-fitted. That costs a listed spell the wait for its final answer — about half a second after you stop speaking, and it waits for you to stop, so say a listed spell on its own rather than in the middle of a sentence. Everything not listed still casts the instant it is recognised. Reported against Invisibility — thank you. **The recogniser drops the first word, and the mod now recognises what is left.** Say "fireball" and the speech engine sometimes reports only `ball`; "star fall" comes back as `fall`, "heat surge" as `surge`. Those casts simply did not happen — the mod looked for a spell called "ball", found none, and said nothing. Worse, `surge` was close enough in sound to Scorch that it cast Scorch instead, and `hole` had been quietly reaching Heal the same way for as long as both have existed. The answer was always sitting in the list of phrases the recogniser was told to listen for. If what it heard is the end of exactly one of those phrases, that is the spell you meant, and it now casts. Only the end of a phrase, and only when exactly one matches: `bolt` still does nothing, because Fire Bolt, Guiding Bolt and Lightning Bolt all end that way and guessing between them would be worse than asking you to say it again. **Calibrating your voice works on a quiet microphone.** The microphone check set its noise gate from an average that included your own speech, which estimates the room badly — and on a quiet setup it landed *below* the room's own hum. Room noise then crossed the gate, got counted as words, and dragged the measurement down until the check refused its own result every single time. The player it happened to could never finish calibrating, so the whole whisper-to-shout range was out of reach for them. It now measures the room first and judges both the gate and the result against that, and it will not raise the gate past the words it just heard you say. **Sound-alike matching now requires the two words to be about the same length.** Found while chasing that report, and not its cause — across every Iron's Spells phrase nothing shares Invisibility's sound-alike code, so that path could not have produced it — but a real weakness on its own. The comparison that turns "fire boltz" back into "fire bolt" reduces any word to four characters: a first letter and three consonant sounds. For a short name that is most of the word; for a long one it is almost none of it, and everything past the fourth character was simply not compared. Genuine near-misses are a character or two apart and still match; a word half the length of the spell name no longer does. **Voice casts were missing the levels your affinity items give you.** Iron's Spells adds spell levels for the affinity gear you are wearing — a fire affinity ring casts your Fireball a level above the one inscribed on your spellbook — and clicking has always counted them. Speaking did not. Fireball inscribed at level 3, with that ring on, went off at 4 when you clicked it and at 3 when you said it, so on a default server a spoken cast was quietly *weaker* than the same click: the one thing the voice level system is supposed to guarantee never happens. The mod now works the level out exactly the way a click does, so your affinity bonus — and any change an addon mod makes to a spell's level — counts for a spoken cast too. That level is the floor everything else builds on: `voiceLevelBonus` adds on top of it, and the mana you are charged is what the same click would have charged, not a point more. **Voice volume scaling now earns the voice level bonus instead of shrinking your spellbook.** `voiceVolumeScaling` used to promise "whisper for level 1, shout for your spellbook's level," and in practice every spoken cast came out at level 1 however loudly you said it, because the volume was being read after you had already stopped talking. It now means something better. The level your item itself would cast at — the spellbook, the imbued item or the scroll, affinity bonus included (level 1 under FREE) — is always the floor; a voice cast never lands below it. `voiceLevelBonus` (or a player's `playerAdvantages` level) is the most a spoken cast can add on top, and with `voiceVolumeScaling` on, how much of it you earn depends on how loudly you said the spell: your normal speaking voice earns about half, a raised voice all of it, a whisper none. The bonus always lands on a whole level, never a fraction of one. Loudness is judged against your own voice, one spoken word at a time: run Config → More… → Calibrate mic once — say four or five spell names at your normal volume, with a short pause between them — and the mod remembers how loud one word from you sounds. It used to compare a single spoken word against the loudest stretch of the whole five-second recording, which sits above any ordinary word however evenly you spoke, so normal speech was scored as a whisper and most of the bonus could not be earned at all. It now measures the words in the recording the same way a cast measures the one you just said. Until you calibrate, a voice cast earns the middle of the bonus rather than none of it. The extra levels are still charged at the spell's ordinary mana cost. A spell repeated with the quick-recast key repeats at the loudness it was originally said, and a queued spell fires at the loudness of the words that queued it. With the option off, every spoken cast gets the full bonus, as before. --- ## Also **Two server options that were never announced.** They went into 0.10.5 without a changelog line, which is why people have been asking for them in the comments since: - `incantationOnly` — `FIRST_CAST` makes each spell voice-cast once before it can be clicked, so learning the incantation unlocks it; `ALWAYS` means spells can only ever be spoken. Off by default. Players without the mod on their client are exempt rather than locked out. - `voiceVolumeScaling` — scales the voice level bonus by how loudly you speak, as described above. Off by default, and it does nothing unless `voiceLevelBonus` (or a `playerAdvantages` level) is above 0. Both live in `config/voicespells-server.toml`. The store pages said Iron's Spells 'n Spellbooks was a **required** dependency. It never has been: the mod loads and behaves sanely without it, finds no spells, and casts nothing, which is the designed outcome and the reason addon spell mods work with no code of their own. Both pages now say optional, so a launcher will stop insisting on it.
release

Incantation 0.10.6 for NeoForge 1.21.1

0.10.6
8 сент. 2026 г.1,4 тыс.Minecraft: 1.21.1neoforge
Скачать
Что нового
# 0.10.6 Everything since 0.10.5. Two bugs from the CurseForge comments and one found on the way to the second. The first two are the same unpleasant kind: the mod heard you and then quietly did the wrong thing about it — once by refusing a repeat, once by casting on a guess it had not finished checking. --- ## Fixed **Some spells could only be cast once.** Say a spell, and saying it again did nothing — no cast, and nothing in the Live Monitor either, as though the microphone had stopped working. Saying a *different* spell first brought it back, and everything looked fine in the Test Arena. Three symptoms, one cause. The mod counts utterances so it can tell "the recogniser is still chewing on the word I just said" apart from "the player said it again", and it only counted a new one when the recogniser produced a running guess before its final answer. It does not always produce one. With a short spell name the speech engine often keeps its running guess empty and commits everything at the end, so the mod saw a single answer with nothing before it. Two of those in a row left the counter frozen, and from then on every repeat of that spell was treated as an echo of the first — for as long as you kept saying it. Saying a different spell reset the comparison, which is the workaround the reporter found on their own. An utterance is finished when the recogniser gives its final answer, so anything after that is the next one. That is now what the mod counts, and a spell can be cast as many times in a row as you can say it. The silence was a second bug on top of the first. A suppressed repeat wrote nothing anywhere, so there was no way to tell it apart from a dead microphone — which is exactly how it was reported. The Live Monitor now shows `(repeat too soon)` for a repeat that lands inside the echo window, one line per utterance. The Test Arena looked healthy throughout because it stops at "a menu is open" before it ever reaches the echo check. Thanks to **tomasek1a** for a report that described all three symptoms precisely enough to find the cause from. **Invisibility could be cast from words that sound nothing like it.** The recogniser is only ever allowed to hear spell names, so when it hears something else it picks the closest name it knows — and a long name is the natural magnet, because it can absorb the most audio. The mod then cast on the recogniser's *running guess*, before the final answer, and that path had no check on it at all: the confidence setting only ever applied to the final result. Two things changed. Every match now has to have been *spoken* for long enough to plausibly be that phrase — 25 ms per letter by default (`minMsPerLetter`; "heal" 100 ms, "invisibility" 300 ms), measured from the recogniser's own word timings. Real spell names measure roughly 50-120 ms per letter; short one-syllable names like "shield" are the tightest, around 40, which is why the default sits well under that rather than close to it. A running guess that comes up short is not cast — the final answer decides, and nothing is held waiting for more audio. Only when the completed word still comes up short does it get rejected, shown as `(too short 150ms < 300ms)` in the Live Monitor. And `perSpellMinConfidence` now has teeth: a spell listed there never casts from a running guess. It waits for the complete utterance and is judged at its own threshold, so `irons_spellbooks:invisibility=0.7` is the knob for a spell that keeps getting force-fitted. That costs a listed spell the wait for its final answer — about half a second after you stop speaking, and it waits for you to stop, so say a listed spell on its own rather than in the middle of a sentence. Everything not listed still casts the instant it is recognised. Reported against Invisibility — thank you. **The recogniser drops the first word, and the mod now recognises what is left.** Say "fireball" and the speech engine sometimes reports only `ball`; "star fall" comes back as `fall`, "heat surge" as `surge`. Those casts simply did not happen — the mod looked for a spell called "ball", found none, and said nothing. Worse, `surge` was close enough in sound to Scorch that it cast Scorch instead, and `hole` had been quietly reaching Heal the same way for as long as both have existed. The answer was always sitting in the list of phrases the recogniser was told to listen for. If what it heard is the end of exactly one of those phrases, that is the spell you meant, and it now casts. Only the end of a phrase, and only when exactly one matches: `bolt` still does nothing, because Fire Bolt, Guiding Bolt and Lightning Bolt all end that way and guessing between them would be worse than asking you to say it again. **Calibrating your voice works on a quiet microphone.** The microphone check set its noise gate from an average that included your own speech, which estimates the room badly — and on a quiet setup it landed *below* the room's own hum. Room noise then crossed the gate, got counted as words, and dragged the measurement down until the check refused its own result every single time. The player it happened to could never finish calibrating, so the whole whisper-to-shout range was out of reach for them. It now measures the room first and judges both the gate and the result against that, and it will not raise the gate past the words it just heard you say. **Sound-alike matching now requires the two words to be about the same length.** Found while chasing that report, and not its cause — across every Iron's Spells phrase nothing shares Invisibility's sound-alike code, so that path could not have produced it — but a real weakness on its own. The comparison that turns "fire boltz" back into "fire bolt" reduces any word to four characters: a first letter and three consonant sounds. For a short name that is most of the word; for a long one it is almost none of it, and everything past the fourth character was simply not compared. Genuine near-misses are a character or two apart and still match; a word half the length of the spell name no longer does. **Voice casts were missing the levels your affinity items give you.** Iron's Spells adds spell levels for the affinity gear you are wearing — a fire affinity ring casts your Fireball a level above the one inscribed on your spellbook — and clicking has always counted them. Speaking did not. Fireball inscribed at level 3, with that ring on, went off at 4 when you clicked it and at 3 when you said it, so on a default server a spoken cast was quietly *weaker* than the same click: the one thing the voice level system is supposed to guarantee never happens. The mod now works the level out exactly the way a click does, so your affinity bonus — and any change an addon mod makes to a spell's level — counts for a spoken cast too. That level is the floor everything else builds on: `voiceLevelBonus` adds on top of it, and the mana you are charged is what the same click would have charged, not a point more. **Voice volume scaling now earns the voice level bonus instead of shrinking your spellbook.** `voiceVolumeScaling` used to promise "whisper for level 1, shout for your spellbook's level," and in practice every spoken cast came out at level 1 however loudly you said it, because the volume was being read after you had already stopped talking. It now means something better. The level your item itself would cast at — the spellbook, the imbued item or the scroll, affinity bonus included (level 1 under FREE) — is always the floor; a voice cast never lands below it. `voiceLevelBonus` (or a player's `playerAdvantages` level) is the most a spoken cast can add on top, and with `voiceVolumeScaling` on, how much of it you earn depends on how loudly you said the spell: your normal speaking voice earns about half, a raised voice all of it, a whisper none. The bonus always lands on a whole level, never a fraction of one. Loudness is judged against your own voice, one spoken word at a time: run Config → More… → Calibrate mic once — say four or five spell names at your normal volume, with a short pause between them — and the mod remembers how loud one word from you sounds. It used to compare a single spoken word against the loudest stretch of the whole five-second recording, which sits above any ordinary word however evenly you spoke, so normal speech was scored as a whisper and most of the bonus could not be earned at all. It now measures the words in the recording the same way a cast measures the one you just said. Until you calibrate, a voice cast earns the middle of the bonus rather than none of it. The extra levels are still charged at the spell's ordinary mana cost. A spell repeated with the quick-recast key repeats at the loudness it was originally said, and a queued spell fires at the loudness of the words that queued it. With the option off, every spoken cast gets the full bonus, as before. --- ## Also **Two server options that were never announced.** They went into 0.10.5 without a changelog line, which is why people have been asking for them in the comments since: - `incantationOnly` — `FIRST_CAST` makes each spell voice-cast once before it can be clicked, so learning the incantation unlocks it; `ALWAYS` means spells can only ever be spoken. Off by default. Players without the mod on their client are exempt rather than locked out. - `voiceVolumeScaling` — scales the voice level bonus by how loudly you speak, as described above. Off by default, and it does nothing unless `voiceLevelBonus` (or a `playerAdvantages` level) is above 0. Both live in `config/voicespells-server.toml`. The store pages said Iron's Spells 'n Spellbooks was a **required** dependency. It never has been: the mod loads and behaves sanely without it, finds no spells, and casts nothing, which is the designed outcome and the reason addon spell mods work with no code of their own. Both pages now say optional, so a launcher will stop insisting on it.
release

Incantation 0.10.5 for Forge 1.20.1

0.10.5
4 сент. 2026 г.121Minecraft: 1.20.1forge
Скачать
Что нового
# 0.10.5 Everything since 0.10.4. Two fixes people reported, and then the big one: the mod speaks Russian now, and every other language becomes a file somebody can hand back rather than a fork of the source. --- ## Fixed **0.10.4 crashed on startup on Forge 1.20.1.** If you are on Forge, 0.10.4 crashed the moment the game tried to load the mod, and going back to 0.10.3 made it stop — so it looked like something 0.10.4 changed. Nothing in the code did. The Forge build produces two jars with the same name, one that only runs inside a development environment and one that runs everywhere, and the release tooling uploaded the wrong one. 0.10.3 had been uploaded by hand, which is why it was fine. The tooling now picks the right jar, and the jar is checked before it goes out. Thanks to the person who reported it with full logs — the "i9-13900KF" theory in that report is not it; your CPU is fine. NeoForge was never affected. **Imbued armor never cast.** Iron's Spells lets you imbue a chestplate with a spell, and saying that spell did nothing — and if a worn chestplate was your only spell source, the microphone did not even open under the default "Hold item" setting. The mod checked your hands and your Curios slot for spell-carrying items and never looked at what you were wearing. It does now, for all four armor slots, and casts from armor the same way Iron's Spells itself does. One deliberate detail: wearing an ordinary mage chestplate with nothing imbued in it does not count as holding a spell focus. Every Iron's Spells chestplate carries an empty spell slot internally, and treating that as "holding a spellbook" would have left the microphone open for as long as the armor was on. Reported on CurseForge — thank you. **The recognizer no longer reaches into the game from its own thread.** Speech recognition runs on a thread of its own, and a handful of the checks it made right after hearing a phrase — is a hostile nearby, is a menu open, is that spell on cooldown, can you afford it — read the game world and Iron's Spells' cooldown tables directly from that thread. Minecraft and Iron's Spells both assume only the game thread does that. Most of the time it worked; when it didn't, the result could be anything from a cast that silently never happened to an error on the game thread. Every one of those checks now reads a snapshot the game thread refreshes each tick, and everything that changes game state after a recognized phrase happens on the game thread. Two smaller things fell out of the same pass: leaving a world now resets the voice state properly, so the last-cast display and the recognition history no longer carry into the next world, and the per-player cast streak the server tracks is dropped at logout instead of growing for the life of the server. The model downloader also refuses an archive that claims, or expands to, more than 4 GB rather than filling the disk. --- ## The interface can be translated Until this release the mod had 47 translatable strings and around 350 English sentences compiled into the Java. A translator had no file to work from — the only way to change a button label was to edit the source and rebuild. Every user-facing string is now a lang key: all of the config screens, the HUD, the guide, the welcome wizard, the credits, the spell list, the test arena, the live monitor, and both `/voicespells` command trees. That is **486 keys**, and every one of them is referenced by the code — no reference without a string, no string without a reference. Lines that carry a number take a placeholder instead of being glued together in Java, which is what made the command output translatable at all. ## Russian `ru_ru.json` ships in the jar. Set your game language to Русский and the whole interface follows. It is machine-produced and has not yet been reviewed by a native speaker, so if something reads oddly, it probably is odd — say so and it gets fixed. Seven values stay in English on purpose: brand names like Iron's Spells and Curios API, and literal config keys such as `castMode=`, which are not words to translate. ## The diagnostics screen too Worth calling out separately, because it is the screen you open exactly when something has gone wrong. Leaving it in English would have defeated the point of translating the rest. All 46 checks — names and one-line reasons — now come from the lang file. Two things stay as machine values on purpose: the microphone state and the model state. The code compares them against fixed strings to decide whether the mic is healthy, so they are translated at the point they are shown to you rather than at the point they are set. ## The Russian phrasebook is now blank on purpose `contrib/phrasebook-ru.json` used to arrive with 106 entries copied from Iron's Spells' own Russian translation. They have been removed, and the file is 294 blank overrides. Those are two different things that look like one. A lang file translates the spell name **written on your screen**. A phrasebook holds what you **say out loud**. A written name can be a phrase nobody would speak that way, or can contain a word the speech model has no entry for — and when that happens the phrase is dropped from the grammar and the spell simply never fires, with nothing said anywhere. Half a file of plausible entries that had never been spoken into a microphone was worse than an empty one: a blank entry asks to be filled, a wrong one gets trusted. `/voicespells vocab` tells you which of your phrases the loaded model can actually pronounce, and it takes seconds. ## For anyone who wants to translate it Copy `assets/voicespells/lang/en_us.json` out of the jar, rename it to your locale, translate the values and leave the keys alone. [`contrib/README.md`](contrib/README.md) has the three things that will bite you — what `%s` and `§` mean, and why the guide screens need each paragraph re-wrapped rather than translated line by line. Thanks again to **NeoTargetStudios (Spidercat0926)** for the Spanish phrasebook and for a hand with the mod itself.
release

Incantation 0.10.5 for NeoForge 1.21.1

0.10.5
4 сент. 2026 г.150Minecraft: 1.21.1neoforge
Скачать
Что нового
# 0.10.5 Everything since 0.10.4. Two fixes people reported, and then the big one: the mod speaks Russian now, and every other language becomes a file somebody can hand back rather than a fork of the source. --- ## Fixed **0.10.4 crashed on startup on Forge 1.20.1.** If you are on Forge, 0.10.4 crashed the moment the game tried to load the mod, and going back to 0.10.3 made it stop — so it looked like something 0.10.4 changed. Nothing in the code did. The Forge build produces two jars with the same name, one that only runs inside a development environment and one that runs everywhere, and the release tooling uploaded the wrong one. 0.10.3 had been uploaded by hand, which is why it was fine. The tooling now picks the right jar, and the jar is checked before it goes out. Thanks to the person who reported it with full logs — the "i9-13900KF" theory in that report is not it; your CPU is fine. NeoForge was never affected. **Imbued armor never cast.** Iron's Spells lets you imbue a chestplate with a spell, and saying that spell did nothing — and if a worn chestplate was your only spell source, the microphone did not even open under the default "Hold item" setting. The mod checked your hands and your Curios slot for spell-carrying items and never looked at what you were wearing. It does now, for all four armor slots, and casts from armor the same way Iron's Spells itself does. One deliberate detail: wearing an ordinary mage chestplate with nothing imbued in it does not count as holding a spell focus. Every Iron's Spells chestplate carries an empty spell slot internally, and treating that as "holding a spellbook" would have left the microphone open for as long as the armor was on. Reported on CurseForge — thank you. **The recognizer no longer reaches into the game from its own thread.** Speech recognition runs on a thread of its own, and a handful of the checks it made right after hearing a phrase — is a hostile nearby, is a menu open, is that spell on cooldown, can you afford it — read the game world and Iron's Spells' cooldown tables directly from that thread. Minecraft and Iron's Spells both assume only the game thread does that. Most of the time it worked; when it didn't, the result could be anything from a cast that silently never happened to an error on the game thread. Every one of those checks now reads a snapshot the game thread refreshes each tick, and everything that changes game state after a recognized phrase happens on the game thread. Two smaller things fell out of the same pass: leaving a world now resets the voice state properly, so the last-cast display and the recognition history no longer carry into the next world, and the per-player cast streak the server tracks is dropped at logout instead of growing for the life of the server. The model downloader also refuses an archive that claims, or expands to, more than 4 GB rather than filling the disk. --- ## The interface can be translated Until this release the mod had 47 translatable strings and around 350 English sentences compiled into the Java. A translator had no file to work from — the only way to change a button label was to edit the source and rebuild. Every user-facing string is now a lang key: all of the config screens, the HUD, the guide, the welcome wizard, the credits, the spell list, the test arena, the live monitor, and both `/voicespells` command trees. That is **486 keys**, and every one of them is referenced by the code — no reference without a string, no string without a reference. Lines that carry a number take a placeholder instead of being glued together in Java, which is what made the command output translatable at all. ## Russian `ru_ru.json` ships in the jar. Set your game language to Русский and the whole interface follows. It is machine-produced and has not yet been reviewed by a native speaker, so if something reads oddly, it probably is odd — say so and it gets fixed. Seven values stay in English on purpose: brand names like Iron's Spells and Curios API, and literal config keys such as `castMode=`, which are not words to translate. ## The diagnostics screen too Worth calling out separately, because it is the screen you open exactly when something has gone wrong. Leaving it in English would have defeated the point of translating the rest. All 46 checks — names and one-line reasons — now come from the lang file. Two things stay as machine values on purpose: the microphone state and the model state. The code compares them against fixed strings to decide whether the mic is healthy, so they are translated at the point they are shown to you rather than at the point they are set. ## The Russian phrasebook is now blank on purpose `contrib/phrasebook-ru.json` used to arrive with 106 entries copied from Iron's Spells' own Russian translation. They have been removed, and the file is 294 blank overrides. Those are two different things that look like one. A lang file translates the spell name **written on your screen**. A phrasebook holds what you **say out loud**. A written name can be a phrase nobody would speak that way, or can contain a word the speech model has no entry for — and when that happens the phrase is dropped from the grammar and the spell simply never fires, with nothing said anywhere. Half a file of plausible entries that had never been spoken into a microphone was worse than an empty one: a blank entry asks to be filled, a wrong one gets trusted. `/voicespells vocab` tells you which of your phrases the loaded model can actually pronounce, and it takes seconds. ## For anyone who wants to translate it Copy `assets/voicespells/lang/en_us.json` out of the jar, rename it to your locale, translate the values and leave the keys alone. [`contrib/README.md`](contrib/README.md) has the three things that will bite you — what `%s` and `§` mean, and why the guide screens need each paragraph re-wrapped rather than translated line by line. Thanks again to **NeoTargetStudios (Spidercat0926)** for the Spanish phrasebook and for a hand with the mod itself.
release

Incantation 0.10.4 for NeoForge 1.21.1

0.10.4+1.21.1-neoforge
22 авг. 2026 г.264Minecraft: 1.21.1neoforge
Скачать
Что нового
# 0.10.4 Everything since 0.10.3. This release is mostly repair. Several settings did nothing, one of them blocked casting entirely whenever it was switched on, and the HUD had been drawing text with no chip behind it for anyone who had not hand-edited their config. Those are fixed. There is also the beginning of proper support for playing in a language other than English. --- ## Fixed **Combat only blocked every cast.** Turning it on stopped voice casting completely — even while something was hitting you — and it said nothing when it did, so it looked like a dead microphone. It was reading a value the client is never given. It now works from damage you have actually taken and from hostiles actually near you, so opening a fight with a spell works. **Blocked casts are no longer silent.** Combat-only, AFK and sneak-to-cast all used to reject without a word. If a gate stops a cast, the HUD now says which one. **The cast queue could not hold more than one spell.** A queued spell's short life was counted from the moment you said it rather than from when the spell in front of it finished, so naming a second spell during a long cast always lost it. Queue sizes above 1 do something now. **Pause when AFK did not pause anything** — the microphone stayed open and kept listening. It now releases the device. It also treated standing still as being away, so mining, fishing or holding a position in a farm counted as AFK; looking around, swinging and using items now count as activity. **Hands-free confirm's "yes" did nothing.** It now accepts the "did you mean…?" alias suggestion, which is what its description always claimed. **The config screen crashed the game on Forge 1.20.1.** Opening it was fatal. It has been unopenable on that loader for as long as the current UI has existed. **Selecting a different speech model did nothing** for anyone who had installed the mod before the model list existed — you were kept on English no matter what you chose. Relatedly, pointing `modelPath` at an empty folder downloaded the *English* model into it rather than the one you wanted. **Voice-cast advancements could not be earned**, because cast totals were never saved. Streak milestones were also taken on trust from the client; the server counts them itself now. **Assorted:** text that ran off the edge of panels in a dozen places, the device picker eating the words "System default", the Voice Codex drawing its last row outside its own frame, and a leaked network connection on every failed model download. --- ## Playing in another language If you load a non-English speech model today, nothing happens at all — no error, no warning. That is not a broken model: spell phrases are English words, and the recogniser silently discards any phrase containing a word its model does not know. Against a Russian model, that is every phrase. The mod now **tells you** instead of failing in silence. It counts the phrases the loaded model cannot pronounce, warns in the log, and puts a line in chat when you join a world. `/voicespells vocab` lists the specifics. Translating the spell list is still what makes it work, and there are now two head starts in the repository: - **Spanish** — 293 of 294 phrases, contributed by **NeoTargetStudios (Spidercat0926)**, including 188 spells from addon mods that ship no translations in any language. - **Russian** — 106 phrases filled in automatically from Iron's Spells' own Russian translation, leaving the addon spells for a contributor. Neither is bundled in the jar yet; both live in `contrib/` and can be copied into `config/voicespells/phrasebook.json` by hand. A tool for generating the same head start for any language Iron's Spells translates is in `tools/`. **Spell names now appear in your own language** on every screen and on the HUD. --- ## Removed **Voice hotbar select.** It added nine phrases to the recogniser's vocabulary, and every extra phrase is another thing a spell name can be misheard as — a real accuracy cost for a feature that only changed a selection. It could not work at all on a non-English model, and its own settings description told you to say "slot one" while the code was listening for "spell one". --- ## Interface The screens are built from Minecraft's own widgets and textures now rather than hand-drawn imitations, so a GUI resource pack reaches them. - **HUD chips have a background.** The queue chip, miss toast, last-heard chip and alias prompt have all been bare text lying on the world unless you had hand-edited your colours. - **The cooldown indicator is out of the middle of the screen.** It used to sit under the crosshair; it is now a chip in the HUD corner you chose, with an on/off switch and a vertical offset on the HUD tab. - **New Credits screen**, with the libraries the mod uses and their licences. - Tabs, scrollbars, list rows and buttons are vanilla; text no longer overflows its panels. --- ## Known limitations Said plainly so nobody has to discover them: - **French and Russian are unproven.** Iron's Spells translates most of its spell names into both, but nobody has yet spoken them into a matching speech model with this mod. - **German cannot work yet.** Iron's Spells ships no German translation, so there are no German spell names to work from. It needs a hand-written phrase pack, not a different model. - **Addon spells have no translations in any language**, so on a modpack a non-English player depends on a hand-written phrasebook. - **Pause when AFK still works from movement and input**, not presence. Sitting still and silent past the timeout will still pause it. - **Sneak to cast gives no feedback** beyond the miss toast, and holding sneak while mounted dismounts you — that is vanilla behaviour, not something the mod can change.
release

Iron's Spells: Incantation 0.10.3

0.10.3
13 авг. 2026 г.216Minecraft: 1.20.1forge
Скачать
Что нового
# Incantation 0.10.3 — the things that were quietly not working A long bug-hunting pass over the whole mod. Most of what follows was **silently** broken: no crash, no error, nothing in the log — features that simply did nothing while looking like they worked. If you are on 1.21.1, the first item alone is worth updating for. ## Your settings actually save now (1.21.1) On NeoForge, **nothing the config screen wrote ever reached the disk.** Not the HUD corner, the offsets, the opacity, the theme, the recognition tuning — and not aliases you added, profiles you imported, or noise-gate calibration either. It behaved perfectly all session, which is why it went unnoticed for so long. Everything came back to defaults on the next launch. Forge 1.20.1 was never affected. ## Trigger words no longer switch casting off If you set a **trigger word** — say, `cast`, so only "cast fireball" fires — voice casting stopped working entirely. Not for that word: for everything. The recogniser can only hear words it has been given, and the trigger word was never added to its vocabulary, so the check for it could never pass. No log line, no "miss" on the HUD. It just went quiet, and the only way back was clearing the setting. Trigger words that are *also* part of a spell's name now work too, which matters because the config file's own example suggests `summon` — and that used to break every Summon spell. ## Your stats are no longer at risk A single unreadable read of `stats.dat` — an antivirus lock, a cloud-sync hiccup — used to be enough to wipe your lifetime totals, unlocked themes and codex history. The failure was logged and then the next save wrote zeros over the real file. Stats are now written to a temporary file and moved into place, so an interrupted save cannot leave a half-written file behind, and a file that cannot be read is preserved rather than overwritten. ## Scrolls are consumed when you voice-cast them **A balance fix, and it is a nerf.** Voice-casting from a scroll was not using it up, so a single-use item could be cast from indefinitely. Right-clicking always consumed it correctly; only voice casting was wrong. ## Casting now respects what you are holding Spells could be voice-cast from a spellbook, imbued weapon or scroll sitting **anywhere in your hotbar**, including in the strictest cast mode. It now requires the item in your main hand or off hand, which is what the settings describe and what right-clicking has always required. ## Things that had never worked once - **The cooldown indicator** under the crosshair. It had never drawn, on any version. - **The Test Arena, the Live Monitor, the first-run mic check and auto-calibrate** all opened your microphone and then threw away every frame. Auto-calibrate would tell you it heard nothing after five seconds of talking — and then overwrite your noise-gate setting with a worse one. - **The HUD in the top-right or bottom-right corner.** The whole thing rendered off the edge of the screen. - **`/voicespells diag`** reported "No voice casts logged this session" on any default server, while casts were plainly happening. - **Diagnostics** reported `Vosk model — FAIL` on a perfectly healthy install, because it was looking in the wrong directory. ## Forge 1.20.1: casting on servers without the mod Forge clients could not voice-cast on a server that has Iron's Spells but not Incantation. The fallback path that NeoForge used was assumed impossible on 1.20.1; it was not. Spells were being silently dropped. ## Also fixed - A long chat message with the rank tag enabled could exceed the chat limit and **disconnect you**. - A failed speech-model load spawned loader threads about ten times a second, forever. - An interrupted model download left a half-extracted folder that looked valid, so it never retried and recognition stayed dead across restarts. - Turning **Only owned spells** off left the recogniser still restricted to whatever you had equipped when you turned it on. - Loadouts skipped their remaining spells if the first one was not equipped, and could drop out of the recogniser's vocabulary entirely. - The leaderboard behind `/voicespells top` no longer trusts a number sent by the client. - Cancelling the config screen no longer leaves a previewed theme applied. - The Diagnostics list no longer appears frozen when scrolling back up. - `[hud] opacity` now affects the cast toast, which it never did. - Removed `/voicespells rank`, which printed no rank, and the server-side `/voicespells reload`, which reloaded nothing and shadowed the client command that does.
release

Iron's Spells: Incantation 0.10.3

0.10.3
13 авг. 2026 г.303Minecraft: 1.21.1neoforge
Скачать
Что нового
# Incantation 0.10.3 — the things that were quietly not working A long bug-hunting pass over the whole mod. Most of what follows was **silently** broken: no crash, no error, nothing in the log — features that simply did nothing while looking like they worked. If you are on 1.21.1, the first item alone is worth updating for. ## Your settings actually save now (1.21.1) On NeoForge, **nothing the config screen wrote ever reached the disk.** Not the HUD corner, the offsets, the opacity, the theme, the recognition tuning — and not aliases you added, profiles you imported, or noise-gate calibration either. It behaved perfectly all session, which is why it went unnoticed for so long. Everything came back to defaults on the next launch. Forge 1.20.1 was never affected. ## Trigger words no longer switch casting off If you set a **trigger word** — say, `cast`, so only "cast fireball" fires — voice casting stopped working entirely. Not for that word: for everything. The recogniser can only hear words it has been given, and the trigger word was never added to its vocabulary, so the check for it could never pass. No log line, no "miss" on the HUD. It just went quiet, and the only way back was clearing the setting. Trigger words that are *also* part of a spell's name now work too, which matters because the config file's own example suggests `summon` — and that used to break every Summon spell. ## Your stats are no longer at risk A single unreadable read of `stats.dat` — an antivirus lock, a cloud-sync hiccup — used to be enough to wipe your lifetime totals, unlocked themes and codex history. The failure was logged and then the next save wrote zeros over the real file. Stats are now written to a temporary file and moved into place, so an interrupted save cannot leave a half-written file behind, and a file that cannot be read is preserved rather than overwritten. ## Scrolls are consumed when you voice-cast them **A balance fix, and it is a nerf.** Voice-casting from a scroll was not using it up, so a single-use item could be cast from indefinitely. Right-clicking always consumed it correctly; only voice casting was wrong. ## Casting now respects what you are holding Spells could be voice-cast from a spellbook, imbued weapon or scroll sitting **anywhere in your hotbar**, including in the strictest cast mode. It now requires the item in your main hand or off hand, which is what the settings describe and what right-clicking has always required. ## Things that had never worked once - **The cooldown indicator** under the crosshair. It had never drawn, on any version. - **The Test Arena, the Live Monitor, the first-run mic check and auto-calibrate** all opened your microphone and then threw away every frame. Auto-calibrate would tell you it heard nothing after five seconds of talking — and then overwrite your noise-gate setting with a worse one. - **The HUD in the top-right or bottom-right corner.** The whole thing rendered off the edge of the screen. - **`/voicespells diag`** reported "No voice casts logged this session" on any default server, while casts were plainly happening. - **Diagnostics** reported `Vosk model — FAIL` on a perfectly healthy install, because it was looking in the wrong directory. ## Forge 1.20.1: casting on servers without the mod Forge clients could not voice-cast on a server that has Iron's Spells but not Incantation. The fallback path that NeoForge used was assumed impossible on 1.20.1; it was not. Spells were being silently dropped. ## Also fixed - A long chat message with the rank tag enabled could exceed the chat limit and **disconnect you**. - A failed speech-model load spawned loader threads about ten times a second, forever. - An interrupted model download left a half-extracted folder that looked valid, so it never retried and recognition stayed dead across restarts. - Turning **Only owned spells** off left the recogniser still restricted to whatever you had equipped when you turned it on. - Loadouts skipped their remaining spells if the first one was not equipped, and could drop out of the recogniser's vocabulary entirely. - The leaderboard behind `/voicespells top` no longer trusts a number sent by the client. - Cancelling the config screen no longer leaves a previewed theme applied. - The Diagnostics list no longer appears frozen when scrolling back up. - `[hud] opacity` now affects the cast toast, which it never did. - Removed `/voicespells rank`, which printed no rank, and the server-side `/voicespells reload`, which reloaded nothing and shadowed the client command that does.
release

Iron's Spells: Incantation 0.10.2

0.10.2
12 авг. 2026 г.44Minecraft: 1.21.1neoforge
Скачать
Что нового
## Servers stop turning players away Mostly server-side fixes, and two of them matter whether or not you noticed anything was wrong. ### Your server no longer requires the mod on clients A server running Incantation was rejecting **every player who did not also have it installed** — an "Incompatible" screen on NeoForge, a bare "Connection closed - mismatched mod channel list" on Forge. It also advertised itself as incompatible in the multiplayer list, so people saw a red X before they even tried. Nothing this mod sends is client-bound, so that requirement bought a server nothing. Players **with** Incantation voice-cast exactly as before. Players **without** it now join and play normally — they simply cannot voice-cast. ### Server config controls were being ignored on NeoForge `serverBlockedSpells`, the allowlist, `maxCastsPerSecond` and `castMode` had no effect on voice casts on NeoForge. An operator could ban a spell, see it listed as banned in the config, and have it voice-cast anyway. Voice-cast advancements, the admin log and `/voicespells follow` were skipped on the same path. Voice casts took Iron's Spells' own packet, so this mod's server side never saw them. Forge was unaffected. **If you run a NeoForge server and set any of those options, they start working in this release.** ### Fixed - **The first-run mic check could never see your microphone.** The wizard runs at the title screen, and a 0.10.0 fix that stopped the mic opening there also stopped it opening for the check itself. - **A modified client could disconnect itself** with an "Internal Exception" and a stack trace in the server log, by sending a malformed spell id. NeoForge only. - **Cooldown and "is casting" hints never worked** — they resolved against an Iron's Spells class that does not exist. - **Server-side state was never released.** In single-player, one world's cast history and leaderboard leaked into the next. - `pack_format` on 1.21.1 was a version that does not exist. ### Changed - **The casting screen edges are off by default.** Those accent bars never actually rendered in any released version — the reflection behind them was broken from the start. Fixing that switched them on for the first time, so they are now `castVignette` in the client config, default off. ### Requirements Unchanged: Minecraft 1.21.1 (NeoForge 21.1.x) or 1.20.1 (Forge 47.x), Iron's Spells 'n Spellbooks, Curios API, and a microphone. **No voice-chat mod.**
release

Iron's Spells: Incantation 0.10.2

0.10.2
12 авг. 2026 г.34Minecraft: 1.20.1forge
Скачать
Что нового
## Servers stop turning players away Mostly server-side fixes, and two of them matter whether or not you noticed anything was wrong. ### Your server no longer requires the mod on clients A server running Incantation was rejecting **every player who did not also have it installed** — an "Incompatible" screen on NeoForge, a bare "Connection closed - mismatched mod channel list" on Forge. It also advertised itself as incompatible in the multiplayer list, so people saw a red X before they even tried. Nothing this mod sends is client-bound, so that requirement bought a server nothing. Players **with** Incantation voice-cast exactly as before. Players **without** it now join and play normally — they simply cannot voice-cast. ### Server config controls were being ignored on NeoForge `serverBlockedSpells`, the allowlist, `maxCastsPerSecond` and `castMode` had no effect on voice casts on NeoForge. An operator could ban a spell, see it listed as banned in the config, and have it voice-cast anyway. Voice-cast advancements, the admin log and `/voicespells follow` were skipped on the same path. Voice casts took Iron's Spells' own packet, so this mod's server side never saw them. Forge was unaffected. **If you run a NeoForge server and set any of those options, they start working in this release.** ### Fixed - **The first-run mic check could never see your microphone.** The wizard runs at the title screen, and a 0.10.0 fix that stopped the mic opening there also stopped it opening for the check itself. - **A modified client could disconnect itself** with an "Internal Exception" and a stack trace in the server log, by sending a malformed spell id. NeoForge only. - **Cooldown and "is casting" hints never worked** — they resolved against an Iron's Spells class that does not exist. - **Server-side state was never released.** In single-player, one world's cast history and leaderboard leaked into the next. - `pack_format` on 1.21.1 was a version that does not exist. ### Changed - **The casting screen edges are off by default.** Those accent bars never actually rendered in any released version — the reflection behind them was broken from the start. Fixing that switched them on for the first time, so they are now `castVignette` in the client config, default off. ### Requirements Unchanged: Minecraft 1.21.1 (NeoForge 21.1.x) or 1.20.1 (Forge 47.x), Iron's Spells 'n Spellbooks, Curios API, and a microphone. **No voice-chat mod.**
release

Iron's Spells: Incantation 0.10.1

0.10.1
6 авг. 2026 г.99Minecraft: 1.21.1neoforge
Скачать
Что нового
## Forge names the conflicting mod A small release with one fix, and it only affects **Forge 1.20.1** players. **On NeoForge 1.21.1 this is behaviourally identical to 0.10.0 — there is no reason to update.** ### Fixed **Forge now tells you which mod broke a cast.** When another mod hooks Iron's Spells' cast path and throws, Incantation performs its casts through reflection, so the exception arrives wrapped. The player saw only: `Cast error: InvocationTargetException` which names nothing useful and looks like an Incantation bug. It isn't — it's a conflict in the other mod — but there was no way to tell that from the message. One reported case took weeks to trace. NeoForge started naming the responsible mod in 0.9.5. The Forge build was left out of that change, so 1.20.1 players kept getting the useless message. They now get the same thing NeoForge players already had: `Cast blocked by Iron's Restrictions (irons_restrictions) - mod conflict, see the log` with the full stack trace and an explanation in the log. This doesn't fix the underlying conflict — that isn't Incantation's to fix — but it turns a week of guesswork into a one-line answer. ### Requirements Unchanged from 0.10.0: Iron's Spells 'n Spellbooks, Curios API, and a microphone. **No voice-chat mod.**