Endurance and class identity

Last updated Sep 18, 2026

Endurance and class identity

MMOCore owns how much stamina you have and base regen. SoapsHungerStamina owns when stamina drains and recovers from play.


Who owns what

Piece Owner
Max stamina (MAX_STAMINA) MMOCore class / stats
Native regen (STA_REGEN) MMOCore (SHS can pause it while busy)
Sprint, fight, weight, food, bed SHS
Idle / sneak regen scale SHS integration.mmocore.activity-regen-scale

Players feel endurance grow when class level raises MAX_STAMINA and STA_REGEN. Pair that with SHS recovery gates so sprint does not refill mid-run.

See Configuration for activity-regen-scale and block-native-regen-while-active.


Growing endurance (no SHS subsystem)

  1. Raise MAX_STAMINA and STA_REGEN per class level in MMOCore.
  2. Optional carry identity: enable scaling-weight / scaling-drain in weight.yml with %mmocore_level% or attribute placeholders (Weight and Encumbrance).
  3. Fair public join: use presets/public-smp.yml (new-player easing + softer drains).

/stamina debug shows activity/native regen blocks and encumbrance regen mult so you can verify the loop.


Food identity

Travel rations restore a little stamina. Feasts restore more and grant Well Fed regen while idle.

Defaults in actions.yml stamina-food.items label the split in comments. Well Fed only ticks when the player is not busy (same gate as idle/sneak).


Class identity overlays

Selective overlays in presets/ (copy matching keys, then /shs reload):

Preset Feel
identity-fighter.yml Heavier melee, dodge and sprint burst on
identity-swimmer.yml Costly swimming and water contact
identity-climber.yml Costly climb/elytra, altitude on

Use one overlay per playstyle server-wide, or as a checklist when designing MMOCore classes (Rogue: high dodge budget; Knight: higher max stamina).


Recovery cues

With recovery-cues.enabled: true (default), players get short chat lines when:

  • They start acting while below max stamina (once until stamina is full again)
  • They start resting while heavy load slows recovery

Tune messages under recovery.* in messages.yml. Cooldown: recovery-cues.cooldown-ms.