跳到正文

Locks Reforged

作者:otectus

“Locks”模组已更新,适配 1.20.1 和 1.21.1。新版保留原版全部功能,支持完整配置,并新增了内容和修复了一些错误。

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

加入 Mythic Mods Discord

Locks Reforged

由 Melonslise 制作的 Locks 模组移植到 Minecraft Forge 1.20.1 的非官方版本。

Locks 是一个小巧但独特的模组,允许你为游戏中的任何方块附加灵活、通用的锁——包括来自其他模组的方块。用动态锁定系统和互动开锁小游戏来保护你的门、箱子、熔炉等等。


特性

锁定任何方块

将锁附加到任何方块上——不仅仅是箱子。门、活板门、熔炉、发射器、漏斗以及模组方块都可以使用。锁是空间性的,因此一把锁可以同时覆盖多个方块(最大可配置体积,默认为 6 个方块)。

七个等级的锁(+ 自定义!)

锁 锁芯 附魔能力 抗性 撬锁磨损
木 5 15 4 1
铜 6 16 8 2
镀金 6 22 6 2
铁 7 14 12 3
钢 9 12 20 6
镀钻石 11 10 100 12
下界合金 14 8 200 24
  • 锁芯 — 开锁小游戏中的锁芯数量。锁芯越多 = 越难撬开。
  • 附魔能力 — 锁获得强力附魔的概率。
  • 抗性 — 爆炸抗性。钻石锁和下界合金锁几乎坚不可摧。
  • 撬锁磨损 — 每次插错锁芯时该锁对撬锁工具造成的耐久度损耗。数值越高 = 消耗撬锁工具越快。

七个等级的撬锁工具(+ 自定义!)

撬锁工具 强度 附魔能力 耐久度 同等级下可承受的错误锁芯数
木 0.20 5 32 32
发夹(铜) 0.28 7 48 24
金 0.25 22 40 20
铁 0.35 10 96 32
钢 0.70 12 192 32
钻石 0.85 10 384 32
下界合金 0.95 15 768 32
  • 强度 — 该撬锁工具可以尝试哪些锁(复杂度门槛)。它不影响撬锁工具的磨损速度。
  • 附魔能力 — 撬锁工具在附魔台上接受附魔的效果。金撬锁工具是本模组的“来附魔我”等级,就像原版金质装备一样。
  • 耐久度 — 撬锁工具损坏前的耐久度点数。

下界合金锁和撬锁工具抗火,能在岩浆中存活,就像原版下界合金装备一样。两者都在锻造台上使用下界合金升级模板从对应的钻石版本升级而成。

所有锁和撬锁工具都完全由数据驱动——通过简单的 JSON 文件添加你自己的自定义等级,或通过配置文件、TOML 覆盖或数据包调整现有数值。无需修改代码!

开锁小游戏

通过互动式锁芯匹配小游戏来撬锁。匹配每个锁芯以破解组合。

开锁器具有耐久度。插错弹子不会随机导致开锁器损坏——每次都会消耗固定耐久度,具体数值由你正在尝试开启的锁决定;只有耐久度降到零时,开锁器才会损坏。你可以查看耐久条,准确知道还能出错多少次。默认数值下,使用与锁同等级的开锁器,大约可以插错 32 次;拿木制开锁器去开下界合金锁,一次插错就会损坏。若猜测只差一个弹子,消耗的耐久度约为正常情况的三分之一(最低为 1)。开锁器属于真正的工具,因此可以使用经验修补和耐久附魔;所有等级的开锁器都能在铁砧上修复。

开锁器仍可堆叠至 64 个。Minecraft 通常会让耐久物品无法堆叠,但 Locks 会恢复其完整堆叠数量——而且一次只会磨损一个开锁器。第一次插错并实际消耗耐久度时,堆叠会自动拆分:你手中的单个开锁器承受损耗,未受损的其余开锁器则回到物品栏。开锁器损坏时,也只会消耗这一个;下一个完好的开锁器会自动接到手中,开锁过程继续进行。磨损过的开锁器必须修复后才能重新并入完好的堆叠,这样损耗就只会留在那个实际使用过的开锁器上。铁砧也会拒绝将附魔书用于数量大于 1 的开锁器堆叠,因此一本书无法一次为 64 个开锁器附魔。

