KJSAddition is a small client-side helper for Forge 1.20.1 modpacks. It looks at a real crafting table in the world, reads the items you placed there, and turns them into a KubeJS recipe snippet.
The goal is simple: instead of manually rewriting a 9x9 or 11x11 grid into JavaScript, you build the recipe in-game, scan it, and get ready-to-edit KubeJS code in your clipboard and in a generated file.
- Generates Extended Crafting recipes:
shaped_tableshapeless_table- regular 3x3, 5x5, 7x7, 9x9, and 11x11 tables
- auto table variants when the block exposes a compatible inventory
- Detects the recipe tier from the filled grid size.
- Trims empty borders so shaped recipes stay compact.
- Lets you choose the output item by holding it in your main hand after scanning.
- Falls back to a
minecraft:barrierTODO output if no result is selected within 10 seconds. - Copies the generated recipe to your clipboard.
- Appends recipes to a KubeJS file without duplicating existing entries.
- Preserves NBT on outputs and ingredients with
Item.of(...). - Handles
extendedcrafting:singularitywith itsIdNBT. - Generates item IDs by default, not forge tags. Tags can still be enabled manually.
Botania support is optional.
If Botania is not installed, KJSAddition should still load normally. The integration does not require Botania as a mandatory runtime dependency.
When Botania is installed, you can scan a Runic Altar:
- Run
/recipemaker scan. - Hold any item in your main hand as a marker.
- Sneak and right-click the Runic Altar.
- Hold the desired output item in your main hand within 10 seconds.
Generated Botania recipes are written to:
kubejs/kjsadditions/generated_botania_recipes.js
Mana cost is currently emitted as 0 // TODO: set mana cost, because it is safer to review and set it manually.
/recipemaker scanStarts a 10-second scan window. For Extended Crafting, open the table and look at it. For Botania, sneak and right-click a Runic Altar.
/recipemaker cancelCancels the active scan.
/recipemaker statusShows the current recipe mode and tag setting.
/recipemaker mode shaped
/recipemaker mode shapelessSwitches between shaped and shapeless recipe output.
/recipemaker tags on
/recipemaker tags offEnables or disables tag-based ingredients. The default is off, so generated recipes are direct and predictable.
Extended Crafting:
kubejs/kjsadditions/generated_recipes.js
Botania:
kubejs/kjsadditions/generated_botania_recipes.js
Files are created automatically. They include the usual KubeJS wrapper:
ServerEvents.recipes(event => {
// generated recipes
})ServerEvents.recipes(event => {
event.recipes.extendedcrafting.shaped_table(
'minecraft:diamond',
[
"AAA",
"ABA",
"AAA"
],
{
A: 'minecraft:coal',
B: 'minecraft:emerald'
}
).tier(1);
})Required:
- Minecraft
1.20.1 - Forge
47+ - KubeJS
- Extended Crafting, if you want to generate Extended Crafting recipes
Optional:
- Botania, if you want Runic Altar scanning
KJSAddition is for modpacks with lots of custom recipes, especially large Extended Crafting grids where manual KubeJS entry gets tedious fast.
It is not trying to be a full recipe editor. It handles the repetitive part: place the items, scan the table, get a clean JS draft, adjust the details, and move on.