             }
           }
           if (loopMacro > 0) {
-            //Serial.println("TEST C");
             if (loopCounter > timesToLoop) {
-              //Serial.println("TEST D");
               // Reset all variables related to macro to stop the arduino from running useless code
               macroIndex = 0;
               macroInputsToRun = 0;

            inner_loop_metadata[macroMetadataIndex][2] = 0; // Current input index
            inner_loop_metadata[macroMetadataIndex][3] = 0; // Times to repeat (number of times this inner loop should be executed, before going to the next inner loop, if any)
            inner_loop_metadata[macroMetadataIndex][4] = 0; // Repeat counter (number of times this inner loop was executed)
            inner_loop_metadata[macroMetadataIndex][5] = 0; // Where is the next inner loop's first input (index 0 input for the next inner loop, aka the index for the input in the macro_buffer array) (Continue normally if value is 0, or do nothing if there are no more inputs to be executed) // Current unused, apply logic to this // Is this really needed? (maybe for as a failsafe?)
            inner_loop_metadata[macroMetadataIndex][6] = 0; // Where to start (index of the starting input) (Inclusive)
            inner_loop_metadata[macroMetadataIndex][7] = 0; // Where to end (index of the ending input) (Inclusive)
            inner_loop_metadata[macroMetadataIndex][8] = 0; // How many inner loops that should be executed after this (if <=0, don't execute inner loops any inner loops after this, and move on as normal, if there are normal inputs to be exeucuted, execute those, if there's nothing else to do, go back to the beginning of the larger loop, if > 0, execute n inner loops after this) // Currently unused, apply logic to this // Is this really needed? (maybe for as a failsafe?)
            inner_loop_metadata[macroMetadataIndex][9] = 0; // Unused?
            inner_loop_metadata[macroMetadataIndex][10] = 0; // Unused?
            inner_loop_metadata[macroMetadataIndex][11] = 0; // Postamble
          */
          for (uint8_t macroInputMetadataIndex = 0; macroInputMetadataIndex < sizeof(serial_rx_buffer); macroInputMetadataIndex++) {
            inner_loop_metadata[macroMetadataIndex][macroInputMetadataIndex] = serial_rx_buffer[macroInputMetadataIndex];
            //Serial.print("macroMetadataIndex = ");
            //Serial.println(macroMetadataIndex);
            //Serial.print("macroInputMetadataIndex = ");
            //Serial.println(macroInputMetadataIndex);
            Serial.println(inner_loop_metadata[macroMetadataIndex][macroInputMetadataIndex]);
          }
          //Serial.println("");
        }
      }
    }
    if ((serial_rx_buffer[0] == endingMacroMetadataIndex) && (serial_rx_buffer[11] == endingMacroMetadataIndex)) {
      //Serial.print("Received loop metadata 2 info at index ");
      //Serial.println(serial_rx_buffer[0]);
    }
  }
  runMacro();

void setup()
{
  Serial.begin(baudRate);

  pinMode(motorInput, INPUT);
  pinMode(turboLed, INPUT);
