promotional bannermobile promotional banner

Elemental : Reactions

Dynamic elemental combat system inspired by BG3 & Original Sin 2. Combine elements, trigger status effects, and master environmental reactions!
Back to Files

Elemental-Reactions-NeoForge-4.1.0-26.3.jar

File nameElemental-Reactions-NeoForge-4.1.0-26.3.jar
Uploader
AccideyAccidey
Uploaded
Oct 2, 2026
Downloads
9
Size
708.8 KB
Mod Loaders
NeoForge
File ID
9037927
Type
R
Release
Supported game versions
  • 26.3

Curse Maven Snippet

NeoForge

implementation "curse.maven:elementalcraft-reactions-1404433:9037927"

Learn more about Curse Maven

What's new

✨ 新增 / Additions

Jade 改为客户端必须依赖 / Jade is now a required client dependency

客户端必须安装 Jade 才能启动本模组(用于悬浮提示展示);服务端不需要安装 Jade。 Jade is now a required client dependency — the client needs it installed, while dedicated servers do not.

Jade 悬浮提示显示全部属性强化 / Jade tooltip lists every enhancement

此前一只生物只显示第一种元素的属性强化数值,现按元素逐条列出「属性强化」下的所有条目。 Previously a creature only showed the first element's enhancement value; now every entry under 「属性强化 / Elemental Enhancements」is listed per element.

生物属性标记特效 / Elemental attribute mob markings

四种属性的强化生物现在会在身上/脚下显示专属视觉标记,便于远距离辨认属性与强化等级, 帮助识别混在敌群里的强化个体。全部为纯客户端渲染,不产生任何服务端广播或网络流量, 可在配置中逐项开关。

All four elements now give enhanced (marked) creatures a dedicated visual signature so their attribute and tier can be read at a glance. Rendering is entirely client-side — no server broadcasts and no network traffic — and each element can be toggled independently in the config.


⚖️ 调整 / Changes

潮湿触发药水范围调整 / Wetness potion sources

现在只有喷溅水瓶能触发潮湿(此前任意投掷药水都会加潮湿)。 喷溅型平凡药水与喷溅型浓稠药水同样能触发潮湿。 Now only splash water bottles can trigger 潮湿 (previously any thrown potion did). Splash mundane and splash thick potions also trigger 潮湿.

配置目录改名 / Config directory renamed

配置目录从 config/ElementalCraft/ 改名为 config/Elemental_Reactions/, 其中的配置文件同时去掉 elementalcraft- 前缀。启动时自动迁移,旧配置不会丢失—— 升级时的旧配置文件会改名为 .bak 备份而不是直接删除,误操作可手工恢复; 若新旧文件同名同时存在,以新文件为准。

The config directory has been renamed from config/ElementalCraft/ to config/Elemental_Reactions/, and the config files inside dropped their elementalcraft- prefix. Migration runs automatically at startup so your existing settings carry over — old files are renamed to .bak rather than deleted, so you can recover them by hand if needed. If both an old and a new file exist, the new one wins.

元素克制关系不允许自克制 / Self-restraint no longer allowed in config

元素克制关系里此前可以填「赤焰->赤焰」这类自克制条目,导致伤害倍率异常。 现在会在保存时拒绝。 Entries like "fire->fire" in the restraint table used to be accepted and produced abnormal damage multipliers. They are now rejected on save.

配置注释与实际默认值对齐 / Config comments match actual defaults

修正了多处配置注释中标错的默认值,并清理了若干从未被读取、写了也没用的配置项。 Several config comments listed the wrong default value; these are corrected, and a number of never-read config options that did nothing have been removed.

配置注释排版统一 / Config comment formatting

配置项之间的空注释分隔统一为 # 加空格,主配置与各反应配置的每个配置项前都插入独立空行, 与配置规范及其他各段保持一致,生成出来的配置文件可读性明显改善。

Blank separator lines between config entries are now consistently # plus a space, and every entry gets its own preceding blank line, matching the config style guide and the other sections. Generated config files are noticeably cleaner.

界面提示统一为「XX反制」/ Counter wording unified

