             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][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 as a failsafe?) (I will not use this variable for anything because I'm scared it'll break things during an actual run)
             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][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 as a failsafe?) (I will not use this variable for anything because I'm scared it'll break things during an actual run)
             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();

      for (uint8_t currentByteIndex = 0; currentByteIndex < sizeof(current_macro_input); currentByteIndex++) {
        // Send only data back if it has changed, I don't know how to do this without having two loops
        Serial.write(current_macro_input[currentByteIndex]);
        //Serial.println(current_macro_input[currentByteIndex]);
        //Serial.println("TEST");
      }
      /*
        if (current_macro_input[2] == inner_loop_metadata[currentMacroIndexRunning][2]) {
        //
        //Serial.println("TEST");
        }
      */
    }
    Serial.flush();
    //  Press Button

  }
  digitalWrite(latchPin, HIGH);

  // Press the buttons X, Y and Start for 2 seconds to reset the controller,
  // this is a built in controller feature to make it easier to reset analog sticks and
  // triggers without having to unplug the controller, thanks Nintendo, this feature is very useful!
  inputStatus[buttonX] = LOW;
