Quote:
something else, when I 'enable' it I get many of these in my status:
* The protection for XXX on * [DALNet] was not added temporarily - remove it manually.
but nothing is added! and ofcourse these are not ops when I join or get op when I am in the channel
The only possible reason for this can be a mis-pasted code: this echo is produced by a single alias - which can only be called "once", via menu popups.

However, if you really don't need a menu switch (imho it's always a good idea to have a switch vor automated things wink ), use the code below. With the menu, it's functions, and all comments removed, you'll save a total of 2.6kb hard disc space. cool
Code:
on me:*:join:#: { add.protect $network $chan }
on *:op:#: { add.single.protect $network $chan $opnick }
on *:help:#: { add.single.protect $network $chan $hnick }
on *:voice:#: { add.single.protect $network $chan $vnick }

on *:kick:#: { if ($knick == $me) rem.protect $network $chan }
on me:*:part:#: { rem.protect $network $chan }
on me:*:quit: { rem.protect $network net }
on *:disconnect: { rem.protect $network net }
on *:exit: { rem.protect }

alias -l add.single.protect {
  !protect $3 $2 2 $1
  set $+(%,tempprotect+,$1,+,$2,+,$address($3,2))
}

alias -l add.protect {
  if ($me ison $2) {
    if ($chan($2).ial) { 
      var %nr = 1
      while ($nick($2,%nr,a,r)) {
        !protect $v1 $2 2 $1
        set $+(%,tempprotect+,$1,+,$2,+,$address($v1,2))
        inc %nr
      }
    }
    else {
      .who $2
      .timer 1 10 add.protect $network $2
    }
  }
}

alias -l rem.protect {
  var %nr = 1
  if (!$2) {
    while ($var(%tempprotect+*,%nr)) {
      echo -s tokenize 43 $v1
      echo -s !protect -r $4 $3 $2
      inc %nr
    }
    unset %tempprotect+*
  }
  elseif ($2 == net) {
    var %net = $1
    while ($var($+(%,tempprotect+,%net,+*),%nr)) {
      tokenize 43 $v1
      !protect -r $4 $3 $2
      inc %nr
    }
    unset $+(%,tempprotect+, [ %net ] ,+*)
  }
  else {
    var %net = $1, %chan = $2
    while ($var($+(%,tempprotect+,%net,+,%chan,+*),%nr)) {
      tokenize 43 $v1
      !protect -r $4 $3 $2
      inc %nr
    }
    unset $+(%,tempprotect+, [ %net ] ,+, [ %chan ] ,+*)
  }
}

Quote:
last, I hope the protects are added at the bottom of the list...
mIRC sorts the list automatically (think e.g. of adding/changing/removing only parameters of a protection). You cannot assign a list position manually.