可选:开启允许空手开锁后,玩家可以空手进行相同的小游戏,无需开锁器。空手尝试不会消耗或损坏任何物品,也不会受到复杂度限制,但插错弹子会使所有已解开的弹子复位。此选项默认关闭;无论是否开启,实体开锁器的运作方式都不变。

钥匙与钥匙圈

钥匙坯尚未加工——与锁配对之前无法开启任何锁,而且必须在放置锁之前完成配对:

  1. 合成一个钥匙坯。
  2. 放置锁之前,将一个钥匙坯和锁一起放入任意合成网格——物品栏中的 2×2 合成网格或工作台都可以。
  3. 配方会返还锁,并生成一把与其匹配的钥匙。
  4. 放置锁。这把钥匙现在可以为它解锁和上锁。
  5. 将配对好的钥匙与另一个钥匙坯合成,即可制作备用钥匙。

该配方无序排列,一个钥匙坯可制作一把钥匙。

空白钥匙无法复制已放置的锁——否则任何访客都能自行制作匹配的钥匙,你的锁便形同虚设。用空白钥匙右键点击已放置的锁,只会提醒你正确的操作流程。如果你在配对前就放置了锁,请空手潜行,将未上锁的锁取回,完成配对后再重新放置。

携带钥匙圈即可同时收纳多把钥匙——只要其中装有对应钥匙,就能开启任何锁;安装 Curios 后,还能直接通过饰品栏位使用。万能钥匙可以开启所有锁。

附魔

锁附魔——作用于锁:

附魔 最高等级 效果
触电 V 玩家尝试开锁失败时会遭到电击(无视护甲)
坚固 III 每次插错锁针都会额外消耗开锁器耐久(默认每级增加 50%)
复杂 III 阻止低阶开锁器尝试开启该锁
静音 I 被拒绝开锁时,不会发出咔嗒声。与触电不兼容
自动开锁 III 有 10%/20%/30% 的几率直接打开锁,跳过小游戏。与复杂不兼容
强化 III 爆炸抗性提高 50%/100%/150%
认主 I 锁对放置它的玩家无效——该方块会对其正常打开,但对其他所有玩家仍保持上锁。空手潜行并右键单击,可直接操作锁本身

开锁器附魔——附加在开锁器上,用于应对锁具附魔:

附魔 最高等级 效果
灵巧 III 降低插错锁针造成的耐久消耗,每级降低 15%(克制坚固)。与最后机会不兼容
调谐 II 提高开锁器对复杂锁具的有效强度(克制复杂)
接地 III 手持开锁器时(任意一只手均可),降低受到触电锁具造成的伤害(克制触电)
轻手 I 降低尝试插错锁针时发出的声音
最后机会 I 插错锁针时约有 20% 的几率完全不消耗耐久。与灵巧不兼容

插错锁针至少会消耗 1 点耐久,因此无论如何组合附魔和配置,都无法实现零消耗开锁。开锁器可以在附魔台上附魔。服务器配置中可以单独禁用全部 12 种附魔,也可以调整开锁器附魔的效果。

全面防护

村民或任何其他能够开门的 AI(包括控制原版门或其子类门的模组 NPC)都无法打开上锁的门。关闭上锁的门仍然允许,只有开门操作会被拒绝。重新锁定一扇打开的门时会将其关闭,因此门不会出现仍处于打开状态、锁却显示已锁定的情况。

上锁的方块还受到以下保护:

  • 红石激活
  • 漏斗抽取
  • 活塞推动
  • 爆炸
  • 破坏(可配置)

按战利品价值生成锁具

锁具等级由箱子战利品表内容的价值决定。村庄箱子会生成木制锁或铜锁,而末地城箱子会生成金锁或钻石锁。

  • 确定性估算,按战利品表缓存 — 该数值通过读取战利品表自身的 JSON(池、抽取次数、权重、嵌套表引用和标签条目)计算得出,而非通过实际抽取战利品得出,因此同一张表在重启后始终得到相同评分,且计算成本只需支付一次。
  • 亚线性堆叠数量 — 物品价值随堆叠数量的平方根缩放,因此 64 个圆石不会比一把钻石剑更有价值。
  • 稀有度与附魔加权 — 物品的稀有度层级会乘以其价值,而战利品表中的附魔函数会将物品提升一个稀有度层级。
  • 物品价值覆盖 — 可为钻石、绿宝石和下界合金等有价值但稀有度普通的材料按物品配置基础价值。15 种原版物品拥有合理的默认值。
  • 战利品价值低于最低配置阈值的箱子完全不会上锁。 提高阈值可将最好的锁留给最好的箱子,让普通箱子保持未上锁状态。
  • 可以关闭此功能,改用随机加权选择;另有独立的锁生成概率(默认 1.0 — 每个符合条件的箱子)可直接跳过箱子。

