Not feeling the best right now, but one thing I noticed a few times in your script, is a comparison like (mood == happy) rather than (%mood == happy)
Doing the comparison as you have it, will always come back false, since you're comparing to literal strings, rather than a variable and a literal string.

Aside from that, I can't see any reason why it would be working for other people, but not you (presuming you're using a different client interface, that is)