Skip to content

Troubleshooting

Common problems and how to fix them.


The menu doesn't open when I press my shortcut

Possible causes:

1 — You forgot to save the keymap. After setting or changing a shortcut, you must click Save Keymaps in the Shortcut section. Without this, Blender doesn't register the shortcut after a restart.

2 — Shortcut conflict with Blender. Another Blender action already uses that key in that context. Go to Edit > Preferences > Input, search for your key, and check if something else is assigned.

3 — A pie-level condition is not met. If the menu has a Condition set at the menu level, the shortcut does nothing when the condition is False. Check the Condition field — try removing it temporarily to confirm this is the cause.

4 — Wrong context. The shortcut is set to 3D View but you're pressing it inside a different editor (Node Editor, UV Editor, etc.). Match the Context field to the editor you're working in.


My button doesn't appear in the menu

The button has a Condition that evaluates to False in your current context. Check the Condition field on the button.

Common mistake: being in the wrong mode. Example — a button with context.mode == 'EDIT_MESH' won't show in Object Mode.

Temporarily remove the condition to confirm the button works, then re-add it.


My condition doesn't work — the button never shows (or always shows)

Mistake 1 — Using = instead of ==

= is assignment. == is comparison. Conditions must use ==.

# WRONG — this is an assignment, not a comparison
context.mode = 'OBJECT'

# CORRECT
context.mode == 'OBJECT'

Mistake 2 — Wrong mode name. Mode names are uppercase strings. Common errors:

You typed Correct value
'edit' 'EDIT_MESH'
'object' 'OBJECT'
'sculpt' 'SCULPT'
'Edit Mode' 'EDIT_MESH'

See the full list in Conditions — Mode Names.

Mistake 3 — Multi-line expression. Conditions must fit on one single line. No line breaks allowed. Use and / or to combine multiple checks:

# WRONG — two lines
context.mode == 'OBJECT'
bool(context.active_object)

# CORRECT — one line
context.mode == 'OBJECT' and bool(context.active_object)

How to test a condition quickly: Open Blender's Python Console (change an editor to Scripting > Console) and type your expression. It should print True or False directly.

>>> context.mode == 'OBJECT'
True

The right-click "Add to Pie" gives wrong or incomplete operator code

The right-click capture works for most buttons, but some operators have complex or dynamic parameters that don't transfer cleanly.

How to get the exact operator call:

  1. Run the action manually in Blender (do the thing you want the button to do).
  2. Open the Info Editor (change any editor type to Info).
  3. The last line shows the exact Python call Blender used, for example:
    bpy.ops.mesh.loopcut_slide(MESH_OT_loopcut={"number_cuts":1, "smoothness":0}, ...)
    
  4. The operator ID is everything between bpy.ops. and (mesh.loopcut_slide.
  5. Copy the parameters from inside the parentheses into the Properties field.

Tip

The Info Editor shows the last 256 operations. If you did other things after, scroll up to find your action.


My operator button does nothing when clicked

1 — Wrong operator ID. IDs are case-sensitive and use dots, not underscores as separator between module and name.

WRONG:  Object.shade_smooth
WRONG:  object_shade_smooth
CORRECT: object.shade_smooth

2 — Missing required properties. Some operators require specific parameters. Run the operator once manually, check the Info Editor for the full call with parameters, and copy them into the Properties field.

3 — Wrong context. Some operators only work in specific modes or with specific selections. Example: mesh.loopcut_slide requires being in Edit Mode with a Mesh. Add a Condition to the button so it only appears when the context is correct.


My property path doesn't work

1 — Typo in the path. Property paths are exact Python paths and are case-sensitive.

WRONG:  context.Space_data.overlay.show_wireframes
CORRECT: context.space_data.overlay.show_wireframes

2 — How to find the correct path:

Option A — Right-click any value in Blender → PieMaster: Add to Pie (most reliable).

Option B — Enable Developer Extras in Edit > Preferences > Interface, then hover over any property. The tooltip shows the full Python path.

Option C — Use Blender's Python Console:

>>> C.space_data.overlay.show_wireframes
True
If it returns a value, the path is valid.


After updating PieMaster, my menus are gone

You probably removed the addon without a clean reinstall. Your data is stored in user_pies.json inside the addon folder.

Recovery: If the old addon folder still exists somewhere, find user_pies.json inside it and copy it into the new addon folder.

Prevention: Before any update, copy user_pies.json to a safe location as a backup. Also use Export to save your presets as .json files regularly.

See How to Update for the correct update procedure.


The menu opens but buttons are misaligned or look wrong

1 — Scale issue. Check UI Scale in the Design tab. A value far from 1.0 can cause layout problems.

2 — Small editor area. PieMaster has an Auto Scale option (Options tab) that shrinks the menu to fit small areas. Enable it if you're working in small editor panels.

3 — After a Blender update. GPU rendering behavior can change between Blender versions. If the layout looks wrong after a Blender update, reload the addon (Preferences > Add-ons > PieMaster > Reload) or reinstall.


I can't find a button I just added

New buttons are added to the currently selected direction. If no direction was selected, check all directions — the button was placed in one of them.

In Preview — Edit Mode, all buttons are visible in the live menu. Double-click any button to edit it.


The Preview mode is stuck / the modal won't close

Press ESC to close any open PieMaster modal. If it doesn't close, use F3 → "Cancel Modal" or save and restart Blender.


My Python button doesn't run / throws an error

1 — Test the code first in Blender's Text Editor or Python Console. If it errors there, fix it there before putting it in PieMaster.

2 — bpy is available, bpy.context shortcut C is not. Use bpy.context explicitly, not C.

# WRONG
C.active_object.name = "Test"

# CORRECT
bpy.context.active_object.name = "Test"

3 — Multi-line code. For multi-line scripts, use a .py file and reference it via the Python File field instead of the inline Command field.