自然与雷霆反制的成功提示与失败提示此前叫法不一致,现已统一为「自然反制」「雷霆反制」。 The success and failure messages for Nature and Thunder counters used different wording; they are now consistently 「自然反制」and 「雷霆反制」.


⌨️ 命令变更 / Commands

根命令最终为 /elemental / Final root command: /elemental

开发过程中根命令曾短暂从 /elementalcraft 改名为 /element,现已改回 /elemental。 下面所有示例请以 /elemental 为准。

During development the root command was briefly renamed from /elementalcraft to /element, but it has since been changed back to /elemental. Use /elemental in all examples below.

权限调整 / Permission changes

  • /elemental 根命令与 /elemental debug:所有玩家可用。debug 只影响你自己, 收到的日志也只与你的战斗相关,不会泄露其他玩家的信息。
  • /elemental reload、entity、item、biome、blacklist 等写配置命令:需要管理员权限。

此前普通玩家可以调用写配置的命令,现已修正。

  • The /elemental root command and /elemental debug are available to all players. Debug only affects you, and the messages you receive relate to your own combat — no one else's information leaks.
  • Write commands such as /elemental reload, entity, item, biome, and blacklist require operator permission. Ordinary players could previously run these write commands; that is now fixed.

命令输出错位修复 / Command output misalignment fixed

/elemental biome 与 /elemental blacklist 的中文输出此前字段错位,例如群系名后多出半个字符。 现已按正确顺序显示。 Chinese output for /elemental biome and /elemental blacklist previously showed fields out of order, e.g. a stray character after the biome name. The order is now correct.

强制属性命令补回输入校验 / Forced attribute commands validate input again

用 /elemental entity 或 /elemental item 写入非法强化点数时,此前会提示成功并写入一条 实际不生效甚至让配置解析报错的记录。现在会明确报错并拒绝写入,点数格式应为 非负整数或形如 50-200 的区间。

Writing an invalid enhancement point value used to report success and store a config line that either did nothing or broke later parsing. It now reports the error and refuses to write; the point format must be a non-negative integer or a range like 50-200.

无 key 的自定义群系不再报错 / Unregistered biomes no longer error

群系偏向命令遇到数据包动态生成、没有注册表 key 的群系时,此前会直接抛异常导致命令刷屏报错、 补全失效。现在会给出明确提示并正常返回。 Biome bias commands used to throw on data-pack-generated biomes with no registry key, spamming errors and breaking tab completion. They now show a clear message and return normally.

界面提示不再显示原始键名 / No more raw translation keys in messages

部分命令在条件不满足时(如非玩家执行)会显示原始的翻译键名而不是正常提示,现已修正。 Some commands showed the raw translation key instead of a proper message when a condition wasn't met (e.g. non-player execution); this is now fixed.


🛠️ 修复 / Fixes

赤焰反制按施法者独立计算 / Fire Counter is now per-caster

赤焰反制、感电水域与雷暴此前按维度记录,同一维度只能存在一个实例——第二个玩家触发时会被静默丢弃, 雷暴还会覆盖上一场。现在改为按施法者记录,同一维度可并存多场,联机时不再互相顶掉。 赤焰反制, 感电水域 and 雷暴 were tracked per dimension, so only one could exist per dimension — a second player's trigger was silently dropped and a new 雷暴 overwrote the previous one. Tracking is now per-caster, so multiple instances coexist in one dimension.

赤焰反制不再造成永久减伤 / Fire Counter no longer causes permanent damage reduction

赤焰反制的免伤此前写成实体身上的一个标记,只有在特定条件下才会清除。生物一旦在反冲期间走出加载范围, 或玩家在 4 秒窗口内掉线、传送、进传送门,标记就会永远残留——该实体后续所有伤害都被默认减免 90%, 几乎无法击杀,且无法自愈。现在改为按「这个实体是否还有正在进行的反冲」判定, 无论卸载、换维度还是离线,反制一结束减伤就随之消失。