世界集成

  • 上锁的箱子会自然生成于结构中,层级按战利品价值缩放
  • 开锁器、钥匙和锁具机构会被注入箱子战利品表(可按模式配置,默认为 minecraft:chests/)
  • 可配置职业的村民(默认为工具匠)出售开锁器和锁具机构——并且,作为可选项,出售游戏前期的木/铜/铁锁
  • 流浪商人提供金制和钢制开锁器、附魔钢锁,以及稀有的附魔钻石锁和下界合金锁
  • 每个交易类别均可独立开关,因此你可以停止出售开锁器而仍然出售锁

原生钢 — 自给自足,但优先服从你的整合包

Locks Reforged 自带钢,因此钢层级完全可制作,无需其他模组:钢锭、钢粒,以及钢矿石 / 深层钢矿石(主世界不常见生成;可熔炼或高炉冶炼成锭)。所有内容都位于标准的 forge:ingots/steel、forge:nuggets/steel 和 forge:ores/steel 标签中,因此来自 Create、Immersive Engineering、Mekanism、Thermal 等的钢可用于所有 Locks 配方。

当你的整合包已有钢经济体系时,Locks 会检测到并让位——它停止生成自己的矿石并提供多余的钢生产配方(检测期间会忽略自身的标签条目,因此其钢锭永远不会掩盖真正的提供者)。每种形态相互独立:拥有钢锭但没有钢粒的模组仍会获得 Locks 的钢粒作为后备。原生方块/物品始终保持注册(现有世界和堆叠仍然有效;被禁用的钢仍可通过 /give 获得)——只有获取方式被切换。服务器配置项 Steel Material Mode(AUTO / FORCE_NATIVE / EXTERNAL_ONLY)可覆盖自动行为。

模组兼容性

  • Curios (可选) — 钥匙环可从饰品栏位使用,无需占用手部。
  • Carry On (可选) — 锁会随你拾取并搬运的方块一起移动。可配置:是否允许搬运上锁方块、搬运上锁方块是否需要授权,以及是否拒绝拾取多方块锁的一部分。
  • Respawning Structures (可选) — 重生后的箱子会重新上锁。
  • Lootr (可选) — 双层箱子的两半会分别视为独立的可上锁对象,与 Lootr 拆分它们的方式一致。
  • C2ME 和其他异步区块模组 — 区块可上锁数据会安全地在工作线程中解析,再交由主线程传递给世界,因此异步加载区块不会造成死锁或丢失锁。

添加自定义锁和开锁器

Locks Reforged 使用完全由数据驱动的物品系统。你可以根据需求,通过三种不同的方法添加全新的锁和开锁器等级,或调整现有物品。

方法 1:配置文件夹(新增自定义物品)

将 JSON 文件放入配置文件夹,即可注册全新的锁或开锁器物品。模组会在启动时自动发现这些文件。

添加自定义锁,请创建 config/locks/lock_types/<name>.json:

{
  "length": 7,
  "enchantment_value": 14,
  "resistance": 12,
  "pick_wear": 3,
  "fire_resistant": false
}
  • length — 针脚数量(1–20)
  • enchantment_value — 可附魔性(1–50)
  • resistance — 爆炸抗性(0–1000)
  • pick_wear — 在此锁上插错针脚会消耗的开锁器耐久度(1–1000,可选,默认为 1)
  • fire_resistant — 物品是否能在火焰和熔岩中存留(可选,默认为 false)

添加自定义开锁器,请创建 config/locks/lockpick_types/<name>.json:

{
  "strength": 0.5,
  "enchantment_value": 10,
  "durability": 96,
  "fire_resistant": false
}
  • strength — 开锁器可以尝试开启哪些锁,即复杂度门槛(0.01–10.0)。不会影响耐久消耗
  • enchantment_value — 在附魔台上的可附魔性(0–50,可选,默认为 0 = 无法在附魔台附魔)
  • durability — 开锁器损坏前可消耗的耐久点数(0–10000,可选,默认为 64)。设为 0 表示永不损坏 — 适合希望恢复旧版“开锁器永不损坏”体验的整合包
  • fire_resistant — 物品是否能在火焰和熔岩中存留(可选,默认为 false)

