From: David Endre Subject: [Circle] CODE: Char_ban command I just wrote this code a couple of days a ago, so I could easily ban inappropriate names online. So here you go :) in act.wizard.c: add these towards the top extern FILE *player_fl; void Read_Invalid_List(void); then add this somewhere in the same file ACMD(do_xname) { char tempname[MAX_INPUT_LENGTH]; int i = 0; FILE *fp; *buf = '\0'; one_argument(argument, buf); if(!*buf) send_to_char("Xname which name?\r\n", ch); if(!(fp = fopen(XNAME_FILE, "a"))) { perror("Problems opening xname file for do_xname"); return; } strcpy(tempname, buf); for (i = 0; tempname[i]; i++) tempname[i] = LOWER(tempname[i]); fprintf(fp, "%s\n", tempname); fclose(fp); sprintf(buf1, "%s has been xnamed!", tempname); send_to_char(buf1, ch); Read_Invalid_List(); } finally in interpreter.c add: ACMD(do_xname); and { "xname" , POS_DEAD , do_xname, LVL_IMPL, 0 }, This is basically how mine is set up...Note that code doesn't include very many checks and this is the main reason I only let Imps use this code. If you decide to add on please send me your additions :) Or if you have any problems or questions about this code mail me.