
SkyblockAddons for Hypixel Skyblock
A mod with many features to improve your Hypixel Skyblock experience
IMPORTANT: SkyblockAddons is in minimal maintenance mode. The mod is no longer actively developed - no new features are planned - but small and critical issues are still fixed occasionally. You can reach the latest builds from GitHub Actions, or grab a stable version from Modrinth.
2.3.6 release for FabricMC 26.1:
- fix: ENCHANTMENT_PATTERN regex
- Closes #194
- fix: potential issue with enchant lore name matching
- fix(regex): support apostrophes missed in previous commit
- fix: resolve pet level parsing, null storage, and dead price endpoint
- fix(prices): migrate lowest BIN averages from dead moulberry.codes endpoint to eliteskyblock API; update average file paths .json.gz -> .gz
- fix(pets): parse pet level manually instead of Integer.parseInt to avoid NumberFormatException
- fix(backpacks): handle null compressedStorage when Pet is deserialized
- fix(packs): remove resource pack reload on reload command
- docs(readme): announce minimal maintenance mode
- ci: set 90-day retention for build and game test artifacts
- feat: new enchants and item types
- fix(ItemType): replace lore name with enum name
- fix: ENCHANTMENT_PATTERN regex
IMPORTANT: SkyblockAddons is in minimal maintenance mode. The mod is no longer actively developed - no new features are planned - but small and critical issues are still fixed occasionally. You can reach the latest builds from GitHub Actions, or grab a stable version from Modrinth.
2.2.14 release for FabricMC 1.21.11:
- fix: ENCHANTMENT_PATTERN regex
- Closes #194
- fix: potential issue with enchant lore name matching
- fix(regex): support apostrophes missed in previous commit
- fix: resolve pet level parsing, null storage, and dead price endpoint
- fix(prices): migrate lowest BIN averages from dead moulberry.codes endpoint to eliteskyblock API; update average file paths .json.gz -> .gz
- fix(pets): parse pet level manually instead of Integer.parseInt to avoid NumberFormatException
- fix(backpacks): handle null compressedStorage when Pet is deserialized
- fix(packs): remove resource pack reload on reload command
- docs(readme): announce minimal maintenance mode
- ci: set 90-day retention for build and game test artifacts
- feat: new enchants and item types
- fix(ItemType): replace lore name with enum name
- fix: ENCHANTMENT_PATTERN regex
IMPORTANT: SkyblockAddons is in minimal maintenance mode. The mod is no longer actively developed - no new features are planned - but small and critical issues are still fixed occasionally. You can reach the latest builds from GitHub Actions, or grab a stable version from Modrinth.
2.1.21 release for FabricMC 1.21.10:
- fix: ENCHANTMENT_PATTERN regex
- Closes #194
- fix: potential issue with enchant lore name matching
- fix(regex): support apostrophes missed in previous commit
- fix: resolve pet level parsing, null storage, and dead price endpoint
- fix(prices): migrate lowest BIN averages from dead moulberry.codes endpoint to eliteskyblock API; update average file paths .json.gz -> .gz
- fix(pets): parse pet level manually instead of Integer.parseInt to avoid NumberFormatException
- fix(backpacks): handle null compressedStorage when Pet is deserialized
- fix(packs): remove resource pack reload on reload command
- docs(readme): announce minimal maintenance mode
- ci: set 90-day retention for build and game test artifacts
- fix: set JSONResponseHandler to gz for lowest bin
- feat: new enchants and item types
- fix(ItemType): replace lore name with enum name
- fix: ENCHANTMENT_PATTERN regex
tl;dr: Significantly reduced JAR size, implemented remote regex injection for live updates, and fixed Dungeon Profit Overlay (for MM chests) and ActionBarParser (Crop Fever) bugs.
2.3.5 release for FabricMC 26.1:
- fix: Dungeon Profit Overlay not visible for MM chests
- Closes #193
- refactor: merge "Stop Dropping/Selling Rare Items" into "Drop Confirmation"
- Add "MINIMUM_RARITY_FOR_CONFIRMATION" feature setting to allow GUI-based rarity configuration, replacing external data file reads.
- Clean up "defaults.json" and migrate "WHITELIST_COMPACTOR_ITEMS" and rarity configs to the drop confirmation feature.
- Make "SkyblockRarity" enum implement "ButtonCycling.SelectItem" and "RegistrableEnum" for settings menu compatibility.
- fix: Crop Fever sometimes brakes ActionBarParser
- refactor: centralize regex patterns
- Move all hardcoded regular expressions to a centralized
regex.jsonconfiguration. - Implement
RegexRequestandDataUtilslogic for dynamic pattern loading and runtime injection. - Introduce a safe fallback routing mechanism to inject patterns into their respective enums based on key validation.
- Update
ActionBarParser,TabListParser, and other feature classes to utilize the new centralized pattern registry.
- Move all hardcoded regular expressions to a centralized
- test: initialize regex patterns in TextUtilsTests setup
- build: optimize jar size, automate data sync via PR, and bump gradle
- Bump Gradle wrapper version from 9.4.0 to 9.4.1.
- Strip legacy Java MRJAR directories (
META-INF/versions/9through20) fromshadowJarto significantly reduce final JAR bloat. - Refactor GitHub Actions workflow (
sync-data.yml) to automatically generate Pull Requests instead of executing direct pushes. - Expand data synchronization scope to track and copy all core JSON resource files (e.g., compactorItems, enchants, skillXp).
- Implement dynamic base branch verification and secure cross-repository GitHub CLI authentication.
- chore(data): sort enchant stack levels to trigger and verify sync workflow
- Sort the
stackLevelinteger arrays inenchants.jsonnumerically instead of lexicographically. - This commit primarily serves as a live trigger to verify the newly implemented GitHub Actions PR synchronization workflow.
- Sort the
- chore: update data files and optimize pr synchronization logic
- Refactor
sync-data.ymlto use a persistent branch name and force-push to update existing Pull Requests instead of creating duplicates. - Handle existing PR states in GitHub CLI to prevent workflow failures.
- Refactor
- fix: Dungeon Profit Overlay not visible for MM chests
tl;dr: Significantly reduced JAR size, implemented remote regex injection for live updates, and fixed Dungeon Profit Overlay (for MM chests) and ActionBarParser (Crop Fever) bugs.
2.2.13 release for FabricMC 1.21.11:
- fix: Dungeon Profit Overlay not visible for MM chests
- Closes #193
- refactor: merge "Stop Dropping/Selling Rare Items" into "Drop Confirmation"
- Add "MINIMUM_RARITY_FOR_CONFIRMATION" feature setting to allow GUI-based rarity configuration, replacing external data file reads.
- Clean up "defaults.json" and migrate "WHITELIST_COMPACTOR_ITEMS" and rarity configs to the drop confirmation feature.
- Make "SkyblockRarity" enum implement "ButtonCycling.SelectItem" and "RegistrableEnum" for settings menu compatibility.
- fix: Crop Fever sometimes brakes ActionBarParser
- refactor: centralize regex patterns
- Move all hardcoded regular expressions to a centralized
regex.jsonconfiguration. - Implement
RegexRequestandDataUtilslogic for dynamic pattern loading and runtime injection. - Introduce a safe fallback routing mechanism to inject patterns into their respective enums based on key validation.
- Update
ActionBarParser,TabListParser, and other feature classes to utilize the new centralized pattern registry.
- Move all hardcoded regular expressions to a centralized
- test: initialize regex patterns in TextUtilsTests setup
- build: optimize jar size, automate data sync via PR, and bump gradle
- Bump Gradle wrapper version from 9.4.0 to 9.4.1.
- Strip legacy Java MRJAR directories (
META-INF/versions/9through20) fromshadowJarto significantly reduce final JAR bloat. - Refactor GitHub Actions workflow (
sync-data.yml) to automatically generate Pull Requests instead of executing direct pushes. - Expand data synchronization scope to track and copy all core JSON resource files (e.g., compactorItems, enchants, skillXp).
- Implement dynamic base branch verification and secure cross-repository GitHub CLI authentication.
- chore(data): sort enchant stack levels to trigger and verify sync workflow
- Sort the
stackLevelinteger arrays inenchants.jsonnumerically instead of lexicographically. - This commit primarily serves as a live trigger to verify the newly implemented GitHub Actions PR synchronization workflow.
- Sort the
- chore: update data files and optimize pr synchronization logic
- Refactor
sync-data.ymlto use a persistent branch name and force-push to update existing Pull Requests instead of creating duplicates. - Handle existing PR states in GitHub CLI to prevent workflow failures.
- Refactor
- fix: Dungeon Profit Overlay not visible for MM chests
tl;dr: Significantly reduced JAR size, implemented remote regex injection for live updates, and fixed Dungeon Profit Overlay (for MM chests) and ActionBarParser (Crop Fever) bugs.
2.1.20 release for FabricMC 1.21.10:
- fix: Dungeon Profit Overlay not visible for MM chests
- Closes #193
- refactor: merge "Stop Dropping/Selling Rare Items" into "Drop Confirmation"
- Add "MINIMUM_RARITY_FOR_CONFIRMATION" feature setting to allow GUI-based rarity configuration, replacing external data file reads.
- Clean up "defaults.json" and migrate "WHITELIST_COMPACTOR_ITEMS" and rarity configs to the drop confirmation feature.
- Make "SkyblockRarity" enum implement "ButtonCycling.SelectItem" and "RegistrableEnum" for settings menu compatibility.
- fix: Crop Fever sometimes brakes ActionBarParser
- refactor: centralize regex patterns
- Move all hardcoded regular expressions to a centralized
regex.jsonconfiguration. - Implement
RegexRequestandDataUtilslogic for dynamic pattern loading and runtime injection. - Introduce a safe fallback routing mechanism to inject patterns into their respective enums based on key validation.
- Update
ActionBarParser,TabListParser, and other feature classes to utilize the new centralized pattern registry.
- Move all hardcoded regular expressions to a centralized
- test: initialize regex patterns in TextUtilsTests setup
- build: optimize jar size, automate data sync via PR, and bump gradle
- Bump Gradle wrapper version from 9.4.0 to 9.4.1.
- Strip legacy Java MRJAR directories (
META-INF/versions/9through20) fromshadowJarto significantly reduce final JAR bloat. - Refactor GitHub Actions workflow (
sync-data.yml) to automatically generate Pull Requests instead of executing direct pushes. - Expand data synchronization scope to track and copy all core JSON resource files (e.g., compactorItems, enchants, skillXp).
- Implement dynamic base branch verification and secure cross-repository GitHub CLI authentication.
- chore(data): sort enchant stack levels to trigger and verify sync workflow
- Sort the
stackLevelinteger arrays inenchants.jsonnumerically instead of lexicographically. - This commit primarily serves as a live trigger to verify the newly implemented GitHub Actions PR synchronization workflow.
- Sort the
- chore: update data files and optimize pr synchronization logic
- Refactor
sync-data.ymlto use a persistent branch name and force-push to update existing Pull Requests instead of creating duplicates. - Handle existing PR states in GitHub CLI to prevent workflow failures.
- Refactor
- fix: Dungeon Profit Overlay not visible for MM chests
2.3.4 hotfix release for FabricMC 26.1:
- feat: efficiency enchant formatting exception #185
- Thanks to @TFGTheFGamer for its contributions.
- fix: fix crash during current pet sync in setEquipments
- Closes #192
- feat: efficiency enchant formatting exception #185
2.2.12 hotfix release for FabricMC 1.21.11:
- feat: efficiency enchant formatting exception #185
- Thanks to @TFGTheFGamer for its contributions.
- fix: fix crash during current pet sync in setEquipments
- Closes #192
- feat: efficiency enchant formatting exception #185
2.1.19 hotfix release for FabricMC 1.21.10:
- feat: efficiency enchant formatting exception #185
- Thanks to @TFGTheFGamer for its contributions.
- fix: fix crash during current pet sync in setEquipments
- Closes #192
- feat: efficiency enchant formatting exception #185
2.3.3 release for FabricMC 26.1:
- feat: expand ItemsData model and add rift motes to price tooltips
- Fixed a bug in
ItemsData#getByName()where it was incorrectly querying thebyIdmap.
- Fixed a bug in
- feat: add compactor item whitelist to item protection
- Added "Add Compactor Items to whitelist" as a FeatureSetting to "Stop Dropping/Selling Rare Items" feature.
- Removed the "Restricted Color" system and migrated all messages/tooltips to the modern Component API.
- Fixed long-standing logic issues within Drop Confirmation and Stop Dropping/Selling Rare Items.
- Removed obsolete items from data.json.
- fix: only show rare item drop canceled message when in skyblock
- refactor(data): migrate managers to AbstractPersistentDataManager
- Extract shared I/O boilerplate (load, save, atomic write, lock) into AbstractPersistentDataManager.
- Migrate PersistentValuesManager and PetCacheManager to the new base class.
- Add EquipmentCacheManager with dirty checking to skip unnecessary disk writes.
- Move equipment cache out of PersistentValues into its own manager and file.
- Standardize persistent data access to getData() across the codebase.
- Add dirty checking in ScreenListener to skip unnecessary pet cache saves.
- Replace String.format() with .formatted() where applicable.
- Fix CompressedStorage: <= 2 guard, constructor delegation, null/empty check in setStorage().
- fix: ignore bazaar products with no valid prices in tooltip
- fix(Pet): add missing compression and defensive copy in ScreenListener
- refactor: overhaul color selection screen and remove static assets
- Replaced static 'colorpicker.png' with a dynamic, procedural HSB picker.
- Implemented interactive dragging cursors for precise color selection.
- Overhauled hex input field with zero-allocation char validation and robust formatting.
- Moved 'drawColorRect' utility to DrawUtils and deleted the redundant ButtonColorBox class.
- feat: add customizable styling for ultimate enchantments #185
- Introduced new FeatureSettings for Ultimate Enchant lore (color, bold, italic, underlined, strikethrough).

