Well, that script was an unban event.

Everytime a person gets banned, a variable starts as

%bnickNick $banmask

The $identifier was $banmask. It while loops $var(%bnick*,0) until the variable finds the matching bansmask.

Then, once the ban is removed..

I want to unset the variable %bnicknick but it still stays..

I've tried this now..

Modified script for paste.

Code:
  var %i = 1
  while (%i < $var(%bnick*,0)) {
    inc %i
    if ($banmask == $var(%bnick*,%i).value) {
      if ($remove($var(%bnick*,%i),$chr(37),bnick) !ison $chan) { 
        if ($comchan($remove($var(%bnick*,%i),$chr(37),bnick),1)) { 
           /msg blah blah [Script] $remove($var(%bnick*,%i),$chr(37),bnick) you have been unbanned in $chan ( $+ $nick sets mode: -b $banmask $+ ) | /unset $var(%bnick*,%i)
        }
        if (!$comchan($remove($var(%bnick*,%i),$chr(37),bnick),1),44) {
          /notice $remove($var(%bnick*,%i),$chr(37),bnick) [Script] You have been unbanned in $chan ( $+ $nick sets mode: -b $banmask $+ ) | /unset $var(%bnick*,%i)
        }
        /unset $var(%bnick*,%i)
      }
      /unset $var(%bnick*,%i)
    }
    /unset $var(%bnick*,%i)
  }


Hopefully the %bnickNick variables will be unset...

I don't want to /unset $var(%bnick*,0) but I did when it reached over 600.