No need to defend myself. I do understand the scalpel versus hammer logic.
After many confusing hours of testing code and being uncertain which part was wrong (underscore, list names, variable names, etc.) I realized the first / in text2path was missing.
var/charactertype = text2path("/mob/player/character/[charactergenders[charactergender]]/[charactertones[charactertone]]")
Resolved code above. Thanks again for all your help Ter! I am sure I will be back soon with another problem soon enough...
I understand that you are expressing persistence semi-seriously, but trying a thousand different things is never going to help. When you run into issues with code, you need to try targeted surgery. Just trying random things isn't going to help you because debugging isn't about guessing randomly. It's about using logic to deduce and correct the problem as well as build a better understanding of why the errors occurred in the first place.