Widget Buttons¶
Widget buttons display interactive controls directly inside the menu — no need to open a separate panel.
INT_PROP / FLOAT_PROP¶
Shows an interactive number field.
- Click and drag left/right → change the value
- Click once → type a number directly
| Field | What to enter |
|---|---|
| Property Path | Python path to the numeric property |
| Min / Max | Allowed range |
| Step | How much each drag unit changes the value |
| Suffix | Optional text shown after the number (e.g. °, %, px) |
Example — Brush Strength:
| Field | Value |
|---|---|
| Property Path | context.tool_settings.sculpt.brush.strength |
| Min | 0.0 |
| Max | 1.0 |
| Step | 0.01 |
SLIDER¶
Same as FLOAT_PROP but displayed as a visual progress bar. Best for 0–1 ranges like strength, opacity, or factor.
| Field | What to enter |
|---|---|
| Property Path | Python path to a 0–1 float property |
| Min / Max | Usually 0.0 and 1.0 |
Tip
Use SLIDER when the visual bar helps the user understand where they are in the range. Use FLOAT_PROP for values with arbitrary ranges.
ENUM_PROP¶
Shows an enum property (a list of fixed options).
| Field | What to enter |
|---|---|
| Property Path | Python path to the enum property |
| Expanded | True = show as a row of buttons; False = compact dropdown |
Example — Object Display Type:
| Field | Value |
|---|---|
| Property Path | context.object.display_type |
| Expanded | True |
This shows all display options (Bounds, Wire, Solid, etc.) as clickable buttons in a row.
COLOR_PROP¶
Shows a color swatch. The user drags on it to adjust the color interactively.
| Field | What to enter |
|---|---|
| Property Path | Python path to the color property |
Drag interactions¶
| Action | Effect |
|---|---|
| Drag left / right | Change Hue |
| Drag up / down | Change Value (brightness) |
| Hold Ctrl + drag left/right | Change Saturation |
| Hold Ctrl + drag up/down | Change Alpha |
Example — Object Color:
| Field | Value |
|---|---|
| Property Path | context.object.color |
SEARCH_PROP¶
Shows a searchable dropdown: a list of names, a filter field, and the pick written somewhere.
Source — what the list contains
| Field | What to enter |
|---|---|
| Preset | A ready-made source (materials, objects, collections…). Fills the path for you |
| Source | Python path to the collection to list, e.g. bpy.data.materials |
| Name Attribute | Attribute read for each row's label — name in almost every case |
| Max Rows | Rows shown before the list scrolls |
| Show Filter | Show the search field above the list |
Target — where the pick is written
| Mode | Effect |
|---|---|
| Property | Writes the picked name into a property path, like prop_search does |
| Variable | Stores it in a PieMaster variable, readable from any button as pm.var('name') or as the {{name}} token |
LIST¶
Shows a real list inside the menu — vertex groups, shape keys, UV maps — with its add / remove / move buttons.
| Field | What to enter |
|---|---|
| List Type | Generic, Vertex Groups, Shape Keys, UV Maps, Color Attributes or Bone Collections. Anything but Generic adds the per-row toggles of that type and auto-fills the paths below |
| Source | Collection to list, e.g. context.object.vertex_groups |
| Active Path | Index of the active row, e.g. context.object.vertex_groups.active_index |
| Add / Remove Operator | Operators run by the + and − buttons |
| Move Up / Down Operator | Operators run by the arrows |
| Menu Operator | Menu opened by the ▾ button, e.g. MESH_MT_vertex_group_context_menu |
| Name Attribute | Attribute used as the row label |
| Max Rows | Rows shown before the list scrolls |