Might want to initialize the variable inside of void sub1(). You can declare it up there, but give it the value in the method.
Code:
string sTag;
void sub1(){
sTag = "Lightsaber01";
etc......
I hope that helps.... sometimes there's not a good reason for why some of this stuff happens. It's not a very solid system I guess.
and interesting enough, that HK factory code was before I had taken any programming class, so I guess that deduction would make sense, QGG......
Filename/Tag length might do it too though.. yeah that's probably it.