Shield System
Modby chen_1335
a minecraft mod that provide a simple shield system
Type
Mod
CurseForge Downloads
4,938
CurseForge ID
1263471
Last Updated
Oct 3, 2026
Description
This is an independent shield system from SimpleRPG Core.
It provides a shield system similar to that of League of Legends and it has complete kubejs support.

Currently adapted to Overflow Bars
for kubejs:
StartupEvents.registry("shield_system:shield_type", event => { //Create a simple unit shield that exists permanently event.create("kubejs_test_unit") .createSimpleUnitShield() //Create a simple shield group, where the unit shields of the shield group permanently exist event.create("kubejs_test_group") .createSimpleGroupShield() //Create a shield that lasts for 5 seconds and belongs to the shield group event.create("kubejs_test_time") .createTimeLimitedShield(20 * 5) //Create a shield that continuously decays within 5 seconds and belongs to the shield group event.create("kubejs_test_decay") .createDecayShield(20 * 5) //Next is the advanced section event.create("kubejs_custom_1") //Add shield provider .shieldFactory( //Use the unit shield constructor to provide kjs objects for the builder, making it easier to manage () => UnitShieldBuilder.of((initAmount) => new TestShield(initAmount)) //tick .tick((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().tick(kubeUnitShield, living) }) //save .save((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().save(kubeUnitShield, living) }) //load .load((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().load(kubeUnitShield, living) }) //Since it is a unit shield, a unit shield constructor should not be provided, but rather a unit shield should be provided directly. Therefore,. create (0) .build().create(0) ) event.create("kubejs_cunstom_2") .shieldFactory( //Use shield group () => new GroupShield( //Use the unit shield constructor to provide kjs objects for the builder, making it easier to manage UnitShieldBuilder.of((initAmount) => new TestShield(initAmount)) .tick((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().tick(kubeUnitShield, living) }) .save((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().save(kubeUnitShield, living) }) .load((kubeUnitShield, living) => { kubeUnitShield.getKubeObject().load(kubeUnitShield, living) }) //Since it is a shield group, there is no initial shield, so a unit shield constructor is provided here without the need for. create (0) .build() ) ) }) function TestShield(initAmount) { this.initAmount = initAmount } /** * @param {$KubeUnitShield_<TestShield} kubeUnitShield * @param {$LivingEntity_} living */ TestShield.prototype.tick = function (kubeUnitShield, living) { kubeUnitShield.reduceShieldAmount(this.initAmount / 100) } /** * @param {$KubeUnitShield_<TestShield} kubeUnitShield * @param {$LivingEntity_} living */ TestShield.prototype.save = function (kubeUnitShield, living) { } /** * @param {$KubeUnitShield_<TestShield} kubeUnitShield * @param {$LivingEntity_} living */ TestShield.prototype.load = function (kubeUnitShield, living) { } /** * @param {$LivingEntity_} living */ TestShield.prototype.sendMessage = function (living) { living.sendSystemMessage(this.initAmount) } ShieldSystemEvents.RegisterShieldPriority(event => { //Register shield priority, shields without registered priority will not take effect event.addShieldType("kubejs:kubejs_test_group") event.addShieldType("kubejs:kubejs_test_time") event.addShieldType("kubejs:kubejs_test_decay") })for API use
EntityEvents.afterHurt(event => { //There are two situations to add shield values to a shield://If the target shield is a shield group, a unit shield will be created based on the provided shield value, and then the unit shield will be added to the shield group
//If the target shield is a unit shield, the shield value will be directly increased on the basis of the original shield value ShieldAPI.addShieldAmount(event.entity, "kubejs:kubejs_test_decay", 80) //reduce shield ShieldAPI.reduceShieldAmount(event.entity, "kubejs:kubejs_test_decay", 40) //get shield instance var shieldInstance = ShieldAPI.getShieldInstance(event.entity, "kubejs:kubejs_test_decay") })
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Similar Mods
ScreenshotGallery Mod
integrates a native screenshot gallery into the pause menu, allowing you to preview, manage, and copy images to your cli...
Gun Collection
Huge add-on for MrCrayfish's Gun Mod, over 300 guns
WaterPlayer
Internet music player built into the client
Spawn Structures
Sets the default spawn point to be inside a custom structure!
Ore Cow - Forge
Cows with resources
FBI And SWAT Armors
A mod to add FBI and SWAT armors to Minecraft!