There's tons of badword/filter kickers already posted here, more on other scripting sites...

Here's a quick code you can try...
Code:
on *:start:_badwd
on *:disconnect:if $hget(badwd) { hsave -n badwd badwords.txt }
on @*:text:*:#:badwds $1-
on @*:action:*:#:badwds $1-
alias -l badwds {
  _badwd
  if $hfind(badwd,$strip($1-),1,W).data {
    ban -ku300 # $nick 2 Swearing
  }
}
alias -l _badwd {
  if !$hget(badwd) {
    hmake badwd 20
    if $file(badwords.txt) { hload -n badwd badwords.txt }
  }
}
alias add.badword { _badwd | hadd badwd $ticks $replace($+(*,$$?1,*),**,*) | hsave -n badwd badwords.txt }

  • Make badwords.txt one word per line using wildcards (* or ?)...

    *swearword*
    *badword*
    *bug?er*
    *vulgarity*
    *expl?tive*
    *etc..*

Or add words with /add.badword [color:gray][word][/color]