Fire Counter's immunity was stored as a marker on the entity and only cleared under specific conditions. If a mob left the loaded area during the counter, or a player disconnected, teleported or entered a portal during the 4-second window, the marker stuck — all subsequent damage to that entity was reduced by the default 90% with no way to recover. Immunity is now derived from whether a counter is actually running, so it ends correctly on unload, dimension change or disconnect.

赤焰反制不再让生物永久静止 / Fire Counter no longer leaves mobs permanently immobile

赤焰反制会把生物的移动速度基础值存进数据再置 0,但有三处恢复路径里有一处被条件挡住, 导致反冲因区块卸载中断后生物带着速度 0 永久静止。现在恢复逻辑已统一,并在登录/重生时兜底还原。

Fire Counter stores a mob's base movement speed, sets it to 0, then restores it through three paths — one of which was gated behind a condition that never held during a counter, so a counter interrupted by unloading left the mob permanently frozen at speed 0. Restoration is now unified and also runs as a backstop on login and respawn.

定身标志不再跨会话残留 / Immobilisation flag no longer survives a session

赤焰反制的定身标志是纯客户端状态,只靠服务端补发解锁包复位。玩家断线后若连到没装本模组的服务器, 前进/左/后/右/跳跃会被永久屏蔽。现在断线时直接复位,切换维度与登录时也会复位。 The Fire Counter immobilisation flag lived purely on the client and relied on the server sending an unlock packet. If a player disconnected and then joined a server without the mod, forward/left/back/right/jump stayed blocked permanently. It is now reset on disconnect, on dimension change and on login.

霜冻减慢与霜冻效果不再互相顶替 / Temporary Frostbite slowness no longer clashes with the effect

临时霜冻减速与霜冻效果自带的减速此前使用同一套标识,两条路径互相顶替:效果结束会把临时减速一并删掉, 临时清理也会删掉效果自身的减速。现已改为各自独立,两者互不干扰。 Temporary frostbite slowness and 霜冻's own slowness used the same identifiers, so the two paths clobbered each other in both directions. They now use separate identifiers and no longer interfere.

霜冻与冻结不再让生物永久失去 AI / Frostbite and Freeze no longer leave mobs permanently AI-less

逃跑、冻结、麻痹三者的 AI 开关状态此前相互覆盖,最坏情况是逃跑过的怪被永久定住不动。 状态守卫已补齐:逃跑期间不由效果恢复 AI、冻结麻痹期间不动 AI、本就无 AI 的怪(刷怪笼、 指令生成)不再被强行开启。冻结与麻痹现在各自独立记录原始状态,不再互相覆盖。

The AI state of fleeing, freezing and paralysis could overwrite each other; worst case a creature that had fled stayed permanently unable to move. Guards were added: effects no longer restore AI during a flee, 冻结 and 麻痹 no longer touch AI, and creatures that were already AI-less (spawners, command-summoned) are no longer force-enabled. 冻结 and 麻痹 now record their original state separately instead of overwriting each other.

冰暴覆盖时释放旧标记 / Overlapping frost bursts release old markers

同一玩家在旧冰暴未结束时再次触发,旧爆发标记的实体再也不会被解冻,静电破冰与蒸汽云的冻结清理 被永久跳过。现在覆盖时会释放上一轮的全部标记。

When the same player triggered a new 冰暴 before the previous one ended, entities marked by the old burst were never released, so 静电破冰 and steam cloud freeze cleanup was permanently skipped. Markers from the previous round are now released on overlap.

风暴麻痹标记不再永久残留 / Paralysis markers no longer linger forever

雷暴的麻痹标记此前只在风暴结束的结算范围内清除,带标记离开范围的实体永远不会被清理, 再次进入任意风暴就会被无限麻痹。现在风暴结束时会把范围内所有带标记的实体一并解除。

Paralysis markers were only cleared inside the storm's final area, so entities that left the range kept their marker forever and were paralysed indefinitely by any later storm. All marked entities are now cleared when the storm ends.

关闭冻结不再反而冻住玩家 / Disabling Freeze no longer freezes the player

