Mineuniverse
Log in Register
Mods

KubeJS Curios

Curios integration for Kubejs
by zhaiji
Download Claim this project
2,484,752 downloads
0 likes
Updated Jun 30, 2026
0 hypes

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

kubejs_curios_neoforge_1.21.1-1.0.4.jar
MC NeoForge, 1.21.1
Release 2025-07-29 Get
kubejs_curios_forge_1.20.1-1.0.4.jar
MC 1.20.1, Forge
Release 2025-07-29 Get
kubejs_curios_forge_1.20.1-1.0.3.jar
MC 1.20.1, Forge
Release 2025-06-23 Get
kubejs_curios_forge_1.20.1-1.0.2fix.jar
MC 1.20.1, Forge
Release 2025-05-03 Get
kubejs_curios_neoforge_1.21.1-1.0.2fix.jar
MC NeoForge, 1.21.1
Release 2025-05-03 Get
kubejs_curios_forge_1.20.1-1.0.1.jar
MC 1.20.1, Forge
Release 2025-05-02 Get
kubejs_curios_neoforge_1.21.1-1.0.1.jar
MC NeoForge, 1.21.1
Release 2025-05-02 Get
kubejs_curios_forge_1.20.1-1.0.0.jar
MC 1.20.1, Forge
Release 2025-04-30 Get
kubejs_curios_neoforge_1.21.1-1.0.0.jar
MC NeoForge, 1.21.1
Release 2025-04-30 Get

More from zhaiji

GrindstonePlus
95,353
Elaina'sBroom
949,086
AnvilCraft Transducers
257
Cat Burger
2,259,011
Twilight Forest: Travellers Set Plus
211
Who Am I: Core
1,622

You Might Also Like

Forbidden Arcanus JS
Forbidden and Arcanus kubejs Compatibility
97,097
Immersive Engineering JS
kubejs compat for ie
94,624
Theurgy KubeJS
Theurgy KubeJS provides KubeJS integrations for Theurgy.
9,503,452
CucumberJS
A KubeJS addon for creating Cucumber Library tools/weapons. That's it. idk why you'd need this
88,475
EntityJS
This mod uses KubeJS to dynamically register entities with full AI/Animation/Spawn Control support!
8,731,173
KubeJS Eidolon
KubeJS addon for Eidolon Repraised and its recipes
86,663