Releases: Heysh1n/life-xp
Release list
v1.6.2 - The Harvest & Persistence Update
⛏️ Harvesting Mechanics and the XP Harvester
- Right-Click Harvest:
- Mature crops can now be harvested by right-clicking. The block resets its age (age=0), simulates a drop (minus one seed) and plays a sound without the need for replanting. Left-clicking works as usual.
- AoE Hoe:
- The XP Harvester Level 2+ enchantment allows you to harvest crops across an area (limit: 3 blocks per click).
- Limited VeinMiner for ores:
- XP Harvester Level 2+ on a pickaxe breaks a chain of identical ores (hard cap: 6 blocks) .
- Balance: For every block broken in the chain, the tool’s durability is fairly deducted, exhaustion is accrued and experience is generated. Exploits involving infinite durability are prevented.
🔥 Kill-Streak Persistence
- NBT Storage:
- Kill streaks are no longer reset when logging off the server. Data is written directly to the player’s NBT (
lifexp_kill_streakandlifexp_last_kill_time).
- Kill streaks are no longer reset when logging off the server. Data is written directly to the player’s NBT (
- AFK Timeout:
- A time limit has been introduced. If more than 5 minutes (300,000 ms) elapse between mob kills, the streak is automatically reset. The reset upon death works as normal.
🏆 Achievement Rewards (Advancements)
- Progression milestones have been updated (10%, 50%, 100% of the level).
- The
‘rewards’block has been integrated: physical rewards (Dynamic XP Bottle, Shield Core) and bonus experience are now awarded for achieving milestones.
v1.6.1 - UI Overhaul, Sync Triggers & Modern Asset Binding
🎨 Interface and Command Line (Server & Client UI)
- Interactive pagination
/lifexp status [page]:- Complete refactoring of parameter output: the list of 15 attributes is split into pages of 5–6 items.
- Interactive clickable page-turning buttons
[◀]and[▶](ClickEvent.RUN_COMMAND). - Raw technical identifiers (such as
submerged_mining_speed) have been hidden: human-readable, localised names have been implemented. - Fine details (50% cap step and scaling type) have been moved to compact tooltips
HoverEvent.ShowText.
- Redesign of the
/lifexp topleaderboard:- Added gradient differentiation for prize positions (Gold for 1st place, Silver for 2nd place, Bronze/Red for 3rd place).
- Standardised the visual style of frames and separators to match the mod’s colour scheme (
GOLD+DARK_GRAY).
- Attribute preview (
/lifexp get attr):- Converted to a standardised status formatting scheme with tooltips.
⚙️ Synchronisation and Network (Network & State Fixes)
- One-Shot Sync via the ESC key:
- A client-side interceptor for
ClientGuiEvent.SET_SCREENhas been implemented to open thePauseScreen. - When the pause menu is called, a point-to-point C2S synchronisation packet is sent: the server performs an immediate recalculation and pushes a
ClientboundUpdateAttributesPacket. The issue of heart containers (generic.max_health) getting stuck has been resolved without placing a constant load on the server tick.
- A client-side interceptor for
- Network Architecture Adaptation:
- Network packet signatures have been updated to comply with modern
CustomPacketPayloadstandards.
- Network packet signatures have been updated to comply with modern
🖼️ Assets and Rendering (Assets & Tree Fixes)
- Achievements tab background fix:
- Fixed the black-and-purple chequerboard pattern (missing texture) in the root node of the achievements tree (
root.json). - Correctly linked the background tiling resource (
life_xp_challenge:textures/gui/advancements/backgrounds/root_bg.png) with a safe fallback.
- Fixed the black-and-purple chequerboard pattern (missing texture) in the root node of the achievements tree (
- Render buffer safety:
- Matrix transformations in
LifeXpVisualsClienthave been isolated in the event of an early exit viaisDeadOrDying().
- Matrix transformations in
v1.5.4 - Content Update, Frozen the branch and Complitly growth up to 26.2
🔮 Data-Driven Enchantments (Minecraft 1.21.1 JSON Format)
- XP Harvester (
life_xp_challenge:xp_harvester):- Maximum level: III.
- Applicable to Pickaxes and Hoes (
#minecraft:pickaxes,#minecraft:hoes). - Added to the standard enchanting table tag (
#minecraft:enchantment/in_enchanting_table). - Mechanics:
- Mature Crops: Harvesting fully-grown crops (
CropBlockwithisMaxAge) drops 1–2 Experience Orbs. - Vanilla Ores: Mining Iron, Copper, Gold, Lapis, Redstone, or Diamond ores yields scaled bonus experience based on enchantment level (
level * 2tolevel * 5XP). - Ancient Debris: Yields a high-stakes reward equal to 1% of the player's total experience points (capped at a maximum of 500 XP per block).
- Mature Crops: Harvesting fully-grown crops (
- Anomaly Angler (
life_xp_challenge:anomaly_angler):- Maximum level: I.
- Applicable to Fishing Rods (
#minecraft:enchantable/fishing). - Added to the standard enchanting table tag (
#minecraft:enchantment/in_enchanting_table). - Mechanics: Unlocks anomalous treasure drops when fishing.
🎣 Fishing & Loot Overhaul
- Treasure Loot Injection: Hooked into
minecraft:gameplay/fishing/treasurevia Architectury'sLootEvent.MODIFY_LOOT_TABLE. - Custom Loot Condition: Implemented
HasAnomalyAnglerCondition(life_xp_challenge:has_anomaly_angler) checking the tool in hand for theanomaly_anglerenchantment. - Custom Loot Function: Implemented
AnomalyFishingLootFunction(life_xp_challenge:anomaly_fishing_loot):- Shield Core (
shield_core): Added to the anomalous treasure pool. - Damaged Life Bottle (
life_bottle): Can be caught with pre-inflicted damage (only 1–2 durability points remaining) using vanillaminecraft:damageData Component. - Charged Dynamic XP Bottle (
dynamic_xp_bottle): Can be caught pre-filled with 5 to 40 stored experience points usinglife_xp_challenge:stored_xpData Component.
- Shield Core (
⚙️ Modern Data Components (1.21.1)
- Registered custom Data Component
life_xp_challenge:stored_xp(DataComponentType<Integer>) via Architectury registry. - Fully migrated
DynamicXpBottleItemfrom legacy NBT compound tags to modern Minecraft 1.21.1DataComponents.
📖 JEI / EMI Integration & Localization
- Added dedicated JEI Information tabs (
addItemStackInfo) for Enchanted Books containingXP HarvesterandAnomaly Angler. - Complete trilingual translations across all new content:
- English (
en_us) - Russian (
ru_ru) - Turkish (
tr_tr)
- English (
- Full Turkish parity: localized JEI descriptions, enchantment names, ModMenu metadata, and advancements.
🛠️ Toolchain & Compatibility
- Java Toolchain: Strictly pinned build and runtime toolchain to Java 21 (
JavaLanguageVersion.of(21)) in rootbuild.gradle. - Daemon & Run Tasks: Configured
org.gradle.java.hometo target JDK 21 explicitly. - SpongePowered Mixin Compatibility: Resolved runtime crash (
Unsupported class file major version 69) when executing:fabric:runClienton machines with Java 25 installed by ensuring Mixin runs strictly within Java 21 bytecode limits.
v1.5.3+1.5.2 (Finished and update to new Minecraft Versions)
[1.5.3] - Final Release for Minecraft 1.21.1 (Legacy)
This is the final stable patch for the 1.21.1 architecture (Java 21). The legacy-1.21.1 branch is now frozen. All future development (starting from v1.6.0) is officially moving to Minecraft 26.1.1 (Java 25).
🐛 Visuals & Bug Fixes
- Fixed dynamic liquid rendering for
DynamicXpBottleItemandLifeBottleItem. Added the missing0xFF000000opacity mask to prevent ARGB colors from rendering as invisible. - Fixed client-side visuals overlaying the death screen. Ash particles spawning and the dynamic vignette are now properly blocked by an
isDeadOrDying()check. - Fixed OpenGL graphical artifacts during vignette rendering. The alpha channel calculation is now strictly clamped to the
[0.0, 1.0]range usingMath.clamp. - Fixed item JSON models. Removed hardcoded links to vanilla potion textures (
minecraft:item/potion); models are now properly bound to the customlife_xp_challengeassets. - Fixed the missing texture (black and purple squares) for the XP Shield effect icon in the inventory.
[1.5.2] - Visuals & Shaders Overhaul (Fog Replacement)
🎨 Visuals & Immersion (Major Refactor)
-
Removed Legacy Fog System:
-
Completely removed
FogRenderermixins and dynamic fog density alterations that caused chunk culling bugs, rendering distance truncation, and shader incompatibilities. -
Removed obsolete configuration properties (
enableCustomFog,disableFog,fogStartDistance,fogMidDistance,fogEndDistance) fromLifeXpConfig, YACL GUI Screen, and commands (/lifexp get fog,/lifexp set fog). -
Dynamic Client Vignette (HUD Overlay):
-
Added new client handler
LifeXpVisualsClient. -
Listens to Architectury's
ClientGuiEvent.RENDER_HUDto blittextures/gui/vignette.pngacross the screen. -
Full transparency at
$\ge 50%$ ofmaxLevel, darkening screen edges progressively as experience drops. -
Ambient Ash Particles (
ParticleTypes.ASH): -
Implemented on
ClientTickEvent.CLIENT_POSTinLifeXpVisualsClient. -
When local player's experience falls below
$10%$ ofmaxLevel, spawns 1–2 ash particles in a 1.5-block radius with a 30% tick chance to convey imminent peril.
v1.5.0 (The Logic & Performance Overhaul)
This massive update completely rebuilds the core mechanics of the mod, introduces new progression systems, and heavily optimizes server performance for large modpacks.
⚡ Performance & Engine Optimizations
- Clumps-Style XP Optimization: Mobs no longer drop dozens of lag-inducing experience orbs. Drops are now merged into a single, high-value orb. Existing orbs in a 2-block radius will also merge dynamically every 5 ticks to save server TPS.
-
$O(1)$ Math Refactor: Completely eliminatedwhileloops for attribute calculations. Leveling up to 50,000+ levels will no longer cause Watchdog tick timeouts or server freezes. -
Critical NBT Save Crash Fixed: Resolved the infamous
Unregistered holder: xp_shieldcrash during world auto-saves by rewriting the registry logic to nativeRegistry.registerForHolder. -
Integer Overflow Fix: Experience pooling now uses
longtypes, fixing bugs where taking damage at high levels could heal the player or duplicate XP.
🛡️ XP-Shield Potion Overhaul
The legacy passive shield system has been completely removed and replaced with a balanced brewing system:
-
Shield Core: New crafting ingredient required for brewing (crafted with an Ender Chest, not a bundle).
-
Brewing Hierarchy:
-
Level I (25% Absorption): Awkward Potion + Shield Core (3:00 base, 8:00 with Redstone).
-
Level II (50% Absorption): Level I + Glowstone Dust (1:30).
-
Level III (75% Absorption): Level II + Nether Star (1:00).
-
Note: Absorption burns experience points (1:1 ratio). Taking fatal damage without enough XP will bypass the shield.
⚙️ Gameplay & Presets
- Origins-Style Preset Screen: First-time joiners will now be greeted with a forced, unclosable GUI to select their gameplay preset.
- Strict Preset Locking: Presets can only be selected once per player (tied to NBT). Attempting to bypass this via the
/lifexp presetcommand or the YACL config screen is now strictly blocked. - New Modifiers: Added
purist(classic hardcore with no streak bonuses) andcore_no_streakspresets. - Kill Streak Fix: The Kill Streak XP multiplier now correctly applies to the merged mob drop before it spawns.
🎨 Visuals & UI
- HUD Progress Bubbles: Replaced the clunky text overlay with 10 graphical experience orbs positioned above the hunger bar (1 orb = 10% of the cap).
- Dynamic XP Number Tint: Vanilla XP levels now change color based on progress: Green (< 50%) → Aquamarine (≥ 50%) → Gold (100% cap).
- Fog Culling Fix: Fixed an issue where the dynamic shader fog would cull chunks at early levels. Minimum distance clamped to 16 blocks.
- Blur Fix: Removed the aggressive vanilla blur shader from the custom preset selection screen for better readability.
🧩 Integrations & Advancements
- Full JEI / EMI Support: Added detailed info tabs for custom items (
life_bottle,dynamic_xp_bottle,shield_core) and mapped the entire XP-Shield brewing tree for easy viewing. - Advancements Cleanup: Removed legacy milestones that caused 11,000+ level spikes when triggered.
- New Challenges: Added dynamic achievements: Life or Death (Survive ≤1 HP with Shield III), Expensive Taste, Miner's Vein, and Master Angler.
- YACL Config Cleanup: Stripped deprecated passive shield fields and added toggles for
disableFog,showHudBubbles, andlockPresetAfterSelection.
v1.4.8
🚀 Core & Performance
-
Watchdog Crash Fix (
$O(1)$ Math): Eliminated heavywhileloops in experience calculation. Stat recalculation is now handled in$O(1)$ and cached, preventing server tick freezes when receiving massive level bursts (4000+). -
Integer Overflow Fix: Switched experience pooling logic to
longwith strict bounding, preventing damage from healing players or generating infinite experience at high levels. - Chunk Culling Fix (Dynamic Fog): Bounded minimum shader fog distance to 16 blocks to prevent visual chunk culling in early gameplay.
⚔️ Gameplay Mechanics
- XP Shield Potion Overhaul:
- Removed legacy passive shield system. Damage absorption is now tied to the
life_xp_challenge:xp_shieldpotion effect. - Added
shield_corecrafting material. - Added brewing recipes:
- Level I (Awkward + Shield Core): 25% absorption (3:00 / 8:00 with Redstone).
- Level II (Glowstone Dust): 50% absorption (1:30).
- Level III (Nether Star): 75% absorption (1:00).
- Removed legacy passive shield system. Damage absorption is now tied to the
- Origins-Style Preset Selection: First-time joiners are greeted with a mandatory modal GUI to pick their gameplay preset.
- Preset Locking: Applied persistent
lifexp_preset_chosenNBT tag to prevent mid-game preset switching once confirmed. - Modular Presets: Added
purist(classic vanilla hardcore) andcore_no_streaksprofiles.
🎨 Visuals & UI
- HUD Redesign: Replaced legacy text overlay with 10 graphical experience orbs positioned above the hunger bar.
- Dynamic XP Counter Tint: Vanilla experience level numbers now dynamically shift color: Green (<50%), Aquamarine (≥50%), and Gold (100% cap).
- Hover Tooltips: Added extended Shift-click tooltips for all custom utility items across RU, EN, and TR locales.
🛠 Compatibility & Polish
- JEI & EMI Integration: Added full in-game information tabs explaining custom item functions.
- Recipe Fix: Replaced experimental bundles with vanilla Ender Chests in
life_bottlecrafting. - YACL Config Cleanup: Stripped deprecated shield options and added toggles for custom fog, HUD bubbles, and preset locking.
V1.4.1 - fabric + neoforge [1.21.1]
🚀 Key new features
-
Architectury Monorepo Migration: The entire codebase has been restructured into an Architectury multi-platform architecture (
common,fabric,neoforge), guaranteeing 100% feature and logic parity across both mod loaders on Minecraft 1.21.1. -
Energy Shield (XP Shield): Damage now drains your experience points before impacting your health.
-
Absorbs a base 50% of incoming damage by converting it into XP loss.
-
Perfect Block (10% chance): Completely absorbs all incoming damage at the cost of 10% of your total accumulated experience points. Features distinct audio feedback when triggered.
-
Smart Death Tax: Replaced flat death penalties with context-aware punishment:
-
Careless deaths (fall damage, drowning, lava, starvation, suffocation) multiply the XP tax up to 5x (capped at 100%).
-
Heroic deaths against major endgame bosses (Warden, Wither, Ender Dragon) slash the penalty down to 10% of your configured rate.
-
Kill Streak XP: Slaying hostile mobs consecutively grants +1% bonus XP per kill (up to +100%). Dying instantly resets the counter to 0.
-
In-Game HUD Overlay: A clean, cross-platform HUD element displaying your real-time level, progress to the next level, total cap, and active Kill Streak multiplier.
-
Advancement Tree (Milestones): Added an End-themed progression tree with rewards and announcements for reaching levels 100 ("Live and Learn"), 250 ("Diamond Hardened"), and 500 ("Absolute Power").
-
Complete Trilingual Parity: All messages, death penalties, chat announcements, item names, and config descriptions now feature full native translations for English (
en_us), Russian (ru_ru), and Turkish (tr_tr).
🛠️ Administration and Server
-
Config Export to Clipboard: Added
/lifexp export— serializes your current live server config into JSON format and copies it directly to your clipboard for instant preset sharing. -
Server Leaderboard: Added
/lifexp top— ranks and displays the top 10 online players sorted by current experience level. -
New Shield Configuration Commands: Added direct runtime controls for the new defensive mechanics:
-
/lifexp set xpShieldEnable <true|false>- Toggle the Energy Shield mechanic globally. -
/lifexp set xpShieldAbsorb <0.0-1.0>- Configure the standard percentage of incoming damage absorbed by XP. -
/lifexp set xpShieldBlockChance <0.0-1.0>- Adjust the probability of landing a Perfect Block. -
/lifexp set xpShieldBlockCost <0.0-1.0>- Set the percentage of total XP consumed on a Perfect Block. -
GUI Configuration Sliders: All new shield and combat settings have been wired directly into the YACL configuration menu, accessible in-game via ModMenu on Fabric and the native Config button on NeoForge.
🐛 Bug Fixes & Improvements [from version 1.2.5]
- Shaped Recipe Validation: Fixed a JSON parsing crash (
Invalid pattern: each row must be the same width) inlife_bottle.jsonby squaring out uneven crafting matrix rows to strict 3x3 formatting. - NeoForge Metadata Fix: Resolved an issue where the mod would incorrectly display as
1.0 Releaseon NeoForge by implementing dynamic resource filtering during the Gradle build. - Icon Rendering: Fixed missing mod icons across client mod lists by bundling the asset properly across common and platform resources.
V1.2.5 - ony fabric [1.21.1]
🚀 Key new features
- New ‘Creativity’ tab: Mod items (Life Bottle and Dynamic XP Bottle) have now been moved to a separate tab called ‘LIFE-XP Challenge’, featuring an experience bubble icon
- The mod has been split into two independent versions:
- A separate project for Fabric (main folder).
- A new, completely independent project for NeoForge
- ModMenu localisation A translation of the mod description has been added for the mods screen, which automatically adapts to your game’s language (English, Russian, Turkish).
🛠️ Administration and Server
- Operator commands: A new command,
/lifexp(available only to Level 2 operators), has been added, allowing you to adjust the hardcore settings directly in-game:/lifexp status- View the current settings./lifexp set <parameter> <value>- Change a specific configuration parameter without restarting the server./lifexp preset <core|vanilla_plus|baby_mode|real_hardcore>- Apply a global difficulty preset./lifexp reload- Reload the configuration from a file - Changes made via commands are applied instantly to all players online!
v1.0.0 - ony fabric [1.21.1]
🚀 Initial Release 1.0.0
Core Mechanics *
Dynamic XP Attribute Scaling: 13+ vanilla attributes (Health, Movement Speed, Attack Damage, Oxygen Bonus, Burning Time, etc.) dynamically scale with your XP level. * *
4 Built-in Presets:*
- ☠ LIFE-XP CORE: Hardcore experience starting at 0.5 hearts, max level 1000.
- 💚 Vanilla+: Balanced progression starting at 6 HP up to level 500.
- 🍼 BabyMode: Casual boost progression up to level 200.
- 🔥 Real Hardcore: Extreme survival with custom dense fog and severe debuffs.
Utility Items & Tweaks
- Life Bottle: High-tier craftable artifact that preserves your entire inventory upon death (includes full Void protection).
- Dynamic XP Bottle: Store exact XP points on demand using
Shift + Right Clickwith a glass bottle. - Anvil "Too Expensive" Removal: Enchant and repair items without the vanilla 40-level restriction.
- Death Coordinates: Broadcasts exact coordinates upon death in chat.
Configuration & UI
- Full YACL v3 Configuration Screen: Easily customize caps, formulas, and attribute limits.
- Multi-language Support: Complete English (
en_us) and Russian (ru_ru) localizations.