so after playing with this for way too long I deleted it and started again using Loki's version as a base line..

Code:
alias moresatanicfiltercommand {
  unset %rank. $+ $1 $+ $2
  if ($($+(%,channelisonline.,$1),2) == False) {
    hmake $($+($1,.points),2) 
    hload -i $($+($1,.points),2) $($+(points.,$1,.ini),2)  
    findrank $1 $2
    hfree $($+($1,.points),2)
  }
  elseif ($($+(%,channelisonline.,$1),2) == True) {
    findrank $1 $2
  }
}
alias findrank {
  var %i = 1, %n = $hget($($+($1,.points),2),0).data, %higherranks = 1,%username $hget($($+($1,.points),2), $2)
  while (%i <= %n) {
    if ($hget($($+($1,.points),2),%i).data > %username) {
      inc %higherranks
    }
    inc %i
  }
  set -u1000 %rank. $+ $1 $+ $2 %higherranks
}


This work much better, ty.