Skip to content

Releases: dontoisme/spell_bracket_visualizer

v1.4.0 — Spell Bracket Visualizer

Choose a tag to compare

@dontoisme dontoisme released this 09 Sep 14:41
f3ade3e

Rainbow nesting brackets and a cast-structure panel on Noita's wand UI: see at a glance which spells fire together each cast, and when a wand wraps.

Install (no Steam needed)

  1. Download spell_bracket_visualizer-v1.4.0.zip below.
  2. Extract it into your Noita mods folder — the one next to noita.exe (create it if it isn't there). You should end up with Noita/mods/spell_bracket_visualizer/init.lua.
  3. Launch Noita → Mods → accept the modding warning → tick Spell Bracket Visualizer → start or continue a run.

The folder must be named exactly spell_bracket_visualizer — the mod loads its own files by that path. Use the zip below, not the green "Source code (zip)" link, which extracts as spell_bracket_visualizer-1.4.0 and won't load.

The zip holds only the files the game actually loads (plus the license), and INSTALL.txt inside it has the long-form walkthrough, a settings rundown, and troubleshooting.

Steam users: subscribe on the Workshop instead.

What's new in 1.4.0

This release came out of a Workshop thread where several people pointed out that the mod was guessing at Noita's draw rules instead of running them, and that the guesses were wrong on a number of wands. They were right. The mod's test suite now pulls the game's own gun.lua and gun_actions.lua out of data.wak and runs the real cast code alongside the mod's simulator, comparing what each one removes from the deck, wand by wand. Every fix below was found or confirmed that way. Nothing hooks the live gun system while you're casting — this is a test harness, not a runtime change.

  • Brackets now admit when they don't know. Every spell carries a confidence rating. A wand holding something the mod can't follow exactly — a Greek letter spell, a Requirement spell, a random draw, an unknown modded spell — draws no slot brackets at all, shows a small ? uncertain tag in its header, and names the spells responsible in the panel. Drawing a confident bracket around a structure the game won't honour is the thing this update is most concerned with not doing. There's a setting to draw them anyway if you'd rather see the approximation.

  • What a bracket means is now written down. A bracket encloses exactly the spells the game removed from the wand's deck while casting the bracket's first spell. That sounds obvious, but four different readings of "belongs to this spell" all agree on simple wands and split apart on Greeks, triggers and divides — so the mod commits to one and says which. It's in the README, the design doc and the Workshop description.

  • Modded spells get their real types. The mod had no idea what other mods' spells were and defaulted them to projectiles, which is why a single cast could render as several on a modded wand. It now reads the game's live spell table, which includes everything other mods appended, so modded modifiers and multicasts group correctly. How many cards a modded spell draws still isn't known, so those wands are marked uncertain rather than guessed at.

  • Add Trigger, Add Timer and Add Death Trigger group correctly. They don't take the next card as the payload. They scan forward over any modifiers, consume that whole run plus the projectile, and the payload size comes from the projectile itself. Add Trigger, Damage Plus, Spark Bolt, Bomb was drawing as two casts. It's one.

  • Greek spells no longer swallow the spell after them. Alpha, Gamma and Tau were drawn as merging into the next spell's cast. They don't: they fire as their own cast. The knock-on was worse than one wrong bracket — every cast boundary after a Greek sat one spell too far down the wand, and a wand ending in a Greek got an orange wraps to front tag for a wrap that never happens. Spark Bolt, Alpha was shown as one wrapping cast; it is two casts and no wrap. Underneath, their draw call is commented out in the game's source and the script that builds the mod's spell table was reading the commented-out line, so this has been wrong in every release so far. Random Modifier had the opposite problem and now chains, since it runs a random modifier and nearly all of them draw a card.

  • Spells with 0 charges behave the way the game treats them. A depleted spell is skipped and the next one drawn in its place — but if the deck runs out during that retry, the draw is simply lost and the wand does not wrap. The old version drew a wrap there. The "Greek Wands: Keep Depleted Spells" option is no longer needed and does nothing; it will be removed next release.

  • Reset brackets the rest of the wand, because that is exactly what it removes, and the panel says it restored the deck rather than reporting a plain wrap.

  • Each cast shows what it costs. Per-cast mana is summed and compared against the wand's maximum, and a cast that can never afford itself is highlighted. The mod doesn't try to guess your current mana pool, which moves while you play — this is the always-true version of the warning.

  • Divide By is honest about where it breaks. In front of a plain projectile the mod's model matches the engine, so those wands keep their brackets. In front of a multicast, a trigger or a modifier it doesn't — the game re-invokes the divided spell and draws fresh cards each time — so those wands hide their brackets until the full model lands next release.

If you hit a wand whose brackets don't match what it actually does, please open an issue with the spell list (or a screenshot) — every confirmed mismatch so far has been fixable, and this update exists because people reported them.

v1.3.3 — Spell Bracket Visualizer

Choose a tag to compare

@dontoisme dontoisme released this 24 Aug 15:25

Rainbow nesting brackets and a cast-structure panel on Noita's wand UI: see at a glance which spells fire together each cast, and when a wand wraps.

Install (no Steam needed)

  1. Download spell_bracket_visualizer-v1.3.3.zip below.
  2. Extract it into your Noita mods folder — the one next to noita.exe (create it if it isn't there). You should end up with Noita/mods/spell_bracket_visualizer/init.lua.
  3. Launch Noita → Mods → accept the modding warning → tick Spell Bracket Visualizer → start or continue a run.

The folder must be named exactly spell_bracket_visualizer — the mod loads its own files by that path. Use the zip below, not the green "Source code (zip)" link, which extracts as spell_bracket_visualizer-1.3.3 and won't load.

The zip holds only the files the game actually loads (plus the license), and INSTALL.txt inside it has the long-form walkthrough, a settings rundown, and troubleshooting.

Steam users: subscribe on the Workshop instead.

What's new in 1.3.3

  • Divide By spells now group correctly. Divide By 2/3/4/10 skip the engine's normal draw call and invoke the next card directly, which the mod's spell data missed — so it drew a cast boundary between a divide and its target. In the game they fire together: Divide By 2, Light Bullet is one cast, and a multicast that gathers a divide spans the divide and what it divides. A Divide By now prefix-attaches to the next spell exactly like a modifier, with the one real difference kept — a Divide By at the end of the wand does nothing at all, so it never causes a wrap, where a trailing modifier does.

  • Spells the mod can't predict now say so. The Requirement ("If") spells skip part of the wand when their condition is false at cast time, and the random-draw spells (Random Spell, Draw Random, …) add cards chosen at cast time. No fixed display can show those truthfully, so instead of drawing one possibility as if it were certain, the panel marks them with a ? and a footnote. What's drawn is the condition-true / no-extras path. Always-cast spells carry the mark too.

  • The ? footnote survives a long wand. On a structure too tall for the screen the panel folds its tail into a ... +N more line — which used to drop the footnote explaining the ? marks while leaving the marks themselves on screen. The legend is now held back from that cut.

  • The wraps to front tag holds still. It hung off the bracket it labels, and a wrap enclosure is the outermost bracket on its column — so the more nesting a wand had, the further the tag slid down and right, eventually out of the wand's box entirely and onto the border of the next one. It now sits at a fixed spot inside the box, beside the wand's header, whatever the brackets do.

If you hit a wand whose brackets don't match what it actually does, please open an issue with the spell list (or a screenshot) — every confirmed mismatch so far has been fixable, and this update exists because people reported them.

v1.3.2 — Spell Bracket Visualizer

Choose a tag to compare

@dontoisme dontoisme released this 08 Aug 03:09

Rainbow nesting brackets and a cast-structure panel on Noita's wand UI: see at a glance which spells fire together each cast, and when a wand wraps.

Install (no Steam needed)

  1. Download spell_bracket_visualizer-v1.3.2.zip below.
  2. Extract it into your Noita mods folder — the one next to noita.exe (create it if it isn't there). You should end up with Noita/mods/spell_bracket_visualizer/init.lua.
  3. Launch Noita → Mods → accept the modding warning → tick Spell Bracket Visualizer → start or continue a run.

The folder must be named exactly spell_bracket_visualizer — the mod loads its own files by that path. Use the zip below, not the green "Source code (zip)" link, which extracts as spell_bracket_visualizer-1.3.2 and won't load.

The zip holds only the files the game actually loads (plus the license), and INSTALL.txt inside it has the long-form walkthrough, a settings rundown, and troubleshooting.

Steam users: subscribe on the Workshop instead.

What's new in 1.3.2

  • Casts are bracketed now. Which spells fire together is the thing the mod exists to show, and until now you had to read it off the panel. Each cast gets its own bracket, one level outside the spell groups it contains, and the rainbow runs as a single progression across both axes — advancing per cast and per nesting level. A cast firing a single spell isn't bracketed: there's no simultaneity to show, so the pair would just be ink.

  • The wrap reads as a loop. It used to be drawn as two separate orange bracket pairs joined by a line under the row, which looked like two unrelated groups rather than one structure continuing around. It's now a single enclosing bracket around everything the wrap touches, tagged wraps to front at its closing end:

    [ chainsaw, chainsaw, [Double spell, Spitter [Double spell, Spitter]] ]
    
  • Stacked brackets are legible. Brackets sharing a card edge used to blur into plain vertical bars, because an outer bracket's hooks were drawn underneath the one nested inside it and overpainted.

  • A bare modifier chain that wrapped off the end of the deck drew no wrap marking at all. That case is covered by the enclosure.

  • The wraps to front tag no longer prints over the wand box's own header, or off the edge of the box.

Also since 1.3.0

1.3.1 was never released here — its fixes are included:

  • Font compatibility. With a font mod (such as Better Font (English)) or a non-pixelated language font, the structure panel rendered squished against the right screen edge with its text running off it. Noita ignores fractional text scale when drawing those fonts while still applying it when measuring, so the panel was built around three times too small for the text that landed in it. It now detects this and sizes itself to the one setting those fonts render faithfully. With such a font, Text Size stays on Large by design.
  • A new Large text size for the structure panel.
  • Fixed truncation of non-English spell names, which could cut a multi-byte character in half.
  • The Debug Info box reports what your font is doing, so one screenshot pins down a font problem.

Thanks to BourbonCrow and shinylavawarrior for the font reports.

Notes

  • Purely visual — it reads your wands and draws on top of the UI. Safe to add to a run in progress and safe to remove.
  • Shuffle wands intentionally show nothing: their draw order re-randomizes every cycle, so any structure shown would be one arrangement out of many.
  • If the brackets ever look misaligned, turn on Debug Info (for bug reports), open your wand, and open an issue with the screenshot — it captures the resolution and wand measurements needed to fix it.

v1.3.0 — Spell Bracket Visualizer

Choose a tag to compare

@dontoisme dontoisme released this 24 Jul 18:02

Rainbow nesting brackets and a cast-structure panel on Noita's wand UI: see at a glance which spells fire together each cast, and when a wand wraps.

Install (no Steam needed)

  1. Download spell_bracket_visualizer-v1.3.0.zip below.
  2. Extract it into your Noita mods folder — the one next to noita.exe (create it if it isn't there). You should end up with Noita/mods/spell_bracket_visualizer/init.lua.
  3. Launch Noita → Mods → accept the modding warning → tick Spell Bracket Visualizer → start or continue a run.

The folder must be named exactly spell_bracket_visualizer — the mod loads its own files by that path. Use the zip below, not the green "Source code (zip)" link, which extracts as spell_bracket_visualizer-1.3.0 and won't load.

The zip holds only the files the game actually loads (plus the license), and INSTALL.txt inside it has the long-form walkthrough, a settings rundown, and troubleshooting.

Steam users: subscribe on the Workshop instead.

What's new in 1.3.0

  • Depleted spells are ignored. A spell with 0 charges left can't fire — the engine discards it and draws the next card — so it's now left out of the brackets and panel, and the wand groups and wraps as if that slot were empty. New setting: Ignore Depleted Spells (on by default).
  • Greek wands keep them. Greek spells (Alpha, Tau, Omega, Mu, Phi, Sigma, Zeta, Gamma) re-cast by slot position, so a depleted spell still changes what they read. On those wands the full structure is kept. New setting: Greek Wands: Keep Depleted Spells (on by default).
  • The Debug Info readout now draws in front of the structure panel instead of behind it, and reports whether the held wand is Greek.

Notes

  • Purely visual — it reads your wands and draws on top of the UI. Safe to add to a run in progress and safe to remove.
  • Shuffle wands intentionally show nothing: their draw order re-randomizes every cycle, so any structure shown would be one arrangement out of many.
  • If the brackets ever look misaligned, turn on Debug Info (for bug reports), open your wand, and open an issue with the screenshot — it captures the resolution and wand measurements needed to fix it.