The . at the front of the timer is so it doesnt display the timer messages, this is not related to the other .'s

I use .'s between items becuase it makes em easier to read, and to token up if need be, TIMERKICKRICK is harder to read than TIMER.KICK.RICK

$+ as said above is used to join what follows it to whats in front of it as i need the $nick as part of the timer name.
assume $nick is Guest10101, $chan is #blah
.timer.kick. $+ $nick 1 1200 kick $chan $nick
becomes
.timer.kick.Guest10101 1 1200 kick #blah Guest10101
^ that is a named timer one I can identify using the .kick.Guest10101 within the $timer() identifier.

Below replaces the code before sicne i didnt spot the ($nick == *guest*) in the original code

Code:
on *:JOIN:#:{ if (Guest* iswm $nick) { .timer.kick. $+ $nick 1 1200 kick $chan $nick } }
on *:NICK:{ if ($timer(.kick. $+ $nick)) { .timer.kick. $+ $nick off } }