**Hotfixes:**<br>
- Fixed incorrect version number.<br>
- Fixed a major ParCool compatibility desync where stamina would regenerate instead of draining during continuous movement actions.<br>
- Fixed stamina bar visual rubber-banding during ParCool actions by adding client-side prediction and proper server packets.<br>
- Fixed negative stamina costs and regeneration delays not applying correctly for ParCool actions.<br><br><br>
Heya! Here with v2.2.0, I realize that this mod is getting HUGE with a ton of features (I do wonder if its a bit much and if people are intimidated and/or confused about how any of the features work... [if that's a the case pls let me know and maybe provide a suggestion to make it easier]). Adding this new complex thing isn't exactly helping that issue either but nonetheless for the people that do know what they are doing, here you go!<br><br><br>
## Major<br>
**Mod Icon Update:** Drawn by my good friend " Nihao² ", He has drawn a decent portion of the art and textures in this mod.
**Consumable System Update:** Updated the consumables configuration to allow food and drinks to apply temporary Attribute Modifiers upon consumption, should support modded attributes.<br>
- You can now configure specific attribute targets, math operations (addition, multiply base, multiply total), amount, and buff duration in seconds. See format guide for more information.<br>
- Supports chaining multiple attribute buffs or debuffs onto a single consumable item.<br>
- Added full NBT tag support to target specific items with custom NBT data (e.g., targeting specific potion types like `minecraft:potion{Potion:"minecraft:water"}`).<br><br>
With this update, I also updated the tooltips system to include a buffs section and a few other configs that go with that. (for the buffs tooltip to show up, you have to add it to your pre-existing lists, or you reset to default by deleting lists.toml, it will show up in suggestion box).<br>
- Configs:<br>
- `colorCodeBuffs` _(default: true)_: Color code attribute buffs and debuffs (Green for positive, Red for negative).<br>
- `invertedTooltipAttributes`: A list of attribute IDs where a negative/lower value being buff (colored green).<br>
- `labelAttribute` _(default: "Buff: ")_: Text shown before an Attribute Buff value.<br><br>
There is also a display buffs button added to the inventory UI in the case that you would like to see the active buffs. The Active Buffs screen groups active effects by their attribute names, displays the item icon that applied it, and includes a scrollbar for when you have a ton of buffs active.<br>
- Configs:<br>
- `enableActiveBuffsHUD` _(default: true)_: Enable the Active Buffs button in the inventory.<br>
- `activeBuffsXOffset` _(default: -24)_: X position offset for the Active Buffs button.<br>
- `activeBuffsYOffset` _(default: 10)_: Y position offset for the Active Buffs button.<br>
- `activeBuffsButtonLabel` _(default: "⬆")_: The text/icon displayed on the Active Buffs inventory button.<br>
- `activeBuffsShowIcons` _(default: true)_: Show item icons next to attribute names in the Active Buffs screen.<br><br>
A player can hold up to **6 active effects** simultaneously for a _single_ attribute:<br>
1. Strongest Positive Add (Op 0)<br>
2. Strongest Positive Base Multiplier (Op 1)<br>
3. Strongest Positive Total Multiplier (Op 2)<br>
4. Strongest Negative Add (Op 0)<br>
5. Strongest Negative Base Multiplier (Op 1)<br>
6. Strongest Negative Total Multiplier (Op 2)<br><br>
**Example:**<br>
so a player could have +50 max stamina (op 0) and +100% max stamina (op 1) and + 200% max stamina (op 2)
op 0 and op 1 always get applied before op 2 so the way this would work is (with initial 100 max stamina)<br><br>
Final value = [(base + op0 ) + (base * (1 + op1 ))] * (1 + op2 )<br>
Final value = [(100 + 50) + (100 * 2)] * 3<br>
Final value = 1050<br><br>
**Extra Max Stamina:** Added a way to show extra max stamina (different from bonus stamina), this max stamina is added via attributes from skill trees (other mods) or consumable attribute modifiers.<br>
- Configs:<br>
- `extraStaminaBrightness` _(default: 4.5)_: Brightness multiplier for the extra stamina bar section.<br><br>
**Tooltip Studio:** Added a new in-game GUI to more easily customize your tooltips.<br>
- Accessible from the Client config menu via the "✎ Edit Tooltips" button. It is in the same section as the labels and tooltip list.<br>
- Allows you to create, edit, and delete custom tooltip entries for stamina costs, weights, consumables, and buffs and gives you more customization for what you want it to display.<br>
- Includes a live preview window, color selection, formatting guides, and an auto fill button to set up default values.<br><br>
**Numerical Stamina Readout:** Added a new dynamic text readout (e.g., "100 / 100") to the stamina HUD.<br>
- Configs:<br>
- `showNumericalReadout` _(default: false)_: Draws a numerical text readout (e.g., 100 / 100) on the stamina HUD.<br>
- `numberXOffset` _(default: 0)_: Adjusts the horizontal (X-axis) position of the numerical readout.<br>
- `numberYOffset` _(default: 0)_: Adjusts the vertical (Y-axis) position of the numerical readout.<br>
- `numberScale` _(default: 1.0)_: Adjusts the size scale of the numerical readout.<br><br>
### Compatibility <br>
**Elenai Dodge 2:** Added compatability with Elenai Dodge 2<br>
- Configs:<br>
- `elenaiDodgeGroundCost` _(default: 5)_: How much stamina a ground dodge costs.<br>
- `elenaiDodgeAirCost` _(default: 8)_: How much stamina a mid-air dodge costs.<br>
- Added a new `ELENAIDODGE2_COST_MULTIPLIER` attribute to scale dodge stamina consumption (Forge only).<br><br>
**Shield Expansion:** Applied the environmental and unblockable damage filters.<br><br>
## Minor<br>
**Enchantment Toggle:** Added a new `enableEnchants` configuration option to the Core config (and the in-game Config Menu) to globally toggle Peak Stamina's custom enchantments.<br>
- `Lightweight` and `Tireless` will no longer generate in loot chests, villager trades, or the enchanting table.<br>
- Any items that already possess the enchantments will have their `lightweight` and `tireless effect` nullified.<br><br>
**Strict Enchantment Targets:** The application logic for `Lightweight` and `Tireless` is now more restrictive to prevent them from being applied to useless items.<br>
- They are now strictly limited to standard gear: Tools (Pickaxes, Axes, Shovels, Hoes), Swords, Bows/Crossbows, Shields, and Tridents.<br>
- `Lightweight` is applicable to Armor, `Tireless` is not applicable to armor.<br><br>
**Density Markings:** Added density markings to the stamina bar (background when the stamina bar is empty, it will not show in filled sections of the bar).<br><br>
**Attributes Added:**<br>
`peakstamina:use_cost_multiplier` This is different from the `peakstamina:use_item_cost_multiplier`<br>
`peakstamina:tick_cost_multiplier`<br>
### Important Notes: <br>
I changed all attribute keys to be `attribute.name.peakstamina` instead of just `attribute.peakstamina`<br><br>
Renamed attribute name `peakstamina:stamina_action_recovery` (is now `peakstamina:stamina_action_recovery_multiplier`)<br><br>
Fixed attribute name `peakstamina:block_cost_multiplier` (is now `peakstamina:shield_block_cost_multiplier`)<br><br>
## Bugfixes<br>
- Tooltips system will actually update the use cost and tick cost when attributes are applied.<br><br>
- Weight system toggle actually works now (keep in mind that this only disables the weight penalty system, combat scaling and weight hud need to be turned off individually).<br><br>
- Partially recoded the parcool compat, it should be more stable and effective at determining which action the player is doing.
- Fixed [issue #12](https://github.com/Swiss8191/Peak-Stamina/issues/12)
- Players no longer lose stamina for holding a shield when taking damage.<br><br>
- Blocking against cacti, magma blocks, poison, and environmental fire no longer consumes stamina.<br>
- Added checks for `BYPASSES_SHIELD` and `BYPASSES_ARMOR` damage tags to automatically ignore unblockable damage sources during stamina calculations.<br><br><br>
## Future Updates<br>
Since the mod has gotten this far I believe I should talk a little bit about what's coming next.
**v2.2.1** Will have buttons next to the config values that will reset the lists, values, and etc. back to the default value.
**v2.2.2** Will likely be an update to some experimental systems like the still barebones define your own stamina rules.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }