Wow, thanks for the quick reply!
I do need the debounce, without it the input gets triggered 20-30 times with a quick pass of the hand/object.
I thought about adding a hardware debounce chip, but went for software debouncing.
Excuse the semi-messy code (attached and inserted), I was planning on cleaning up the multiple ifs with a case statement after everything was dialed in.
Also, excuse the section/variables that have to do with the high score reset, I nixed the idea and went a different route with the 2nd push button. (needs some cleaning)
Attached is a quick diagram of my config using "tinkercad"
Granted they do not have my exact prox sensors and I am not showing my 3 LEDs or MAX7 display, it is simply for reference 
Lastly, if someone can let me know that I am doing the int to string to buffer length to char array at the end of the code would ease my mind (it seems to work fine!)
Again thanks, I have a few hours in on this project! 
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 8
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
// HARDWARE SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Scrolling parameters
uint8_t scrollSpeed = 0; // default frame delay value
textEffect_t scrollEffect = PA_PRINT;
textPosition_t scrollAlign = PA_RIGHT;
uint16_t scrollPause = 500; // in milliseconds
// Global message buffers shared by Serial and Scrolling functions
#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "" };
bool newMessageAvailable = true;
//Current and High Score ints
int intCurrentScore = 0;
int intHighScore = 0;
//Push button reset for current score
int inPinCurrReset = 2;
int CurrResetVal = 0;
int PB1State = HIGH;
int PB1LastState = LOW;
unsigned long PB1Debounce = 0;
//Push button reset for high score
int inPinHighReset = 3;
int HighResetVal = 0;
int PB2State = HIGH;
int PB2LastState = LOW;
unsigned long PB2Debounce = 0;
int PB2Flag = 0;
//Proximity Sensor Inputs
int inProximitySensor1 = 4;
int Prox1InputVal = 0;
int Prox1State = HIGH;
int Prox1LastState = LOW;
unsigned long Prox1Debounce = 0;
int inProximitySensor2 = 5;
int Prox2InputVal = 0;
int Prox2State = HIGH;
int Prox2LastState = LOW;
unsigned long Prox2Debounce = 0;
int inProximitySensor3 = 6;
int Prox3InputVal = 0;
int Prox3State = HIGH;
int Prox3LastState = LOW;
unsigned long Prox3Debounce = 0;
//debounce delay & milli variables
unsigned long ulCurrentMilli;
unsigned long ulDebounceDelay = 20;
//Stings for LED screen
String strLEDString;
String strHighScore;
String strCurrentScore;
int intStringLength;
//LED Star Light Outputs & millis
int ouLED1 = 7;
unsigned long ulLEDMilli1 = 1000;
unsigned long ulStartMilli1;
int ouLED2 = 8;
unsigned long ulLEDMilli2 = 1500;
unsigned long ulStartMilli2;
int ouLED3 = 9;
unsigned long ulLEDMilli3 = 1750;
unsigned long ulStartMilli3;
//debug string
String strDebug;
void setup()
{
Serial.begin(57600);
P.begin();
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
pinMode(inPinCurrReset, INPUT);
pinMode(inPinHighReset, INPUT);
pinMode(inProximitySensor1, INPUT);
pinMode(inProximitySensor2, INPUT);
pinMode(inProximitySensor3, INPUT);
pinMode(ouLED1, OUTPUT);
pinMode(ouLED2, OUTPUT);
pinMode(ouLED3, OUTPUT);
newMessageAvailable = true;
}
void readSerial(void)
{
static char *cp = newMessage;
while (Serial.available())
{
*cp = (char)Serial.read();
if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE - 2)) // end of message character or full buffer
{
*cp = '\0'; // end the string
// restart the index for next filling spree and flag we have a message waiting
cp = newMessage;
newMessageAvailable = true;
}
else // move char pointer to next position
cp++;
}
}
void loop()
{
CurrResetVal = digitalRead(inPinCurrReset);
HighResetVal = digitalRead(inPinHighReset);
Prox1InputVal = digitalRead(inProximitySensor1);
Prox2InputVal = digitalRead(inProximitySensor2);
Prox3InputVal = digitalRead(inProximitySensor3);
//get current milli timer
ulCurrentMilli = millis();
//LED1
if (ulCurrentMilli - ulStartMilli1 >= ulLEDMilli1)
{
digitalWrite(ouLED1, !digitalRead(ouLED1));
ulStartMilli1 = ulCurrentMilli;
}
//LED2
if (ulCurrentMilli - ulStartMilli2 >= ulLEDMilli2)
{
digitalWrite(ouLED2, !digitalRead(ouLED2));
ulStartMilli2 = ulCurrentMilli;
}
//LED3
if (ulCurrentMilli - ulStartMilli3 >= ulLEDMilli3)
{
digitalWrite(ouLED3, !digitalRead(ouLED3));
ulStartMilli3 = ulCurrentMilli;
}
//Proximity Sensor 1
if (Prox1InputVal != Prox1LastState)
{
Prox1Debounce = ulCurrentMilli;
}
if ((ulCurrentMilli - Prox1Debounce) > ulDebounceDelay)
{
if (Prox1InputVal != Prox1State)
{
Prox1State = Prox1InputVal;
if (Prox1State == HIGH)
{
intCurrentScore = intCurrentScore + 5;
newMessageAvailable = true;
}
}
}
Prox1LastState = Prox1InputVal;
//Proximity Sensor 2
if (Prox2InputVal != Prox2LastState)
{
Prox2Debounce = ulCurrentMilli;
}
if ((ulCurrentMilli - Prox2Debounce) > ulDebounceDelay)
{
if (Prox2InputVal != Prox2State)
{
Prox2State = Prox2InputVal;
if (Prox2State == HIGH)
{
intCurrentScore = intCurrentScore + 10;
newMessageAvailable = true;
}
}
}
Prox2LastState = Prox2InputVal;
//Proximity Sensor 3
if (Prox3InputVal != Prox3LastState)
{
Prox3Debounce = ulCurrentMilli;
}
if ((ulCurrentMilli - Prox3Debounce) > ulDebounceDelay)
{
if (Prox3InputVal != Prox3State)
{
Prox3State = Prox3InputVal;
if (Prox3State == HIGH)
{
intCurrentScore = intCurrentScore + 25;
newMessageAvailable = true;
}
}
}
Prox3LastState = Prox3InputVal;
//Current Score Reset
if (CurrResetVal != PB1LastState)
{
PB1Debounce = ulCurrentMilli;
}
if ((ulCurrentMilli - PB1Debounce) > ulDebounceDelay)
{
if (CurrResetVal != PB1State)
{
PB1State = CurrResetVal;
if (PB1State == HIGH)
{
intCurrentScore = 0;
newMessageAvailable = true;
}
}
}
PB1LastState = CurrResetVal;
//High and Current Score Reset
if (HighResetVal != PB2LastState)
{
PB2Debounce = ulCurrentMilli;
}
if ((ulCurrentMilli - PB2Debounce) > ulDebounceDelay)
{
if (HighResetVal != PB2State)
{
PB2State = HighResetVal;
if (PB2State == HIGH)
{
PB2Flag = 1;
intCurrentScore = 0;
intHighScore = 0;
newMessageAvailable = true;
}
}
}
PB2LastState = HighResetVal;
//High Score logic
if (intCurrentScore > intHighScore)
{
intHighScore = intCurrentScore;
newMessageAvailable = true;
}
if (P.displayAnimate())
{
if (newMessageAvailable)
{
//convert ints to strings
strHighScore = String(intHighScore);
strCurrentScore = String(intCurrentScore);
if (PB2Flag == 1)
{
// Scrolling parameters
uint8_t scrollSpeed = 20;
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 500; // in milliseconds
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
strLEDString = "Second Grade Rulez!";
PB2Flag = 0;
}
else
{
uint8_t scrollSpeed = 0;
textEffect_t scrollEffect = PA_PRINT;
textPosition_t scrollAlign = PA_RIGHT;
uint16_t scrollPause = 500; // in milliseconds
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
strLEDString = strCurrentScore;
}
//find the length of the string for buff size of char array
intStringLength = strLEDString.length() + 1;
newMessage[intStringLength];
//convert string to char array with string length
strLEDString.toCharArray(newMessage, intStringLength);
strcpy(curMessage, newMessage);
newMessageAvailable = false;
}
P.displayReset();
}
readSerial();
}