infinite_stats-无限加点-1.79.0-Forge-1.20.1-all.jar
Curse Maven Snippet
What's new
自 1.72.1 以来的更新内容(玩家向)
最新版本:1.79.0
防御体系:闪避 / 格挡 / 免死不再“只对普通伤害有效”
以前闪避和格挡只在原版“受到攻击”那一个环节判定,凡是不经过正常伤害流程的攻击都能打穿——最典型的就是本模组的真伤(直接改血量)、以及一些模组“直接判死”的处决。现在这整套判定已补全:
- 格挡覆盖全部伤害路径:闪避和格挡现在接入了四个判定点——受到攻击、本模组真伤扣血前、直接扣血的实现、以及直接判死的处决。只要格挡成功,这一击完全不掉血、不致死,并满足致死条件时也不消耗自动复活冷却。同一次攻击只判定一次,不会因为判定点多而把真实格挡率悄悄放大。没投入点数的玩家零影响。
- 闪避覆盖全部伤害路径,而且判定为“未命中”:闪避以前有个副作用——明明闪避成功了,箭还是会插在身上然后消失。现在弹射物命中时会先判定一次闪避,成功就直接取消这次命中,箭原样穿过去。闪避优先于格挡(语义是“这次攻击根本不存在”),致命的闪避会把血量恢复到本 tick 开始前的数值,且不消耗复活冷却。
- 玩家死亡总闸门(通用免死):在死亡入口加了一道通用拦截,判定成功时整个死亡流程一行都不执行——不掉落、不播死亡动画、不进死亡界面、血量恢复到本 tick 开始时的数值。这一层不绑定任何具体模组,任何模组、任何方式想让玩家死都要经过这里。
- 零血兜底:针对“某些模组直接把血量清零并强制放行死亡”的情况,玩家 tick 与服务端 tick 各加一次最末优先级的检查——只要血量为 0 且死亡流程尚未开始,就用上一 tick 的血量快照拉回来。已经真正进入死亡流程的玩家不处理,避免与重生、掉落冲突。
- 能力边界:这一层只解决“血量被直接清零”,不能阻止对方在伤害之外直接把玩家置为死亡。
- 针对处决型模组的联动豁免(可选,不装就没有任何影响):部分模组完全绕过伤害流程、直接判死,还会锁死复活冷却、清空护盾,事件层的防御对它无效。现在加了一个可选注入点,挂在对方“目标能否被处决”的判定上——投入了原地复活并解锁、或投过闪避 / 格挡点数的玩家会被直接判为不可处决,后续的秒杀、缴械、永久死亡等全部不执行。怪物照旧正常被处决。
外部属性(其他模组注册的属性)大改
以前只按名字里包含的关键字猜每点数值,猜不中就一律 +1.0,导致三个典型问题:某些属性 100 点就到上限、速度类属性投满也看不出变化、天然取值范围只有 0~1 的属性投几十点后全部被游戏削平。
- 每点数值改成“关键字先验 + 取值范围纠正”:先按名字取经验量级,再按属性自身的取值范围收敛,宽范围属性按“500 点覆盖四分之一”起步,并归整成整齐数字(不再出现 0.001333 这种值)。
- 点数上限按属性容量自动对齐:上限等于“从默认值加到属性边界所需点数”(最少 20),避免投到被游戏削平后白白浪费点数;无上限的属性不受影响,无限加点照旧。
- 新增配置文件
config/infinitestats/external_attributes.json(首次启动自动生成模板):支持黑白名单(mod:attr/mod:*/*)与逐条覆盖每点数值、点数上限、显示名、描述、隐藏、启用。某条写错不会把整个分类清空,会保留上一份配置。 /infstats reload external(OP):重读配置 + 重扫属性 + 在线玩家效果立即重写 + 广播给所有客户端,改完不用重启;内置属性、等级和已投点数都不受影响。- 悬停外部属性卡片新增三行信息:所属模组、取值范围、你的当前总值;显示名也能直接在配置里指定,不必再改语言文件。
- 顺带修掉:外部属性被全部排除时,面板还残留上一轮的分组和卡片。
物品编辑器:饰品现在真的能加属性了
以前给饰品加属性只能选“任意”,装进饰品栏后一点效果都没有——因为饰品栏不是原版装备槽,读的是另一套数据。现在下拉里有“饰品”(对所有已注册饰品槽生效)和具体饰品槽(戒指 / 项链 / 腰带……),多件饰品同时佩戴不会互相覆盖,读回也不会冒出重复条目。另外:
- “饰品”选项从下拉末尾挪到“任意”后面(原先要循环七八次才轮得到,很容易根本没选上);
- 应用后快捷栏上方会回显“已应用:原版属性 N 条 / 饰品属性 M 条”;
- 物品本身不是饰品(放不进饰品栏)时会额外提示一句。
属性面板可以整组隐藏了(主要给整合包作者)
新增攻击 / 防御 / 机动 / 功能 / 外部 5 个开关:勾掉后该分类的标签页消失,里面的属性在列表、搜索、收藏里都不出现;已投点数的效果照旧生效,点数不返还(只是让界面不显示)。数字键 1–9 按可见分类重新编号,五个全隐藏时兜底显示“攻击”,不会出现空标签栏。重开面板生效,无需重启。
注意
- ⚠️ 1.73.0(饰品槽位)和 1.79.0(外部属性同步)都改了网络协议,客户端与服务端必须同一版本,混用会出问题。跨这么多个版本升级建议双端一起换。
- 存档兼容,已投的点数和已有物品不受影响。
What's new since 1.72.1 (Player Notes)
Latest version: 1.79.0
Defense rework: Dodge / Block / Immortality no longer only work on "normal" damage
Dodge and Block used to be evaluated at a single point — vanilla's attack event — so anything that bypasses the normal damage pipeline went straight through: most notably this mod's own true damage (which writes health directly) and other mods' instant-execute kills. The whole check has been extended:
- Block now covers every damage path. It hooks four points — the attack event, our true damage right before health is written, implementations that write health directly, and executes that just call death. A successful block means zero damage and no death, and a lethal block does not consume the auto-revive cooldown. One attack is still rolled once, so extra hook points can't silently inflate your real block rate. Players with no points invested see zero change.
- Dodge now covers every damage path, and counts as a miss. Dodge used to have a visual bug: you dodged, yet the arrow still stuck in you and vanished. Projectile hits now check dodge first, and a success cancels the impact entirely — the arrow passes straight through. Dodge resolves before Block (its meaning is "this attack never happened"), a lethal dodge restores health to its value at the start of the tick, and it doesn't use the revive cooldown.
- A universal death gate for players. A general interception sits at the death entry point; when it fires, no part of the death sequence runs — no drops, no death animation, no death screen, and health is restored to the tick's starting value. This layer is not tied to any specific mod — anything trying to kill a player has to pass through it.
- Zero-health safety net. Some mods zero your health and forcibly uncancel the death event. Two lowest-priority checks (end of player tick, end of server tick) now detect "health is 0 but death hasn't started" and restore the previous tick's health snapshot. Players already in the actual death sequence are left alone so it doesn't fight respawn or drops.
- Limit: this only handles "health zeroed directly"; it cannot stop a mod that sets the player dead outside the damage system.
- Opt-in exemption for execute-style mods (optional — nothing changes if you don't have one installed). Some mods bypass damage entirely, kill you outright, and lock revive cooldowns. A new optional injection point sits on their "can this target be executed" check: players who invested in and unlocked self-revive, or put points into Dodge / Block are treated as non-executable, so the slam, disarm, permanent-death list and the rest never run. Mobs are still executed normally.
External attributes (attributes registered by other mods) overhauled
Previously the per-point value was guessed from a keyword in the name, defaulting to +1.0 — which meant some attributes maxed out after 100 points, speed-like attributes felt unchanged even when maxed, and attributes whose own range is 0–1 were clamped into uselessness after a few dozen points.
- Per-point value is now "keyword prior + range correction": an order of magnitude is picked from the name, then corrected against the attribute's own min/max. Wide-range attributes start at "500 points covers a quarter of the range", rounded to tidy numbers (no more 0.001333).
- Point cap now aligns with attribute capacity: the cap is the number of points needed to go from the default value to the attribute's bound (minimum 20), so you can't waste points into values the game clamps away. Unbounded attributes are unaffected — infinite allocation still works.
- New config file
config/infinitestats/external_attributes.json(template generated on first launch): blacklist/whitelist usingmod:attr,mod:*or*, plus per-entry overrides for per-point value, cap, display name, description, hidden and enabled. A malformed entry keeps the previous config instead of wiping the whole category. /infstats reload external(OP): re-reads the config, rescans the attribute registry, rewrites online players' modifiers immediately and broadcasts the new list — no restart needed. Built-in stats, levels and already-spent points are untouched.- Hovering an external stat card now shows owning mod, value range and your current total; display names can be set in the config instead of editing language files.
- Also fixed: when every external attribute was excluded, the panel kept showing the previous categories and cards.
Item editor: trinkets can actually take attributes now
Adding attributes to a trinket used to be limited to "Any", and had no effect in a curio slot — curio slots aren't vanilla equipment slots and read a different data set. The dropdown now offers "Curio" (applies to every registered curio slot) and specific slots (ring / necklace / belt, …); multiple equipped trinkets no longer overwrite each other, and reading back doesn't create duplicates. Also:
- "Curio" moved from the end of the dropdown to right after "Any" (it previously took seven or eight cycles to reach, so it was often simply never selected);
- after applying, an action-bar readout shows "applied: N vanilla attributes / M curio attributes";
- if the item isn't a trinket (can't go into a curio slot), an extra note says so.
Stat panel can hide whole categories (mainly for modpack authors)
Five new toggles — Attack / Defense / Mobility / Utility / External. Hiding one removes its tab and its stats from the list, search and favourites; stats already allocated keep working and points are not refunded (it's purely a UI subtraction). Number keys 1–9 renumber against visible categories, and if all five are hidden the Attack category is shown as a fallback so the tab bar never goes empty. Reopen the panel to apply — no restart.
Heads-up
- ⚠️ 1.73.0 (curio slots) and 1.79.0 (external attribute sync) both change the network protocol — client and server must run the same version. Upgrading across this many releases really means updating both sides together.
- Saves are compatible; allocated points and existing items are unaffected.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

