← All ideas
  • Published 8 Apr 2025

Allow PointerProperty to store non-ID types

Currently, the PointerProperty can only store ID types: docs.blender.org/api/current/bpy.props.html .

It is often desirable to directly and consistently reference shape keys, modifiers or other data like the new ActionSlots. I am not sure if it is feasible, but it would make add-on development a lot smoother to allow using PointerProperties like this.

In the case of ActionSlots it is possible to consistently reference them by the unique handle, but for shape keys and modifiers it is basically impossible. Alternatively, having some sort of unique identifier for all data types would be a huge improvement to the situation.

100%

Development Status: Open

Upvote 3 Downvote 0
fynn.braren
8 Apr 2025

1 Comment

samueloates

This would also allow making custom color ramps, curve mappings, curve profiles, even vectorscopes, waveforms, histograms, as there are templates for all of them in the ui such as template_color_ramp, template_vectorscope, but adding this functionality would mean custom properties for these could be created, without relying on already defined instances in the C code. In fact, it would be one of the biggest improvements in the Python API yet. Also it is possible to reference shape keys by bpy.props.PointerProperty, as it is derived from bpy.types.ID , but modifiers cannot, becuase they are derived from bpy.types.bpy_struct.