KubeJS Curios logo

KubeJS Curios

Mod

by zhaiji

Curios integration for Kubejs

Downloads

1,889,648

Type

Mod

CurseForge ID

1255211

Last Updated

Apr 9, 2026

Description

Curios integration for KubeJS

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() } ) })

Screenshots

Similar Mods

External Resources