premium banner
A KubeJS addon for creating custom bows/crossbows and other ranged weapons.

Description

A KubeJS addon for pack dev to easily create custom bows and modify existing bows/crossbows.

  • Note: Skeletons do not natively use custom bows; you may check another mod "Skeleton Uses Custom Bow" for that feature.
  • Note: Pillagers can use custom crossbow by default, but piglins can't; you may install "Piglin Hunt Fix" for that feature.

Example codes can be found on the wiki page.

You can also create vanilla-like bow model with client script:

ClientEvents.highPriorityAssets(event => {
    event.easyBowModel("kubejs:bow_golden")
})

You just need to put texture pictures in kuebjs/assets/kubejs/textures/item/ The texture file names should be bow_golden.png, bow_golden_pulling_0.png, bow_golden_pulling_1.png, bow_golden_pulling_2.png

You can also modify existing bows with ItemEvents.modification like this:

ItemEvents.modification(event => {
    const $BowItem = Java.loadClass("net.minecraft.world.item.BowItem")
    event.modify("minecraft:bow", item => {if(item instanceof $BowItem){
        item.bow(bow => {
            bow
            .onArrowHit(arrow => {arrow.hitBlock(event => {
                event.arrow.block.createEntity("lightning_bolt").spawn()
            })})
            .modifyBow(attributes => {
                attributes.fullChargeTick(15).baseDamage(6)
            })
        })
    }})
})

This mod also supports Archery Expansion. You may create a bow with archery expansion properties if the mod is also installed.

    event.create("kjsaexpbow", "bow").bow(bow => {
        bow.AExpBow(aexp => {
            aexp.archeryexp$setWalkSpeed(1) //Please use ProbeJS to get usable methods
        })
    })