diff --git a/y2017/control_loops/superstructure/superstructure_goal.fbs b/y2017/control_loops/superstructure/superstructure_goal.fbs
index 6681262..3cf6945 100644
--- a/y2017/control_loops/superstructure/superstructure_goal.fbs
+++ b/y2017/control_loops/superstructure/superstructure_goal.fbs
@@ -7,27 +7,27 @@
   // frame. Positive is out.
 
   // Goal distance of the intake.
-  distance:double;
+  distance:double (id: 0);
 
   // Caps on velocity/acceleration for profiling. 0 for the default.
-  profile_params:frc971.ProfileParameters;
+  profile_params:frc971.ProfileParameters (id: 1);
 
   // Voltage to send to the rollers. Positive is sucking in.
-  voltage_rollers:double;
+  voltage_rollers:double (id: 2);
 
   // If true, disable the intake so we can hang.
-  disable_intake:bool;
+  disable_intake:bool (id: 3);
 
   // The gear servo value.
-  gear_servo:double;
+  gear_servo:double (id: 4);
 }
 
 table IndexerGoal {
   // Indexer angular velocity goals in radians/second.
-  angular_velocity:double;
+  angular_velocity:double (id: 0);
 
   // Roller voltage. Positive is sucking in.
-  voltage_rollers:double;
+  voltage_rollers:double (id: 1);
 }
 
 table TurretGoal {
@@ -36,39 +36,39 @@
   // turns clockwise (towards right from the front), and decreases when
   // the turrent turns counter-clockwise (towards left from the front).
   // These are from a top view above the robot.
-  angle:double;
+  angle:double (id: 0);
 
   // If true, ignore the angle and track using vision.  If we don't see
   // anything, we'll use the turret goal above.
-  track:bool;
+  track:bool (id: 1);
 
   // Caps on velocity/acceleration for profiling. 0 for the default.
-  profile_params:frc971.ProfileParameters;
+  profile_params:frc971.ProfileParameters (id: 2);
 }
 
 table HoodGoal {
   // Angle the hood is currently at. An angle of zero is at the lower hard
   // stop, angle increases as hood rises.
-  angle:double;
+  angle:double (id: 0);
 
   // Caps on velocity/acceleration for profiling. 0 for the default.
-  profile_params:frc971.ProfileParameters;
+  profile_params:frc971.ProfileParameters (id: 1);
 }
 
 table ShooterGoal {
   // Angular velocity goals in radians/second. Positive is shooting out of the
   // robot.
-  angular_velocity:double;
+  angular_velocity:double (id: 0);
 }
 
 table Goal {
-  intake:IntakeGoal;
-  indexer:IndexerGoal;
-  turret:TurretGoal;
-  hood:HoodGoal;
-  shooter:ShooterGoal;
-  lights_on:bool;
-  use_vision_for_shots:bool;
+  intake:IntakeGoal (id: 0);
+  indexer:IndexerGoal (id: 1);
+  turret:TurretGoal (id: 2);
+  hood:HoodGoal (id: 3);
+  shooter:ShooterGoal (id: 4);
+  lights_on:bool (id: 5);
+  use_vision_for_shots:bool (id: 6);
 }
 
 root_type Goal;
diff --git a/y2017/control_loops/superstructure/superstructure_output.fbs b/y2017/control_loops/superstructure/superstructure_output.fbs
index 5301380..74f6129 100644
--- a/y2017/control_loops/superstructure/superstructure_output.fbs
+++ b/y2017/control_loops/superstructure/superstructure_output.fbs
@@ -2,26 +2,26 @@
 
 table Output {
   // Voltages for some of the subsystems.
-  voltage_intake:double;
-  voltage_indexer:double;
-  voltage_shooter:double;
+  voltage_intake:double (id: 0);
+  voltage_indexer:double (id: 1);
+  voltage_shooter:double (id: 2);
 
   // Rollers on the intake.
-  voltage_intake_rollers:double;
+  voltage_intake_rollers:double (id: 3);
   // Roller on the indexer
-  voltage_indexer_rollers:double;
+  voltage_indexer_rollers:double (id: 4);
 
-  voltage_turret:double;
-  voltage_hood:double;
+  voltage_turret:double (id: 5);
+  voltage_hood:double (id: 6);
 
-  gear_servo:double;
+  gear_servo:double (id: 7);
 
   // If true, the lights are on.
-  lights_on:bool;
+  lights_on:bool (id: 8);
 
-  red_light_on:bool;
-  green_light_on:bool;
-  blue_light_on:bool;
+  red_light_on:bool (id: 9);
+  green_light_on:bool (id: 10);
+  blue_light_on:bool (id: 11);
 }
 
 root_type Output;
