This is the online version of the HexDebug documentation.

Entries which are blurred are spoilers. Click to reveal them, but be aware that they may spoil endgame progression. Alternatively, click here to get a version with all spoilers showing.

I devote this section to the magical and mysterious items I might encounter in my studies.

DebuggerDebugging Items

I have read vague descriptions of a strange object used by the ancients to help discover issues in complex Hexes. I believe I have managed to reproduce this item; I call it the Debugger.

It seems to work in a similar way to Artifacts. However, I can also use it to cast a Hex right from an item (like a Focus) in my off-hand.

Unfortunately, the Debugger is not very useful on its own; to get the most out of it, I will need to set up some sort of external tool.


Click to show recipes Click to hide recipes
Debugger
Crafting Table
Charged Amethyst
Charged Amethyst
Artifact
Charged Amethyst
Gold Ingot
Debugger

Thwack!

I can also switch between different "step modes" of the Debugger by sneak-scrolling (like with a Spellbook or Abacus).


Complementing the Debugger, I've also created a new type of staff: the Evaluator.

While debugging a Hex, patterns drawn with this staff will be cast using the current stack and ravenmind of the Debugger.

Clearing the grid seems to reset the Debugger to just before the first pattern was drawn with the Evaluator. It will not, of course, undo any effects performed by spells on the world.


Click to show recipes Click to hide recipes
Evaluator
Crafting Table
Charged Amethyst
Charged Amethyst
Block of Slate
Charged Amethyst
Block of Slate
Evaluator

Thwonk!


Focal FrameFocal Frame

Foci are useful for storing Hexes and other iotas in my inventory, but I sometimes find myself in need of a way to store iotas in the world. Item Frames are too fragile, and other methods are inefficient and... distasteful. A cleaner solution is necessary, and I've devised one in the form of the Focal Frame.


A Focal Frame by itself is useless. An iota-holding item must first be inserted by right-clicking a placed Frame with the item, or by using a single Frame in my inventory in a manner akin to a Bundle. Right-clicking with an empty hand extracts the item.

As an item, I can use a filled Focal Frame with any patterns or blocks that would accept the contained item. When placed in the world, I can access it using patterns like Chronicler's Purification.


Click to show recipes Click to hide recipes
Focal Frame
Crafting Table
Gold Nugget
Block of Slate
Gold Nugget
Block of Slate
Block of Slate
Gold Nugget
Block of Slate
Gold Nugget
Focal Frame
Focal Frame
Crafting Table
Focal Frame
Leather
Paper
Charged Amethyst
Paper
Leather
Glowstone
Focal Frame

Two thousand movies, four thousand albums, music and words and pictures like voices whispering from a sweet, sunny past.


Splicing TableSplicing Table

As my Hexes become more complex, I find myself spending more and more time fixing my own mistakes. Patterns such as Evanition and Surgeon's Exaltation can suffice for simple substitutions, but I think I can do better.

The Splicing Table is my solution to these woes: a full-fledged workstation for viewing and editing Hexes.


To begin, I must place an item containing a list iota (eg. a Focus) in the centre of the table. This reveals the first nine iotas in the list. The small arrows at the ends can be used to move my view of the list; I can also hold Sneak to move by a full page, or Sprint to move all the way to the start or end.

If I wish to share my Hexes with others, I can use the large button on the right side to copy the contents of the list to my "clipboard".


I can select iotas (or the space between them) by clicking on them. Holding Sneak and clicking again allows me to select a range of iotas.

Additionally, there are dedicated buttons to select the entire list (Select All) and to clear my selection (Select None).

Selecting iotas allows me to unlock the true power of the Splicing Table: editing Hexes.


With sufficient media, I can perform the following actions:

Nudge Left: Move the selected iota(s) one space to the left.

Nudge Right: Move the selected iota(s) one space to the right.

Delete: Remove the selected iota(s) from the list.

Duplicate: Create a copy of the selected iota(s).

Undo: Revert the last action performed.

Redo: Re-perform actions previously reverted with Undo.


For more advanced operations, some extra storage is required. I can place an iota-holding item in the slot to the left to unlock the following actions:

Copy: Write the selected iota(s) to a new list in the secondary item.

Cut: Same as Copy, but also delete the selected iota(s).

Paste: Replace the selected iota(s) with the iota in the secondary item. If the iota is a list, its contents are pasted instead; I can override this by holding Sneak.


Finally, I can insert a Staff into the lower left slot to reveal a miniature casting grid. Patterns drawn on this grid are inserted directly into the list, overwriting any selected iotas.

