PropUI: Custom Blender UI Panel Builder

bigizom in Rigging


izom PropUI Suite

Documentation for Full 1.3.0, Rigify 1.7.0 and Free 1.1.6. Requires Blender 5.0 or newer.

PropUI lets you arrange controls into a panel using Blender’s own widgets, custom properties and operators. Use it for rig controls, animation settings, materials or other Blender properties.

Contents

Choose your edition

  • Full. General panels, animation and rig controls, materials, modifiers and reusable generated UI.
  • Rigify. Controls authored on a Rigify metarig and generated with the rig.
  • Free. A simple 3D Viewport sidebar panel with five entry types and one storage Object.

On a small screen, scroll the wider tables sideways to read every column.

Capability Full Rigify Free
Entry types All 12 types All 12 types Float, Integer, Boolean, Array, Text
Generation Generate UI Normal Rigify generation Generate UI
Generated panel location Supported sidebars / Properties tabs Rig Main Properties or a separate sidebar panel 3D Viewport sidebar
Property storage Objects, bones and many data-block owners Generated host / chosen generated bones One Object
Per-entry storage override Yes Prop Bone Override No
Sub-panels and Row Boxes Yes Yes No
Popovers, compact controls, foldouts Yes Yes; foldouts use Separate Panel No
Dynamic Labels Own or other entries Own or other entries Own value only
Child conditions Visibility and availability Visibility and availability Visibility
Setup JSON / clipboard transfer Yes Yes Yes
Entry presets, saved defaults, editor layout Yes Yes No
UI Variants / Generated UIs manager Yes No No
Portable generated Python export Yes Rigify owns the generated script No export tool

All editions require Blender 5.0 or newer and use GPL-3.0-or-later licensing. Rigify also requires Blender’s Rigify add-on. Full and Rigify can be enabled together.

Find product information on the PropUI website. Free’s source and installation downloads are public.

Install and find the editor

Full and Free

  1. Install the edition’s installation ZIP through Blender’s extension/add-on installer, then enable it. Use izom_propui-1.3.0.zip for Full or izom_propui_free-1.1.6.zip for Free.
  2. In the 3D Viewport, press N to open the sidebar. Choose PropUI for Full or PropUI Free for Free.
  3. Full’s add-on preferences can place the editor in supported sidebars, supported Properties tabs, or both. Free’s editor stays in the 3D Viewport sidebar.

Full may request file and clipboard access for the import/export and copy/paste features you use.

Rigify

  1. Enable Blender’s Rigify add-on.
  2. Open Rigify preferences and install izom_propui_rigify-1.7.0.zip with the feature-set installer.
  3. Enable izom PropUI Rigify in the external feature-set list.
  4. Select a host bone on a metarig and set its Rigify Type to izom.PropUI. Its PropUI controls appear in the bone’s Rigify parameters.

The feature set also offers a PropUI Rigify tab in the 3D Viewport sidebar. Choose the editor location in the feature-set preferences. Select the host component, or pin it when working on another object or bone.

Updating Rigify. Remove the old izom_propui_rigify feature set in Rigify preferences before installing the replacement ZIP. Rigify’s installer does not overwrite an existing feature-set folder. Regenerate from the metarig after updating.

Make your first panel

  1. Add entries. Use Entry List to create the controls and text you need. Full and Rigify can also capture supported existing controls with right-click → Add to PropUI.
  2. Configure the selected entry. Set its label, value or source, display options and any conditions. Managed property entries need a valid storage target.
  3. Place entries in Generated Layout. Decide which controls appear, then arrange their rows. Full and Rigify also support sub-panels and Row Boxes.
  4. Choose the destination. Set the panel title and sidebar tab where available. In Rigify, choose Rig Main Properties or Separate Panel.
  5. Generate. Full and Free use Generate UI. Rigify uses its normal rig generation. Regenerate after changing the authored layout or presentation.

Entry List and Generated Layout have different jobs. Entry List stores your authored controls, hierarchy and settings. Generated Layout places them in the output. Removing a layout item keeps the original entry. Selecting a layout row edits its layout; selecting an Entry List item edits the control itself.

A generated property becomes useful when the scene uses it. Connect values to rigs, shape keys, modifiers or materials through Blender’s normal drivers, or expose an existing Blender source with a Custom entry.

Choose a control type

