diff --git a/y2022/actors/auto_splines.cc b/y2022/actors/auto_splines.cc
index 0c98fed..b06ec99 100644
--- a/y2022/actors/auto_splines.cc
+++ b/y2022/actors/auto_splines.cc
@@ -50,5 +50,55 @@
       alliance);
 }
 
+flatbuffers::Offset<frc971::MultiSpline> AutonomousSplines::Spline1(
+    aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+        *builder,
+    aos::Alliance alliance) {
+  return FixSpline(
+      builder,
+      aos::CopyFlatBuffer<frc971::MultiSpline>(spline_1_, builder->fbb()),
+      alliance);
+}
+
+flatbuffers::Offset<frc971::MultiSpline> AutonomousSplines::Spline2(
+    aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+        *builder,
+    aos::Alliance alliance) {
+  return FixSpline(
+      builder,
+      aos::CopyFlatBuffer<frc971::MultiSpline>(spline_2_, builder->fbb()),
+      alliance);
+}
+
+flatbuffers::Offset<frc971::MultiSpline> AutonomousSplines::Spline3(
+    aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+        *builder,
+    aos::Alliance alliance) {
+  return FixSpline(
+      builder,
+      aos::CopyFlatBuffer<frc971::MultiSpline>(spline_3_, builder->fbb()),
+      alliance);
+}
+
+flatbuffers::Offset<frc971::MultiSpline> AutonomousSplines::Spline4(
+    aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+        *builder,
+    aos::Alliance alliance) {
+  return FixSpline(
+      builder,
+      aos::CopyFlatBuffer<frc971::MultiSpline>(spline_4_, builder->fbb()),
+      alliance);
+}
+
+flatbuffers::Offset<frc971::MultiSpline> AutonomousSplines::Spline5(
+    aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+        *builder,
+    aos::Alliance alliance) {
+  return FixSpline(
+      builder,
+      aos::CopyFlatBuffer<frc971::MultiSpline>(spline_5_, builder->fbb()),
+      alliance);
+}
+
 }  // namespace actors
 }  // namespace y2022
diff --git a/y2022/actors/auto_splines.h b/y2022/actors/auto_splines.h
index 9da6bc6..4d532f4 100644
--- a/y2022/actors/auto_splines.h
+++ b/y2022/actors/auto_splines.h
@@ -20,7 +20,17 @@
  public:
   AutonomousSplines()
       : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
-            "splines/test_spline.json")) {}
+            "splines/test_spline.json")),
+        spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/spline_1.json")),
+        spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/spline_2.json")),
+        spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/spline_3.json")),
+        spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/spline_4.json")),
+        spline_5_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
+            "splines/spline_5.json")) {}
 
   static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
       aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
@@ -32,8 +42,34 @@
           *builder,
       aos::Alliance alliance);
 
+  flatbuffers::Offset<frc971::MultiSpline> Spline1(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> Spline2(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> Spline3(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> Spline4(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+  flatbuffers::Offset<frc971::MultiSpline> Spline5(
+      aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
+          *builder,
+      aos::Alliance alliance);
+
  private:
   aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
+  aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_5_;
 };
 
 }  // namespace actors
diff --git a/y2022/actors/splines/spline_1.json b/y2022/actors/splines/spline_1.json
new file mode 100644
index 0000000..861666f
--- /dev/null
+++ b/y2022/actors/splines/spline_1.json
@@ -0,0 +1 @@
+{"spline_count": 2, "spline_x": [-0.2256402886254385, -0.24061367759192365, -0.28728163091905445, 0.1786412134696551, 0.30022168717049524, 0.6726955312497593, 1.0451693753290234, 1.6685365897867115, 2.269065889291825, 2.438724256360172, 2.628171375352151], "spline_y": [2.3309349464975493, 2.6154293368607635, 2.9503640153538404, 3.66356656451471, 3.5787923664108376, 3.5787923664108376, 3.5787923664108376, 3.66356656451471, 3.517591006104223, 3.241928074677876, 2.979616679150519], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 10}]}
\ No newline at end of file
diff --git a/y2022/actors/splines/spline_2.json b/y2022/actors/splines/spline_2.json
new file mode 100644
index 0000000..f261325
--- /dev/null
+++ b/y2022/actors/splines/spline_2.json
@@ -0,0 +1 @@
+{"spline_count": 1, "spline_x": [2.628171375352151, 2.7183463717109815, 2.769386307986923, 2.963347047414885, 3.0216384686431867, 3.313095574784694], "spline_y": [2.979616679150519, 2.8646708974512585, 2.7753740109934886, 2.5570038752453335, 2.2218282031826, 2.148963926647223], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 10}]}
\ No newline at end of file
diff --git a/y2022/actors/splines/spline_3.json b/y2022/actors/splines/spline_3.json
new file mode 100644
index 0000000..c5bcdb8
--- /dev/null
+++ b/y2022/actors/splines/spline_3.json
@@ -0,0 +1 @@
+{"spline_count": 1, "spline_x": [3.313095574784694, 4.157153183357088, 5.650873561635817, 6.001252415799964, 6.333190277639684, 6.720451116452686], "spline_y": [2.148963926647223, 1.9988483070418415, 2.2385812072594153, 2.5520780767747038, 2.699606015370134, 2.847133953965564], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 10}]}
diff --git a/y2022/actors/splines/spline_4.json b/y2022/actors/splines/spline_4.json
new file mode 100644
index 0000000..5c93fa0
--- /dev/null
+++ b/y2022/actors/splines/spline_4.json
@@ -0,0 +1 @@
+{"spline_count": 1, "spline_x": [6.720451116452686, 5.982811423475535, 5.227386296005803, 4.608975667524007, 3.06982032552487, 2.5343458588073577], "spline_y": [2.847133953965564, 2.5520780767747038, 2.2949124753895456, 1.6352744716756296, 1.6627593884970424, 1.9804073147174122], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 10}]}
\ No newline at end of file
diff --git a/y2022/actors/splines/spline_5.json b/y2022/actors/splines/spline_5.json
new file mode 100644
index 0000000..9771c34
--- /dev/null
+++ b/y2022/actors/splines/spline_5.json
@@ -0,0 +1 @@
+{"spline_count": 1, "spline_x": [2.5343458588073577, 1.9811160890744945, 1.3910043346927745, 0.6718056340400533, -0.48997688239895876, -0.821914744238676], "spline_y": [1.9804073147174122, 2.367668153530416, 2.75492899234342, 3.381922731373998, 3.5663326546182854, 3.5663326546182854], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 10}]}