- feat: expand ItemsData model and add rift motes to price tooltips
2.2.11 release for FabricMC 1.21.11:
- feat: expand ItemsData model and add rift motes to price tooltips
- Fixed a bug in
ItemsData#getByName()where it was incorrectly querying thebyIdmap.
- Fixed a bug in
- feat: add compactor item whitelist to item protection
- Added "Add Compactor Items to whitelist" as a FeatureSetting to "Stop Dropping/Selling Rare Items" feature.
- Removed the "Restricted Color" system and migrated all messages/tooltips to the modern Component API.
- Fixed long-standing logic issues within Drop Confirmation and Stop Dropping/Selling Rare Items.
- Removed obsolete items from data.json.
- fix: only show rare item drop canceled message when in skyblock
- refactor(data): migrate managers to AbstractPersistentDataManager
- Extract shared I/O boilerplate (load, save, atomic write, lock) into AbstractPersistentDataManager.
- Migrate PersistentValuesManager and PetCacheManager to the new base class.
- Add EquipmentCacheManager with dirty checking to skip unnecessary disk writes.
- Move equipment cache out of PersistentValues into its own manager and file.
- Standardize persistent data access to getData() across the codebase.
- Add dirty checking in ScreenListener to skip unnecessary pet cache saves.
- Replace String.format() with .formatted() where applicable.
- Fix CompressedStorage: <= 2 guard, constructor delegation, null/empty check in setStorage().
- fix: ignore bazaar products with no valid prices in tooltip
- fix(Pet): add missing compression and defensive copy in ScreenListener
- refactor: overhaul color selection screen and remove static assets
- Replaced static 'colorpicker.png' with a dynamic, procedural HSB picker.
- Implemented interactive dragging cursors for precise color selection.
- Overhauled hex input field with zero-allocation char validation and robust formatting.
- Moved 'drawColorRect' utility to DrawUtils and deleted the redundant ButtonColorBox class.
- feat: add customizable styling for ultimate enchantments #185
- Introduced new FeatureSettings for Ultimate Enchant lore (color, bold, italic, underlined, strikethrough).

