- Java 100%
Adds actions/cache@v4 for ~/.gradle so builds restore the dependency set instead of re-downloading it every run. [skip ci] |
||
|---|---|---|
| .forgejo/workflows | ||
| .run | ||
| gradle/wrapper | ||
| src/main | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle | ||
| CHANGELOG.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| kubejs_studio.svg | ||
| kubejs_studio_512.png | ||
| kubejs_studio_square.svg | ||
| kubejs_studio_square_512.png | ||
| modpack-helper-spec.md | ||
| README.md | ||
| settings.gradle | ||
KubeJS Studio
An in-game IDE for KubeJS. Build recipes, edit tags, rework loot tables, and retune item/block stats from a real GUI inside Minecraft. Studio writes clean KubeJS scripts for you, so everything you make is a normal script you can keep, version, and share, no black-box save format.
Press one key, open the workspace, click a recipe, change it, apply. No alt-tabbing
to a text editor, no memorising event.shaped(...) syntax, no reload-guessing which
file broke.
Requires KubeJS 2101.7+ for NeoForge 1.21.1. Studio is a client-side authoring tool that generates KubeJS scripts; KubeJS runs them.
Why
Writing a modpack means writing hundreds of KubeJS recipes, tag edits, and loot
tweaks by hand. That is a lot of syntax to remember, a lot of item IDs to look up,
and a lot of /reload cycles to find the one typo that killed the script.
KubeJS Studio turns that loop into point-and-click. You browse what is actually loaded in your game, edit it visually, and Studio emits the exact script KubeJS expects. It is not a replacement for KubeJS, it is a front end for it.
Open it
Press K (rebindable in Controls) in-game to open the workspace. Five tabs across the top: Recipes, Tags, Loot, Properties, Files.
Nothing is applied until you queue it. Every change lands in a Pending Changes
panel first, so you can review the whole batch before it touches your pack. When you
apply, Studio writes the scripts and (for recipes/tags/loot) they go live on the next
/reload.
The tabs
Recipes
Browse every recipe loaded in your instance, filter by mod, item, or type, and edit in place. Add new recipes with a visual grid, override or disable existing ones, and pull items straight from an item picker instead of typing IDs.
Supports vanilla recipe types (shaped, shapeless, smelting, blasting, smoking, campfire, stonecutting, smithing) and Create 6 recipe types (mixing, crushing, pressing, deploying, sequenced assembly, and the rest) when Create is installed.
Use case: "This modpack has three ways to make brass and I want to remove two of
them." Filter recipes to brass_ingot, click the two you do not want, disable them,
apply. Done in under a minute, and the result is a readable recipes.js you can drop
in any pack.
Generated output (Studio writes this for you):
ServerEvents.recipes(event => {
event.remove({ output: 'create:brass_ingot', type: 'create:mixing' })
event.shaped('minecraft:chest', ['PPP', 'P P', 'PPP'], { P: '#minecraft:planks' })
})
Tags
Add to, remove from, or replace the contents of any tag, for any registry (items,
blocks, fluids, entities, and dynamic registries resolved by path). Pick a Tag Type,
find the tag, edit its values. Great for wiring new mod items into vanilla tags like
#minecraft:planks or #forge:ingots/copper so recipes and mechanics pick them up.
Use case: "My custom wood should count as planks everywhere." Open Tags, Tag
Type: Item, find minecraft:planks, add your item, apply.
Loot
Edit real loot tables in place. Click a block or entity, see its actual drops, and change the count, weight, or entries directly. No JSON diffing, no guessing at pool structure, you edit the drops the game is really rolling.
Use case: "Diamond ore should drop two to four diamonds with Fortune scaling." Open the ore's loot table, bump the count range, apply.
Properties
Retune base item and block stats that no recipe or tag can touch: max stack size,
durability, food values, burn time, mining speed, blast resistance, light emission,
friction, "requires tool to drop." Studio writes the ItemEvents.modification /
BlockEvents.modification startup script.
These are startup edits: they apply on game restart, not
/reload. Studio tells you which changes need a restart.
Use case: "Make torches stack to 16 and let apples fully heal." A couple of field edits, restart, done.
Files
A full file explorer and multi-file text editor built into the game. Browse your whole pack instance, open and edit any text file across tabs, preview images, and do create / rename / delete with guard rails. The editor has syntax highlighting, autocomplete backed by the live game state, and searchable API / ID browsers so you can look up the right event or item ID without leaving the screen.
Use case: Tweak a hand-written script, fix a pack.mcmeta, or check an icon
without alt-tabbing to a separate editor.
Where your work goes
Studio writes real KubeJS scripts into your pack's kubejs/ folder, one clean file
per resource type (recipes.js, tags/<registry>.js, loot_tables.js, and a
startup script for properties). Re-applying merges into the existing files instead of
clobbering them.
That means everything you build in Studio is a normal, version-controllable KubeJS script. Ship your pack, hand the files to a teammate, or keep editing them by hand, Studio does not lock you in.
There is also a datapack backend for output that belongs in kubejs/data.
Extras
- Create integration. Detects Create and unlocks its recipe types in the Recipe tab, emitting valid Create 6 JSON.
- Themes. Multiple built-in color themes, and you can drop your own JSON theme in
config/kubejsstudio/themes. - Resizable panels. Drag to resize the browser and editor columns; your layout is remembered.
Compatibility
| Minecraft | 1.21.1 |
| Loader | NeoForge |
| Java | 21 |
| Requires | KubeJS 2101.7+ |
| Optional | Create 6 (unlocks Create recipe types) |
Client-side authoring tool. Install it in a dev instance, build your pack, ship the generated scripts.
Building from source
NeoForge 1.21.1 only.
./gradlew build # jar in build/libs/
./gradlew runClient # launch a dev client