File Details
lazy_utilities-2.0-forge-1.20.1.jar
- R
- Apr 1, 2025
- 386.28 KB
- 1.6K
- 1.20.1
- Forge
File Name
lazy_utilities-2.0-forge-1.20.1.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
The mod's status has now been moved to "Release" as most of the features are now available.
The mod code has been refactored again... This time for the "Elements" submod, so it may be incompatible with outdated dependent mods; massive changes have been made please read carefully.
List of changes by mods contained
@Lazy Utilities
New entries have been added to the configuration file.
To debug the ICD on each attack,
"depuratedICD": <Boolean>
Normally disabled.
To disable fire particle buffs when executing an Innate Skill
for Epic Fight addons and those dependent on Lazy Utilities
"offParticleFeaturesSkill": <Boolean>
Normally disabled.
To disable or enable the overlay that indicates which elements the player is hovering over.
"showElementalOverlay": <Boolean>
Normally enabled.
@Epic Fight Utilities
Fixed a bug where some data and assets could only be read from the client side when entering a world by loading the local server. This is no longer necessary, as they are loaded without having to enter a world initially. This fixes the bug where particles are not loading when entering a server for the "Epic Fight - Enchants Particles" mod.
The Dedicated Server Side is now able to obtain the animations, extract them, process them, and index them. It can also automatically add them to "lazy_datapacks" so they work after a restart. The logic is the same as on the client side: move the required files to their respective folders. Alternatively, if you don't want to use this system, copy the animations contained in "resourcepacks/Lazy Utilities/assets/<modid>" and paste them as datapacks in the world you want. This will make your dedicated server readable!
If you want to test the changes, remember to run the commands to enable the "Elements" submod...
@Elements
Removed:
The "Dealers" for each element have been removed. Previously, players could transfer elements via the "CryoDealer, PyoDealer, etc." flags. This has been completely removed. The "ICD" system (see below) will now be used, which is global for both players and entities. However, if in doubt, the environment can still execute reactions, although they will be less efficient since there is no damage to use.
Changes to the damage system:
- Direct Damage: Elemental direct damage is a type of damage that causes knockback when applied to an entity, this type of damage scales in most cases with the damage of the player's weapon to a great extent, and for directed type reactions (depending on external conditions) will reduce the damage nerf of said reaction, this type of damage is also what occurs when imbuing a weapon with an element, this method being a way to translate the damage into 100%.
- Tick Damage: Tick damage is a utility/support damage type added by reactions of the same type, this damage type scales slightly and as your weapon damage rises the damage increase will be reduced, this damage type has a flattening function over time until it becomes flat, preventing the attack from scaling, this damage type does not pose knockback, and ignores 100% of the enemy's armor, despite using the same elemental damage parameters, which means that for example, OnTick Electro damage will still scale with the target entity's armor, but ignoring it will still result in "True" damage, this applies to all OnTick damage types.
Changes to Elemental Damage, grouped by Type:
- Pyro: This damage type is most efficient based on the target entity's armor; the lower the armor, the greater the damage. Damage can be increased by a maximum of 30% in this way. If the armor is greater than 20 (Full Netherite), the damage increase is 0%. If the armor is even greater than this value, the damage is reduced from 0% (20 armor) to 10% (30 armor), the reduction being built evenly between these thresholds.
- Hydro: This damage type is most efficient based on the target entity's maximum health. The lower the maximum health, the greater the damage. If the entity has 10 health points, the increased damage will be 25%, and it will dilute as the entity's maximum health is higher up to a certain threshold. Once it exceeds a certain health threshold, in this case 50 maximum health, it will dilute more aggressively, and if it exceeds 80 health points, the damage increase will be 0%. In turn, the lower the current health of the target entity in percentage of health, the lower the damage will be. The maximum nerf to this source of damage is 10% if the entity has 0% health, and a minimum of 0% if the entity has 100% health. The nerf is distributed evenly between these health thresholds. In turn, this type of damage is more efficient against flying entities, increasing the damage by 10% if the entity is aerial. Geo: This damage type is more efficient based on the target entity's characteristics. If the entity is on the ground, the damage will increase by 20%; if the entity is in the air or is aerial, the damage will be reduced by 10%. This damage source also increases if the target entity is under the effects of "Rooted," increasing it by a total of 25%.
- Electro: This damage scales based on the entity's armor; the higher the armor value, the more damage it will inflict. The damage at best is 50% extra if the entity has armor equivalent to full Netherite. However, the damage can go further, increasing to a maximum of 75% if the entity has 30 armor points. In turn, the above damage increases if the entity you attack is under the effects of the "Conductor" reaction status. Electro damage inflicted will increase by 30%.
- Cryo: This damage scales based on the target entity's maximum health. The higher the maximum health, the greater the damage. The damage increase obtained in this way is 50% and is obtained upon reaching approximately 200 maximum health. This type of damage is not increased by any other reactions/statuses and does not suffer any damage reduction when applied.
Elemental Changes, grouped by Type:
- Cryo: This element now reduces the player's ability to regenerate over time, forcing them to eat more to maintain a certain temperature. It also reduces their movement speed. (If we interpret food as stamina, this is "Increasing stamina consumption.")
- Electro: If this element affects the player, it will reduce the total amount of experience gained.
- Geo: None
- Hydro: None (For now)
- Pyro: The damage is no longer "On Fire" but "Pyro Tick." The damage is now 1 point. This is a nerf if the entity has more than 20 armor, and a buff if it has low armor. If the entity is on fire, this damage will not be executed. For more information, see "Elemental Ticks Damage."
Changes to Elemental Reactions:
- Changes to "Poison"-Type Reactions;
- The following reactions have undergone the following changes: "Electrocharge, Cold, Burn"
- The changes are as follows: For the previous OnTick reactions, the damage is no longer static Generic Type 1, but will now deal Tick-type Elemental Damage, which ignores 100% of the target's armor. They also benefit from the elemental damage changes and interactions mentioned at the beginning of this document. This damage does not have knockback when applied. The damage is static and is multiplied based on the reaction caster's weapon damage. The weapon damage becomes a multiplier based on the logic explained below.
- The following reactions have undergone the following changes: "Electrocharge, Cold, Burn"
- Considerations: "The 'Cold' Reaction" supports reverse reactions, so if the reaction base is the "Geo" element, the damage caused by this reaction will increase by 15%.
- Considerations: "The 'Burn' Reaction" supports reverse reactions, so if the reaction base is the "Geo" element, the damage caused by this reaction will increase by 18%.
Logic table for the new damage type (Willing to balance changes):

