
ModsJava
HexJSNeo
Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.
Adding game contents via KubeJS for base mod Hex Casting, including pattern actions, special handlers, iota types, and more.
⬇ Download on ModrinthHexJSNeo
Provides a way to create custom contents for Hex Casting via KubeJS.
Features
Core Concepts
- Minimal efforts: auto registered great pattern tags, omit all optional args, pipe everything, ...
- Weak typed:
ActionJSreturns,ActionRegistryJS.of, etc. - Mutable is best: no registration event and phase limit, writing and reloading everywhere in startup scripts, we're writing JS \yay/
- Clean global scope: everything under a single
HexJSglobal object, no leaks
Game Content Registry
ActionJS: basis for all executables- customizable
operate&operateInParens, with high degree-of-freedom return value handling - additional helper methods for creating
operatevarieties - assigning
mediaCostto auto-attach media-cost side effect on operate, withpreCheckMediamethods to help check & mishap before logics
- customizable
ActionRegistryJS: registering certain patterns with actions- = Registry ID + Pattern prototype + inner
ActionJS+ Great-pattern marker (default false) - weak-typed constructor
ActionRegistryJS.of(...): args in any order among its constructor, missing ones auto-filled (id from pattern signature, freshActionJS,false); only the pattern is required - transparent proxy of inner
ActionJS: operate setters (setOperate& variants),mediaCostandpreCheckMediaare callable directly on the registry object - great spells are auto-tagged with per-world / enlightenment tags
- = Registry ID + Pattern prototype + inner
SpecialHandlerJS: taking an arbitrary pattern and retrieving its meanings- registers a JS
tryMatch(pattern, env)factory consulted for every drawn pattern SpecialHandlerJS.create(action, name)to help build aSpecialHandler, in whichactioncould be another specially createdActionJS- chain setter
setTryMatchfor KJS-ish usage
- registers a JS
IotaJS: highly customizable iota types- NBT-backed custom iotas:
IotaJS.type(id)creates the type, containingCompoundTagiota data - overriding common iota interfaces (display, color, size, etc.) with either callbacks or constants
- optional executability via
setOperate, controlling its execution behaviors outside and inside parens
- NBT-backed custom iotas:
ArgsJS: basically a forwarder for various built-in Kotlin extension functions- used on a mutable iota list manually, or called from
ActionJS.setOperateArgsSplit - typed getters (
double,vec3,entity, ...) with auto mishaps on missing args or wrong types
- used on a mutable iota list manually, or called from
CastingEnvironmentComponentJS: vanilla but in JS, with more convenient Key creation- each component takes a key string as the first constructor arg, from which the
Keyis auto-created & cached (setKeyto change it later) - usages and types same as vanilla
- each component takes a key string as the first constructor arg, from which the
MishapJS: highly customizable mishap types- declaring the type using
MishapJS.type()first, quite similar toIotaJS - calling
type.create()ortype.create(data)for a mishap of this type - KJS-ish piped methods to override all behaviors of created mishaps
- declaring the type using
QoL Features
- Hot-swap everything
- everything, simple as
/kjs reload startup-scripts - covers: actions (entry action & prototype replaced in-place), special handlers, iota types
- not for those haven't created on startup, but it's possible to match later-created pattern actions using a SPECIAL handler :3
CastingEnvironmentComponentJSandMishapJSare born temporary and not covered here
- everything, simple as
- API & packages importer:
HexJS.API&HexJS.APIFlat- exposes all Hex Casting classes scanned from the mod jar, either nested by package (
HexJS.API.<...package>.<Class>) or flat (HexJS.APIFlat)
- exposes all Hex Casting classes scanned from the mod jar, either nested by package (
ProbeJS Typing Support
- generates typings for the JS-facing API, including nested
HexJS.APIlevels, fake-singleton classes flattened to static fields, and subclass members assigned onto their parents
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21.1
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
File checked by MCModsHub
- Ships as HexJSNeo-neoforge-1.21.1-0.1.1.pre64.jar — drop this file into the mods folder
- Download size: 365 KB
- Download link checked 21 Oct 2026 — working
These come from our own check of the pack file, not from the source page.