diff --git a/y2017/control_loops/superstructure/superstructure_position.fbs b/y2017/control_loops/superstructure/superstructure_position.fbs
index 7f95462..5c70ff4 100644
--- a/y2017/control_loops/superstructure/superstructure_position.fbs
+++ b/y2017/control_loops/superstructure/superstructure_position.fbs
@@ -5,27 +5,27 @@
 table ColumnPosition {
   // Indexer angle in radians relative to the base.  Positive is according to
   // the right hand rule around +z.
-  indexer:frc971.HallEffectAndPosition;
+  indexer:frc971.HallEffectAndPosition (id: 0);
   // Turret angle in radians relative to the indexer.  Positive is the same as
   // the indexer.
-  turret:frc971.HallEffectAndPosition;
+  turret:frc971.HallEffectAndPosition (id: 1);
 }
 
 
 table Position {
   // Position of the intake, zero when the intake is in, positive when it is
   // out.
-  intake:frc971.PotAndAbsolutePosition;
+  intake:frc971.PotAndAbsolutePosition (id: 0);
 
   // The position of the column.
-  column:ColumnPosition;
+  column:ColumnPosition (id: 1);
 
   // The sensor readings for the hood. The units and sign are defined the
   // same as what's in the Goal message.
-  hood:frc971.IndexPosition;
+  hood:frc971.IndexPosition (id: 2);
 
   // Shooter wheel angle in radians.
-  theta_shooter:double;
+  theta_shooter:double (id: 3);
 }
 
 root_type Position;
diff --git a/y2017/control_loops/superstructure/superstructure_status.fbs b/y2017/control_loops/superstructure/superstructure_status.fbs
index 217eb5b..88c335b 100644
--- a/y2017/control_loops/superstructure/superstructure_status.fbs
+++ b/y2017/control_loops/superstructure/superstructure_status.fbs
@@ -6,124 +6,124 @@
 table IndexerStatus {
   // The current average velocity in radians/second. Positive is moving balls up
   // towards the shooter. This is the angular velocity of the inner piece.
-  avg_angular_velocity:double;
+  avg_angular_velocity:double (id: 0);
 
   // The current instantaneous filtered velocity in radians/second.
-  angular_velocity:double;
+  angular_velocity:double (id: 1);
 
   // True if the indexer is ready.  It is better to compare the velocities
   // directly so there isn't confusion on if the goal is up to date.
-  ready:bool;
+  ready:bool (id: 2);
 
   // True if the indexer is stuck.
-  stuck:bool;
-  stuck_voltage:float;
+  stuck:bool (id: 3);
+  stuck_voltage:float (id: 4);
 
   // The state of the indexer state machine.
-  state:int;
+  state:int32 (id: 5);
 
   // The estimated voltage error from the kalman filter in volts.
-  voltage_error:double;
+  voltage_error:double (id: 6);
   // The estimated voltage error from the stuck indexer kalman filter.
-  stuck_voltage_error:double;
+  stuck_voltage_error:double (id: 7);
 
   // The current velocity measured as delta x / delta t in radians/sec.
-  instantaneous_velocity:double;
+  instantaneous_velocity:double (id: 8);
 
   // The error between our measurement and expected measurement in radians.
-  position_error:double;
+  position_error:double (id: 9);
 }
 
 table ShooterStatus {
   // The current average velocity in radians/second.
-  avg_angular_velocity:double;
+  avg_angular_velocity:double (id: 0);
 
   // The current instantaneous filtered velocity in radians/second.
-  angular_velocity:double;
+  angular_velocity:double (id: 1);
 
   // True if the shooter is ready.  It is better to compare the velocities
   // directly so there isn't confusion on if the goal is up to date.
-  ready:bool;
+  ready:bool (id: 2);
 
   // The estimated voltage error from the kalman filter in volts.
-  voltage_error:double;
+  voltage_error:double (id: 3);
 
   // The current velocity measured as delta x / delta t in radians/sec.
-  instantaneous_velocity:double;
-  filtered_velocity:double;
-  fixed_instantaneous_velocity:double;
+  instantaneous_velocity:double (id: 4);
+  filtered_velocity:double (id: 5);
+  fixed_instantaneous_velocity:double (id: 6);
 
   // The error between our measurement and expected measurement in radians.
-  position_error:double;
+  position_error:double (id: 7);
 }
 
 table ColumnEstimatorState {
-  error:bool;
-  zeroed:bool;
-  indexer:frc971.HallEffectAndPositionEstimatorState;
-  turret:frc971.HallEffectAndPositionEstimatorState;
+  error:bool (id: 0);
+  zeroed:bool (id: 1);
+  indexer:frc971.HallEffectAndPositionEstimatorState (id: 2);
+  turret:frc971.HallEffectAndPositionEstimatorState (id: 3);
 }
 