- Change to "Instant" Type Reactions;
- Instant reactions are those that are applied in 1 tick
- Subgroup, Undetermined Reactions: Undetermined reactions are those that are not limited by their target, but instead obtain the information to execute, the damage, and everything else from the executor.
- Overload: The overload reaction now obtains 100% of the damage of the weapon that executes said action. When the reaction is executed, it inflicts 125% of the player's weapon damage, causes knockback to the entity, and generates a collision area where entities will be injured as if it were an "explosion." This area will cause 75% of the final damage. The previous damage does not apply to players. If the player is injured by this reaction, they will only take the damage from the reaction, not the explosion (if the world is PvP).
- Vaporized: The vaporized reaction now deals 100% of the damage of the weapon that executes said action. When the reaction is executed, it deals 145% of the player's weapon damage. This reaction accepts both reverse and direct reactions. If the reaction is based on Hydro, and then Pyro is added, the damage dealt will be 170%.
- Melted: The melting reaction now deals 100% of the damage of the weapon that executes said action. When the reaction is executed, it deals 165% of the player's weapon damage. This reaction accepts both reverse and direct reactions. If the reaction is based on Pyro, and then Pyro is added, the result will be 170%. The damage dealt will be 200%.
- Considerations: Depending on the order in which an elemental reaction is executed, the output damage will depend on the reactant. What does that mean? If the reaction base is "Hydro" and then we add "Pyro," the reactant is Pyro, so the final Damage Type is Pyro.
- Subgroup, Determined Reactions: Determined reactions are those that are limited by the objective, that is, the damage and its characteristics are proportional to its objective, and therefore its strength is slightly influenced by the executor.
- Frozen: The Frozen reaction now scales based on the weapon's damage. The maximum scaling is achieved at 40 weapon damage and the minimum at 0. Between these damage values, a respective nerf will be executed at the output of the Frozen damage. If the weapon has 40 damage, the nerf is 0%, if it has 20 damage, the nerf is 35%, and if it has 0, the nerf is 70%.
- Considerations: Frozen damage scales based on the target entity's health, dealing 14% of its maximum health as damage. Also remember that due to the characteristics of Cryo damage, this damage can increase up to 50% against high-health entities. However, this reaction cannot deal more than 175 damage (without applying the Cryo Damage buff, if applied to the maximum, this damage increases to 262.5).
ERGCS (Entity Reaction Global Cooldown System) has been added:
This system adds a global cooldown to an entity, preventing any type of reaction from being generated. It works by means of a reaction counter. The more destructive a reaction is, the higher its intensity "Value", allowing the shield to pop up more quickly. The entity's shield is rapidly reduced if the entity is hit. Each hit reduces the cooldown by 1 point, and every 2 ticks it is passively reduced. Once the shield is consumed, the entity can again be victim of reactions. This shield can only be applied against entities with high health, which can generate multiple reactions. A low health entity will die before this shield is executed, or entities with high resistance.
The logic is as follows: ERGCS table:
| Reaction | Intensity (Direct) | Intensity (Reverse) | Intensity (Static) |
|---|---|---|---|
| Melt | 13 | 17 | |
| Overload | 8 | ||
| Vaporized | 10 | 12 | |
| Frozen | 25 | ||
| Electrocharged | 3 | ||
| Cooled | 4 | 6 | |
| Burning | 4 | 5 | |
| Conductor | 6 | ||
| Superconductor | 10 | ||
| Rooted | 6 |
The intensity of a reaction depends on its qualities. It is inverse when it causes the greatest possible damage, as it consumes both elements. It is direct when it returns an element that can allow the reaction to be repeated or several to be executed simultaneously. A reaction is static when it does not depend on the previous concepts, as it is not modified by any orderly logic.
ERCS (Entity Reaction Cooldown System) has been added:
This system is responsible for adding cooldowns to an entity, preventing reactions from being generated aggressively. This cooldown occurs between reactions, preventing them from saturating each other. This cooldown is different for each reaction, and also takes into account whether the reaction is direct or reverse. Cooldowns are not shared between reactions, therefore, a "Vaporized" type reaction, if executed "Pryo + Hydro", will have a different cooldown than a "Hydro + Pyro" reaction. "Static" means that the cooldown is the same regardless of how it is executed.
The logic is as follows, ERCS table, Cooldown in Milliseconds:
| Reaction | Cooldown (Direct) | Cooldown (Reverse) | Cooldown (Static) |
|---|---|---|---|
| Melt | 850 | 925 | |
| Overload | 420 | ||
| Vaporized | 580 | 605 | |
| Frozen | 1200 | ||
| Electrocharged | 300 | ||
| Cooled | 315 | 380 | |
| Burning | 315 | 335 | |
| Conductor | 335 | ||
| Superconductor | 530 | ||
| Rooted | 335 |
The intensity of a reaction depends on its qualities. It is inverse when it causes the greatest possible damage, as it consumes both elements. It is direct when it returns an element that can allow the reaction to be repeated or several to be executed simultaneously. A reaction is static when it does not depend on the previous concepts, as it is not modified by any orderly logic.
The ICD (Internal Cooldown Dealer) has been added:
This is a system that adds an internal cooldown between iterative elements. This means that if a weapon is imbued with the "Pyro" element, it can only add or transfer the "Pyro" element to the target entity after 2.5 seconds or after executing 3 to 4 consecutive hits. Special abilities will always execute an elemental transfer to the target. The behavior of the ICD varies based on the previous logic and therefore depends on the characteristics of the entity causing the damage or seeking to add the element and its weapon.
The ICD will also transfer data from the "Source Entity" to its "Target Entity" to configure the damage of the reactions, which scale based on the damage of the player's weapon and/or entity. This damage is divided into two types.
Each element has different transfer times to the target entity. The current logic is as follows:
If the player or entity transfers:
Pyro -> 120 Ticks
Hydro -> 105 Ticks
Geo -> 140 Ticks
Electro -> 80 Ticks
Cryo -> 105 Ticks
Elemental damage names were recorded:
Pyro:
When killed by the damage type: <Target Entity> was reduced to ashes
When killed by another player: <Target Entity> was incinerated by <Source Entity>
When trying to escape from another player: <Target Entity> tried to flee from <Source Entity>, but succumbed to the flames
Cryo:
When killed by the damage type: <Target Entity>'s life was frozen
When killed by another player: <Target Entity> succumbed to the cold of <Source Entity>
When trying to escape from another player: <Target Entity> tried to stop him from turning him into an ice cream, but he failed
Electro:
When killed by the damage type: <Target Entity> was not able to withstand the voltage
When killed by another player: <Target Entity> was electrocuted by <Source Entity> Entity>
When trying to escape from another player: <Target Entity> tried to escape from <Source Entity> but succumbed to the tension between them
Geo:
When killed by the damage type: <Target Entity> was reduced to debris
When killed by another player: <Target Entity> was paved by <Source Entity>
When trying to escape from another player: <Target Entity> tried to prevent <Source Entity> from throwing him into a cement mixer but he couldn't
Hydro:
When killed by the damage type: The water of life ran out for <Target Entity>
When killed by another player: <Target Entity>'s life was drunk sip by sip by <Source Entity>
When trying to escape from another player: <Target Entity> tried to stop <Source Entity> from taking him into the depths, but he failed
New Particle, Text Type:
A new type of particle has been added, this particle is text type and serves to visually inform the player what effect has been added to the target entity, the color of the text will vary based on the element added or the reaction executed, the color in case of reactions varies if the reaction is direct or reverse (if the reaction tolerates it) or is static otherwise.
Colors, by Element:
If the element is "Pyro", Text "Burning", Color "0xFF4500" (Orange Red)
If the element is "Hydro", Text "Wet", Color "0x42A5F5" (Aqua Blue)
If the element is "Geo", Text "Firm", Color "0xE0C166" (Gold)
If the element is "Electro", Text "Charged", Color "0xA800FF" (Purple)
If the element is "Cryo". Text "Cold", Color "0x99D9EA" (Light Blue)
For instant reactions:
If the reaction is "Frozen", Text "Frozen", Color "0x00E5FF" (Icy Blue)
If the reaction is "Melted", Text "Melted", Color "0xD7816F" (New York Pink), if the reaction is Reverse "0xFFB6C1" (Light Pink)
If the reaction is "Overload", Text "Overload", Color "0x820B22" (Burgundy) If the reaction is Reverse "0xFF4569" (Radical Red)
If the reaction is "Vaporized", Text "Vaporized", Color "0xC4B28F" (Akaroa) If the reaction is Reverse "0xF7E5C2" (Pipi)
For poison-type reactions:
If the If the reaction is "Electrocharged", the text is "Electrocharged", color is "0x673AB7" (Heart Purple).
If the reaction is "Cold", the text is "Cooled", color is "0xADD8E6" (Light Blue).
If the reaction is "Burn", the text is "Ablaze", color is "0xFF8C00" (Deep Orange).
For potentiative reactions:
If the reaction is "Conductive", the text is "Conductive", color is "0x7C4DFF" (Slate Blue).
If the reaction is "Superconductive", the text is "Superconductive", color is "0xA550BB" (Deep Lilac).
If the reaction is "Rooted", the text is "Rooted", color is "0x4CAF50" (Fruit Salad).
New Overlay:
A new overlay has been added, located right between the health/food bar and above the experience bar and the experience number. It shows what element the player has on it.
Icons have been added for most statuses and reactions
Your items can access the ICD system if they have the following tags:
"elements:pyro"
"elements:hydro"
"elements:electro"
"elements:cryo"
"elements:geo"
Use this command for Items: /give <Target> <namespace:item_id>{Tags:["elements:<element>"]}
Use this command for Entitys: /summon <Entity> ~ ~ ~ {HandItems:[{id:"<namespace:item_id>",Count:1b,tag:{Tags:["elements:<element>"]}},{}]}
Crash fixes
In previous versions, using items or reactions that modified player attributes could cause a random crash. This may now be fixed, but since it is random, it's hard to know if it's been fixed or not.

