Reference
Limits & edge cases
A consolidated list of PropUI's hard limits and the behavior that most often surprises people.
Hard limits
| Limit | Value |
|---|---|
| Entry hierarchy depth | 12 |
| Sub-panel nesting depth | 12 |
| Array size | 1–32 |
| Property ID length | 63 |
| Label / Editor Label length | 255 |
| Tooltip length | 512 |
| Row height scale | 0.25–15.0 |
| Row inset amount | 0.1–10.0 |
| Single row column weight | 0.05–10.0 |
The two layers
- The Entry List and Generated Layout are separate. Removing something from the layout does not delete the source entry.
- Text, Custom, Display Link, and Operator Button entries do not create managed custom properties.
- A Display Link draws a source entry again; it does not duplicate the source property's storage.
Storage
- Property IDs must be unique per target. PropUI auto-suffixes duplicates where needed.
- If Property Storage cannot resolve, Apply/Generate reports an error.
- If a per-entry Target Override cannot resolve, Apply/Generate reports the entry that failed.
Layout
- Sub-panels cannot interleave with loose parent-body rows — Blender child panels always draw below the parent body.
- Empty sub-panels stay in the editor but are skipped in generated output.
- Sub-panels start open unless Collapsed by Default is enabled.
- Row boxes cannot span containers.
- Row boxes can nest only as fully contained ranges, not partial overlaps.
- Auto Fill Row can make a shared row resize when conditional children disappear; Keep Empty Slot keeps spacing stable.
Generated output & lifecycle
- If no sidebar is selected for output, PropUI uses the 3D Viewport.
- If no Properties tab is selected for output, PropUI uses Object Properties.
- Stopping a generated UI is session-scoped unless you remove/delete its saved data.
- Remove From Editor Only can leave a panel running even though it is no longer listed as an owned editor row.
- Imported generated UI scripts become managed Generated UIs rows. Remove Everything also deletes their managed Text datablock.
- Generated panels are saved in the
.blendas Text datablocks / slot data. Use Export.py Files ZIPfor standalone files.
Sources & operators
- Custom RNA paths can become invalid when objects/data are renamed or deleted.
- Operator buttons depend on Blender operator polling and context — an operator that cannot run in the panel's current context can cancel or fail.
Import
- A full setup JSON import from Editor Settings creates a UI Variant. It does not overwrite the current setup until you load that variant.