Available in all editions

  • Float. Decimal custom property with limits, soft limits, step, precision, subtype and optional slider display.
  • Integer. Whole-number custom property with limits, soft limits and step. Free uses a plain number field.
  • Boolean. True/false custom property. Free uses a checkbox; Full/Rigify also offer button and icon presentation.
  • Array. Float, integer or Boolean components, including supported vector/color widgets. Maximum size: 32.
  • Text. Headings, labels, dividers and spacers, with alignment, alert styling and optional icons.

Additional types in Full and Rigify

  • Dropdown. Named choices backed by stable numeric values, usable in drivers, animation and conditions.
  • String. Text custom property, with exact-match labels/conditions and optional multiline display.
  • Data-Block. A typed property referring to Blender data, such as an Object, Material, Image or Action.
  • Python. An editor for supported literal custom-property data, such as lists or dictionary-like groups.
  • Custom. An existing Blender property or supported internal generated control, drawn from its source path.
  • Display Link. Another view of a managed or Custom entry, with independent presentation and conditions.
  • Operator Button. A button running a Blender operator, an enabled add-on’s operator or a supported built-in action.

Property ID identifies a managed custom property on its storage owner. Keep IDs distinct for independent values; PropUI adds suffixes to duplicates where needed. Label is the generated text, while an optional Editor Label changes only the name you see while authoring.

Data-Block entries use an ID Type to choose the accepted data. An empty default creates an empty typed slot. Python entries edit supported Python literals; Custom paths use Blender data access syntax rather than arbitrary Python expressions.

Custom entries adapt to the detected source: Boolean, number, string, enum, data-block, vector, color or supported array. ID pointers can show data-block pickers. Color Ramp and Curve Mapping pointers show their native editors; other non-ID pointers and collections show summaries. Source tooltips come from Blender where available.

Display Links and operator buttons

A Display Link references the original entry’s value. It creates no duplicate storage. Use it when one control needs several appearances, labels, conditions or component subsets. Reset to Source Settings restores its supported appearance from the linked source.

Operator Button entries accept an operator ID such as wm.tool_set_by_id, properties supplied as JSON, and execute/invoke/popup behavior where applicable. Optional context settings help operators that need a particular editor or selection. Blender’s normal polling still determines whether an operator can run.

Button display options include Emboss, Pressed Visual, icons, Translate Text, Translation Context and Search Weight. Pressed Visual is a fixed appearance, not a stateful toggle. Translation uses Blender’s available translations; Search Weight influences Blender’s search ranking.

Capture existing controls and use native widgets

Full and Rigify

Right-click → Add to PropUI

  1. Right-click a supported Blender property and choose Add to PropUI (Full) or Add to PropUI (Rigify).
  2. Review the source path, label and destination. Enable Add to Generated Layout when you want it placed immediately.
  3. For Rigify, choose the receiving metarig and PropUI host if several destinations are available. A selected or pinned component can provide the destination.
  4. Generate the panel or rig. The resulting Custom control still edits the original Blender property.

Boolean toggles and individual array components are supported. Entry Tools → Add from Copied Data Path provides the same source-based workflow from Blender’s Copy Full Data Path. Copy Path and Use Copied Path help inspect or reconnect a Custom entry while keeping its identity and layout.

Color Ramps and Curve Mappings

Custom entries automatically recognize existing Color Ramps and Curve Mappings. They use Blender’s native editors and the supported label layout. Choose a real ramp or curve source; adding the entry does not create a material, node or mapping.

Example ramp path, if your material and node have these names:

bpy.data.materials["Material"].node_tree.nodes["Color Ramp"].color_ramp

Example curve path for an existing RGB Curves node:

bpy.data.materials["Material"].node_tree.nodes["RGB Curves"].mapping

Replace the names with those in your file. A supported control’s right-click capture or Copy Full Data Path is usually easier than typing a path. Valid paths start with bpy. and use attribute access or literal lookups. For example, bpy.data.objects["Cube"]["custom_vector"][2] refers to one component.

Multiline strings and text links

Enable Multiline in Display for a String, Custom String source or string Display Link. Choose Visible Lines and a Placeholder. Text entries with Role Text can also use an HTTP/HTTPS Link URL. Blender 5.2 uses its native multiline and link widgets; older supported versions use an ordinary string field or clickable URL button.