- feat: expand ItemsData model and add rift motes to price tooltips
2.1.18 release for FabricMC 1.21.10:
- feat: expand ItemsData model and add rift motes to price tooltips
- Fixed a bug in
ItemsData#getByName()where it was incorrectly querying thebyIdmap.
- Fixed a bug in
- feat: add compactor item whitelist to item protection
- Added "Add Compactor Items to whitelist" as a FeatureSetting to "Stop Dropping/Selling Rare Items" feature.
- Removed the "Restricted Color" system and migrated all messages/tooltips to the modern Component API.
- Fixed long-standing logic issues within Drop Confirmation and Stop Dropping/Selling Rare Items.
- Removed obsolete items from data.json.
- fix: only show rare item drop canceled message when in skyblock
- refactor(data): migrate managers to AbstractPersistentDataManager
- Extract shared I/O boilerplate (load, save, atomic write, lock) into AbstractPersistentDataManager.
- Migrate PersistentValuesManager and PetCacheManager to the new base class.
- Add EquipmentCacheManager with dirty checking to skip unnecessary disk writes.
- Move equipment cache out of PersistentValues into its own manager and file.
- Standardize persistent data access to getData() across the codebase.
- Add dirty checking in ScreenListener to skip unnecessary pet cache saves.
- Replace String.format() with .formatted() where applicable.
- Fix CompressedStorage: <= 2 guard, constructor delegation, null/empty check in setStorage().
- fix: ignore bazaar products with no valid prices in tooltip
- fix(Pet): add missing compression and defensive copy in ScreenListener
- refactor: overhaul color selection screen and remove static assets
- Replaced static 'colorpicker.png' with a dynamic, procedural HSB picker.
- Implemented interactive dragging cursors for precise color selection.
- Overhauled hex input field with zero-allocation char validation and robust formatting.
- Moved 'drawColorRect' utility to DrawUtils and deleted the redundant ButtonColorBox class.
- feat: add customizable styling for ultimate enchantments #185
- Introduced new FeatureSettings for Ultimate Enchant lore (color, bold, italic, underlined, strikethrough).

