diff --git a/y2024/autonomous/auto_splines.h b/y2024/autonomous/auto_splines.h
index 309222f..93360d3 100644
--- a/y2024/autonomous/auto_splines.h
+++ b/y2024/autonomous/auto_splines.h
@@ -19,7 +19,20 @@
  public:
   AutonomousSplines()
       : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
-            "splines/test_spline.json")) {}
+            "splines/test_spline.json")),
+        mobility_and_shoot_spline_(
+            aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+                "splines/mobilityandshoot.0.json")),
+        four_piece_spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/five_note.0.json")),
+        four_piece_spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/five_note.1.json")),
+        four_piece_spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/five_note.2.json")),
+        four_piece_spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/five_note.3.json")),
+        four_piece_spline_5_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/five_note.4.json")) {}
   static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
       aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
           *builder,
@@ -33,9 +46,39 @@
       aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
           *builder,
       aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> MobilityAndShootSpline(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> FourPieceSpline1(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> FourPieceSpline2(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> FourPieceSpline3(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> FourPieceSpline4(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> FourPieceSpline5(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
 
  private:
   aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> mobility_and_shoot_spline_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> four_piece_spline_1_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> four_piece_spline_2_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> four_piece_spline_3_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> four_piece_spline_4_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> four_piece_spline_5_;
 };
 
 }  // namespace y2024::autonomous
