I noticed the old exclamation snippet didn't work with circleMUD 3.1 so I just made a quick and dirty fix. ACMD(do_say) { skip_spaces(&argument); char buf[MAX_INPUT_LENGTH + 12]; if (!*argument) { send_to_char(ch, "Yes, but WHAT do you want to say?\r\n"); } else { if (argument[strlen(argument) - 1] == '?') { snprintf(buf, sizeof(buf), "&M$n asks, '%s'&n", argument); act(buf, FALSE, ch, 0, 0, TO_ROOM); if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_NOREPEAT)) { send_to_char(ch, "%s", CONFIG_OK); } else { delete_doubledollar(argument); send_to_char(ch, "&MYou ask, '%s'&n\r\n", argument); } } else if (argument[strlen(argument) - 1] == '!') { snprintf(buf, sizeof(buf), "&M$n exclaims, '%s'&n", argument); act(buf, FALSE, ch, 0, 0, TO_ROOM); if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_NOREPEAT)) { send_to_char(ch, "%s", CONFIG_OK); } else { delete_doubledollar(argument); send_to_char(ch, "&MYou exclaim, '%s'&n\r\n", argument); } } else { snprintf(buf, sizeof(buf), "&M$n says, '%s'&n", argument); act(buf, FALSE, ch, 0, 0, TO_ROOM); if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_NOREPEAT)) { send_to_char(ch, "%s", CONFIG_OK); } else { delete_doubledollar(argument); send_to_char(ch, "&MYou say, '%s'&n\r\n", argument); } } } /* trigger check */ speech_mtrigger(ch, argument); speech_wtrigger(ch, argument); } Feel free to make this properly and give me an e-mail so I can implement it. Bejhan Jetha bejhan of Chrono Apocolypse -- Thats right we're back in action! chrono.sytes.net:4000 - builders needed! bejhanj@shaw.ca