Use dropdowns with animation and drivers

Full and Rigify

A Dropdown stores one numeric value with a readable choice label. Create choices under Value, choose a default and use either a dropdown or Expanded Choices. The choice editor shows the stored number beside each label.

Renaming or reordering a choice keeps its number stable. Retire preserves an old saved value while removing it as a new selectable choice. The choice editor uses pages of 16 rows for longer lists.

Example: switch a face between three expressions

Choice Stored value Driver result
Neutral 0 Smile = 0, Frown = 0
Smile 1 Smile = 1, Frown = 0
Frown 2 Smile = 0, Frown = 1
  1. Create a Dropdown with Property ID face_mode and these choices. For this example, choose an Object named Controls as Property Storage, then generate the UI.
  2. On the Smile shape key’s Value field, use Blender’s Add Driver, then Edit Driver. Choose Scripted Expression.
  3. Name the driver variable mode. Set its type to Single Property, ID type to Object, Object to Controls, and RNA Path to ["face_mode"].
  4. Use the Smile expression below. Give the Frown shape key another driver with the same variable settings and the second expression.
  5. Change the dropdown in the generated panel. Both drivers read its number and switch their shape keys accordingly.
Smile expression: 1.0 if mode == 1 else 0.0Frown expression: 1.0 if mode == 2 else 0.0

Use your choices’ actual numbers. For Rigify, choose the generated rig as the driver Object and use a path such as pose.bones["YOUR_STORAGE_BONE"]["face_mode"]. Replace the bone name with the generated bone that owns that property.

Default and live value. The editor’s Default defines the authored starting/reset value. The dropdown in the generated panel changes the live stored value. Drivers read that live property. One dropdown can drive several properties, each with its own expression.

Arrange controls, labels and popovers

Rows, labels and components

Scalar controls offer One Row, One Row, Split Label and Label Above. Where supported in Full/Rigify, an above label can use text styling, alignment, icons and alert coloring. Arrays can show components in one row or separate rows, with split main/component labels or a supported whole-value widget.

Text supports headings, dividers, spacers and icons before/after the label. Centered text can use Hug Text to keep icons close; left and right alignment already keep them attached.

Full/Rigify Generated Layout includes shared rows, row height, column weights, alignment, insets, spacing rows, sub-panels and Row Boxes. Conditional shared rows can repack available controls or preserve an empty slot.

Use Safe Import when bringing Entry List items into the layout. The Row Boxes list order organizes that editor list; change a box’s range to change the generated rows it surrounds.

Moving a row into a container. Use Move Row To to move a row to the main body or a sub-panel. Changing the container chooser changes the part of the editor you are viewing. A Row Box wraps a contiguous range in one container; nested ranges must be fully contained, with no partial overlaps.

Sub-panels are generated Blender child panels and can begin open or collapsed. Empty sub-panels stay in the editor but are skipped in output. Entry hierarchies support up to 12 levels.

Compact Layout — Full + Rigify

Enable Compact Layout when a control should use its natural width within the assigned row or column. Leave it off for a control that fills the available space. It applies to supported properties, buttons, text, native widgets and Display Links.

Native Popover — Full + Rigify

Native Popover places an entry’s control inside a popup. The launcher shows the label once. Configure the launcher and popup content separately:

  • Button Style. Dropdown uses Blender’s attached dropdown popover; Button uses a normal button launcher.
  • Compact Button. Keeps the launcher at its natural width.
  • Compact Popup. Keeps the contents compact rather than stretching them.
  • Popover Icon. Selects the launcher’s Blender icon.
  • Show Label in Popup. Includes the entry’s configured label inside, or shows only its control.
  • Keyframe Buttons. Adds optional diamonds beside supported animatable values to insert/remove keys at the current frame.

Blender keeps an attached Dropdown popup at least as wide as its launcher. Use Compact Button with that style. Choose Button style when you want a full-width launcher and an independently compact popup.

Keyframe Buttons is off by default. It is useful when hover shortcuts such as I / Alt-I do not respond inside a popup. Separate array controls target their own component. A whole ramp or curve mapping has no single animatable value and receives no whole-widget diamond.

Native Foldout — Full + Rigify

Native Foldout collapses one control in a single full-width row outside Row Boxes. Rigify requires Separate Panel output for this presentation. Use sub-panels and Row Boxes for larger sections.

