Unofficial KubeJS Roots compatibility fork for Minecraft 1.21.1 / NeoForge and KubeJS
Based on KubeJS Roots by Prunoideae. This fork adapts recipe-component registration and related API/schema calls for the target KubeJS version. It retains the original mod ID as a drop-in replacement. Do not install it alongside the original mod.
Original project and source:
KubeJS Roots Curseforge
KubeJS Roots Github
Unofficial fork, not endorsed by the original author.
I wanted to do this fork to use it in the development of my modpack Cap's Create RPG 2: Divine Redemption.
If you want to see all the legal documents and stuff, enter the discord and go to the channel related to this.
How to use it (All the text in this category is copied from the original mod's description):
Adds support for Roots Classic in 1.21 including recipes, and custom rituals, spells, and mutations.
Recipes
ServerEvents.recipes(event => {
let { rootsclassic } = event.recipes
// Creates a ritual recipe for the grow ritual
rootsclassic.ritual('rootsclassic:grow',
['bone_meal', 'apple'], // Input ingredients
['bone', 'porkchop'], // Incense items to burn
0, '#aabbcc' // Altar level and color
)
// Creates a mortar recipe
rootsclassic.component(
'minecraft:tnt', // Output item
['gunpowder', 'gunpowder',
'gunpowder', 'gunpowder'],// Input ingredients
)
// and a spell powder recipe
rootsclassic.component(
'rootsclassic:spell_powder', // Spell powder item to record effect data
["oak_button", "oak_button",
"oak_button", "oak_button"],// Input ingredients
'kubejs:boom', // The spell to apply to the powder
true // Needs to be true for spell recipes
)
})
Custom Ritual
StartupEvents.registry('rootsclassic:ritual', event => {
event.create('big_boom')
// The effect that will be run when the ritual is completed
.ritualEffect(context => {
let { level, pos } = context;
level.createExplosion(pos.x, pos.y, pos.z)
.strength(8)
.explosionMode('tnt')
.causesFire(true)
.explode()
})
})
When you perform a ritual in the altar, it runs with the following steps:
- Started count down for the progress time (Think it as some kind of CD or process time)
- Run the ritual effect
Custom Spell
StartupEvents.registry('rootsclassic:component', event => {
event.create('boom')
.sourceItem('acacia_boat')
.manaCost(8) // 2 leaves in the bar
.spellEffect(context => { // The effect that will be run when the spell is cast
let { caster, level } = context
level.createExplosion(caster.x, caster.y, caster.z)
.strength(4)
.causesFire(true)
.explode()
})
})
Custom Mutation
RootsEvents.mutagen(event => {
// Mutating a dandelion into a TNT block
event.add('kubejs:test', "minecraft:tnt", "minecraft:dandelion", builder => {
// Extra items to be thrown near the dandelion
builder.inputs('acacia_button')
// The effect that will be run if the mutation is successful
builder.onCrafted((block, player) => player.potionEffects.add('regeneration', 1000, 0))
// Additional conditions to be met for the mutation to be successful
builder.matches((items, block, player) => player.xpLevel > 10)
})
})