Are you suggesting I place my defaults into the core file and then use a local?
No, I'm suggesting using a local variable in that specific, limited scope to avoid writing out the same long table path 5 times in a row. This would only affect the specific lines of code in my post -- it has absolutely nothing to do with how you define your defaults.
I changed to petSetPoints to be more descriptive with so many variables, although I am not quite certain of its practicality because of the SetPoint() function.
You can have as many keys as you want in the "petPoints" table -- the change I suggested simply reduces duplication. It does not limit what you can have stored in the table, and has no effect whatsoever on the structure of the table.
Basically, what you're doing on the lines of code I suggested changing was reading a sentence in a book. The way you were going about it, you were reading the first word, then closing the book and putting it back on the shelf, then taking it off the shelf again, opening to page 52 again, finding line 8 again, and reading the second word in the sentence, then repeating the whole process for the other three words in the sentence.
With the change I suggested making, you would only have to take the book off the shelf, open to the right page, and find the right line once -- then you can just read the first word, read the second word, etc. without having to repeat all the other steps each time.
If it's too confusing, just stick with what you had. This change does not fix any bug, it just makes your code more efficient and easier to read and write, but if you don't understand how it works, then you shouldn't use it, since it will have the opposite effect and make your code harder for you to read and write.