Free layout

Free supports simple rows with up to 3 items per shared row, row height from 1 to 2, reordering, Safe Import and a fixed left-indent toggle. It does not provide sub-panels, Row Boxes, per-control popovers/foldouts, custom column weights or advanced inset controls.

Make labels and controls respond to values

Dynamic Labels

Rules are checked from top to bottom; the first matching rule wins. Place a specific rule above a broader one when ranges overlap. Supported rules include Boolean state labels, numeric comparisons, exact values, ranges and whole-array or component matches.

Full and Rigify can read the entry’s own value or another supported entry, and support Dynamic Text where available. Free’s Dynamic Labels read the same property entry’s own value; Free Text entries do not have Dynamic Text rules.

Parenting, visibility and availability

Parenting establishes the hierarchy used by generated conditions. Child Visibility shows or hides a child. Child Availability, in Full/Rigify, leaves it visible but disabled. Choose the condition and inheritance depth appropriate to the parent’s value kind; arrays can test one chosen component.

Free supports Child Visibility only. Hiding an entry from the authoring editor in Full/Rigify is separate from controlling generated visibility.

Add group actions and Bone Collection controls

Full and Rigify

Control Groups

A Control Group name links compatible entries for a shared action. Give related controls the same group name under Value/Source → Actions, then choose Entry Tools → Add Control Group Actions. Add the resulting buttons to Generated Layout and regenerate.

  • Reset. Restores authored defaults or the original Blender property’s defaults.
  • Key / Unkey. Inserts or removes current-frame keys for supported animatable group members.
  • Save Values. Stores the group’s current values under a preset name.
  • Apply Values. Restores a saved group value preset.

Groups support scalar properties, dropdowns and fixed numeric/Boolean arrays. Strings can use value presets but cannot be keyed. Keying uses Blender’s current Action slot and respects source editability, locked channels and drivers. Include managed Rigify group members in Generated Layout so their generated storage is available.

Value presets

Value presets store live values, independently of entry-style presets or setup defaults. The dialog identifies the storage owner. They live on the first target’s owning data-block inside the .blend; save that file to keep them. Applying a preset checks the group before changing values. Save a new preset if you rebind the group to different sources.

Full value presets survive ordinary panel regeneration. Rigify value preservation during regeneration follows its normal workflow. Exporting a setup transfers action configuration and preset names referenced by entries, while the saved live values remain with their owning Blender data.

Bone Collections

Entry Tools → Add Bone Collection Controls adds visibility and solo controls for a chosen armature collection, with optional Select/Deselect actions. Selection needs the target armature active in Pose Mode. In Rigify, metarig collection references follow the matching generated rig collection; explicit external armatures keep their external target.

Full: output, variants and generated panels

Panel locations and visibility

Full’s authoring editor and generated output can use supported sidebars and Properties tabs. Sidebar targets include the 3D Viewport, Graph/Drivers, Dope Sheet, NLA, Image/UV, Node, Sequencer, Movie Clip, Text, File Browser and Spreadsheet editors. Graph/Image/Node targets include relevant subtype filters.

Generated Properties contexts include Render, Output, View Layer, Scene, World, Collection, Object, Constraints, Modifiers, Object Data, Bone, Bone Constraints, Material, Texture, Particle and Physics where available in Blender. Choose the supported targets shown in the editor.

Generated panels can also follow configured object/bone selection filters. Child panels inherit the parent’s visibility rules. Custom entries can expose Generated UI Enabled, Disable While Transforming and Disable While Playback as generated controls.

UI Variants

UI Variants are saved panel designs in the current .blend. Save, load, duplicate, reorder or clear them when a file needs several designs. Variants hold the entries, Generated Layout, containers, storage, visibility and output settings. Editor preferences, editor layout and shortcut-target state are separate.

Full setup JSON imports into a variant first. After import, select and load the imported UI Variant to put it into the active editor, then generate. Importing a setup does not silently replace the current editor immediately.

Loading a variant can prompt about unsaved editor changes, according to your confirmation settings. Removing a variant holder does not by itself remove its generated panel or current editor setup.

Generated UIs manager