- feat: expand ItemsData model and add rift motes to price tooltips
2.3.2 hotfix release for FabricMC 26.1:
- hotfix: guard containerChanged against null listenedInventory
2.3.1 release for FabricMC 26.1:
- fix: remove stale pet cache entries on right-click; optimize config saves with temp file cleanup and guaranteed unlock
- fix: remove stale pet cache entries on right-click earlier in the event chain
- fix: remove cached pet on right-click regardless of shift state
- feat: implement level-tier rounding for pets price in tooltips
- fix: use value-based equality for pet cache updates and optimize cache saves
- refactor: migrate vanilla enchant hiding to mixin
- fix(EnchantManager): add string fallback for tooltip cache validation
- feat(FancyWarp): add Moby's Shop marker and enhance selection visuals
- fix: migrate custom wake particle to vanilla atlas logic
- chore(config): update default layout and properties for health GUI elements
- feat(LocationEditGui): add ability to reset all visual properties via shift + right-click
- feat: add new text formatting options for enchantment lore #185
- fix: prevent unintended current pet update when parsing pet ItemStack
- fix: enchanted book name resolution
- Closes #191
- feat: enable HTTP/3 support with safe fallback to HTTP/2
- perf(pets)!: replace currentPet object with index-based tracking
- Avoid redundant per-tick scans with updatePetCache/previousPage flags
- Lazy item compression instead of eager on construction
- Replace Lombok getter/setter with AtomicReference for last clicked pet slot
- Initialize petMap with capacity 512 to prevent rehash
- fix: sync current pet index on equipment menu pet update
- feat: add config import/export via clipboard
- /sba exportConfig [feature,feature,...] command with multi-select suggestions
- /sba importConfig command
- Export/Import buttons added to all SettingsGui screens per-feature
- "SBA:" prefix for format validation on import
- DevUtils.copyStringToClipboard signature:
String -> Component
- refactor: switch LowestBin API endpoint and update project attributions
- Switched LowestBinRequest URL from Moulberry to EliteSkyblock API.
- Removed unused chat component methods (
transformAllChatComponents,transformAnyChatComponent) fromTextUtils. - Updated
NOTICES.mdandOPEN_SOURCE_SOFTWARE.mdto include EliteSkyblock API terms. - Refined
README.mdopen-source attribution text with descriptive Markdown links. - Added a mandatory "Minecraft Version" field to
BUG-REPORT.ymland modernized the installed mods examples.

