
最大耐力
一个完全可定制的耐力系统大修,灵感来源于PEAK系统。兼容所有使用效果或NBT数据的模组。
查看大图峰值耐力
将原版疾跑机制替换为基于疲劳与饥饿的资源管理系统。兼容 Tough as Nails、Cold Sweat、ParCool 与 Combat Roll。如需额外自定义惩罚或集成,请参阅下方“进阶功能”部分。
功能特性
- 动作消耗:疾跑、跳跃、攻击、挖掘、游泳、攀爬和使用物品都会消耗耐力。
- 疲劳:耐力低于 25% 并持续停留会累积疲劳,暂时降低你的最大耐力上限。
- 食物中毒:食用变质食物会施加持续的中毒惩罚(紫色条),该惩罚会封锁一部分最大耐力,直至其自然消退。
- 负重系统:携带沉重物品会降低你的最大耐力。携带越多,惩罚越大。
- 攀爬:爬梯子会消耗耐力。按住Shift可进行慢速攀爬(40%速度),该行为不消耗耐力,并允许缓慢恢复。
- 饥饿惩罚:低食物水平会降低你的最大耐力上限。
- HUD:自定义的低调耐力条,带有疲劳、中毒、负重和主动惩罚的视觉指示器。
条状模式
图标模式
配置文件
config/peak_stamina/common.toml:所有核心游戏数值(消耗、恢复、惩罚)。config/peak_stamina/lists.toml:负重系统、物品消耗、消耗品、通用惩罚/增益以及力竭配置方案。config/peak_stamina/client.toml:HUD 和视觉效果设置。
- 注意:随着最新更新(v2.0.0),现在有了游戏内配置界面!你可以在画廊中看到它的样子。
基础设置
常规
enableStamina(默认值:true):模组总开关。disableInCreative(默认值:true):若为 true,创造模式玩家将完全被排除在耐力系统之外。disableInSpectator(默认值:true):若为 true,旁观模式玩家将完全被排除在耐力系统之外。initialMaxStamina(默认值:100.0):所有玩家的初始最大耐力。所有惩罚和修正都会以此基础值计算。slowClimbSpeed(默认值:0.4):慢速攀爬时的移动速度倍率(设为1以禁用)。
动作消耗
将任意值设为
0以禁用它。使用负值则会在该动作期间恢复耐力,而非消耗。
depletionSprint(默认值:0.15):疾跑时每 tick 的消耗量。depletionJump(默认值:0.85):跳跃时的即时消耗量。depletionAttack(默认值:3.45):武器挥击时的即时消耗量。depletionMissedAttack(默认值:1.0):挥空时的即时消耗量。depletionBlockBreak(默认值:1.1):破坏方块时的即时消耗量。depletionBlockPlace(默认值:1.1):放置方块时的即时消耗量。depletionClimb(默认值:0.7):在梯子上时每 tick 的消耗量。depletionSwim(默认值:0.05):在水中时每 tick 的消耗量。itemInterruptionCooldown(默认值:120):使用物品时耐力耗尽后,该物品无法使用的 tick 数。
恢复
recoveryPerTick(默认值:0.36):基础恢复速度。recoveryRestMult(默认值:1.45):站立不动时应用的倍率。recoveryClimbMult(默认值:0.7):在梯子上休息时应用的倍率。recoveryDelay(默认值:50):执行动作后,开始恢复前的 tick 数。
附魔
这些值作为倍率使用。例如,
0.15表示减少 15%,0.60表示减少 60%。
lightweightLvl1(默认值:0.25):轻盈 I 附魔的负重减免倍率。lightweightLvl2(默认值:0.50):轻盈 II 附魔的负重减免倍率。lightweightLvl3(默认值:0.75):轻盈 III 附魔的负重减免倍率。tirelessLvl1(默认值:0.20):不知疲倦 I 附魔的耐力消耗减免倍率。tirelessLvl2(默认值:0.40):不知疲倦 II 附魔的耐力消耗减免倍率。tirelessLvl3(默认值:0.60):不知疲倦 III 附魔的耐力消耗减免倍率。
惩罚与限制
fatigueThreshold(默认值:0.25):开始累积疲劳的耐力百分比。fatigueDurationToPenalty(默认值:180):在疲劳惩罚激活前,处于临界区域所花费的 tick 数。maxExertionPenalty(默认值:30.0):因疲劳损失的最大耐力值。maxHungerPenalty(默认值:30.0):因饥饿损失的最大耐力值。hungerPenaltyThreshold(默认值:6):开始施加减值时的食物水平(3个鸡腿)。minMaxStamina(默认值:10.0):最大耐力的硬性下限:永远不能低于此值。penaltyRecoveryDelay(默认值:100):在条件改善后,疲劳开始恢复前的 tick 数。penaltyBuildupRate(默认值:0.1):当条件恶化时,每 tick 累积的惩罚值。penaltyDecayRate(默认值:0.05):当条件改善时,每 tick 恢复的惩罚值。
中级功能
睡眠机制
sleepMode(默认值:DEFAULT):控制疲劳如何消退:DEFAULT:疲劳会随时间自然消退。睡觉和食用治疗疲劳的食物都能减少疲劳。HARDCORE:疲劳永远不会自行消退。你必须通过睡觉或食用治疗疲劳的食物来消除它。
sleepFatigueReduction (默认值:20.0):成功睡眠后移除的疲劳惩罚固定值。设置为一个较高的数值可完全清除疲劳。注意:只有带有
CURE;FATIGUE;value标签的食物才能治疗疲劳。多个 CURE 条目可以链接在单个物品上:例如,CURE;FATIGUE;10;CURE;universalpenalty;10会同时移除 10 点两者。请参阅“消耗品”部分获取完整指南。
战斗与动态武器重量
重量缩放公式:
当重量缩放启用时,攻击所消耗的耐力会乘以一个基于你手中武器的计算重量系数。
倍率 = 1.0 + (((武器重量 - 归一化值) / 归一化值) * 缩放系数)
命中攻击设置:
depletionAttack(默认值:3.45):每次成功攻击消耗的基础耐力。attackCostScalesWithWeight(默认值:true):启用或禁用成功命中时的动态重量公式。attackWeightNormalizer(默认值:3.0):导致耐力消耗倍率恰好为 1.0 倍的基础武器重量。attackWeightScaleFactor(默认值:1.0):重量影响攻击成本的程度。attackWeightMinMultiplier(默认值:0.4):耐力消耗倍率的绝对最小值。attackWeightMaxMultiplier(默认值:5.0):耐力消耗倍率的绝对最大值。
挥空攻击设置:
depletionMissedAttack(默认值:1.0):对空挥击时消耗的基础耐力。missedAttackCostScalesWithWeight(默认值:true):启用或禁用挥空攻击时的动态重量公式。missedAttackWeightNormalizer(默认值:3.0):挥空攻击时 1.0 倍倍率的基础武器重量。missedAttackWeightScaleFactor(默认值:1.0):重量影响挥空攻击成本的程度。missedAttackWeightMinMultiplier(默认值:0.4):挥空攻击的最小可能耐力消耗倍率。missedAttackWeightMaxMultiplier(默认值:5.0):挥空攻击的最大可能耐力消耗倍率。
鞘翅机制
控制玩家飞行时耐力耗尽会发生什么。
depletionElytra(默认值:0.25):飞行时每 tick 的消耗量。disableElytraWhenExhausted(默认值:true):若为 true,当耐力降至 0 时,鞘翅将发生空气动力学失速。若为 false,则继续正常飞行。exhaustedElytraDrag(默认值:0.86):失速期间每 tick 保留的水平速度。数值越低 = 减速越快。(0.9= 每 tick 损失 10% 速度。)exhaustedElytraGravity(默认值:-0.025):失速期间每 tick 的额外垂直重力。负值会将玩家向下拉。exhaustedElytraMinSpeed(默认值:0.5):低于此速度阈值时,鞘翅将强制关闭并使玩家掉落。exhaustedElytraTickInterval(默认值:3):施加拖拽物理效果的频率(以 tick 为单位)。1= 每 tick。
额外耐力
控制玩家如何获得额外耐力以及它如何随时间消退。
当额外耐力超过你的最大容量时,HUD 条会动态地堆叠在自身之上。每个溢出层级会稍微变暗,并在条的左侧显示一个倍率标签(例如,2x、3x)。
enableExcessStaminaConversion(默认值:true):若为 true,通过消耗品将耐力恢复超过最大值时,会将溢出部分转化为额外耐力。excessConversionRate(默认值:0.5):溢出的转化百分比。0.5= 50%(例如,10点溢出 → 5点额外耐力)。bonusStaminaDecayDelay(默认值:20):额外耐力在获得或使用后开始消退前的 tick 数。(20 tick = 1秒。)bonusDecayScalesWithAmount(默认值:true):若为 true,消退是当前额外耐力的百分比:你拥有的越多,燃烧得越快。若为 false,消退是固定值。bonusStaminaDecayRate(默认值:0.05):每秒损失的额外耐力。启用缩放时,0.05= 每秒 5%。
进阶功能
进阶配置位于
config/peak_stamina/lists.toml。
负重系统
追踪你物品栏中物品的总重量,并在你携带过重时施加耐力惩罚。惩罚在阈值和上限之间线性缩放。
enableWeightSystem(默认值:true):启用或禁用重量计算。weightPenaltyThreshold(默认值:125.0):惩罚开始的总重量(0%)。weightPenaltyLimit(默认值:400.0):惩罚达到最大值(100%)时的总重量。maxWeightPenaltyAmount(默认值:40.0):满载重量时的最大耐力减少量。maxWeightRecursionDepth(默认值:3):扫描嵌套容器的深度层级。autoWeightBase(默认值:10.0):未明确列出的物品的基础重量。
重量如何计算
每个物品的重量由四个优先级层级决定(最高优先):
- 显式物品重量:在
customItemWeights中定义(支持标准 ID 和虚拟 NBT ID)。 - 标签重量:在
customTagWeights中定义。 - 高级 NBT 提取:在
nbtWeightPaths中定义(提取隐藏 ID 以对照显式重量)。 - 自动称重器:启发式回退:
重量 = (autoWeightBase / MaxStackSize) × 数量。
使用 autoWeightBase = 10.0,一把剑(堆叠1)、16颗末影珍珠和64个泥土块的总重量都是10.0:携带更多可堆叠物品不会无限增加重量。容器(潜影盒、背包)会包含其内容的重量。潜影盒、Curios 和 PackedUp 会自动支持。
显式物品重量
格式: "modid:item;weight":重量按单个物品计算,而非按堆叠计算。
注意:此列表也接受高级 NBT 系统提取的“虚拟 ID”(例如,"tacz:9mm;0.05")。
customItemWeights = [
"minecraft:netherite_chestplate;15.0",
"minecraft:diamond_sword;4.0",
"minecraft:obsidian;1.2",
"tacz:9mm;0.05"
]
标签重量
格式: "tag;weight":重量适用于该标签内的每个单独物品。
customTagWeights = [
"forge:ores;0.25",
"forge:storage_blocks;0.15",
"forge:ingots;0.2"
]
自定义容器路径
用于在自定义 NBT 中存储物品的背包模组。仅当模组未被自动检测到时需要。
格式: "modid:item;path.to.list"
customContainerPaths = [
"somemod:satchel;Inventory",
"anothermod:backpack;StorageTag.Items"
]
高级 NBT 重量提取(适用于复杂模组)
何时使用:
Minecraft 中的大多数物品使用标准物品 ID(例如,minecraft:apple)。对于这些物品,你不需要此列表;直接将它们放入“显式物品重量”列表即可。
然而,一些复杂模组(如 TACZ)使用单个基础物品(例如,tacz:ammo)并将实际的特定物品 ID(如 tacz:9mm)隐藏在 NBT 文件夹中。此列表告诉重量系统在 NBT 数据中确切查找该真实“虚拟 ID”的位置。
ID 放置位置:
一旦你在此处定义了路径,重量系统将提取隐藏的虚拟 ID。然后你必须将该提取的 ID 放入你的显式物品重量列表中,为其分配重量。
格式: "base_item_id ; nbt.path.to.id ; fallbackWeight ; applyFallbackIfMissing"
示例:
nbtWeightPaths = [
# 示例 1:弹药(回退标志使用 'true')
# 在 'tacz:ammo' 中查找 'AmmoId'。如果找到类似 'tacz:9mm' 的 ID,则检查显式重量。
# 如果 'tacz:9mm' 没有明确配置,则增加 0.05 重量。
# 如果 AmmoId 标签完全缺失,由于标志为 true,仍会增加 0.05。
"tacz:ammo;AmmoId;0.05;true",
# 示例 2:配件(回退标志使用 'false')
# 深入枪械的 NBT 文件夹(打开 AttachmentSCOPE,然后是 tag,读取 AttachmentId)以检查瞄准镜。
# 如果找到瞄准镜,则检查显式重量,否则增加 0.5。
# 如果没有装备瞄准镜(文件夹为空),由于标志为 false,增加 0.0 重量。
# (如果为 true,即使枪没有瞄准镜,也会增加 0.5 的幻影重量。因此这里用 false 更好)
"tacz:modern_kinetic_gun;AttachmentSCOPE.tag.AttachmentId;0.5;false"
]
重量上限属性
使用 /stamina attr weight_limit <value> 增加玩家的携带能力。每点增加 +0.5 到阈值,并增加 +1.0 到上限。
物品消耗成本
为任何物品分配耐力消耗。多种消耗类型可以叠加在单个物品上(例如,一个盾牌既在持握时又在格挡时消耗耐力)。
使用负成本值可在动作期间恢复耐力,而非消耗。
itemInterruptionCooldown(默认值:80):使用物品时耐力耗尽的冷却时间(以 tick 为单位)。enableAttackCooldownWhenExhausted(默认值:false):与itemInterruptionCooldown不同,此项针对武器、剑、斧等。exhaustedAttackCooldownDuration(默认值:80):耐力耗尽时挥动武器,武器冷却的持续时间。
格式: "ItemId;TYPE;Cost;TYPE;Cost..."
消耗类型:
TICK:物品使用期间持续消耗耐力。耐力降至 0 时取消该动作。BLOCK:仅当盾牌成功格挡伤害时消耗耐力。支持动态缩放:BLOCK;BaseCost;DamageMultiplier。USE:右键点击时立即消耗耐力。USE_ON_BLOCK:仅当工具成功修改方块状态时消耗耐力。
示例:
# 盾牌:持握时 `0.2/tick`;受到攻击时,`2.0` 固定 + `80%` 的所受伤害:
"minecraft:shield;TICK;0.2;BLOCK;2.0;0.8"
# 弓:拉弓时 `0.5/tick`:
"minecraft:bow;TICK;0.5"
# 钓鱼竿:抛竿消耗 `3.0` 耐力:
"minecraft:fishing_rod;USE;3.0"
也提供了一个基于标签的列表,使用相同格式,用标签 ID 代替物品 ID。特定物品条目始终优先于标签条目。
消耗品系统
将多种效果链接到单个物品上,以创建复杂的食物和消耗品互动。
penaltyReliefDuration(默认值:25):食用缓解物品后抗性增益效果的持续时间(秒)。maxPoisonPenalty(默认值:40.0):食物中毒可封锁的最大耐力值。poisonDecayDelay(默认值:45):食用后,中毒惩罚开始恢复前的秒数。poisonDecayRate(默认值:0.05):延迟结束后,中毒条消耗的速度。
格式: "ItemId;TYPE;Args...;TYPE;Args..."
效果类型:
INSTANT;Amount:立即恢复Amount耐力。BONUS;Amount:给予Amount额外耐力(金色条)。优先于普通耐力消耗,并随时间消退。POISON;Amount:施加Amount的食物中毒惩罚(紫色条)。在poisonDecayDelay秒后开始消退。REGEN;Amount;Seconds:在Seconds秒内修改恢复速度。正值 = 更快,负值 = 更慢。(0.2 = +20%,-0.3 = -30%。)PENALTY;Amount:在penaltyReliefDuration秒内给予抗性。公式:30% 基础 + (Amount / 100)。上限为 80%。CURE;Target;Amount:从特定惩罚中移除Amount。有效目标:FATIGUE、HUNGER、POISON、WEIGHT、ALL,或任何自定义键(例如,temperature或modid:effectid)。
示例:
# 恢复 10.0 耐力并给予 5.0 额外耐力。
"minecraft:apple;INSTANT;10.0;BONUS;5.0"
# 在配置的缓解持续时间内给予约 50% 的惩罚抗性。
"minecraft:golden_carrot;PENALTY;20.0"
# 移除 100.0 点食物中毒。
"minecraft:milk_bucket;CURE;POISON;100.0"
# 移除 50.0 中毒和 20.0 疲劳。
"modid:herbal_tea;CURE;POISON;50.0;CURE;FATIGUE;20.0"
# 移除由凋零效果引起的 100.0 点惩罚。
"minecraft:honey_bottle;CURE;minecraft:wither;100.0"
# 移除所有活跃惩罚的 50.0 点,并给予约 55% 的抗性。
"minecraft:golden_apple;CURE;ALL;50.0;PENALTY;25.0"
力竭惩罚
定义玩家耐力降至 0 时会发生什么。
exhaustionCooldownDuration(默认值:60):降至 0 后惩罚持续的 tick 数(3秒)。exhaustedSpeedPenalty(默认值:-0.65):在 0 耐力下奔跑时的疾跑速度减少。玩家在此状态下不会恢复耐力。customExhaustionPenalties:在力竭时应用的属性修改器列表。
格式: "AttributeName;Amount;Operation"
操作:0 = 添加固定值,1 = 乘基础值,2 = 乘总值。
示例:将玩家减速 15%:
"minecraft:generic.movement_speed;-0.15;2"
通用惩罚(NBT 与状态效果)
使用比较器将任何模组的数据(口渴、温度、辐射、魔法)链接到耐力系统。支持渐进累积或即时应用。
universalPenalties:定义外部惩罚的规则列表。showIcons(默认值:true):切换 HUD 上的惩罚图标。(位于peak_stamina-client.toml。请查看你版本对应的配置注释以确认可用性。)
格式: "Type;Key;Comparator;Threshold;WorstValue;MaxPenalty;ColorInt;IconText"
| 参数 | 描述 |
|---|---|
| Type | NBT(检查玩家数据)或 EFFECT(检查药水放大器/等级)。 |
| Key | NBT 路径(例如,thirstLevel)或效果 ID(例如,minecraft:poison)。 |
| Comparator | 计算惩罚的逻辑。请参阅下方的比较器模式。 |
| Threshold | 惩罚开始(0%)的安全值。 |
| WorstValue | 在 SCALE 模式下:惩罚达到 100% 时的值。 在 MULTIPLIER 模式下:允许的最大总惩罚(硬上限)。 |
| MaxPenalty | 在 SCALE 模式下:在 WorstValue 时的惩罚总量。 在 MULTIPLIER 模式下:每 1 单位差异的惩罚量。 |
| ColorInt | 用于 HUD 覆盖层的十进制颜色代码(例如,16711680 是红色)。 |
| IconText | 在条上显示的 emoji 或文本。写 none 以禁用。 |
EFFECT检查的是放大器,而非显示的等级。放大器0= I 级。
比较器模式
| 运算符 | 行为 |
|---|---|
> |
当值高于 Threshold 时线性惩罚,在 WorstValue 处达到最大。 |
< |
当值低于 Threshold 时线性惩罚,在 WorstValue 处达到最大。 |
* |
每点高于 Threshold 增加 MaxPenalty,上限为 WorstValue。公式:(当前值 - Threshold) * MaxPenalty |
*< |
每点低于 Threshold 增加 MaxPenalty,上限为 WorstValue。公式:(Threshold - 当前值) * MaxPenalty |
在任何运算符前加上 ! 前缀(例如,!>,!*<)即可立即应用惩罚,而非渐进累积。
第 8 个参数(IconText)设置条上显示的内容。直接输入任何字符或 emoji(例如,💧、🔥),或使用 none 隐藏。
示例
# 当口渴值低于 6 时线性惩罚
"NBT;thirstLevel;<;6;0;20.0;38143;💧"
Cold Sweat(热与冷):
# 极端高温(> 2)或极端低温(< 2)的线性惩罚
"NBT;targetTemperatureLevel;>;2;4;20.0;16724016;🔥"
"NBT;targetTemperatureLevel;<;2;0;20.0;65535;❄"
乘数模式(口渴):
# 每点低于 6 增加 2.0 惩罚,上限为 30
"NBT;thirstLevel;*<;6;30;2.0;38143;💧"
乘数模式(中毒效果):
# 每级放大器增加 5.0 惩罚,上限为 50
"EFFECT;minecraft:poison;*;0;50;5.0;4488448;☣"
即时应用:
# 使用 ! 前缀立即应用惩罚
"EFFECT;hordes:infected;!*;0;80;10.0;8388736;🦠"
通用增益(NBT 与状态效果)
与通用惩罚的工作原理相同,但给予额外耐力而非惩罚玩家。
universalBuffs:定义外部增益的规则列表。universalBuffRegenWhileActive(默认值:false):若为 false,当玩家主动消耗耐力或处于恢复冷却时,来自 PASSIVE/BOTH 模式的额外耐力会暂停恢复。
格式: "Type;Key;ActionMode;Threshold;LimitOrCooldown;Amount;BurstAmount;ScalingFactor"
BurstAmount仅适用于BOTH模式。ScalingFactor仅适用于MULTIPLIER模式。
动作模式:
| 动作模式 | 行为 |
|---|---|
PASSIVE_OVER / PASSIVE_UNDER |
当状态值高于/低于 Threshold 时,每秒恢复额外耐力。 |
BURST_OVER / BURST_UNDER |
当状态值跨过 Threshold 时,立即给予一次额外耐力。 |
BOTH_OVER / BOTH_UNDER |
跨过 Threshold 时给予一次即时爆发,然后被动恢复至硬上限。 |
在任何模式后追加 _MULTIPLIER(例如,PASSIVE_OVER_MULTIPLIER),以根据玩家超过阈值的程度来缩放效果。
LimitOrCooldown 取决于上下文:对于 PASSIVE/BOTH 模式,它设置额外耐力的硬上限;对于 BURST 模式,它设置爆发再次触发前的冷却时间(以 tick 为单位)。
示例:
被动(生命恢复效果):
# 激活时每秒生成 1.0,上限 20.0
"EFFECT;minecraft:regeneration;PASSIVE_OVER;-1;20.0;1.0"
爆发 + 被动(NBT 魔力值):
# 当魔力超过 50 时爆发 30.0,然后被动每秒 2.0,上限为 100.0
"NBT;player_mana;BOTH_OVER;50;100.0;2.0;30.0"
乘数模式(力量效果):
# 力量 I(放大器 0):1.25x -> 2.5/秒,上限 25.0
# 力量 II(放大器 1):1.50x -> 3.0/秒,上限 30.0
"EFFECT;minecraft:strength;PASSIVE_OVER_MULTIPLIER;-1;20.0;2.0;1.25"
嵌套 NBT 路径
使用 . 在嵌套 NBT 标签中导航,可根据需要链式连接任意层级:
# ForgeCaps 标签 → legendarysurvivaloverhaul:thirst 标签 → hydrationLevel 值
"ForgeCaps.legendarysurvivaloverhaul:thirst.hydrationLevel"
# ForgeCaps 标签 → legendarysurvivaloverhaul:temperature 标签 → temperature 值
"ForgeCaps.legendarysurvivaloverhaul:temperature.temperature"
# ForgeCaps 标签 → somemod:player_stats 标签 → skills 标签 → mining_level 值
"ForgeCaps.somemod:player_stats.skills.mining_level"
故障排除:如果正确的路径仍然不起作用,请尝试以
ForgeCaps.为前缀,后跟路径的其余部分。示例:"NBT;ForgeCaps.legendarysurvivaloverhaul:temperature.temperature;*<;12;40;2.0;65535;❄"
⚠️ 实验性功能
这些功能属于实验性质,可能影响性能或游戏平衡。
正在加载版本记录…









正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。