
Hex Casting
Powerful programmable stack-based spellcasting
- Загрузки
- 526K
- Подписчики
- 527
- Обновлён
- 27 августа 2026 г.
- Лицензия
- MIT
Опубликован 20 ноября 2022 г.
Hex Casting
Curseforge | Modrinth | Source

A mod for Forge and Fabric adding stack-based programmable spellcasting, inspired by Psi.
- Cast Hexes on-the-fly without having to pre-compile them by drawing patterns on a hexagonal grid
- Craft items that can cast Hexes and give them to your friends
- Uncover ancient lore
- Descend into madness
- Do unspeakable things to the sentient life clinging to the barren world
> this feels like the whole "almost die from overcasting for enlightenment" thing but in real life
-- Matt6049
Getting Started
Read your journal! You should spawn with it. That's your guide to the mod. Everything you need to know should be unlocked in there over time.
Showcase
Take a look a this amazing Imgur album by stevebutnottoomanypeoplehaveit
Requirements
This mod requires PAUCAL. On Forge, it also requires Patchouli and Kotlin for Forge, and on Fabric it also requires Patchouli Fabric, Fabric Language Kotlin, Cardinal Components, and Cloth Config.
And yes, you can put it in your modpack, or stream/make videos of it! (Without needing to ask! Although if you're making a series featuring Hexcasting I would like to know 🙂)
---
Like my mods? Join the Discord server! Or maybe send me a few bucks on Patreon!
Logo and banner by naj77!
Ченджлог
0.11.4Бета1.20.1 · 27 августа 2026 г.
Added
- Added the
cannot_modify_costtag for patterns that should ignore themedia_consumptionattribute when calculating cost (#987) @Robotgiggle - Added config options to scale pattern costs per action and globally (#1041) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance (#1017) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook (#1028) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid (#1028) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio (#900) @miyucomics
- Added a config toggle (default false) for the effect that makes iota-holding items display their entire NBT data when Advanced Tooltips is enabled (#1021) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory (#879) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine (#885) @kineticneticat
- Added type comparison patterns (#1114) @IridescentVoid
- Similarity Distillation and Dissimilarity Distillation for iota types
- Surveyor's Distillation and Inspector's Distillation for blocks
- Taxonomer's Distillation for entities
- Sorter's Distillation and Stacking Distillation for items
- Added Contemplation for escaping without the exponential growth of Consideration (#1102) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation (#1103) @Robotgiggle
- Added Media Reflection for checking media available to the cast (#1235) @IridescentVoid
- Added ko_kr translations (#1187) @Bananamilk452
- Added a variety of new translations via Weblate (#1251, #1261, #1265, #1269, #1272, #1274)
- de_de by @Olfi01 and @miyucomics
- en_pt by @frostedlyre and @penguinencounter
- es_es by @Chichi and @ElNico56
- fi_fi by @hauveli
- fr_fr by @Spectramaris, @Sixela963, @arsvenutia, @drawnbadden
- ja_jp by @ViktoriaNtro
- no_no by @ShyRasan123
- pl_pl by @ManicTv and @Welesen
- sv_se by @hauveli
Changed
- Changed the
media_consumptionattribute to only apply to player-based casting (#987) @Robotgiggle - Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight (#1040) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized (#1047) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity (#1199) @Robotgiggle
- Added a new entry defining what a Hex actually is and how it can be represented on the stack
- Changed "A Primer on Vectors" to provide its own information rather than linking to Psi's guide
- Reordered "Escaping Patterns" to account for the newly added Contemplation pattern
- Removed "Influences" and moved relevant info into "Hex Casting 101"
- Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag (#1023) @YukkuriC
- All custom recipe displays now work with both EMI and JEI on all platforms, rather than only EMI on Fabric and only JEI on Forge (#1206) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps (#1035) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots (#996) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction (#1025) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe (#1080) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection (#1047) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all (#1118) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit (#1172) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 (#1043) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 (#1043) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 (#1043) @Robotgiggle
- Updated zh_cn translations (#995, #1037, #1045) @ChuijkYahus
- Updated various translations via Weblate (#1251, #1261, #1265, #1269, #1272, #1274)
- ru_ru by @DarkThunderer and @KOCTEP
- zh_cn by @ChuijkYahus
Fixed
- Fixed a crash loop when trying to generate a creative-mode ancient scroll for a Great Spell whose per-world pattern hasn't been calculated yet (#992) @Robotgiggle
- Fixed a crash when trying to generate a loot scroll for a Great Spell whose per-world pattern hasn't been calculated yet (#1079) @Robotgiggle
- Fixed Create Water and Create Lava causing the "position is forbidden to you" mishap when the position is actually just out of ambit (#1029) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix (#1013) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world (#999) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book (#1010) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar (#1010) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough (#908) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color (#984) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects (#1081) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items (#1119) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames (#1115) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric (#1218) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page (#1273) @DetermiedMech1
- Fixed the command to list all per-world patterns not working (#1277) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric (#1281) @Robotgiggle
Internal
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in #1043.
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in #1043.
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 (#1043) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a
TreeListfor more efficiency (#1031) @s5bug - Deprecated the version of
matchPatternthat takes a boolean argument since it always raises an exception (#1002) @beholderface Iotasubclasses can now specify whether the iota should be displayed with or without commas when in a list (#988) @TheRobbie73- Made the
getUsableStacksandgetPrimaryStacksmethods inCastingEnvironmentand its subclasses public (#907) @miyucomics - Improved handling for duplicate pattern signatures in hexdoc (#1007) @object-Object
CircleExecutionStatenow stores the shape of the spell circle using two corners rather than an entire list of positions (#908) @Stick404- Added methods in
ActionandIotato define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns (#1047) @Robotgiggle - Added visitor methods to
Iotato enable walking iotas in an extensible way (#1191) @poolcritter
0.11.4Бета1.20.1 · 27 августа 2026 г.
Added
- Added the
cannot_modify_costtag for patterns that should ignore themedia_consumptionattribute when calculating cost (#987) @Robotgiggle - Added config options to scale pattern costs per action and globally (#1041) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance (#1017) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook (#1028) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid (#1028) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio (#900) @miyucomics
- Added a config toggle (default false) for the effect that makes iota-holding items display their entire NBT data when Advanced Tooltips is enabled (#1021) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory (#879) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine (#885) @kineticneticat
- Added type comparison patterns (#1114) @IridescentVoid
- Similarity Distillation and Dissimilarity Distillation for iota types
- Surveyor's Distillation and Inspector's Distillation for blocks
- Taxonomer's Distillation for entities
- Sorter's Distillation and Stacking Distillation for items
- Added Contemplation for escaping without the exponential growth of Consideration (#1102) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation (#1103) @Robotgiggle
- Added Media Reflection for checking media available to the cast (#1235) @IridescentVoid
- Added ko_kr translations (#1187) @Bananamilk452
- Added a variety of new translations via Weblate (#1251, #1261, #1265, #1269, #1272, #1274)
- de_de by @Olfi01 and @miyucomics
- en_pt by @frostedlyre and @penguinencounter
- es_es by @Chichi and @ElNico56
- fi_fi by @hauveli
- fr_fr by @Spectramaris, @Sixela963, @arsvenutia, @drawnbadden
- ja_jp by @ViktoriaNtro
- no_no by @ShyRasan123
- pl_pl by @ManicTv and @Welesen
- sv_se by @hauveli
Changed
- Changed the
media_consumptionattribute to only apply to player-based casting (#987) @Robotgiggle - Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight (#1040) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized (#1047) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity (#1199) @Robotgiggle
- Added a new entry defining what a Hex actually is and how it can be represented on the stack
- Changed "A Primer on Vectors" to provide its own information rather than linking to Psi's guide
- Reordered "Escaping Patterns" to account for the newly added Contemplation pattern
- Removed "Influences" and moved relevant info into "Hex Casting 101"
- Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag (#1023) @YukkuriC
- All custom recipe displays now work with both EMI and JEI on all platforms, rather than only EMI on Fabric and only JEI on Forge (#1206) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps (#1035) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots (#996) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction (#1025) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe (#1080) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection (#1047) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all (#1118) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit (#1172) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 (#1043) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 (#1043) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 (#1043) @Robotgiggle
- Updated zh_cn translations (#995, #1037, #1045) @ChuijkYahus
- Updated various translations via Weblate (#1251, #1261, #1265, #1269, #1272, #1274)
- ru_ru by @DarkThunderer and @KOCTEP
- zh_cn by @ChuijkYahus
Fixed
- Fixed a crash loop when trying to generate a creative-mode ancient scroll for a Great Spell whose per-world pattern hasn't been calculated yet (#992) @Robotgiggle
- Fixed a crash when trying to generate a loot scroll for a Great Spell whose per-world pattern hasn't been calculated yet (#1079) @Robotgiggle
- Fixed Create Water and Create Lava causing the "position is forbidden to you" mishap when the position is actually just out of ambit (#1029) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix (#1013) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world (#999) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book (#1010) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar (#1010) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough (#908) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color (#984) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects (#1081) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items (#1119) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames (#1115) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric (#1218) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page (#1273) @DetermiedMech1
- Fixed the command to list all per-world patterns not working (#1277) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric (#1281) @Robotgiggle
Internal
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in #1043.
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in #1043.
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 (#1043) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a
TreeListfor more efficiency (#1031) @s5bug - Deprecated the version of
matchPatternthat takes a boolean argument since it always raises an exception (#1002) @beholderface Iotasubclasses can now specify whether the iota should be displayed with or without commas when in a list (#988) @TheRobbie73- Made the
getUsableStacksandgetPrimaryStacksmethods inCastingEnvironmentand its subclasses public (#907) @miyucomics - Improved handling for duplicate pattern signatures in hexdoc (#1007) @object-Object
CircleExecutionStatenow stores the shape of the spell circle using two corners rather than an entire list of positions (#908) @Stick404- Added methods in
ActionandIotato define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns (#1047) @Robotgiggle - Added visitor methods to
Iotato enable walking iotas in an extensible way (#1191) @poolcritter
0.11.3Бета1.20.1 · 22 ноября 2025 г.
[Release] 0.11.3 release!
0.11.3Бета1.20.1 · 22 ноября 2025 г.
[Release] 0.11.3 release!
0.11.2Бета1.20.1 · 25 ноября 2024 г.
There is no 0.11.0 or 0.11.1 due to bad planning.
Changelog:
- Update to Minecraft 1.20.1!
- Patterns render in-world around you to other players! Freak people out with your casting prowess, or disrupt your opponents by reading their spells. Thanks, Amo!
- Move flight to pre-Enlightenment; choose between infinite flight in a small radius, or a short-lived flight with infinite range.
- Altiora -- a Great Spell that gives you fragile elytra wings.
- Quenched Allays -- generate media out of allays. Comes with a decorative staff and blocks, and ONLY ONE TEXTURE APIECE.
- Shepherd Directrix -- pop a boolean from the stack and choose which branch of a spell circle to take.
- Thought-Knots -- cheap foci you can only write to once.
- Lots of new decorative blocks thanks to the indefatigable Falkory.
- Actually let you read the lore I implemented last update and forgot to include anywhere. RIP Cardamom Steles.
- Performance and evaluator improvements mean that there is no longer a recursion limit, and you can execute many more patterns at once before the server yells at you.
- Patterns now render in text as patterns instead of the old HexPattern(...) format. Thank Sam for this wizardry.
- A lot of mathematical patterns work better with multiple types; you can add numbers and vectors, for example. This means there can be fewer patterns overall because they each work with more types.
- Overcasting works better, especially if your max health is different.
- 196 bugs closed and 143 merge requests accepted since the last release!
- Explosion now damages entities when used at eye level.
- You can't cheese the Flay Mind mishap to insta-kill your victim anymore.
- Fixed a lot of cheesy ways to cast spells without needing media.
- Fixed the bug where we had no devops
- Removed Hexxybrine
0.11.2Бета1.20.1 · 25 ноября 2024 г.
There is no 0.11.0 or 0.11.1 due to bad planning.
Changelog:
- Update to Minecraft 1.20.1!
- Patterns render in-world around you to other players! Freak people out with your casting prowess, or disrupt your opponents by reading their spells. Thanks, Amo!
- Move flight to pre-Enlightenment; choose between infinite flight in a small radius, or a short-lived flight with infinite range.
- Altiora -- a Great Spell that gives you fragile elytra wings.
- Quenched Allays -- generate media out of allays. Comes with a decorative staff and blocks, and ONLY ONE TEXTURE APIECE.
- Shepherd Directrix -- pop a boolean from the stack and choose which branch of a spell circle to take.
- Thought-Knots -- cheap foci you can only write to once.
- Lots of new decorative blocks thanks to the indefatigable Falkory.
- Actually let you read the lore I implemented last update and forgot to include anywhere. RIP Cardamom Steles.
- Performance and evaluator improvements mean that there is no longer a recursion limit, and you can execute many more patterns at once before the server yells at you.
- Patterns now render in text as patterns instead of the old HexPattern(...) format. Thank Sam for this wizardry.
- A lot of mathematical patterns work better with multiple types; you can add numbers and vectors, for example. This means there can be fewer patterns overall because they each work with more types.
- Overcasting works better, especially if your max health is different.
- 196 bugs closed and 143 merge requests accepted since the last release!
- Explosion now damages entities when used at eye level.
- You can't cheese the Flay Mind mishap to insta-kill your victim anymore.
- Fixed a lot of cheesy ways to cast spells without needing media.
- Fixed the bug where we had no devops
- Removed Hexxybrine
0.10.3Бета1.19.2 · 4 декабря 2022 г.
Stupid bugfix release; Hermes Gambit works now and some other things too
0.10.3Бета1.19.2 · 4 декабря 2022 г.
Stupid bugfix release; Hermes Gambit works now and some other things too
Комментарии
Загружаем…