HEAD NOTE: 1.21.10 support somehow survived the 0.24.3 update, so I decided to update SBA.
2.1.17 hotfix release for FabricMC 1.21.10:
- hotfix: Lowest BIN data is no longer gzip
2.1.16 release for FabricMC 1.21.10:
- fix: remove stale pet cache entries on right-click; optimize config saves with temp file cleanup and guaranteed unlock
- fix: remove stale pet cache entries on right-click earlier in the event chain
- fix: remove cached pet on right-click regardless of shift state
- feat: implement level-tier rounding for pets price in tooltips
- fix: use value-based equality for pet cache updates and optimize cache saves
- refactor: migrate vanilla enchant hiding to mixin
- fix(EnchantManager): add string fallback for tooltip cache validation
- feat(FancyWarp): add Moby's Shop marker and enhance selection visuals
- fix: migrate custom wake particle to vanilla atlas logic
- chore(config): update default layout and properties for health GUI elements
- feat(LocationEditGui): add ability to reset all visual properties via shift + right-click
- feat: add new text formatting options for enchantment lore #185
- fix: prevent unintended current pet update when parsing pet ItemStack
- fix: enchanted book name resolution
- Closes #191
- perf(pets)!: replace currentPet object with index-based tracking
- Avoid redundant per-tick scans with updatePetCache/previousPage flags
- Lazy item compression instead of eager on construction
- Replace Lombok getter/setter with AtomicReference for last clicked pet slot
- Initialize petMap with capacity 512 to prevent rehash
- fix: sync current pet index on equipment menu pet update
- feat: add config import/export via clipboard
- /sba exportConfig [feature,feature,...] command with multi-select suggestions
- /sba importConfig command
- Export/Import buttons added to all SettingsGui screens per-feature
- "SBA:" prefix for format validation on import
- DevUtils.copyStringToClipboard signature:
String -> Component
- refactor: switch LowestBin API endpoint and update project attributions
- Switched LowestBinRequest URL from Moulberry to EliteSkyblock API.
- Removed unused chat component methods (
transformAllChatComponents,transformAnyChatComponent) fromTextUtils. - Updated
NOTICES.mdandOPEN_SOURCE_SOFTWARE.mdto include EliteSkyblock API terms. - Refined
README.mdopen-source attribution text with descriptive Markdown links. - Added a mandatory "Minecraft Version" field to
BUG-REPORT.ymland modernized the installed mods examples.

