Run EnumProperty's update on animation keyframe change I have a script that a adds a dropdown menu that I want to later animate the values of. In the update of the EnumProperty I update some visibility filters depending on the item selected which works fine when flipping through the items in the drop down, but when I animate the value and it changes that way the &quot;update&quot; doesn't get called. Can I make it so it does?
Here is an example script
import bpy


class MYOBJECT_PT_Panel(bpy.types.Panel):
    &quot;&quot;&quot;Creates a Panel in the Object properties window&quot;&quot;&quot;
    bl_label = &quot;My Object&quot;
    bl_idname = &quot;MYOBJECT_PT_Panel&quot;
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = &quot;My Object&quot;

    def draw(self, context):
        self.layout.prop(context.scene, &quot;MyObjectList&quot;)


def print_to_console(scene, context):
    print(context.scene.MyObjectList)


def register():
    bpy.types.Scene.MyObjectList = bpy.props.EnumProperty(
        name=&quot;My Objects&quot;,
        items=[(x, x, &quot;&quot;) for x in [&quot;A&quot;, &quot;B&quot;, &quot;C&quot;]],
        update=print_to_console
    )
    
    bpy.utils.register_class(MYOBJECT_PT_Panel)


def unregister():
    bpy.utils.unregister_class(MYOBJECT_PT_Panel)
    del bpy.types.Scene.MyObjectList

if __name__ == &quot;__main__&quot;:
    register()

Then go into animate and key the property and scrub the frames, you can see that the print state ment doesn't get called.
I achieved a similar functionality by adding a handler to bpy.app.handlers.frame_change_pre. This will make the print_to_console print every frame I can then check &quot;is the gui displaying the same value as the previous frame&quot;, and if not it is animated on this frame.