Full keeps saved generated outputs in Generated UIs. You can run or stop a panel, import a generated script from a Text datablock, export generated .py files as a ZIP, and clean stale running panels. Saved outputs can be compared with the editor where a comparison baseline exists.

  • Remove From Editor Only. The panel keeps running and its Text script remains.
  • Stop UI, Keep Script. The panel stops for this session; its Text script remains.
  • Remove Everything. The management record, live panel and generated Text script are removed.

Stopping a panel is session-scoped. A saved generated script/slot can restore it when the file is reopened. Blender must allow the trusted script to run; a missing Text script can be regenerated or replaced.

Generated identity and branding

Set the Sidebar Tab and Panel Title. Optional custom branding controls generated Text names, namespace and class prefixes, and the credit comment. PropUI maintains its own stable identities so outputs can still be found, stopped or regenerated.

The visible destination and panel title identify an output for overwrite/new-output confirmation. Property Storage is separate: retargeting storage can update the same visible panel.

Rigify: metarig to generated rig

Author controls on a metarig bone whose Rigify Type is izom.PropUI. Generate with Rigify, then use the generated rig’s controls. Full and Rigify share the advanced entry and layout tools; the generated-rig workflow determines where they are stored and displayed.

Where the generated panel appears

  • Rig Main Properties: keeps the component in Rigify’s native panel. Choose whether the complete PropUI block sits above or below native Rigify blocks.
  • Separate Panel: creates a top-level 3D Viewport sidebar panel with its own Panel Title and Sidebar Tab. Blank values use the component’s default title and the Item tab.
  • Visible on Bones: choose generated controls that reveal this setup. Exact generated names, including IK/FK controls, can be searched or entered.
  • Always Visible: shows the setup whenever its generated rig is active. The saved visibility-bone list is retained for switching back later.

Add All Selected Bones adds the current pose-bone selection, keeps the active bone first and skips duplicates. The editor shows the host and can pin a component while you work elsewhere. Regenerate after metarig setting changes.

Storage and host behavior

  • Shared storage: entries use the generated host by default, or the chosen One Prop Bone.
  • Per-entry Prop Bone Override: sends a specific managed entry to another generated bone. Disabled overrides remain inactive while retaining their saved bone choice.
  • Make All Entries Follow Shared Storage: disables entry overrides together. Generated-only bone targets remain valid, but cannot be synced onto a metarig bone that does not exist.
  • Keep Host Control: keeps the component’s generated control, with its normal raw-copy parent, widget and relinking options.
  • Metarig Only: omits that host from the generated rig. Use another generated bone for storage. Configure suitable visibility targets, or enable Always Visible. Reparent metarig children before omitting their host.

Sync, imports and native properties

Sync to Metarig creates or refreshes managed properties on available metarig storage bones. Import Native Props brings compatible existing properties into entries. Move Matching removes matching managed properties from other currently active metarig storage targets; review its confirmation before using it.

Native Passthrough can preserve unmanaged metarig custom properties and draw them above or below managed controls. Clean Metarig Props targets Host Bone, Prop Bones or both, with managed/unmanaged/selected/all modes where available.

Optional Generated UI Enabled, Disable While Transforming and Disable While Playback controls apply to the complete generated component, including sub-panels. Rigify owns regeneration and its generated UI Text, normally rig_ui.py; it does not use Full’s UI Variants, custom generated branding or Generated UIs manager.

If Generated Layout is empty, Rigify can generate a basic layout from the Entry List. Arrange an explicit layout when you want full control over the result.

Understand storage and saved defaults

Property Storage

Storage is where managed custom-property values are written. In Full, choose Object, Object Data, Bone, Scene, Collection, Material, World, Action, Armature Data or another supported Blender data-block owner. Pickers adapt to the owner type. Target Override changes the owner for an individual entry.

Other supported data owners include Mesh, Camera, Curve, Light, Image, Text, Texture, Node Tree, Movie Clip, Sound, Speaker, Volume, Brush, Palette, Paint Curve, Particle Settings, Point Cloud, Cache File, Screen, Workspace and Window Manager. Choose the actual writable owner that fits your scene.

Free uses one Object with no per-entry override. Rigify uses generated bones through its shared/override mapping. A Full setup made only from Text, Operator Buttons and non-managed Custom/Display Link sources can generate without managed Property Storage.