2.3.1 release for FabricMC 26.1:
- fix: remove stale pet cache entries on right-click; optimize config saves with temp file cleanup and guaranteed unlock
- fix: remove stale pet cache entries on right-click earlier in the event chain
- fix: remove cached pet on right-click regardless of shift state
- feat: implement level-tier rounding for pets price in tooltips
- fix: use value-based equality for pet cache updates and optimize cache saves
- refactor: migrate vanilla enchant hiding to mixin
- fix(EnchantManager): add string fallback for tooltip cache validation
- feat(FancyWarp): add Moby's Shop marker and enhance selection visuals
- fix: migrate custom wake particle to vanilla atlas logic
- chore(config): update default layout and properties for health GUI elements
- feat(LocationEditGui): add ability to reset all visual properties via shift + right-click
- feat: add new text formatting options for enchantment lore #185
- fix: prevent unintended current pet update when parsing pet ItemStack
- fix: enchanted book name resolution
- Closes #191
- feat: enable HTTP/3 support with safe fallback to HTTP/2
- perf(pets)!: replace currentPet object with index-based tracking
- Avoid redundant per-tick scans with updatePetCache/previousPage flags
- Lazy item compression instead of eager on construction
- Replace Lombok getter/setter with AtomicReference for last clicked pet slot
- Initialize petMap with capacity 512 to prevent rehash
- fix: sync current pet index on equipment menu pet update
- feat: add config import/export via clipboard
- /sba exportConfig [feature,feature,...] command with multi-select suggestions
- /sba importConfig command
- Export/Import buttons added to all SettingsGui screens per-feature
- "SBA:" prefix for format validation on import
- DevUtils.copyStringToClipboard signature:
String -> Component
- refactor: switch LowestBin API endpoint and update project attributions
- Switched LowestBinRequest URL from Moulberry to EliteSkyblock API.
- Removed unused chat component methods (
transformAllChatComponents,transformAnyChatComponent) fromTextUtils. - Updated
NOTICES.mdandOPEN_SOURCE_SOFTWARE.mdto include EliteSkyblock API terms. - Refined
README.mdopen-source attribution text with descriptive Markdown links. - Added a mandatory "Minecraft Version" field to
BUG-REPORT.ymland modernized the installed mods examples.