There are also six general-purpose inventory slots on the right side. These have no special functionality; they're just a convenient place to store a few extra items.


Unfortunately, all of this incredible versatility comes at a cost. In order to modify the contents of items, media is required - about a tenth of one Amethyst Dust per action performed.

I can supply media to the Splicing Table by putting it in the lower right slot. The table will consume up to ten Amethyst Dust at once; any surplus is ignored until it can be consumed without wasting media.


If this small cost is prohibitive, or if I wish to perform more complicated actions than those previously described, there is another option. I can use patterns such as Chronicler's Purification to manipulate the contents of the item in the main slot, and I've devised some specialized patterns to control other aspects of the splicing table.

Now, if only I could make the table think for itself...


Click to show recipes Click to hide recipes
Splicing Table
Crafting Table
Edified Planks
Charged Amethyst
Edified Planks
Amethyst Shard
Focus
Amethyst Shard
Block of Slate
Gold Ingot
Block of Slate
Splicing Table

She plugged in strings one after the other, the tiny metal cubes flying in and out as her fingers danced over the tray with blinding speed.


I have seen... so much. I have... experienced... annihilation and deconstruction and reconstruction. I have seen the atoms of the world screaming as they were inverted and subverted and demoted to energy. I have seen I have seen I have sget stick bugged lmao

Mindsplice TableMindsplice Table

The Splicing Table is fine. Adequate. But limited, oh so limited. I have seen what is possible now, and I must have it, no matter the cost.

I shall MAKE the table think for itself.


A solution. Yes. Familiar -- almost simple in its infinite complexity. As with my previous insights, I can specialize a mind -- sever it from the body, redirect, connect, rewire, transform -- for the task at hand. Like an Impetus... but greater, more complicated, more and more and more and more and-- I MUST FOCUS.


Click to show recipes Click to hide recipes
Mindsplice Table
Flay Mind Recipe GUI Journeyman Toolsmith
Hero of the Village Villager must be a Journeyman Toolsmith or higher
Splicing Table
Amethyst Dust
100
Amethyst Shard
20
Charged Amethyst
10
Mindsplice Table

Another mindflaying ritual. The task demanded of the mind is almost identical to that of a Toolsmith Impetus, but more experience is required for this specialized, intricate work.


The resulting Mindsplice Table is almost the same as before, but transmuted, improved, in a single all-important way. With a mind to channel the patterns, the table can cast any Hex almost effortlessly, triggered by nothing more than the press of a button.
A small infusion of media is still required to initiate the process -- wasteful, but perhaps less so than my archaic, short-sighted designs of old. For spells, media is drawn from the same source.


Of course, the flayed mind has limits. It must be taught; even such a skilled mind cannot predict my needs without some guidance. Unlike an Impetus, however, slates are not required -- the commands are instead imbued directly into the mind, rewriting its neural pathways and leaving it no choice but to carry out my will.


To facilitate even more complicated operations -- one Mindsplice Table controlling, dominating, the next, and so on and so on and so on and so on and so on into eternity, if I have the patience and capacity to use it -- the table's influence extends a small distance (four blocks, no more and no less) from the table. Small, yes, but perfectly adequate for most purposes. If more space is needed, my Greater Sentinel can be used.


A list of all the patterns I've discovered, as well as what they do.

DebuggerDebugging Patterns

Debugger's Reflection (→ bool)

Your browser does not support visualizing patterns. Pattern code: qqqqqewaa

Add True to the top of the stack if executed by a Debugger or Evaluator, or False otherwise.


Debug Locator's Rfln. (→ int or null)

Your browser does not support visualizing patterns. Pattern code: dedqdeqwaa

Add the index of the next iota to be evaluated if executed by a Debugger or Evaluator, or Null otherwise.


Cognitohazard Rfln. (→ cognitohazard)

Your browser does not support visualizing patterns. Pattern code: wdeaqqdqeedqadqeedqaeadeaqqeadeaqqdqdeaqqeaeedqaw

Add a Cognitohazard to the top of the stack.


It seems certain debugging tools may pose a security risk for some high-level techniques. To help combat this, I have created this pattern.

When a Cognitohazard iota is executed normally, nothing happens. However, if one is present in a Hex executed by a Debugger, it will cause the Hex to terminate immediately - even before the Cognitohazard is actually executed.


Set Breakpoint Before

Your browser does not support visualizing patterns. Pattern code: awqdeew

Pause the Debugger before executing this pattern.


Set Breakpoint After

Your browser does not support visualizing patterns. Pattern code: wqqaewd

Pause the Debugger after executing this pattern (ie. before executing the next pattern).


