Jump to content
Toggle menu
  • 3 articles
  • 22 files
  • 3 users
  • 2.5K edits
Shroudforge
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
This page is a translated version of the page Keyboard shortcuts and the translation is 100% complete.


Keyboard shortcuts



此页面可查看和编辑 ShroudForge 窗口快捷键,以及模组在自己的 extended.mod.json 中明确声明为 control: "keybind" 的快捷键。

分配快捷键

单击输入框,然后按下所需的按键或组合键。输入使用物理 SDL3 扫描码,例如 F7 对应的 SDL:64、Ctrl+SDL:29 或 Shift+SDL:100。这样可确保不同键盘布局下物理按键的位置一致。SDL 会根据当前操作系统布局提供易读的标签。Ctrl、Alt、Shift 和 Meta 等修饰键必须完全匹配。

录制时,ShroudForge 会在所有进程中屏蔽其窗口快捷键和已声明的模组快捷键。取消录制或窗口焦点变化后,只要仍有按键或鼠标按钮处于按下状态,保护就会继续生效。随后会开始固定的三秒延迟,新输入不会重置该延迟。无论是否带修饰键,都不能录制 Escape。游戏使用它打开暂停菜单和关闭窗口,因此按下 Escape 会取消录制并保留原来的快捷键。绑定新的 F1 或 F12 需要确认,因为 Enshrouded 或 Steam 可能会使用它们。保存与其他启用的 ShroudForge 快捷键冲突的绑定会被阻止。

选择 Clear 可禁用快捷键。对于 ShroudForge 窗口,你可以恢复内置默认值。模组快捷键仍属于各自模组的设置。模组设置中的字段和 Compatibility → Hotkeys 下的字段会编辑同一个已保存值。

ShroudForge 模组中的快捷键

模组作者会在 extended.mod.json 中将快捷键声明为一项设置:

{
  "settings": {
    "pasteKey": {
      "value": "SDL:64",
      "label": "Paste blueprint",
      "control": "keybind",
      "applyAt": "live"
    }
  }
}

模组通过 ShroudForge Lua API 读取此设置。它会响应当前值,而不是在脚本中写死某个按键:

return {
    on_update = function()
        if shroudforge.input.was_keybind_pressed("pasteKey") then
            -- Run the action.
        end
    end,
}

shroudforge.input.was_keybind_pressed("pasteKey") 会在运行时更新之间保留短按,并且每个模组和设置只返回一次 true。已保存的实时更改会在一秒内传到运行时。对于按住时需要重复执行的操作,请使用 is_keybind_down。旧的 is_key_down("F1") 到 is_key_down("F8") API 从 ShroudForge 1.7.6 起不再受支持。调用它会记录迁移消息并引发 Lua 错误。请改为声明 keybind 设置,并在 Hotkey Manager 的 Compatibility → Hotkeys 中为其分配按键。shroudforge.input.keybind_label("pasteKey") 会根据当前操作系统布局返回易读的 SDL 标签。游戏窗口处于焦点时可以查询按键。仅声明设置不会更改脚本中写死的按键。模组必须通过 API 读取此值并将它用于相应操作。

冲突和其他模组

ShroudForge 会报告启用的 ShroudForge 窗口快捷键与已声明模组按键绑定之间的冲突。如果按键和修饰键组合重叠,保存时会阻止新增的快捷键冲突。

独立的 EML 模组和自行管理快捷键的 DLL 模组无法在此处可靠地重新映射或拦截。如果模组提供相关选项,请在各自的设置或配置中指定快捷键。如果 EML 模组在 extended.mod.json 中明确声明了匹配的 keybind 设置,并通过 ShroudForge Lua API 使用它,也可以显示在此处。这不会接管由 EML 或 DLL 独立管理的快捷键。