Generate, apply and cleanup. Apply Properties in Full can create/update managed values without generating a panel. Normal generation manages its own properties; Replace Storage and Clean Old Targets can remove properties. Review those options and their confirmations. Linked/read-only targets and library overrides have Blender-defined write restrictions.

Typed Full storage picks follow data-block renames at Apply, Generate and Clean. Explicit paths remain authored paths. Recheck a named bone after renaming it. Cleanup modes distinguish managed, unmanaged, selected-entry and all custom properties; they affect storage values, not your Entry List, layout, variants or authored metarig component.

Where your work is saved

  • Entries, layout and output settings. Full/Free: with the Scene in the .blend. Rigify: on the metarig component in the .blend.
  • Live managed property values. The selected Property Storage owner, or the mapped generated rig bone.
  • Generated panel code. A generated Text datablock in the .blend. Rigify manages its generated rig UI Text.
  • Named value presets. The group’s first target owner’s data-block, inside the .blend.
  • Exported setup / entry / settings files. The file you choose, or the clipboard for copy/paste.
  • Saved defaults — Full + Rigify. Your current Blender profile’s user configuration folder. Use the folder icon to open the exact location.
  • Blender add-on preferences. Blender’s saved preferences.

Saved-default files — Full + Rigify

Full stores these in the izom_propui folder; Rigify uses izom_propui_rigify:

  • Blank setup. project_default.json in Full; host_default.json in Rigify.
  • Editor settings and confirmations. editor_settings_default.json.
  • Editor section layout. editor_layout_default.json.
  • Entry type defaults. type_defaults.json.

These edition folders are inside Blender’s user configuration folder. The folder button avoids guessing the operating-system or Blender-version path. Save the .blend for project data; save a default separately for future setups. Free does not provide saved type/editor/setup defaults.

Import, export and reuse setups

  • All editions. Setup JSON files and setup clipboard copy/paste. Full imports into a UI Variant; Rigify imports into the current host; Free accepts its compatible subset.
  • Full and Rigify. Editor Settings JSON, entry preset JSON, clipboard transfer for those presets/settings, and saved type, editor and setup defaults.
  • Full only. Setup bundles with optional generated scripts, plus portable generated .py ZIP export.

A setup carries the panel design: entries, hierarchy, supported layout, source/storage settings and output options. Editor Settings carry authoring behavior and editor layout. Entry presets carry compatible settings for one type. Value presets store live values on Blender data. Each serves a different purpose.

Entry presets, saved defaults and same-type copying include supported compact, popover, keyframe-button and expanded-choice settings. Copying settings keeps the destination’s identity, parenting and Custom source binding. Use Display Link’s Reset to Source Settings to restore its supported appearance from its source.

Full, Rigify and Free can exchange setup JSON where the receiving edition has an equivalent feature. Rigify/Full storage and visibility mappings depend on the receiving armature and scene data. Disabled overrides remain inactive. Review conversion messages for targets that cannot be represented.

Importing into Free

Free keeps compatible Float, Integer, Boolean, Array and Text entries. Unsupported types are skipped; compatible children reconnect to a supported parent. Sub-panels are flattened, unsupported Row Boxes/options are reported, and rows wider than three items are split without changing their order. Interactive file/clipboard imports show a preview before replacement; cancel keeps the current setup.

A setup file is not a scene bundle. Source objects, materials, nodes and live-value presets remain with their Blender data. Imported ramp/curve entries retain their source paths, not a new copy of the node data. Provide the matching scene data or reconnect the source after import.

Portable Full scripts can run without the PropUI editor, but Blender must permit trusted scripts and the referenced scene data/operators must exist. Third-party operators still need their add-on. Bundles may include executable Python; review the restoration option and only run scripts from sources you trust.

Customize the editor

Full and Rigify

Editor Settings cover list display, float precision, tree hints, default add type, confirmation behavior, shortcuts and reset options. Editor Layout reorders or hides authoring sections and subsections without deleting their setup data. Apply the staged list when finished; saved defaults can reuse that layout in future sessions.

Choose the active shortcut target by clicking a list or using Shortcuts Affect This List. Full targets include entries, Generated Layout, UI Variants, Generated UIs, Row Boxes, visibility targets, Dynamic Labels, Display Link component subsets and Editor Layout. Rigify offers the targets appropriate to its component, including Visible on Bones.