-table TurretProfiledSubsystemStatus {
+table TurretProfiledSubsystemStatus  {
   // Is the subsystem zeroed?
-  zeroed:bool;
+  zeroed:bool (id: 0);
 
   // The state of the subsystem, if applicable.  -1 otherwise.
-  state:int;
+  state:int (id: 1);
 
   // If true, we have aborted.
-  estopped:bool;
+  estopped:bool (id: 2);
 
   // Position of the joint.
-  position:float;
+  position:float (id: 3);
   // Velocity of the joint in units/second.
-  velocity:float;
+  velocity:float (id: 4);
   // Profiled goal position of the joint.
-  goal_position:float;
+  goal_position:float (id: 5);
   // Profiled goal velocity of the joint in units/second.
-  goal_velocity:float;
+  goal_velocity:float (id: 6);
   // Unprofiled goal position from absoulte zero of the joint.
-  unprofiled_goal_position:float;
+  unprofiled_goal_position:float (id: 7);
   // Unprofiled goal velocity of the joint in units/second.
-  unprofiled_goal_velocity:float;
+  unprofiled_goal_velocity:float (id: 8);
 
   // The estimated voltage error.
-  voltage_error:float;
+  voltage_error:float (id: 9);
 
   // The calculated velocity with delta x/delta t
-  calculated_velocity:float;
+  calculated_velocity:float (id: 10);
 
   // Components of the control loop output
-  position_power:float;
-  velocity_power:float;
-  feedforwards_power:float;
+  position_power:float (id: 11);
+  velocity_power:float (id: 12);
+  feedforwards_power:float (id: 13);
 
   // State of the estimator.
-  estimator_state:ColumnEstimatorState;
+  estimator_state:ColumnEstimatorState (id: 14);
 
-  raw_vision_angle:double;
-  vision_angle:double;
-  vision_tracking:bool;
+  raw_vision_angle:double (id: 15);
+  vision_angle:double (id: 16);
+  vision_tracking:bool (id: 17);
 
-  turret_encoder_angle:double;
+  turret_encoder_angle:double (id: 18);
 }
 
 table Status {
   // Are all the subsystems zeroed?
-  zeroed:bool;
+  zeroed:bool (id: 0);
 
   // If true, we have aborted. This is the or of all subsystem estops.
-  estopped:bool;
+  estopped:bool (id: 1);
 
   // Each subsystems status.
-  intake:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus;
-  hood:frc971.control_loops.IndexProfiledJointStatus;
-  shooter:ShooterStatus;
+  intake:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 2);
+  hood:frc971.control_loops.IndexProfiledJointStatus (id: 3);
+  shooter:ShooterStatus (id: 4);
 
-  turret:TurretProfiledSubsystemStatus;
-  indexer:IndexerStatus;
+  turret:TurretProfiledSubsystemStatus (id: 5);
+  indexer:IndexerStatus (id: 6);
 
-  vision_distance:float;
+  vision_distance:float (id: 7);
 }
 
 root_type Status;