2.2.10 release for FabricMC 1.21.11:
- fix: remove stale pet cache entries on right-click; optimize config saves with temp file cleanup and guaranteed unlock
- fix: remove stale pet cache entries on right-click earlier in the event chain
- fix: remove cached pet on right-click regardless of shift state
- feat: implement level-tier rounding for pets price in tooltips
- fix: use value-based equality for pet cache updates and optimize cache saves
- refactor: migrate vanilla enchant hiding to mixin
- fix(EnchantManager): add string fallback for tooltip cache validation
- feat(FancyWarp): add Moby's Shop marker and enhance selection visuals
- fix: migrate custom wake particle to vanilla atlas logic
- chore(config): update default layout and properties for health GUI elements
- feat(LocationEditGui): add ability to reset all visual properties via shift + right-click
- feat: add new text formatting options for enchantment lore #185
- fix: prevent unintended current pet update when parsing pet ItemStack
- fix: enchanted book name resolution
- Closes #191
- feat: enable HTTP/3 support with safe fallback to HTTP/2
- perf(pets)!: replace currentPet object with index-based tracking
- Avoid redundant per-tick scans with updatePetCache/previousPage flags
- Lazy item compression instead of eager on construction
- Replace Lombok getter/setter with AtomicReference for last clicked pet slot
- Initialize petMap with capacity 512 to prevent rehash
- fix: sync current pet index on equipment menu pet update
- feat: add config import/export via clipboard
- /sba exportConfig [feature,feature,...] command with multi-select suggestions
- /sba importConfig command
- Export/Import buttons added to all SettingsGui screens per-feature
- "SBA:" prefix for format validation on import
- DevUtils.copyStringToClipboard signature:
String -> Component
- refactor: switch LowestBin API endpoint and update project attributions
- Switched LowestBinRequest URL from Moulberry to EliteSkyblock API.
- Removed unused chat component methods (
transformAllChatComponents,transformAnyChatComponent) fromTextUtils. - Updated
NOTICES.mdandOPEN_SOURCE_SOFTWARE.mdto include EliteSkyblock API terms. - Refined
README.mdopen-source attribution text with descriptive Markdown links. - Added a mandatory "Minecraft Version" field to
BUG-REPORT.ymland modernized the installed mods examples.