把冻结层数上限设为 0 意为关闭冻结反应,但有一条路径没有对应守卫,会给玩家施加一个强度为负的 冻结效果——而冻结完全不看强度,导致玩家反而被永久定住。现已在设为 0 时直接跳过。 Setting the 冻结 stack cap to 0 is meant to disable the freeze reaction, but one path had no such guard and applied a 冻结 with negative strength — and 冻结 ignores strength entirely, leaving the player permanently locked. The effect is now skipped entirely at 0.

冻结与麻痹的溺水计时不再翻倍 / Freeze and Paralysis drowning timers no longer double

冻结与麻痹此前共用一个溺水计时键,两者同时生效时每刻各加一次,溺水伤害频率翻倍 (配置里没有任何东西能表达这个行为)。现在两者各用各的计时,互不干扰。

冻结 and 麻痹 shared one drowning timer key, so with both active the counter rose twice per tick and drowning damage triggered at double the intended rate — a behaviour no config could express. They now use separate timers.

冻结时界面仍可正常点击 / GUI clicks still work while frozen

被冻结或麻痹时,玩家的鼠标点击此前会被无条件拦截,导致暂停菜单、背包、聊天按钮、死亡界面全部点不动, ESC 能打开菜单却点不了「保存并退出」。现在只在游戏世界内拦截,界面打开时一律放行。 While frozen or paralysed, mouse clicks were blocked unconditionally, so the pause menu, inventory, chat button and death screen all became unclickable — you could open the menu with ESC but not click "Save and Quit". Clicks are now only blocked inside the game world; any open GUI passes through.

潮湿等级上限为 0 时不再死锁 / No deadlock when wetness max level is 0

潮湿等级上限设为 0 时,属性生物会永久卡在等待状态再也不投掷瓶子。现在会直接跳过。 With the wetness level cap set to 0, elemental mobs waited forever and never threw a bottle. They now skip the wait entirely.

投掷命中误判修复 / Bottle hit-miss misjudgment fix

投掷命中判定此前读取生物的当前目标,若目标中途换了目标就会误判。现在按投掷时的目标本身记录。 Bottle hit detection used the mob's current target, so changing targets mid-throw caused misjudgement. The target is now recorded at throw time.

元素克制配置写错不再导致服务器崩溃 / Invalid element restraint config no longer crashes the server

元素克制关系里写错属性名时会产生空值并抛异常,异常一路上抛导致服务器崩溃。 现在会跳过该条并记一次警告。 An invalid element name in the restraint table produced a null and threw, and the exception propagated all the way up and crashed the server. The entry is now skipped with a one-time warning.

毒火爆燃不再作用在已死亡实体上 / Toxic blast no longer affects already-dead entities

毒火爆燃的连锁引爆是延迟执行的,此前不检查目标是否还活着,可能对已卸载或已死亡的实体继续结算。 现在范围遍历与连锁调度都会复核存活状态。 Toxic blast's chain detonation is delayed and used to skip the alive check, so it could apply to unloaded or already-dead entities. Both the area sweep and the chain scheduling now re-verify.

雷击闪电实体数量收敛 / Lightning bolt count capped

雷暴范围内每个目标原本都会生成一道真实闪电实体,密集刷怪时单场雷暴每秒可产生上千个实体。 现每击最多生成 4 道,超出的目标照常结算伤害但不再生成闪电,伤害本身不受影响。 Every target in a 雷暴's radius used to spawn a real lightning entity, which in dense spawns could produce over a thousand entities per second per storm. Each strike now spawns at most 4 bolts; extra targets still take damage, just without a bolt entity.

雷电充能云伤害不再对部分地区完全失效 / Static cloud damage no longer fails entirely in some regions

雷电充能云把结算伤害格式化成文本再读回来,在以逗号作小数分隔符的地区(德语、法语、俄语等系统语言) 会解析失败,这些地区的玩家彻底吃不到结算伤害,且没有任何报错。现已改为与地区无关的格式。 The static cloud formatted its settlement damage to text and read it back; on systems using a comma decimal separator (German, French, Russian, …) parsing failed, so affected players took no settlement damage at all, silently. The format is now locale-independent.

免疫黑名单真正生效 / Immunity blacklists now respected

