I have never had a problem with hadd before. But in this script i'm working on if i just use hadd -m table item info it doesn't get added to the table. If i just put in the -s switch it does for some reason. But I don't want to have -s there... If I manually type in what I want to add it works but in my script it doesn't. It's weird.
  var %searchhashtable = $hget(mashtable,$2)
  if (!%searchhashtable) {
    hadd -sm mashtable $2 $3-

We don't just write the scripts, we put them to the test! (ScriptBusters)