import bpy class CauseCrashOperator(bpy.types.Operator): bl_idname = "object.causecrash" bl_label = "causecrash" bl_options = {'REGISTER', 'UNDO'} count : bpy.props.IntProperty(name="count", default=800) def execute(self, context): for i in range(self.count): mesh = bpy.data.meshes.new("myobj") obj = bpy.data.objects.new("myobj", mesh) context.collection.objects.link(obj) return {'FINISHED'} def register(): bpy.utils.register_class(CauseCrashOperator) register() print("1") bpy.ops.ed.undo_push() print("2") bpy.ops.object.causecrash(count=800) print("3") bpy.ops.ed.undo() print("4") bpy.ops.object.causecrash(count=800) print("5")