When you add your entry to the hash table you dont give it any data.
hadd badword %badword
So when you check for $hget(badword,%badword) the result is $null or $false because there is no data.
This is why when you try to remove it with your alias the result is ..
if (!$hget(badword,%rbadword)) { dialog -t badword The badword $+($chr(34),%rbadword,$chr(34)) does not exist in the list. }
edit:
lol, looks like I took too long writing that lol.
