I believe I ran into this issue when I built my auto updater. It's been a while so I don't remember the specifics, but I solved it by using the start event. Now all I had to do is write an ini entry so it was no big deal. I didn't mind it being rewritten everytime I started mIRC.

How about setting a variable.

Code:
if $input(Button Created!,o) { set %load | .load -rs $qt($script) }

on *:load:{
if (%load) { unset %load | <whatever you want do> }
}