配置为免疫的元素此前在部分施加路径上完全没被判定,与配置语义相反。现已补齐免疫判定。 Elements listed as immune were not checked on some application paths, the opposite of what the config says. Immunity checks are now applied consistently.

蒸汽烫伤重复减免修复 / Steam scald double-reduction fix

高温蒸汽云每 20 tick 结算一次伤害时已经算过一次火焰保护+保护减免,伤害事件里又算一遍等于 双倍减伤——四件火焰保护 IV 加保护 IV 本应减伤 75%,实际只剩 6.25% 伤害, 且调试日志报的值与实际落地伤害对不上。现已移除事件侧的重复计算,附魔对每一跳蒸汽伤害仍持续生效。

The 高温蒸汽云 already applied fire-protection + protection reduction when settling damage, and the damage event applied it a second time — double reduction. With four Fire Protection IV and Protection IV pieces, 75% reduction should have left 6.25% damage taken, and the debug log reported a value that didn't match the real damage. The duplicate event-side calculation has been removed; enchantment reduction still applies to every steam damage tick.

自定义元素伤害消除击退 / Custom elemental damage no longer causes knockback

26.3 的伤害管线重构后,即使伤害没有攻击者也可能产生击退与位移同步,看起来"像被攻击打飞"。 现为 7 个自定义伤害类型(高温蒸汽烫伤 / 熔岩魔法 / 易燃孢子 / 静电 / 霜冻 / 热休克 / 毒火爆燃) 关闭击退与位移同步,行为与其他版本一致——只扣血,不击退。 易燃孢子与毒火爆燃保留受击反馈,因此只去击退、不去位移同步。

After the damage-pipeline rework, damage without an attacker could still produce knockback and motion sync, making enemies look "knocked back by an attack". Seven custom damage types (steam scald / lava magic / spores / static shock / frostbite / thermal shock / toxic blast) now have knockback and motion sync disabled — damage only, no knockback. Spores and toxic blast keep their hit feedback, so they drop knockback without dropping motion sync.

死亡消息不再显示原始键名 / Death messages no longer show raw keys

被霜冻或热休克致死时,死亡界面此前显示的是原始翻译键名。现在中英文都已补齐。 The death screen used to show the raw translation key when you died to frostbite or thermal shock. Both languages are now complete.

Jade 悬浮提示现在能显示模组效果 / Jade now shows mod effects

NeoForge 版 Jade 会过滤隐藏的模组状态效果,导致易燃孢子、静电、麻痹、霜冻、冻结、潮湿 这些模组自己的效果在悬浮提示里完全看不到。现已让所有模组效果正常参与 Jade 显示。

NeoForge Jade filters out hidden mod status effects, which made the mod's own effects — 易燃孢子, 静电, 麻痹, 霜冻, 冻结 and 潮湿 — completely invisible in the tooltip. All of them now show in Jade correctly.

霜冻与冻结外观不显示修复 / Frostbite and frozen visuals not showing

26.3 上被霜冻的生物看不到积雪与冰壳效果。原因是这一版本的游戏在客户端读不到生物的状态效果列表, 即便 HUD 有霜冻图标、Jade 也能正常显示有几层霜冻。现已改用不依赖该读取方式的方案, 霜冻雪块与冻结冰块均恢复正常显示,且两种效果不再同时误显示在同一个生物身上。

On 26.3 creatures with 霜冻 showed no snow or ice shell, because this version's client cannot read the entity's status-effect list — even while the HUD shows the frostbite icon and Jade reports the correct number of stacks. The mod now uses an approach that doesn't rely on that read, so 霜冻 snow and 冻结 ice both display correctly and the two effects no longer appear on the same creature by mistake.

三叉戟元素判定修复 / Trident element detection fix

26.3 已移除三叉戟读取武器物品的旧字段,原反射查找必然失败,导致三叉戟武器元素判定退化为空、 等同于没附魔。现已改用新的公开接口。

26.3 removed the legacy field used to read a trident's weapon item, so the old lookup always failed and trident element detection degraded to empty — behaving as if unenchanted. The mod now uses the new public accessor.

粒子与结算伤害的异常数值修复 / Invalid particle and periodic damage values fixed

