diff --git a/y2024/control_loops/superstructure/shooter.cc b/y2024/control_loops/superstructure/shooter.cc
index 72ad0d6..2ddaf64 100644
--- a/y2024/control_loops/superstructure/shooter.cc
+++ b/y2024/control_loops/superstructure/shooter.cc
@@ -36,7 +36,8 @@
     const y2024::control_loops::superstructure::Position *position,
     const y2024::control_loops::superstructure::ShooterGoal *shooter_goal,
     double *catapult_output, double *altitude_output, double *turret_output,
-    double *retention_roller_output, double /*battery_voltage*/,
+    double *retention_roller_output,
+    double *retention_roller_stator_current_limit, double /*battery_voltage*/,
     CollisionAvoidance *collision_avoidance, const double intake_pivot_position,
     double *max_intake_pivot_position, double *min_intake_pivot_position,
     flatbuffers::FlatBufferBuilder *fbb) {
@@ -74,6 +75,18 @@
   if (retention_roller_output != nullptr) {
     *retention_roller_output =
         robot_constants_->common()->retention_roller_voltages()->retaining();
+
+    if (piece_loaded) {
+      *retention_roller_stator_current_limit =
+          robot_constants_->common()
+              ->current_limits()
+              ->slower_retention_roller_stator_current_limit();
+    } else {
+      *retention_roller_stator_current_limit =
+          robot_constants_->common()
+              ->current_limits()
+              ->retention_roller_stator_current_limit();
+    }
   }
 
   bool aiming = false;
diff --git a/y2024/control_loops/superstructure/shooter.h b/y2024/control_loops/superstructure/shooter.h
index 521fa04..1550fdc 100644
--- a/y2024/control_loops/superstructure/shooter.h
+++ b/y2024/control_loops/superstructure/shooter.h
@@ -66,7 +66,8 @@
   flatbuffers::Offset<ShooterStatus> Iterate(
       const Position *position, const ShooterGoal *shooter_goal,
       double *catapult_output, double *altitude_output, double *turret_output,
-      double *retention_roller_output, double battery_voltage,
+      double *retention_roller_output,
+      double *retention_roller_stator_current_limit, double battery_voltage,
       /* Hacky way to use collision avoidance in this class */
       CollisionAvoidance *collision_avoidance,
       const double intake_pivot_position, double *max_turret_intake_position,
diff --git a/y2024/control_loops/superstructure/superstructure.cc b/y2024/control_loops/superstructure/superstructure.cc
index 29b4cc9..eeaa2fa 100644
--- a/y2024/control_loops/superstructure/superstructure.cc
+++ b/y2024/control_loops/superstructure/superstructure.cc
@@ -193,6 +193,9 @@
           output != nullptr ? &output_struct.altitude_voltage : nullptr,
           output != nullptr ? &output_struct.turret_voltage : nullptr,
           output != nullptr ? &output_struct.retention_roller_voltage : nullptr,
+          output != nullptr
+              ? &output_struct.retention_roller_stator_current_limit
+              : nullptr,
           robot_state().voltage_battery(), &collision_avoidance_,
           intake_pivot_.estimated_position(), &max_intake_pivot_position,
           &min_intake_pivot_position, status->fbb());
