CurseForge · Minecraft mod
KubeJS Curios
Curios integration for Kubejs
Quick answer
Which KubeJS Curios release should I use?
KubeJS Curios kubejs_curios_neoforge_1.21.1-1.0.4.jar targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. All 3 required mods have matching files.
Where it goes
Is KubeJS Curios required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does KubeJS Curios kubejs_curios_neoforge_1.21.1-1.0.4.jar need?
kubejs_curios_neoforge_1.21.1-1.0.4.jar. Change the file and its required mods may change too.
Install Curios API, KubeJS, Rhino first. We found matching files for this game-version and loader setup. 1 comes through another mod in the chain.
1 extra mod was pulled in by another dependency. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add KubeJS Curios without breaking your instance.
Built for KubeJS Curios kubejs_curios_neoforge_1.21.1-1.0.4.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use kubejs_curios_neoforge_1.21.1-1.0.4.jar. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Curios API, KubeJS, Rhino first. We found matching files for this game-version and loader setup. 1 comes through another mod in the chain.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside kubejs_curios_neoforge_1.21.1-1.0.4.jar. It opens that exact file at the source.
About this project
What does KubeJS Curios add?
Use this mod, you can:
1.Get CuriosHelper from LivingEntity
2.Create Custom Curios
3.Add Curios capabilities to items
4.Register or remove Curios render
5.Add CuriosJS Events
LivingEntity Curios Helper

Registry Curios & Item Modify (Startup)
StartupEvents.registry('item', event => {
event.create('test')
.attachCuriosCapability(
CuriosJSCapabilityBuilder.create()
.curioTick((slotContext, stack) => { })
.onEquip((slotContext, oldStack, newStack) => { })
.onUnequip((slotContext, oldStack, newStack) => { })
.canEquip((slotContext, stack) => true)
.canUnequip((slotContext, stack) => true)
.modifySlotsTooltip((tooltips, stack) => tooltips)
.addAttribute(
"minecraft:generic.max_health",
UUID,
20,
'addition'
)
.modifyAttribute(attributeModificationContext => {
let { slotContext, UUID, stack, modifiers } = attributeModificationContext
attributeModificationContext.modify(
"minecraft:generic.armor",
"identifier",
20,
'addition'
)
})
.canDrop((slotContext, source, lootingLevel, recentlyHit, stack) => true)
.modifyAttributesTooltip((tooltips, stack) => tooltips)
.modifyFortuneLevel((slotContext, lootContext, stack) => 0)
.modifyLootingLevel((slotContext, source, target, baseLooting, stack) => 0)
.makesPiglinsNeutral((slotContext, stack) => false)
.canWalkOnPowderedSnow((slotContext, stack) => false)
.isEnderMask((slotContext, enderMan, stack) => false)
)
.maxStackSize(1)
.tag("curios:head")
})
ItemEvents.modification(event => {
event.modify('apple', item => {
item.attachCuriosCapability(
CuriosJSCapabilityBuilder.create()
.curioTick((slotContext, stack) => { })
.onEquip((slotContext, oldStack, newStack) => { })
.onUnequip((slotContext, oldStack, newStack) => { })
.canEquip((slotContext, stack) => true)
.canUnequip((slotContext, stack) => true)
.modifySlotsTooltip((tooltips, stack) => tooltips)
.addAttribute(
"minecraft:generic.max_health",
"identifier",
20,
'addition'
)
.modifyAttribute(attributeModificationContext => {
let { slotContext, UUID, stack, modifiers } = attributeModificationContext
attributeModificationContext.modify(
"minecraft:generic.armor",
UUID,
20,
'addition'
)
})
.canDrop((slotContext, source, lootingLevel, recentlyHit, stack) => true)
.modifyAttributesTooltip((tooltips, stack) => tooltips)
.modifyFortuneLevel((slotContext, lootContext, stack) => 0)
.modifyLootingLevel((slotContext, source, target, baseLooting, stack) => 0)
.makesPiglinsNeutral((slotContext, stack) => false)
.canWalkOnPowderedSnow((slotContext, stack) => false)
.isEnderMask((slotContext, enderMan, stack) => false)
)
})
})
Render (Client)
CuriosJSEvents.registerRenderer(event => {
// remove curios render
event.remove('test')
// register curios render
event.register(
'apple',
context => {
let {
stack,
slotContext,
matrixStack,
renderLayerParent,
renderTypeBuffer,
light,
limbSwing,
limbSwingAmount,
partialTicks,
ageInTicks,
netHeadYaw,
headPitch
} = context
let { modelManager } = Client
let entity = slotContext.entity()
let model = modelManager.getModel(new ModelResourceLocation(stack.id, 'inventory'))
matrixStack.pushPose()
CuriosRenderer.translateIfSneaking(matrixStack, entity)
matrixStack.mulPose(new Quaternionf().rotateZ(JavaMath.toRadians(180)))
matrixStack.mulPose(RotationAxis.YP.deg(-netHeadYaw))
matrixStack.mulPose(RotationAxis.XP.deg(-headPitch))
Client.itemRenderer.render(
stack,
'head',
false,
matrixStack,
renderTypeBuffer,
light,
OverlayTexture.NO_OVERLAY,
model
)
matrixStack.popPose()
}
)
})

Project description from CurseForge.
Pick your setup
KubeJS Curios by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.1
1 loader build1.20.1
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
KubeJS Curios versions and loaders
kubejs_curios_neoforge_1.21.1-1.0.4.jar
29 Jul 2025
kubejs_curios_forge_1.20.1-1.0.4.jar
29 Jul 2025
kubejs_curios_forge_1.20.1-1.0.3.jar
23 Jun 2025
kubejs_curios_neoforge_1.21.1-1.0.2fix.jar
3 May 2025
kubejs_curios_forge_1.20.1-1.0.2fix.jar
3 May 2025
kubejs_curios_neoforge_1.21.1-1.0.1.jar
2 May 2025
kubejs_curios_forge_1.20.1-1.0.1.jar
2 May 2025
kubejs_curios_neoforge_1.21.1-1.0.0.jar
30 Apr 2025
kubejs_curios_forge_1.20.1-1.0.0.jar
30 Apr 2025
Looking for an older file? The official CurseForge project page is in Resources.