距离过近时粒子数量会被算成 0,源与目标同坐标时插值点数为 0 会产生无效坐标, 表现为特效异常或崩溃;部分结算路径在计时器为 0 时也会算出 0 伤害,表现为"打了没反应"。 已统一补上下界,默认配置不受影响。

When the distance was too small the particle count could compute to 0, and a zero interpolation count at identical coordinates produced invalid coordinates, causing broken effects or a crash; some damage paths computed 0 when the timer was 0, appearing as "hits that do nothing". Lower bounds are now enforced consistently; default configs are unaffected.

粒子数量上限化,配置拉满也不失控 / Particle counts capped so extreme configs stay safe

元素视觉、雷暴、静电光环、霜冻光环的粒子数此前都按配置值线性增长且没有上限。 把相关配置拉到极端时,单个弹射物每 tick 可发出上百个粒子包,雷暴每 tick 上万个, 全部落在客户端渲染线程上导致帧率骤降。现在各组均补上硬上限,取值都高于默认配置能达到的最大值, 所以默认表现完全不变。

Particle counts for elemental visuals, 雷暴, 静电光环 and 霜冻光环 all scaled with config values and had no ceiling. With extreme settings a single projectile could emit over a hundred particle packets per tick and a 雷暴 tens of thousands, all on the client render thread. Hard caps are now applied, all set above what the default configs can reach, so default appearance is unchanged.

感电水域的边界特效不再拖垮服务器 / Electrified-water edge particles no longer stall the server

感电水域生效时会在以源点为中心的立方体里逐格扫描,只为画水面火花。作用范围上限配得极大时, 需要遍历的格子数是半径的三次方量级,会直接把服务器卡死。现在这段纯表现用的扫描加了半径上限, 实际伤害与麻痹判定范围不变。默认配置完全不受影响。

Electrified water scanned every block in a cube around the source just to draw surface sparks. With a very large configured range the cell count scales with the cube of the radius and could lock the server up. This purely cosmetic scan now has a radius cap; the actual damage and paralysis range is unchanged. The default configuration is unaffected.

除零与异常数值不再污染计算 / Division by zero no longer corrupts values

属性强化换算、元素书掉落等级、附魔减伤、概率分段、战斗伤害计算的分母此前没有下界保护, 配置为 0 时会得出异常数值,表现为0 伤害、反向回血、附魔全免或精英区间概率恒为 0, 元素书掉落时甚至会直接崩服。分母统一加下界,概率与减伤率均钳制到合法区间。

Several divisors had no lower bound, so a value of 0 produced invalid results: zero damage, healing on hit, full enchantment immunity, or an elite tier with a permanently 0% chance — and dropping an elemental book could crash the server outright. Divisors are now floored and probabilities/reduction rates clamped to legal ranges.

赤焰反制减伤率不再造成回血 / Fire Counter reduction no longer causes healing

赤焰反制的减伤率配到 1 以上时新伤害会变成负值,攻击处于反制中的目标会回血。现已钳制到合理上限。 A fire counter reduction above 1 produced negative damage, so hitting a countered target healed it. The rate is now clamped to a sane maximum.

逃离与冻结麻痹不再互相解除 / Fleeing no longer cancels Freeze or Paralysis

生物逃跑结束时此前会无条件恢复 AI,导致同时被冻结或麻痹定身的生物借逃跑挣脱了定身。 现在检测到冻结或麻痹时保持定身。 Ending a flee unconditionally restored AI, letting a creature that was also frozen or paralysed break free through the flee. Fleeing now respects the immobilisation.

蒸汽致盲不再随重连残留 / Steam blinding no longer survives reconnect

蒸汽致盲时长极长,此前重连时只清理标记不清理效果,玩家重连后若不在蒸汽云内仍会持续致盲。 现在清理标记时同步移除致盲效果。 Steam blinding lasts an extremely long time, and reconnect cleanup only removed the marker, not the effect — so players stayed blinded after reconnect even away from the steam cloud. Both are now cleared together.

跨会话与退出时的状态清理 / State cleanup across sessions and server stop

