
LekLai
A simple mod that aim to make skill and class similar to some mmorpg game, core engine
Список изменений
2.0.0
NOTE: Please read this before download due to I separate temperature (Temporature mod) mechanic out of this mod and PlateauLib are using all my project across, So I decide to not include PlateauLib into the mod so it gonna reduce dupe dependency and the size of mod.
TLDr; you need plateaulib to work with I wait it for approve on modrinth : 18/apr/26
UPDATE: the plateaulib
New
- Minecraft 26.1 port — Core/client systems were ported to 26.1.
- PlateauLib integration — Dropped TextParticle, switched to PlateauLib TextParticle instead.
- ClassTweaker migration — Changed from accesswidener to ClassTweaker.
- Customizable sit animations — Due to BendyLib not being ported to 26.1 yet, sit animations are now customizable for variant sit styles.
- TPS camera update — Camera now works in third-person with updated position following.
- Temporature Support — add on of mod Temporature.
- New Sit Animation/Custom Sit Animation — since bendablecube are not port yet animation are need to redo
Nutrition System v2.0 — Two-Track Energy & Hydration
- Two-track energy system — Energy split into two distinct tracks:
- Glycogen (burst energy): burned directly per vanilla exhaustion event (sprint, jump, attack, mine, swim). Instant per-action cost, no accumulator.
- Body Fat (passive energy): drained slowly by basal metabolism while moving. Standing still costs almost nothing (like vanilla hunger).
- When glycogen is empty, active exertion falls back to body fat at reduced efficiency (configurable
fatFallbackRate, default 30%).
- Two-track hydration — Same pattern as energy:
- Basal drain: small passive loss from activity state.
- Active drain: water lost per vanilla exhaustion event (
mlPerExhaustionPoint, default 0.8 ml).
- Overweight drain penalty — Gear weight now affects both energy and hydration drain. Each weight tier adds +8% drain. Tier 5 = +40% more calories and water burned.
- Glycogen depletion blocks sprinting — No glycogen = can't sprint (DehydrationSprintMixin).
- Energy overflow → faster bowel — Energy exceeding max accelerates bowel pressure buildup.
- Water purity redesign — 6-grade purity system with per-bottle randomization (±1 jitter). Cleaned up
FoodNutritionDataEntrywith newwaterFromSource()factory. - Maximum Food Eat — now Maximum food can eat in stomach is 32 from 16
Custom Status Effects
-
12 new status effects replacing generic vanilla effects (Nausea, Mining Fatigue, Slowness, Weakness). All no-particle with proper names: NOTE: image are not have drawn yet.
Effect Condition Modifiers Hungry Energy 10–30% -10% speed Starving Energy < 10% -20% speed, -15% attack speed Famished Energy 0% -40% speed, -30% attack speed, -25% attack damage Glycogen Depleted Glycogen 0 -10% attack speed Overfed Energy > max (indicator — bowel fills faster) Thirsty Hydration 20–40% -5% speed Dehydrated Hydration < 20% -15% speed, -10% attack speed Nutrient Excess Over upper limit (replaces vanilla Nausea) Nutrient Deficiency Critically low (replaces vanilla Mining Fatigue) Bladder Urge Bladder > 85% (replaces vanilla Nausea) Bowel Urge Bowel pressure high -20% mining efficiency Soiled Excretion accident -15% speed, -10% attack speed -
State-change-only application — Effects only apply/remove on state transitions, not every tick.
-
Milk clear prevention — New config
disableMilkClearEffects(default: true) prevents milk from wiping nutrition/excretion effects.
NutritionTab UI
- Energy section rewrite — Glycogen and Body Fat bars show color-coded status (Full/Adequate/Low/Critical/DEPLETED) with detailed tooltips.
- Metabolic state indicator — Shows
[STARVING],[No Glycogen], or[Overfed].
Custom Sit Animation Support
- Variant sit styles — New
SitAnimationStyleenum currently It still hardcode but future I'm plan to make other do their own animation set, currently player can choose between "essentails" and "classic". and other player will see they animation.
Qols
- Nutrition Tabs — now has its own dedicated keybinding that opens the Nutrition Tab directly to that tab. Default:
G
Fixes
- Mixin plugin wiring — Added/fixed missing mixin plugin setup required by the new pipeline.
- Vanilla food bar restored — Food bar now shows correctly when nutrition system is disabled.
- Water purity bottle randomization — Each bottle now gets independent contamination chance.
Config Changes
| Field | Default | Notes |
|---|---|---|
kcalPerExhaustionPoint | 20.0 | Glycogen burned per vanilla exhaustion point |
fatFallbackRate | 0.3 | Fat burn efficiency when glycogen empty |
overweightDrainPerTier | 0.08 | Extra energy/hydration drain per weight tier |
mlPerExhaustionPoint | 0.8 | Water lost per exhaustion point |
disableMilkClearEffects | true | Prevent milk from clearing nutrition effects |
exhaustionDecayRate | removed | No longer needed |
| removed | Replaced by 6-grade system |
Changes (Internal)
- ActivityLevel rework — Enum values now represent basal metabolic rates only. Active energy cost handled per-event via
ExhaustionHookMixin. - Removed
accumulatedExhaustion— Exhaustion converts to glycogen/hydration burn instantly. - Dead translation cleanup — Removed 28+ dead lang keys for placeholder vitamins/minerals and old purity config.
- Network sync optimization — Nutrition packets use float quantization, unsigned shorts for nutrients, bitfield for zones (~62% size reduction).
- Tick optimization — Effect zone checks reduced from every 1s to every 5s. Config cached per tick.
- Dropped dead stomach stretch mechanic — Removed old stomach capacity growth system.
- Branch cleanup pass — Additional cleanup on top of the 26.1 migration branch.
- Payload rename pass — Renamed network payloads for consistency.
- getKcalPerSecond → are now removed, getEnergyDrainPerSecond() — Replaced with new method that accounts for both glycogen and fat drain based on current energy state.
- Tabs Identifier — Each screen tab now passing tab IDs:
player_info,skill_learning,skill_binding,party,nutritionso it now more easy to implement just call id from screen instead Example:javaclient.setScreen(new LeklaiScreen(LeklaiScreen.TAB_NUTRITION));. - Drop bending animation — Removed bending animation from sitting animation due to bendylib are not port yet.
- Code drop — Removed dead code and unused imports related to removed features and old systems. and drop some CleanUpEffect, TextParticle it now using pleatue lib
- Dependency — Now require CCA, and PlateauLib as manual nolonger include in mod
