Skip to content

Assorted guidebook & mishap improvements - #1010

Merged
Robotgiggle merged 8 commits into
FallingColors:mainfrom
Robotgiggle:docs-fixes
May 10, 2026
Merged

Assorted guidebook & mishap improvements#1010
Robotgiggle merged 8 commits into
FallingColors:mainfrom
Robotgiggle:docs-fixes

Conversation

@Robotgiggle

Copy link
Copy Markdown
Member

@github-project-automation github-project-automation Bot moved this to 📋 Backlog in Hex Casting Mar 7, 2026
ChuijkYahus added a commit to ChuijkYahus/HexMod that referenced this pull request Mar 28, 2026

@object-Object object-Object left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with two small nits; however, can this PR be given a more descriptive title before merging, since the title now determines the squashed commit message?

import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.ItemStack

class MishapBadHotbarItem(val item: ItemStack?, val wanted: Component) : Mishap() {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: can we add a doc comment to this class?

"1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport nearly anywhere in the entire world! There does seem to be a limit, but it is $(italic)much/$ greater than the normal radius of influence I am used to.",
"2": "The entity will be teleported by the given vector. Curiously, this vector seems to be an offset, not an absolute position in the world; for example, if I use $(l:patterns/consts#hexcasting:const/vec/x)$(action)Vector Reflection +X/$, the entity will end up precisely one block east of its original position. No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination. In addition, the target will be forcibly removed from anything inanimate they are riding or sitting on ... but I've read scraps that suggest animals can come along for the ride, so to speak.",
"1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport an entity to anywhere in the entire world! No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.",
"2": "The provided vector is an offset, not an absolute position in the world; for example, if I use (1, 0, 0), the entity will end up precisely one block east of its original position.$(br2)Unfortunately, it seems that when teleporting myself, I'm unable to maintain a perfect focus. This can cause some of my items to splatter out of my inventory on arrival.$(br2)I should also note that the target will be forcibly removed from anything inanimate they are riding ... but I've read scraps that suggest animals can come along for the ride, so to speak.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: should we use a different word than "focus" (e.g. "maintain perfect concentration") to avoid confusion with the item?

@Robotgiggle Robotgiggle changed the title Yet Another Docs Fix PR Assorted guidebook & mishap improvements May 9, 2026
@Robotgiggle
Robotgiggle added this pull request to the merge queue May 10, 2026
Merged via the queue into FallingColors:main with commit 9b82757 May 10, 2026
8 checks passed
@github-project-automation github-project-automation Bot moved this from 📋 Backlog to ✅ Done in Hex Casting May 10, 2026
@s5bug s5bug mentioned this pull request Jun 10, 2026
object-Object added a commit that referenced this pull request Jun 11, 2026
Includes PRs:
- #879 
- #1010 
- #988 
- #885 
- #907 
- #1007

---------

Co-authored-by: Samantha <sam@samsthenerd.com>
Co-authored-by: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com>
Co-authored-by: TheRobbie72 <115972837+TheRobbie73@users.noreply.github.com>
Co-authored-by: TheRobbie72 <franc.mer2022@gamil.com>
Co-authored-by: kineticneticat <84404038+kineticneticat@users.noreply.github.com>
Co-authored-by: miyucomics <72044529+miyucomics@users.noreply.github.com>
Co-authored-by: [object Object] <object@objectobject.ca>
object-Object added a commit that referenced this pull request Aug 26, 2026
### Added

- Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([#987](#987)) @Robotgiggle
- Added config options to scale pattern costs per action and globally ([#1041](#1041)) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance ([#1017](#1017)) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook ([#1028](#1028)) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([#1028](#1028)) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio ([#900](#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](#1021)) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([#879](#879)) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine ([#885](#885)) @kineticneticat
- Added type comparison patterns ([#1114](#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](#1102)) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](#1103)) @Robotgiggle
- Added Media Reflection for checking media available to the cast ([#1235](#1235)) @IridescentVoid
- Added ko_kr translations ([#1187](#1187)) @Bananamilk452
- Added a variety of new translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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_consumption` attribute to only apply to player-based casting ([#987](#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](#1040)) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](#1047)) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity ([#1199](#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](#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](#1206)) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](#1035)) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](#996)) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](#1025)) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](#1080)) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection ([#1047](#1047)) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all ([#1118](#1118)) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([#1172](#1172)) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 ([#1043](#1043)) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](#1043)) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](#1043)) @Robotgiggle
- Updated zh_cn translations ([#995](#995), [#1037](#1037), [#1045](#1045)) @ChuijkYahus
- Updated various translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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](#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](#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](#1029)) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix ([#1013](#1013)) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world ([#999](#999)) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book ([#1010](#1010)) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([#1010](#1010)) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough ([#908](#908)) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color ([#984](#984)) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([#1081](#1081)) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](#1119)) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](#1115)) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric ([#1218](#1218)) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](#1273)) @DetermiedMech1
- Fixed the command to list all per-world patterns not working ([#1277](#1277)) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](#1281)) @Robotgiggle

### Internal

- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [#1043](#1043).
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [#1043](#1043).
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([#1043](#1043)) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([#1031](#1031)) @s5bug
- Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([#1002](#1002)) @beholderface
- `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([#988](#988)) @TheRobbie73
- Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([#907](#907)) @miyucomics
- Improved handling for duplicate pattern signatures in hexdoc ([#1007](#1007)) @object-Object
- `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([#908](#908)) @Stick404
- Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([#1047](#1047)) @Robotgiggle
- Added visitor methods to `Iota` to enable walking iotas in an extensible way ([#1191](#1191)) @poolcritter
object-Object added a commit that referenced this pull request Aug 27, 2026
### Added

- Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([#987](#987)) @Robotgiggle
- Added config options to scale pattern costs per action and globally ([#1041](#1041)) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance ([#1017](#1017)) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook ([#1028](#1028)) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([#1028](#1028)) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio ([#900](#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](#1021)) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([#879](#879)) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine ([#885](#885)) @kineticneticat
- Added type comparison patterns ([#1114](#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](#1102)) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](#1103)) @Robotgiggle
- Added Media Reflection for checking media available to the cast ([#1235](#1235)) @IridescentVoid
- Added ko_kr translations ([#1187](#1187)) @Bananamilk452
- Added a variety of new translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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_consumption` attribute to only apply to player-based casting ([#987](#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](#1040)) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](#1047)) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity ([#1199](#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](#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](#1206)) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](#1035)) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](#996)) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](#1025)) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](#1080)) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection ([#1047](#1047)) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all ([#1118](#1118)) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([#1172](#1172)) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 ([#1043](#1043)) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](#1043)) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](#1043)) @Robotgiggle
- Updated zh_cn translations ([#995](#995), [#1037](#1037), [#1045](#1045)) @ChuijkYahus
- Updated various translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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](#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](#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](#1029)) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix ([#1013](#1013)) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world ([#999](#999)) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book ([#1010](#1010)) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([#1010](#1010)) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough ([#908](#908)) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color ([#984](#984)) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([#1081](#1081)) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](#1119)) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](#1115)) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric ([#1218](#1218)) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](#1273)) @DetermiedMech1
- Fixed the command to list all per-world patterns not working ([#1277](#1277)) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](#1281)) @Robotgiggle

### Internal

- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [#1043](#1043).
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [#1043](#1043).
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([#1043](#1043)) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([#1031](#1031)) @s5bug
- Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([#1002](#1002)) @beholderface
- `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([#988](#988)) @TheRobbie73
- Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([#907](#907)) @miyucomics
- Improved handling for duplicate pattern signatures in hexdoc ([#1007](#1007)) @object-Object
- `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([#908](#908)) @Stick404
- Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([#1047](#1047)) @Robotgiggle
- Added visitor methods to `Iota` to enable walking iotas in an extensible way ([#1191](#1191)) @poolcritter
hexxy-weblate pushed a commit to hexxy-weblate/HexMod that referenced this pull request Aug 27, 2026
### Added

- Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([FallingColors#987](FallingColors#987)) @Robotgiggle
- Added config options to scale pattern costs per action and globally ([FallingColors#1041](FallingColors#1041)) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance ([FallingColors#1017](FallingColors#1017)) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook ([FallingColors#1028](FallingColors#1028)) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([FallingColors#1028](FallingColors#1028)) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio ([FallingColors#900](FallingColors#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 ([FallingColors#1021](FallingColors#1021)) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([FallingColors#879](FallingColors#879)) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine ([FallingColors#885](FallingColors#885)) @kineticneticat
- Added type comparison patterns ([FallingColors#1114](FallingColors#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 ([FallingColors#1102](FallingColors#1102)) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([FallingColors#1103](FallingColors#1103)) @Robotgiggle
- Added Media Reflection for checking media available to the cast ([FallingColors#1235](FallingColors#1235)) @IridescentVoid
- Added ko_kr translations ([FallingColors#1187](FallingColors#1187)) @Bananamilk452
- Added a variety of new translations via Weblate ([FallingColors#1251](FallingColors#1251), [FallingColors#1261](FallingColors#1261), [FallingColors#1265](FallingColors#1265), [FallingColors#1269](FallingColors#1269), [FallingColors#1272](FallingColors#1272), [FallingColors#1274](FallingColors#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_consumption` attribute to only apply to player-based casting ([FallingColors#987](FallingColors#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 ([FallingColors#1040](FallingColors#1040)) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([FallingColors#1047](FallingColors#1047)) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity ([FallingColors#1199](FallingColors#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 ([FallingColors#1023](FallingColors#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 ([FallingColors#1206](FallingColors#1206)) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps ([FallingColors#1035](FallingColors#1035)) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots ([FallingColors#996](FallingColors#996)) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([FallingColors#1025](FallingColors#1025)) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([FallingColors#1080](FallingColors#1080)) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection ([FallingColors#1047](FallingColors#1047)) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all ([FallingColors#1118](FallingColors#1118)) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([FallingColors#1172](FallingColors#1172)) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 ([FallingColors#1043](FallingColors#1043)) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([FallingColors#1043](FallingColors#1043)) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([FallingColors#1043](FallingColors#1043)) @Robotgiggle
- Updated zh_cn translations ([FallingColors#995](FallingColors#995), [FallingColors#1037](FallingColors#1037), [FallingColors#1045](FallingColors#1045)) @ChuijkYahus
- Updated various translations via Weblate ([FallingColors#1251](FallingColors#1251), [FallingColors#1261](FallingColors#1261), [FallingColors#1265](FallingColors#1265), [FallingColors#1269](FallingColors#1269), [FallingColors#1272](FallingColors#1272), [FallingColors#1274](FallingColors#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 ([FallingColors#992](FallingColors#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 ([FallingColors#1079](FallingColors#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 ([FallingColors#1029](FallingColors#1029)) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix ([FallingColors#1013](FallingColors#1013)) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world ([FallingColors#999](FallingColors#999)) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book ([FallingColors#1010](FallingColors#1010)) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([FallingColors#1010](FallingColors#1010)) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough ([FallingColors#908](FallingColors#908)) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color ([FallingColors#984](FallingColors#984)) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([FallingColors#1081](FallingColors#1081)) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items ([FallingColors#1119](FallingColors#1119)) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames ([FallingColors#1115](FallingColors#1115)) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric ([FallingColors#1218](FallingColors#1218)) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([FallingColors#1273](FallingColors#1273)) @DetermiedMech1
- Fixed the command to list all per-world patterns not working ([FallingColors#1277](FallingColors#1277)) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric ([FallingColors#1281](FallingColors#1281)) @Robotgiggle

### Internal

- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [FallingColors#1043](FallingColors#1043).
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [FallingColors#1043](FallingColors#1043).
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([FallingColors#1043](FallingColors#1043)) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([FallingColors#1031](FallingColors#1031)) @s5bug
- Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([FallingColors#1002](FallingColors#1002)) @beholderface
- `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([FallingColors#988](FallingColors#988)) @TheRobbie73
- Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([FallingColors#907](FallingColors#907)) @miyucomics
- Improved handling for duplicate pattern signatures in hexdoc ([FallingColors#1007](FallingColors#1007)) @object-Object
- `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([FallingColors#908](FallingColors#908)) @Stick404
- Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([FallingColors#1047](FallingColors#1047)) @Robotgiggle
- Added visitor methods to `Iota` to enable walking iotas in an extensible way ([FallingColors#1191](FallingColors#1191)) @poolcritter
object-Object added a commit that referenced this pull request Aug 27, 2026
### Added

- Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([#987](#987)) @Robotgiggle
- Added config options to scale pattern costs per action and globally ([#1041](#1041)) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance ([#1017](#1017)) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook ([#1028](#1028)) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([#1028](#1028)) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio ([#900](#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](#1021)) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([#879](#879)) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine ([#885](#885)) @kineticneticat
- Added type comparison patterns ([#1114](#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](#1102)) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](#1103)) @Robotgiggle
- Added Media Reflection for checking media available to the cast ([#1235](#1235)) @IridescentVoid
- Added ko_kr translations ([#1187](#1187)) @Bananamilk452
- Added a variety of new translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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_consumption` attribute to only apply to player-based casting ([#987](#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](#1040)) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](#1047)) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity ([#1199](#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](#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](#1206)) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](#1035)) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](#996)) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](#1025)) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](#1080)) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection ([#1047](#1047)) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all ([#1118](#1118)) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([#1172](#1172)) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 ([#1043](#1043)) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](#1043)) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](#1043)) @Robotgiggle
- Updated zh_cn translations ([#995](#995), [#1037](#1037), [#1045](#1045)) @ChuijkYahus
- Updated various translations via Weblate ([#1251](#1251), [#1261](#1261), [#1265](#1265), [#1269](#1269), [#1272](#1272), [#1274](#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](#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](#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](#1029)) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix ([#1013](#1013)) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world ([#999](#999)) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book ([#1010](#1010)) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([#1010](#1010)) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough ([#908](#908)) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color ([#984](#984)) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([#1081](#1081)) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](#1119)) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](#1115)) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric ([#1218](#1218)) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](#1273)) @DetermiedMech1
- Fixed the command to list all per-world patterns not working ([#1277](#1277)) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](#1281)) @Robotgiggle

### Internal

- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [#1043](#1043).
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [#1043](#1043).
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([#1043](#1043)) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([#1031](#1031)) @s5bug
- Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([#1002](#1002)) @beholderface
- `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([#988](#988)) @TheRobbie73
- Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([#907](#907)) @miyucomics
- Improved handling for duplicate pattern signatures in hexdoc ([#1007](#1007)) @object-Object
- `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([#908](#908)) @Stick404
- Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([#1047](#1047)) @Robotgiggle
- Added visitor methods to `Iota` to enable walking iotas in an extensible way ([#1191](#1191)) @poolcritter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

2 participants