Craft Debugger (entity, [pattern] →)

Your browser does not support visualizing patterns. Pattern code: aaewwwwwaqwawqwadawqwwwawwwqwwwaw

Create a Debugger that casts a Hex, similar to certain other patterns I've used in the past.

Costs about ten Charged Amethyst.


Mindsplice TableMindsplice Table Patterns

Imbue Mindsplice Table (vec, list →)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwqqqwqwqqwwqqeaeqqeqqeaeqqw

Remove a vector and list of patterns from the stack, then imbue the list of patterns into the Mindsplice Table at that position.
Costs about five Charged Amethyst.


Mindsplice Purification (vec → list | null)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwqqqwqwqqwq

Remove a vector from the stack, then push the Hex currently imbued to the Mindsplice Table at that position, or Null if it has not yet been imbued.


In addition to these patterns, I can also cast Waystone Reflection and Lodestone Reflection from within a Mindsplice Table. However, trying to cast them through a Staff, or trying to cast other Spell Circle-only patterns through a Mindsplice Table, will still fail rather spectacularly.


Splicing TableSplicing Table Patterns

Sprocket's Purification (vec → num)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwdwaqaw

Remove a vector from the stack, then push the index of the leftmost iota currently visible in the Splicing Table at that position.


Sprocket's Gambit (vec, num →)

Your browser does not support visualizing patterns. Pattern code: wedqdewawdedw

Remove a vector and number from the stack, then move the view of the Splicing Table at that position so that the given index is the leftmost one visible.


Splicer's Decomposition (vec → num | null, num | null)

Your browser does not support visualizing patterns. Pattern code: wqaeaqweeeedq

Remove a vector from the stack, then push two values representing the current selection in the Splicing Table at that position.


If a range of iotas is selected, two numbers are pushed, representing the start (inclusive) and end (exclusive) of the selected range. If the edge between two iotas is selected, the index of the iota to the right of the selected edge is pushed, followed by Null. And if nothing is selected, Null is pushed twice.


Splicer's Gambit (vec, num | null, num | null →)

Your browser does not support visualizing patterns. Pattern code: wedqdewqqqqae

Remove a vector and two values from the stack, then set the selection of the Splicing Table at that position as previously described.


Compositor's Prfn. (vec → any)

Your browser does not support visualizing patterns. Pattern code: wqaeaqweeeedw

Remove a vector from the stack, then copy the contents of the secondary item in the Splicing Table at that position and push it to the stack.


Compositor's Gambit (vec, any →)

Your browser does not support visualizing patterns. Pattern code: wedqdewqqqqaw

Remove a vector and iota from the stack, then save the iota into the secondary item in the Splicing Table at that position.
As with Chronicler's Gambit, I cannot write my own Name using this spell.


Producer's Purification (vec → bool)

Your browser does not support visualizing patterns. Pattern code: wqaeaqweeeedww

Replace the vector at the top of the stack with True if there is a Splicing Table at that position containing a secondary item that I could read, or False otherwise.


Director's Purification (vec → bool)

Your browser does not support visualizing patterns. Pattern code: wedqdewqqqqaww

Replace the vector at the top of the stack with True if there is a Splicing Table at that position containing a secondary item that I could save an iota into, or False otherwise.


Projectionist's Prfn. (vec → num)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwedqddq

Remove a vector from the stack, then push the current page number (starting at 1) of the Spellbook in the main slot of the Splicing Table or Focal Frame at that position.


Projectionist's Gambit (vec, num →)

Your browser does not support visualizing patterns. Pattern code: wedqdewqaeaae

Remove a vector and number from the stack, then flip the Spellbook in the main slot of the Splicing Table or Focal Frame at that position to the given page number.


Shutter's Purification (vec → bool)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwedqddqw

Replace the vector at the top of the stack with True if there is a Splicing Table or Focal Frame at that position with a Spellbook in its main slot that contains at least one page, or False otherwise.


Projectionist's Prfn. II (vec → num)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwdeaaea

Like Projectionist's Purification, but the page number of the Spellbook in the secondary slot is read instead of the main slot.


Projectionist's Gambit II (vec, num →)

Your browser does not support visualizing patterns. Pattern code: wedqdewaqddqd

Like Projectionist's Gambit, but the page number of the Spellbook in the secondary slot is written instead of the main slot.


Shutter's Prfn. II (vec → bool)

Your browser does not support visualizing patterns. Pattern code: wqaeaqwdeaaeae

Like Shutter's Purification, but the Spellbook in the secondary slot is checked instead of the main slot.