文件名会成为物品在 locks: 命名空间下的注册名(例如,netherite_lock.json 会注册为 locks:netherite_lock)。配置文件夹中的物品会覆盖 JAR 内置的同名物品,因此你也可以用这种方式替换内置属性。

重要提示:通过这种方式注册的自定义物品会自动出现在游戏中,但如果没有以下内容,它们将不可见且无法合成:

  • 提供模型和纹理的资源包(assets/locks/models/item/<name>.json、assets/locks/textures/item/<name>.png),还可选提供开锁界面纹理(assets/locks/textures/gui/<name>.png,缺少时会使用铁锁的纹理)
  • 提供合成配方(data/locks/recipes/<name>.json)并将物品添加到相应标签的数据包(data/locks/tags/items/locks.json 或 lock_picks.json)

模组会在首次启动时创建示例文件 config/locks/lock_types/_example.json.disabled 和 config/locks/lockpick_types/_example.json.disabled,供你参考。

方法 2:数据包属性覆盖(按世界调整现有物品)

数据包可以按世界覆盖任意现有锁或开锁器的属性。覆盖内容会在世界加载时以及运行 /reload 时应用,因此非常适合整合包作者或冒险地图制作者。

覆盖锁的属性,请将 JSON 文件放在 data/<namespace>/locks/lock_stat_overrides/<name>.json:

{
  "item": "locks:iron_lock",
  "length": 3,
  "resistance": 50
}

覆盖开锁器的属性,请将 JSON 文件放在 data/<namespace>/locks/lockpick_stat_overrides/<name>.json:

{
  "item": "locks:iron_lock_pick",
  "strength": 1.5
}

只有列出的字段会被更改;未列出的字段保留当前值。多个数据包可以提供覆盖内容,并会按照数据包加载顺序依次叠加。

锁的 pick_wear 可以在此处覆盖,因为每次输入错误的密码时都会重新读取该值。开锁器的 durability 则不能覆盖——该值会在游戏启动时注册物品时写入物品,远早于任何数据包加载;此处的 durability 键会被忽略,并在日志中显示警告。

方法 3:TOML 配置(无需数据包即可覆盖属性)

每种内置锁和开锁器在 locks-common.toml 中都有 TOML 配置项,可用于覆盖单项属性,无需数据包。将任意值设为 -1(开锁器强度使用 -1.0)即可采用 JSON 中的默认值。每种锁也都有一个 Pick Wear 配置项。开锁器的耐久度是唯一无法在此处或通过数据包设置的属性——请在 config/locks/lockpick_types/<name>.json 中设置。

# 示例:将铜锁的销子数量从 6 个改为 8 个
["Lock Stats"."Copper Lock"]
    Length = 8
    "Enchantment Value" = -1
    Resistance = -1
    "Pick Wear" = -1

# 示例:将铜制开锁器的强度加倍
["Lockpick Stats"]
    "Copper Lockpick Strength" = 0.56

TOML 覆盖会先于数据包覆盖应用,因此数据包具有最终优先级。

覆盖优先级

当多个系统为同一属性提供值时,优先级顺序如下:

  1. 数据包属性覆盖(优先级最高,在运行 /reload 时应用)
  2. TOML 配置覆盖(在加载配置时应用)
  3. 配置文件夹中的 JSON(启动时覆盖 JAR 默认值)
  4. JAR 内置 JSON(优先级最低,内置于模组中)

关于锁具结构的说明

锁具结构(木制、铜制、铁制、钢制)是基础合成材料,不由数据驱动,因此无法通过配置或数据包添加。每个锁的合成配方都要求将对应的锁具结构作为中心材料。


配置

所有设置都可以通过配置文件自定义。请注意,locks-server.toml 是按世界配置的,存放位置与另外两个文件不同:

