diff --git a/scripts/ztplot.py b/scripts/ztplot.py
index c010e5d295ec14abf7f4e21971b82877c43cdbbc..3c983c525287e40271526efcf8974ea1f4920de0 100755
--- a/scripts/ztplot.py
+++ b/scripts/ztplot.py
@@ -53,6 +53,7 @@ class ZTPlot(kp.Module):
         self.t0set = None
         self.calib = None
         self.max_z = None
+        self.last_plot_time = 0
 
         self.sds = kp.db.StreamDS()
 
@@ -144,12 +145,6 @@ class ZTPlot(kp.Module):
     def create_plot(self, event_info, hits):
         print(self.__class__.__name__ + ": updating plot.")
 
-        dus = set(hits.du)
-
-        grid_lines = self.calib.detector.pmts.pos_z[
-            (self.calib.detector.pmts.du == min(dus))
-            & (self.calib.detector.pmts.channel_id == 0)]
-
         trigger_mask = event_info.trigger_mask[0]
         det_id = event_info.det_id[0]
         run_id = event_info.run_id[0]
@@ -159,8 +154,23 @@ class ZTPlot(kp.Module):
         overlays = event_info.overlays[0]
         n_hits = len(hits)
         n_triggered_hits = sum(hits.triggered)
+
+        # Check for new record
+        is_new_record = overlays > self.records[
+            'overlays'] or n_hits > self.records[
+                'n_hits'] or n_triggered_hits > self.records["n_triggered_hits"]
+
+        if not is_new_record or (utc_timestamp - self.last_plot_time) < 60:
+            print("Skipping plot...")
+            return
+
+        dus = set(hits.du)
         n_dus = len(dus)
 
+        grid_lines = self.calib.detector.pmts.pos_z[
+            (self.calib.detector.pmts.du == min(dus))
+            & (self.calib.detector.pmts.channel_id == 0)]
+
         trigger_params = ' '.join([
             trig
             for trig, trig_check in (("MX", is_mxshower), ("3DM", is_3dmuon),
@@ -187,9 +197,7 @@ class ZTPlot(kp.Module):
                      grid_lines=grid_lines)
         shutil.move(f_tmp, f)
 
-        if overlays > self.records['overlays'] or n_hits > self.records[
-                'n_hits'] or n_triggered_hits > self.records[
-                    "n_triggered_hits"]:
+        if is_new_record:
             self.cprint(
                 "New record! Overlays: {}, hits: {}, triggered hits: {}".
                 format(overlays, n_hits, n_triggered_hits))
@@ -217,6 +225,7 @@ class ZTPlot(kp.Module):
 
         plt.close(fig)
         plt.close('all')
+        self.last_plot_time = utc_timestamp
 
     def finish(self):
         self.run = False