Here's a much more effecient one (Uses one while loop instead of four), usage is the same as the other one.

Code:
alias idle.setmode {
  if ($me isop $1) {
    var %i = 1, %idle.nicks, %active.nicks
    while ($nick($1,%i)) {
      if ($nick($1,$nick($1,%i),$3)) && ($nick($1,%i).idle > $2) { %idle.nicks = %idle.nicks $nick($1,%i) }
      elseif ($nick($1,$nick($1,%i),a,$3)) && ($nick($1,%i).idle <= $2) { %active.nicks = %active.nicks $nick($1,%i) }
      if ($numtok(%idle.nicks,32) == $modespl) { 
        mode $1 $+(-,$str($3,$modespl)) %idle.nicks 
        %idle.nicks = ""
      }
      if ($numtok(%active.nicks,32) == $modespl) { 
        mode $1 $+(+,$str($3,$modespl)) %active.nicks 
        %active.nicks = ""
      }
      inc %i
    }
    if (%idle.nicks) { mode $1 $+(-,$str($3,$numtok(%idle.nicks,32))) %idle.nicks }
    if (%active.nicks) { mode $1 $+(+,$str($3,$numtok(%active.nicks,32))) %active.nicks }
  }
}


New username: hixxy