Skip to content

Troubleshooting

Confirm that IH MenuWeave is enabled and that the selected root has Use hotkey enabled. A child folder’s shortcut works inside its parent, not directly from an editor.

Place the pointer over an allowed editor and check all three root filters: workspace, editor, and Blender mode. The branch is available only if all three match. A restricted workspace filter does not include unknown or custom workspace names.

Inspect the conflict indicator. Choose another root combination or enable Override conflicting hotkey deliberately. Other add-on and user keymap overrides can still affect priority. Finish any running modal tool before testing again.

Inside a menu, the first item with a matching combination wins. Resolve the duplicate-shortcut warning in Menu Actions. Shifted punctuation normally uses its base key plus Shift.

With Global Priority enabled on several roots, the newest activation wins duplicate global shortcuts. A global action can also take precedence over its own root’s opening key. Disable the relevant root’s key icon, or use the reset below from Blender’s Python Console:

bpy.ops.wm.ih_menu_weave_clear_global_hotkeys()

This disables MenuWeave’s global priorities without removing the configuration or changing native keymaps.

Check the entry’s visibility eye. Hidden actions remain callable by shortcut but are skipped by mouse and arrow-key navigation. The temporary reveal controls for actions and folders are independent; revealing one does not reveal the other.

If an eye is locked, turn off that entry type’s temporary reveal mode. For a missing child branch, also check its root’s context filters. Children inherit the root’s availability.

Global shortcuts do not run in a text editor

Section titled “Global shortcuts do not run in a text editor”

In Text Editor and Console, unmodified and Shift-only global shortcuts pass through to preserve typing. Use Ctrl or Alt combinations, and check that the root permits the editor and current mode. Already-running Blender modal tools handle their own events.

Check the traceback and the exact operator name. MenuWeave has no built-in dependency on other add-ons; calls to an external add-on work only when it is installed, enabled, and exposes that operator.

Validate active editor, region, mode, selection, and required data. bpy.ops calls may fail poll() in the wrong context. Run the simplest version of the script first, then add the remaining steps. A failed script is not made repeatable, but data changes before its error may already have happened.

Repeat runs the wrong operation or opens a dialog again

Section titled “Repeat runs the wrong operation or opens a dialog again”

Repeat follows Blender’s native operation history. A newer native repeatable operation supersedes an older menu action. A full script that invokes a dialog or modal tool may start that interaction again.

Use self-contained custom repeat code when appropriate. For delayed callbacks, capture ih_menu_weave["repeat_action_id"] or keep the bound set_repeat_code helper during initial execution. A missing owner is an error; it must not silently update another action. See Set repeat code.

Only schema 15 JSON is accepted. An older Blender-preferences migration does not enable older JSON imports. Read the visible import status message; malformed and empty files are reported.

Choose Append to add independent imported roots or Replace to load a complete configuration. Import only trusted scripts. If application fails, the previous configuration is restored. With Blender’s Auto-Save Preferences disabled, explicitly use Save Preferences after edits or import. Keep JSON backups because scene Undo does not undo preference edits.

If you encounter a bug, crash, unexpected behavior, or have a suggestion, feel free to email hadzalo.dev@gmail.com.

Briefly describe what you did, what you expected, and what happened instead. Include your Blender version, MenuWeave version, operating system, active editor/mode, and the smallest steps that reproduce the issue. Add screenshots, the Python error text, or a crash-log text document if available.

For script or shortcut issues, include the smallest relevant action and its root filters. Share a selected-branch JSON export only after checking its embedded scripts for private paths or other sensitive content. A small reproducible example is more useful than an unrelated full project.