ON OUTCHAT { CHATSTR LOWERCASE LChat = { nono = { "`page !bad word: " CHATSTR & SAY "" CHATSTR = 127 GOTOROOM ;That's the room you wanted wasn't it? } LChat nono GREPSTR IF } [ "^ass" " ass " " ass$" ] FOREACH You can change 127 GOTOROOM to anything you want like shipping them off to another palace. "palace://welcome.thepalace.com:9998" NETGOTO ON OUTCHAT { { "$1" GREPSUB "crap" + "$2" GREPSUB + CHATSTR = } CHATSTR LOWERCASE "^(.*)shit(.*)$" GREPSTR IF { "$1" GREPSUB "butt" + "$2" GREPSUB + CHATSTR = } CHATSTR LOWERCASE "^(.*)ass(.*)$" GREPSTR IF { "$1" GREPSUB "fruit" + "$2" GREPSUB + CHATSTR = } CHATSTR LOWERCASE "^(.*)fuck(.*)$" GREPSTR IF { "$1" GREPSUB "dang" + "$2" GREPSUB + CHATSTR = } CHATSTR LOWERCASE "^(.*)damn(.*)$" GREPSTR IF } Comes with palace software, but doesnt block it in the log and the reason it doesnt is it enters the log before inchat gets to it, the reason some use inchat is that you can bypass outchat with SAY.... best option is both. ON INCHAT { nocensor GLOBAL { { "$1f***$2" GREPSUB CHATSTR = } { CHATSTR LOWERCASE "^(.*)f[^a-z]*u[^a-z]*c[^a-z]*k(.*)$" GREPSTR } WHILE { "$1c*********$2" GREPSUB CHATSTR = } { CHATSTR LOWERCASE "^(.*)c[^a-z]*o[^a-z]*c[^a-z]*ksucker(.*)$" GREPSTR } WHILE { "$1c***$2" GREPSUB CHATSTR = } { CHATSTR LOWERCASE "^(.*)c[^a-z]*u[^a-z]*n[^a-z]*t(.*)$" GREPSTR } WHILE } nocensor NOT IF } ON OUTCHAT { nocensor GLOBAL { 1 nocensor = } CHATSTR LOWERCASE "censor off" == IF { 0 nocensor = } CHATSTR LOWERCASE "censor on" == IF } Here's a little script that should help with managing usernames (including the ones who try to logon / change their name to the %cyberg crash one, for example. Edit the list as you see fit (WARNING, THE FOLLOWING SCRIPT INCLUDES WORDS THAT MAY BE OFFENSIVE TO SOME). What this script does is to send anyone logging on, a name in the array (including % in it), to the room defined in the GOTOROOM statement and sends a system page to warn your Staff. You may want some other way of dealing with a "name abuser", but I'll leave that up to you. There are two parts to this script. First, place this part in EVERY room, including your gate(s). ON OUTCHAT { NameCon GLOBAL NameCon EXEC } This next part goes at your Gate(s), or any other dropzone you may have defined. ON ENTER { NameCon GLOBAL { { [ "fuck" "shit" "bitch" "whore" "cunt" "penis" "nigga" "f u c k" "nigger" "phuck" "fuk" "asshole" "trenchcoat" "trench coat" "cocksucker" "dickhead" "%[0-9]00" ] NameList = USERNAME LOWERCASE NameStr = { BadName = { { 2009 GOTOROOM } 1 ALARMEXEC "`hide" SAY "`page ;nameprob " USERNAME & SAY EXIT } NameStr BadName GREPSTR IF } NameList FOREACH } ISWIZARD NOT IF } NameCon DEF NameCon EXEC