Hmm...sorry about the mixup on the $2, $3..I counted wrong.
In any case, I've done a bit of a rewrite on your code, and come up with this. Give it a try and let me know if it works. At present I'm unable to test it
Code:
on >=100:TEXT:!rosters add *:?: {
    if ($read(Scripts\txts\Rosters.txt, w, $3-)) {
      msg $nick 14«15«0«4 $3- is already a roster! 0»15»14» 
 }
    else {
      write Scripts\txts\Rosters.txt $3-
      msg #nLegends 14«15«0« Added4 $3- to the rosters. 0»15»14» 
     msg $nick 14«15«0« Added4 $3- to the rosters. 0»15»14» 
   }
}
on <100:TEXT:!rosters add *:?: { 
   msg $nick 14«15«0«  Access Denied 70»15»14»  }