HEAD NOTE: 1.21.10 support somehow survived the 0.24.3 update, so I decided to update SBA.
2.1.16 release for FabricMC 1.21.10:
- fix: remove stale pet cache entries on right-click; optimize config saves with temp file cleanup and guaranteed unlock
- fix: remove stale pet cache entries on right-click earlier in the event chain
- fix: remove cached pet on right-click regardless of shift state
- feat: implement level-tier rounding for pets price in tooltips
- fix: use value-based equality for pet cache updates and optimize cache saves
- refactor: migrate vanilla enchant hiding to mixin
- fix(EnchantManager): add string fallback for tooltip cache validation
- feat(FancyWarp): add Moby's Shop marker and enhance selection visuals
- fix: migrate custom wake particle to vanilla atlas logic
- chore(config): update default layout and properties for health GUI elements
- feat(LocationEditGui): add ability to reset all visual properties via shift + right-click
- feat: add new text formatting options for enchantment lore #185
- fix: prevent unintended current pet update when parsing pet ItemStack
- fix: enchanted book name resolution
- Closes #191
- perf(pets)!: replace currentPet object with index-based tracking
- Avoid redundant per-tick scans with updatePetCache/previousPage flags
- Lazy item compression instead of eager on construction
- Replace Lombok getter/setter with AtomicReference for last clicked pet slot
- Initialize petMap with capacity 512 to prevent rehash
- fix: sync current pet index on equipment menu pet update
- feat: add config import/export via clipboard
- /sba exportConfig [feature,feature,...] command with multi-select suggestions
- /sba importConfig command
- Export/Import buttons added to all SettingsGui screens per-feature
- "SBA:" prefix for format validation on import
- DevUtils.copyStringToClipboard signature:
String -> Component
- refactor: switch LowestBin API endpoint and update project attributions
- Switched LowestBinRequest URL from Moulberry to EliteSkyblock API.
- Removed unused chat component methods (
transformAllChatComponents,transformAnyChatComponent) fromTextUtils. - Updated
NOTICES.mdandOPEN_SOURCE_SOFTWARE.mdto include EliteSkyblock API terms. - Refined
README.mdopen-source attribution text with descriptive Markdown links. - Added a mandatory "Minecraft Version" field to
BUG-REPORT.ymland modernized the installed mods examples.

HEAD NOTE: Announcement and bugfix update. SkyblockAddons for FabricMC 26.1 is out! 🎉
2.1.15 release for FabricMC 1.21.10:
- fix: NPEs related to ImmutableCollections.MapN
- Closes #189
- feat: backported improvements from 26.1 branch
- fix: NPEs related to ImmutableCollections.MapN
HEAD NOTE: SkyblockAddons for FabricMC 26.1 is out! 🎉
2.2.9 release for FabricMC 1.21.11:
- fix: NPEs related to ImmutableCollections.MapN
- Closes #189
- feat: backported improvements from 26.1 branch
- fix: NPEs related to ImmutableCollections.MapN
🎉
2.3.0 release for FabricMC 26.1:
There are no specific changes other than a few background behavior changes required for Minecraft 26.1: https://github.com/Fix3dll/SkyblockAddons/compare/105b225...e36e66e
