http://godsnotwheregodsnot.blogspot.com/2015/05/tats-trivia-bot-v37.html

This script adds asked questions to a hash table and checks when choosing a new question.

Code:
alias -l create.question {
  while ($thget(Ask1)) {
    var %qread = $qread($thget(Ask1))
    ask.deleteitem 1
    thset Catq
    if (%qread) return
  }
  var %temp.ask = $trivia.getq
  thset Catq $qcat(%temp.ask)
  hadd Asked $+ $idenn %temp.ask %temp.ask
}
alias -l trivia.getq {
  unset %ask
  while ((!%ask) || ($hget(Asked $+ $idenn, %ask))) {
    var %tempnumqvalue = $numq
    if (%tempnumqvalue == 0) {
      echo Attempted start without any questions to process. Bailing.
      halt
    }
    if ($hget(Asked $+ $idenn,0).item >= %tempnumqvalue) { hdel -w Asked $+ $idenn * }
    var %ask = $rand(1, %tempnumqvalue)
    if (!$qread(%ask)) { hadd Asked $+ $idenn %ask NA }
  }
  thset Asking %ask
  return %ask
}