Shortcuts act only while the relevant PropUI editor context is active. Rigify supports its Properties parameter editor and its 3D Viewport sidebar editor. Full and Rigify can coexist, and shortcuts can be disabled when you prefer buttons. Free keeps the basic editor workflow and factory reset; it has no PropUI-specific shortcuts or section-layout customization.

Entry List row selection is single-selection. Grouped layout rows and explicit copy/apply operations have their own supported scopes. Search follows the current tree view: expand a parent, or use flat tree display, to find matches inside collapsed branches.

Troubleshooting

The generated panel is missing

Confirm that you generated the panel or rig, then check its configured sidebar tab/Properties location. In Full, inspect Generated UIs status, visibility filters and Diagnostics. In Free, check the 3D Viewport sidebar. In Rigify, use the generated rig, select a visibility bone or enable Always Visible, and check the selected output location.

When reopening a file, Blender’s script-trust settings determine whether a generated Text can run. PropUI leaves blocked scripts unexecuted. Inspect the script before allowing a file you trust to run it. A missing Text can be regenerated or replaced; Full’s manager identifies missing scripts.

Generation reports missing storage

Choose a valid writable storage owner and check any entry overrides. Full needs managed storage only for entries that create managed properties. Free needs an Object. Rigify needs a generated host/bone allowed by its Host Output and override settings.

A control does not appear

Check Generated Layout membership, parent visibility, Display Link targets and skipped empty sub-panels. Editor-only hiding is separate from output visibility. In Free, check that the entry type and option are supported.

A Custom path is invalid

Use a full bpy. data path with attributes and literal lookups. Check renamed/deleted owners, nodes and property names. Method calls, operators, arithmetic and conditional expressions are not Custom source paths. Capture the control again or use a copied path to reconnect it.

An older Geometry Nodes control stopped working

Repair Geometry Nodes Paths, under Blend File Inspection, previews supported updates to saved PropUI bindings for legacy modifier input paths. Confirm compatible unambiguous replacements, then regenerate. This updates the control link, not the node graph or drivers. Missing inputs, type changes, ambiguous matches and old Boolean attribute toggles need manual review.

An operator button cancels or does nothing

Check its operator ID, JSON properties, required add-on and Blender context. Use interactive/invoke or popup behavior for operators that require it. The source operator’s own polling and selection requirements still apply.

A dropdown changes but the scene does not

Connect the generated stored property to the desired behavior, for example with the driver example above. Check the source Object/bone, property ID and actual choice numbers. Editing the authored Default is different from changing the live generated value.

Hover keyframe shortcuts do not respond in a popup

Use Blender’s right-click keyframe actions, or enable the entry’s optional Keyframe Buttons in Popup Content for supported animatable values. A whole Color Ramp/Curve Mapping is not one animatable value.

Find warnings or support information

Use Diagnostics to inspect and copy reported details. In Full/Rigify, Validate Setup checks references, choices, groups, operators and hierarchy without changing the setup. Audit Blend Data summarizes authored components/entries and generated data in the file.

Useful terms

Custom property: a value you store on Blender data. Data-block: a named owner such as an Object, Material or Scene. RNA path: Blender’s syntax for locating a property. Metarig: Rigify’s editable template before generation. Entry: an authored control. Generated panel: the interface created from the setup.

PropUI website · Free source and downloads · Back to top

  • Complete version with all entry types, flexible panel placement, advanced visibility, sub-panels, UI variants, shortcuts, branding, presets, saved defaults, 38 storage targets, etc.

    $19.99
  • A Rigify feature set for authoring custom pose-bone control UIs on your metarig that generate straight into the rig's own panel.

    $14.99
  • Includes the full izom PropUI add-on plus the Rigify-focused version. Build clean custom Blender control panels, then use the Rigify edition to generate controls directly into Rigify’s Rig Main Properties panel.

    $30
  • I can’t list PropUI for free on Superhive right now, so you can grab it free on Gumroad or buy it here for $1 to support the project. Core workflow with basic entry types, one 3D Viewport sidebar panel, shared/simple rows, visibility conditions, and dynamic labels.

    $1
$19.99

Have questions about this product?
Login to message

Details
Blender Extension Compatible Yes
Dev Fund Contributor
Published 5 months ago
Blender Version 5.0 - 5.2
Extension Type Add-on
Render Engine Used Cycles, Eevee
License GPL