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.
Revision as of 01:34, 7 November 2026 by Bonsaibauer (talk | contribs) (Importing a new version from external source)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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 獨立管理的快捷鍵。