after an if don't forget to set {} or mIRC could think the second term is a new line
example :
if (!close isin %bottxt2) iline @badbot 1 $nick - %bottxt2 | goto next
is same as :
if (!close isin %bottxt2) iline @badbot 1 $nick - %bottxt2
goto next
take this :
if (!close isin %bottxt2) { iline @badbot 1 $nick - %bottxt2 | goto next }
PS: the goto is useless here
Your new code :
on ^*:TEXT:*:#chan1,#chan2,#chan3:{
set %nsanenick $nick
set %bottxt2 $1-
if (!close isin %bottxt2) { iline @badbot 1 $nick - %bottxt2 | goto next }
goto next
:next
if (BADBOT isin %nsanenick) { iline @badbot 1 $nick - %bottxt2 | goto stop }
goto end
:stop
haltdef
goto end
:end
}But I don't understand what you want ! If you can explain better ....
[edit]the second if was reversed ! I'm in doubt it worked before !