Edited stuff:
Code:
menu nicklist {
  DuelZone Rules
  .Whining
  ..$submenu($enforce($1,[b]$snicks[/b],1)) 
  .Grand Exit
  ..Warn : dzrules 2 $1
  ..Kick : dzkick $$1 2 
  ..Ban : dzban $$1 2

...and so on...

Other bits of the script:

Code:
alias enforce {
  if ($1 > 3) { return }
  if ($1 == 1) return { Warn : $!dzrules( $3 , $2 ) }
  if ($1 == 2) return { Kick : $!dzkick( $2 , $3 ) }
  if ($1 == 3) return { Ban : $!dzban( $2 , $3 ) }
}

alias DZkick {
  kick # $1 $replace($+($iif($2 != 0,$+($chr(32))),$dzrules($2),) - Rules: http://www.duelzone.org/chat/Rules.doc [DuelZone],$chr(32),$chr(32))
  hadd -mu600 DZKicks $+(#,.,$ial($1,1).host) $iif($2 != 0,$2)
}
alias DZban {
  ban -ku300 # $1 2 $replace($+($iif($2 != 0,$+($chr(32))),$dzrules($2),) - Rules: http://www.duelzone.org/chat/Rules.doc [DuelZone],$chr(32),$chr(32))
  if ($hfind(DZKicks,$+(#,.,$ial($1,1).host))) {
    hdel DZKicks $+(#,.,$ial($1,1).host)
  }
}
alias DZnotice {
  .notice $1 $+([,#,]) $2-
  echo $color(info) # * DZnotice sent 
}
alias dzrules {
  if ($isid) return $read($scriptdir $+ dzrules.txt,$1) 
  elseif ($2) say $2 - Warning: $read($scriptdir $+ dzrules.txt,$1) [DuelZone]
  else say $read($scriptdir $+ dzrules.txt,$1) [DuelZone]
}


I now get:
RULE Unknown command

I think we're making progress, now to fix the new problem.