config/locks-common.toml — 世界生成与物品属性

  • 锁具生成概率 — 符合条件的生成箱子获得锁具的概率(0.0–1.0;默认:1.0,即每个箱子都有)
  • 生成锁具附魔概率 — 生成的锁具附魔的频率(默认:40%)
  • 生成的锁具 / 生成的锁具概率 — 世界生成时出现的锁具等级及其相对权重(关闭战利品缩放时使用;同时决定 战利品价值等级 的等级顺序)
  • 随机化已加载的锁具 — 是否随机化从结构文件加载的锁具组合(默认:false)
  • 按战利品价值缩放锁具 — 根据箱子战利品价值决定锁具等级(默认启用),包含 默认物品价值、稀有度倍率、附魔价值加成、物品价值覆盖,以及各等级的 战利品价值等级 阈值(默认 [3.0, 6.0, 10.0, 16.0, 24.0, 40.0, 60.0])
  • 锁具属性 / 撬锁器属性 — 各等级的属性覆盖值(见上文)

saves/<world>/serverconfig/locks-server.toml — 服务端游戏规则(首次加载时按世界生成)

  • 可上锁方块 — 可上锁方块的正则表达式(默认:箱子、木桶、漏斗、门、活板门、栅栏门、潜影盒)
  • 可上锁标签 — 成员可上锁的方块标签(默认:locks:lockable)
  • 最大可上锁体积 — 单把锁最多覆盖的方块数(默认:6)
  • 允许移除锁 — 是否可以潜行移除未上锁的锁(默认:true)
  • 保护可上锁方块 — 上锁的方块在生存模式中是否无法被破坏(默认:true)
  • 快速上锁 — 单击即可放置锁(默认:true)
  • 钢材模式 — AUTO / FORCE_NATIVE / EXTERNAL_ONLY(默认:AUTO)
  • 显示 — 隐藏锁 ID、隐藏 HUD 附魔信息、隐藏 HUD 提示文本(默认均为:false)
  • 附魔 — 分别启用或禁用 12 种附魔(锁侧 7 种 + 开锁器侧 5 种)。开锁器子项可调整 Finesse Wear Reduction Per Level(0.15)、Attunement Strength Per Level(0.10)、Sturdy Wear Per Level(0.5)、Near Miss Wear Multiplier(0.33)、Grounded Reduction Per Level(0.20)、Last Catch Save Chance(0.20)和 Quiet Hand Volume(0.25)
  • Enchantments.Shocking — 伤害公式(Base 0.0 + 等级 × Per Level 1.5,最高限制为 Max Damage 1024.0)、冷却时间、是否必须拥有此附魔,以及四种独立触发条件:开锁器损坏时(默认:true)、输入错误密码时、未经授权的交互时,以及尝试破坏方块时(默认:false)。创造模式玩家不受影响
  • 下界合金开锁器不会损坏 — 启用后,下界合金开锁器永远不会损坏(默认:false)
  • 允许徒手撬锁 — 主手为空时,也可以不使用开锁器进行撬锁小游戏(默认:false)
  • 战利品表注入模式 — 哪些战利品表会加入开锁器或钥匙(默认:minecraft:chests/)
  • 交易 — 村民和流浪商人的交易总开关及各类别开关,以及 Villager Profession(默认:minecraft:toolsmith)。村民出售锁需手动启用(默认:false);其他类别默认均已开启
  • Compatibility.CarryOn — 是否启用 Carry On 兼容功能、是否允许搬运上锁的方块、搬运是否需要授权、是否禁止只搬起多方块结构的一部分,以及是否记录搬运日志

config/locks-client.toml — 客户端设置

  • 聋人模式 — 为撬锁提供视觉反馈,提升无障碍体验(默认:true)

过时的配置文件:模组更新并加入新等级(例如初版发布后新增的铜制等级)时,已有的 TOML 文件仍会保留旧的默认设置。例如,“Generated Locks”列表不会包含 locks:copper_lock,除非你手动添加它,或删除 locks-common.toml,让配置文件按新默认值重新生成。


运行要求

  • Minecraft 1.20.1
  • Forge 47.2.0 或更高版本
  • Java 17

可选:Curios(5.14.0+)、Carry On(2.1.0+)。两者均非必需。

多人游戏说明:客户端和服务器必须运行相同版本——撬锁网络协议会在握手阶段检查版本;如果版本不匹配,连接会被正常拒绝,不会等到之后才出现异常。


鸣谢

这是一个非官方移植版,保留了原模组的所有玩法。遵循 CC BY-NC 3.0 许可协议,与原模组一致。

常见问题

Locks Reforged 支持哪些 Minecraft 版本?

Locks Reforged 支持 Minecraft Java 版 1.20.1–1.21.1,共 2 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Locks Reforged 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

otectus 的其他作品

查看全部 →