New as of 0.3.0, Gear Sets!
Create custom gear set bonuses via datapack! Create RPG set bonuses for any combination of items, the sets can have tiers, custom formatting, and can be applied to virtually any item! Tooltips for your set bonuses appear automatically in the relevant sets, and there is even EMI support for displaying all of the sets, their items, and the bonus descriptions!
Gear sets support Attributes, including custom attributes, and Equipment Modifiers. Currently only attributes can be added strictly via datapack, modifiers have to be created in code before being referenced in a gear set. Somewhere in my "want to do" list is datapack-based equipment mods, so stay tuned!
Here is an example Gear Set from Imbued Gear. All of the bonuses are active in this picutre:
And here is the JSON used to create it. Soon I'll have documentation of the format in wiki.
{
"name": "set.imbued_gear.lich_kings",
"active_formatting": [
"GREEN",
"BOLD"
],
"items": {
"tag": "imbued_gear:lich_kings_gear"
},
"bonuses": {
"2": {
"name":"lich_kings_amplifier",
"attribute": "amethyst_core:spell_amplifier",
"amount": "2.0",
"operation": "ADDITION"
},
"4": {
"name":"lich_kings_duration",
"attribute": "amethyst_core:spell_duration",
"amount": "0.15",
"operation": "MULTIPLY_TOTAL"
},
"5": "imbued_gear:horde_master"
}
}
Equipment Modifiers
Library mod that facilitates the creation of equipment modifiers that can apply standard Minecraft entity attributes or track a variety of events like taking damage, killing mobs, mining blocks, and more. These modifiers aren't affected by grindstones, enchanting tables, or other Minecraft features. These modifiers use the Fzzy Core modifier framework; as such they can be arranged into lineages that pass from one to the next rather than simply stacking numerically.
Current Item Support and Example
Gear Core has built-in modification support for ArmorItem
, ToolItem
, BowItem
, CrossBowItem
, ShieldItem
, TridentItem
, and Trinket
, but provides a framework (with the help of Fzzy Core) for making any other type of item modifiable.
Example of Equipment Modifiers in action via Gearifiers:
Modification Features of an Equipment Modifier
Equipment modifiers can affect the following aspects of equipment:
Attribute Modifiers
Standard Minecraft Attributes can be attached to equipment modifiers. These attributes stack on top of whatever innate attributes the gear has and on top of other modifications.
Durability Modifier
The durability of the gear can be modified using a Fzzy Core PerLvlI
instance, which allows for flat changes to durability or percentage changes (or both!).
Post Hit Events
Post-hit event consumers can be added to an Equipment Modifier. These consumers are fired on the postHit
method of ItemStack
, allowing implementations to perform actions after a player has hit something.
Post Mine Events
Similar to the post-hit events, consumers can also be added for postMine
, which fires after a player has successfully broken a block.
On Use Events
Add activated abilities to items! These events fire on the use
method, like any right click action. The events only fire if the items innate use
isn't successful.
Incoming Damage Modification and Event
Damage modification functions can be attached to equipment modifiers, both allowing for event code upon a player getting damaged, and for damage modification (reduction by 10% of all magic damage, for example).
Mob Kill Events
An event that fires when a player kills a mob, similar structure to all the other events, implementations pass a special consumer to the Modifier for it to process.
Other Modifiers
Other types of modifiers can be attached to equipment modifiers, with a ModifierProcessor
available so an implementation can decide what to do with them.
Modifier Rolling System
Gear Core provides a modifier randomization system for adding of random modifiers to certain gear. Check out Gearifiers for a thorough example of this system in action. The short story of how this system works:
Modifier Targets
Gear Core adds EquipmentModifierTarget
s. These work is a similar manner to EnchantmentTarget
in Minecraft, but they are an extendable class rather than an enum. When the modifier rolling system is picking modifiers, it will only pick modifiers from the proper targets.
Weight
Like loot and other things in Minecraft, modifiers can be provided with a weight. This weight works exactly as you'd expect.. every modifier who matches up to the target is put into a pool X times based on it's weight, and the total pool is used for random modifier rolls.
Rarity
Modifiers can be given a rarity. This is an enum that defines the formatting of the modifier on the item tooltip, with the different rarities providing different colors (and some bold)
Rarity | Format |
---|---|
Legendary | Gold, Bold |
Epic | Light Purple |
Rare | Aqua |
Uncommon | Dark Green |
Common | Gray |
Bad | Dark Red |
Really Bad | Dark Red, Bold |
Toll
Each modifier takes a certain toll on the rolling pool. The pool starts with a certain amount of toll it can spend, with each modifier added spending it's toll out of that pool until there isn't enough left for the next roll to succeed. The default toll is 5, with a default pool of about 5.75 on average.
Providing different tolls allows for fine tuning of selection probability.
Persistence and Availability for Rolling
A modifier can be created to be persistent
, which prevents it from being removed on a reroll. This might be used for "innate" modifiers or for "cursed" modifiers.
Modifiers can also be marked as unavailable for random selection. This might be used, again, for "innate" modifiers that aren't part of a random chance system but are simply provided with every instance of the item.
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+