HexParse
ModConverts custom code into (pattern or literal) list iota by command; with various features for coding conveniently.
Type
Mod
Modrinth Downloads
11,750
Modrinth ID
WjFyIzFj
Last Updated
Apr 12, 2026
Description
HexParse mod
Provides a pair of patterns and a set of commands to convert custom code into (pattern or literal) list iota; requires player to have a focus item in hand.
(Old KubeJS version HERE)
Example Code Example Iota Example Iota (Colorful Nested)
The highlight VSCode extension has only basic functions, and needs to be put into "%USERPROFILE%\.vscode\extensions\hexParse_highlight" manually.
- HexParse mod
Supported IO Item Types
- Focuses
- Spell Books
- (1.20) Thought Knots
- recognized by item classes, able to add more via HexParseAPI or IOMethod
Commands added
Reading & Writing
- /hexParse <code string> [rename]: parse input code into supported held item; optional rename argument to rename the item.
- /hexParse read: read handheld item's iota, parse into code and show in chat window; the result will be copied when clicked.
- /hexParse read_signatures: same as read, but ignores all known pattern IDs and outputs all as angle signatures.
- /hexParse clipboard [rename]: read client clipboard text and parse into supported held item; optional rename argument to rename the item.
- /hexParse clipboard_angles [rename]: same as clipboard, but only accept patterns input with raw angle string like "wedsaq".
- /hexParse share: (experimental) same as read but broadcasts iota's raw content and click-copy-able parsed code to every player in the server.
- /hexParse read_hexbug: same as read but translates the result to the format used by discord HexBug's /patterns hex command. note: non-pattern constants and some old registry names still need to be handled manually
- /hexParse mind_stack ...: read/write iota from player's mind (staff casting VM)
- ... peek: read the last iota inside mind stack; gets null if stack is empty
- ... push <code>: parse code and push into mind stack
- ... push_clipboard: same as above, but code comes from clipboard
- /hexParse property ...: (Hexcellular interop) get/set data for PropertyIota; used property names all force-added leading _ for security reason
- ... read <propName>: read and parse from certain property
- ... write <propName> <code>: write code into certain property
- ... clipboard <propName>: same as above, but code comes from clipboard
Configs
- /hexParse (macro/dialect) ...: edit client-saved code dialects (1-on-1 mapping, not starting with #) and macros (
mapped to code segments, starting with #)
- ... list: list all saved macros/dialects; there exist several predefined macros from
the nature - ... define <key> <value>: define a macro/dialect mapping; could be fresh-new or overriding existed one.
- macro define_clipboard <key>: same as above, but only for macros, and reads player's clipboard
- ... remove <key>: remove mapping entry with given key (if exists)
- ... list: list all saved macros/dialects; there exist several predefined macros from
- /hexParse conflict: conflict resolver for multiple patterns with same short name (ID path)
- only enables in physical client (singleplayer, local multiplayer) or with OP permission
- ... or ... list: list all short names pointed by multiple long IDs
- ... list <short_name>: list all conflicting IDs under certain short name
- ... set <short_name> <long_ID>: redirect certain short name to input pattern ID
Misc. & Helpers
- /hexParse donate [amount]: donate custom amount of media to the nature. Pay if you feel guilty using this mod ::)
- /hexParse lehmer [...nums]: calculate lehmer code for given permutation (from ascending, e.g. 0 1 2 3 4); input should be separated with space; the result number can be used for Swindler's Gambit.
OP-Only Commands
- /hexParse unlock_great (unlockAll|lockAll|unlock <pattern id>|lock <pattern id>): controls great pattern unlocking process of current world by locking/unlocking all at once, or a single great pattern each execution.
Patterns added
- comment_switcher: Transforms input Comment Iota into String Iota, or everything else into Comment Iota.
- code2focus: Equivalent to /hexParse clipboard (now not only focuses).
- focus2code: Equivalent to /hexParse read.
- remove_comments: Clears comment iotas from a (nested) list input.
- learn_patterns: Read handheld items and learns great pattern(s) inside.
- create_linebreak: Adds a line-break comment iota with space-indents of given number to the stack.
- donate: Equivalent to /hexParse donate.
- (great spell) compile: takes in a MoreIotas string iota, and parses it into a code list.
Introduction also written in HexParse Patterns section inside the book.
Supported expressions
see this file for all available symbols.
Misc. Features
- At each pattern's page, press Shift to display the pattern's registry ID
Available Configs
Limited great pattern parsing
When failing to parse restricted great spells from code to iota, the parser leaves a placeholder comment in-place, which can be read as original input later.
Example
The config entry ParseGreatSpells determines the mode this mod deals with great patterns.
Parsing iota with great patterns to code is not limited.
Normal Mode (by default): BY_SCROLL
All great patterns are restricted at first, and have to be unlocked by a Learn Great Patterns pattern after acquiring certain items containing great patterns.
Easy Mode (by default before ver.0.7): ALL
Parsing is not limited, and great patterns can be used freely regardless of world exploration and looting progress.
Hard Mode: DISABLED
Parsing is not limited.
Other configs
Entry Type Description CommentParsingMode enum how comments get parsed into iotasALL: including comment_%ss and /* */s & //s;MANUAL(default): only comment_%ss;DISABLED: no comments at all IndentParsingMode enum how indents get parsed into iotasALL(default): coding indents will be auto-converted into tab_%d;MANUAL: only tab_%ds accepted;DISABLED: no indents at all ShowUnknownNBT enum how to handle unsupported iota's inner dataKEEP_NBT(default): save whole NBT as Base64 string;SHOW_NBT: output UNKNOWN(serialized NBT);SIMPLE: show UNKNOWN only MaxBlankLineCount int how many continuous blank lines are allowed in parsed spell; excess ones will be ignored AddIndentInsideMacro bool code indentation add to tab_N's inside nested macros ParserBaseCost int Base cost for each iota (except comments/tabs) FairPlayPropNames bool randomize property names based on input string ShowColorfulNested bool Whether to colorize nested list (and intro/retros in 1.20)New iota: CommentIota
CommentIota displays string inside, and parses into a null iota (with id: "hexparse:comment") which executes doing
nothing.
Comment iotas includes text comments, line-breaks & indents, and unknown great spell placeholders.
When player holds Shift key, all comments will be hidden.
(for v1.8.0+) HexParseAPI
- Location: io.yukkuric.hexparse.api.HexParseAPI
- Contents:
- AddForthParser(p: IStr2Nbt)
- AddBackParser(p: INbt2Str)
- <T : SpecialHandler> AddSpecialHandlerBackParser(cls: Class<T>, func: (T, CompoundTag) -> String)
- CreateItemIOMethod(cls: Class<*>, writer: ((ItemStack, CompoundTag) -> Unit)?, reader: ((ItemStack) -> CompoundTag?)?, priority: Int = 0, validator: ((ItemStack, Boolean) -> Boolean)? )`
Compatibility
Mod Loaders
Game Versions
Screenshots
Similar Mods
[Remake] Logistics Bridge
Add-On mod for AppliedEnergistics, Refined Storage and Logistics Pipes
SummoningScepters
Summon Mobs to fight for you using Scepters and Summoning Tomes
Mod Whitelist
A security mod that prevents players entering the server if modlist not matches
No Nether Fog
Clientside mod that removes the fog in the nether. It also adds a zoom key.
Block Blocker
Event Prevention for Blocks
ServerAddressSpaceFix
Fix the "unknown host" bug when adding a server or connecting directly to a server with a space at the end of the server...