Actually i disagree that that is the fix, the $nick cant track the window name as the pm window may change names, or maynot change names when a nick renames depending on common channels etc $window().wid is a better tracker, also the global SET can String to long errror on ya, and just the fact it can be damaged by almost any script that desiders to change it.
I have been using custom idetifiers accessing autoupdated and saved hashtables for a while now to aviod sets, unless its a -u set.
ex.
on *:open:?:*:{ $pms.value($window($nick).wid,$ctime) }
on *:active:?:{ $pms.value($window($active).wid,$null) }
;
alias pms.value {
id ($0) {
if (!$hget(pms.value)) { hmake pms.value }
if ($isfile(pms.value.bin)) { hload -b pms.value pms.value.bin }
if (($0 > 1) { $iif($2-,hadd,hdel) pms.value $1 $2- | hsave -bo pms.value pms.value.bin }
elseif ($0 = 1) { return $hget(pms.value,$1) }
}
}
$pms.value(X) returns the value of item X
$pms.value(X,Y) sets item X to Y
Theres some extra bits to do with error checking in a normal one, but i hand wrote the alias in so didnt include all the bits.