This was more or less a solution to the problem of Jamiie's predicament. The word counter is based off of another counter, I believe, but the letter counter was completely mine. Feel free to do whatever.
Total size: 688 bytes.
edit - Updated (yet again) with thanks to napa182, RusselB, and mountaindew for ideas, comments, and for the challenge to make it smaller. ^_^
on *:text:*:#:{
if $1 = !score && !%spam {
set -u3 %spam 1
notice $nick $chr(91) Word Count: $readini(wlcount.ini,$nick,words) / Letter Count: $readini(wlcount.ini,$nick,letters) $chr(93) as of $fulldate $+ .
}
if $readini(wlcount.ini,$nick,words) = $null && $readini(wlcount.ini,$nick,letters) = $null {
writeini -n wlcount.ini $nick words 0
writeini -n wlcount.ini $nick letters 0
}
else {
var %wscore $calc($0 + $readini(wlcount.ini,$nick,words))
writeini -n wlcount.ini $nick words %wscore
var %lscore $calc($len($remove($1-,$chr(32)))) + $readini(wlcount.ini,$nick,letters))
writeini -n wlcount.ini $nick letters %lscore
}
}