What I also like to do is set the variable only after the script is triggered.

Quote:
on *:text:*:#:{
if (%var [ $+ [ $nick ] ]) return
set -u2 %var [ $+ [ $nick ] ]
if ($1 == hi) msg $chan hi
}


This here will set a variable on every single nickname that says anything. The point of the flood protect is to stop people from making my script respond too many times. If mny script doesn't respond I don't need to set the variable. This also will be less timed variables counting down.

Quote:
on *:text:*:#:{
if (%var [ $+ [ $nick ] ]) return
if ($1 == hi) { msg $chan hi | set -u2 %var [ $+ [ $nick ] ] }
}
Now it will only set the variable if they make my script respond.

But what if I have many text responses in this text event? I haven't put this into practice, but this is the idea I had.

Quote:
on *:text:*:#:{
if (%var [ $+ [ $nick ] ]) return
if ($1 == hi) { msg $chan hi | goto var }
if ($1 == bye) { msg $chan Bye $nick $+ ! | goto var }
:var set -u2 %var [ $+ [ $nick ] ]
}


Just means less code is all.