多种临时状态(反制冷却、雷暴暴露计数、麻痹标记、待发数据包等)此前在生物卸载、玩家登出、 换维度或服务器停止时不会被清理,长会话下持续累积——其中雷暴暴露计数跨会话保留会让玩家重登后 立刻吃满潮湿。现在服务器停止时会重置全部反应状态,登录与重生时也会清理各类残留。

Various temporary states (counter cooldowns, 雷暴 exposure counters, paralysis markers, pending packets) were never cleaned up on unload, logout, dimension change or server stop, accumulating over long sessions — notably, a carried-over 雷暴 exposure counter would instantly max out your Wetness on relog. All reaction state is now reset when the server stops, and leftovers are cleared on login and respawn.

后台任务异常不再中断其他功能 / Background task exceptions no longer break other features

后台任务抛出的异常此前会中断同一刻的其他监听器,导致无关功能偶发失效。现在单个任务失败只记录日志。 Exceptions from background tasks previously interrupted other listeners in the same tick, making unrelated features fail intermittently. A single failing task now only logs.

调试日志不再泄露他人战斗信息 / Debug logging no longer leaks other players' combat

服务器上只要有一名玩家开启调试,全服每一次元素命中都会在控制台留下记录, 与该玩家毫无关系的内容也会被算出来。现在只在确有相关玩家时才会记录, 并按「本人 / 该怪当前目标 / 最近攻击者」过滤接收者。

Whenever a single player enabled debug mode, every elemental hit anywhere on the server was written to the console, including content unrelated to them. Logging now happens only when a relevant player is watching, and recipients are filtered to the executor / the creature's current target / its recent attacker.

界面与背包在冻结时可用 / Menus remain usable while frozen

被冻结时鼠标滚轮会连带取消容器与聊天界面的操作,现已改为界面打开时不拦截。 While frozen, the scroll wheel also blocked container and chat screens. Scrolling is no longer intercepted when a GUI is open.

元素随机选择不再依赖内部顺序 / Element selection no longer depends on internal order

新增元素或调整内部顺序不再导致随机分配出错或崩溃,分布仍然均匀。 Adding a new element or reordering the internal list can no longer cause mis-assignment or a crash; the distribution stays uniform.

配置强制属性不再每轮抖动 / Forced attribute values stop fluctuating

强制护甲的「属性强化 + 属性抗性」点数此前每次检查都会重新随机,导致同一件护甲的等级不断变化; 且点数曾被向下截断到 10 的倍数,写 15-30 可能只给 2 级而不是 3 级。 现在一次生成后固定不变,点数也按配置区间如实取值。

Forced armor's enhancement/resistance points were re-rolled on every check, so the same piece kept changing levels, and points were truncated down to a multiple of 10 — a range of 15-30 could yield level 2 instead of 3. Values are now rolled once and used as configured.

首次加载时配置立即生效 / Config takes effect on first load

首次加载时强制物品与群系偏向配置要等下一轮才生效,现在启动即生效。 Forced item and biome bias configuration now takes effect immediately on startup instead of one cycle later.

硬性除法与玩家输入的健壮性 / Robust division and player input handling

配置里把换算除数设为 0、概率之和超过 1、强化点数写成非数字等情况此前会产出异常结果甚至让命令崩溃。 现在都有兜底或明确报错。 Setting a divisor to 0, having probabilities sum above 1, or entering a non-numeric point value used to produce invalid results or even crash the command. All are now floored, clamped, or rejected with a clear error.

配置保存失败不再让命令崩溃 / Config save failure no longer crashes commands

写配置时若磁盘不可写,命令此前会直接抛异常。现在会给出明确的失败提示并安全返回。 If the disk wasn't writable, write commands used to throw. They now show a clear failure message and return safely.

附魔与概率计算跨地区一致 / Enchantment and probability maths are locale-independent

非英语系统语言下,数字格式化会使用本地小数点(逗号),导致配置与调试输出出现异常值、 部分结算直接失效。现已统一使用与地区无关的格式。

On non-English system locales, number formatting used a local decimal separator (comma), producing invalid values in configs and debug output and making some settlements fail outright. Formatting is now locale-independent.