Oh, and also, this line:
VB Code:
  1. Characters(num_characters).name = GetValue(Trim$(Replace$(Mid$(str, currPos + [b]14[/b], (InStr(currPos + 1, str, "{") - (currPos + [b]14[/b]))), vbNewLine, "")))
the currPos+14 means it passes the CHARACTERPROC bit by 1 more than the length of CHARACTERPROC. So, change it to:
VB Code:
  1. Characters(num_characters).name = GetValue(Trim$(Replace$(Mid$(str, currPos + [b]6[/b], (InStr(currPos + 1, str, "{") - (currPos + [b]6[/b]))), vbNewLine, "")))
chem