Came across this little problem helping out someone who was trying to install the mailall patch from the people at LORD MUD. They made an improvement to the original mailall patch that was there, well, I'm making an improvement to theirs. This version works for asciipfiles, and doesn't go through looking at each player's file. Will also work for binary pfiles if your struct player_index_element in db.h saves the players' levels to the player index. Otherwise, please use the mailall.lord.txt. "What this code snippet actually does is allow Implementors to mail all players that are in the playerfile at once. This snippet also allows you to email all immortals that are in the game." You'll see that the format of this file is similar to mailall.lord.txt, I didn't see a need to rewrite the stuff that works fine. mail.c: at the top, be sure to declare: extern struct player_index_element *player_table; extern int top_of_p_table; in postmaster_send_mail, find - if (GET_GOLD(ch) < STAMP_PRICE) { sprintf(buf, "$n tells you, 'A stamp costs %d coins.'\r\n" "$n tells you, '...which I see you can't afford.'", STAMP_PRICE); act(buf, FALSE, mailman, 0, ch, TO_VICT); return; } And after it change: if ((recipient = get_id_by_name(buf)) < 0) { act("$n tells you, 'No one by that name is registered here!'", FALSE, mailman, 0, ch, TO_VICT); return; } to: if ((!(str_cmp(buf, "all")) || !(str_cmp(buf, "imms"))) && GET_LEVEL(ch) < LVL_IMPL) { act("$n tells you, 'You must be an Implementor to send a message to everyone or immortals!'", FALSE, mailman, 0, ch, TO_VICT); return; } if (!(str_cmp(buf, "all"))) { recipient = -1; } else if (!(str_cmp(buf, "imms"))) { recipient = -2; } else if ((recipient = get_id_by_name(buf)) < 0) { act("$n tells you, 'No one by that name is registered here!'", FALSE, mailman, 0, ch, TO_VICT); return; } Then find - void store_mail(long to, long from, char *message_pointer) { header_block_type header; data_block_type data; long last_address, target_address; char *msg_txt = message_pointer; int bytes_written = 0; int total_length = strlen(message_pointer); int i; and after it add - if (to == -1) { // "all" - unchanged from mailall.lord.txt for (i = 0; i <= top_of_p_table; i++) store_mail(player_table[i].id, from, message_pointer); return; } if (to == -2) { // "imms" - replacement of the imm_store_mail function for (i = 0; i <= top_of_p_table; i++) { if (player_table[i].level >= LVL_IMMORT) store_mail(player_table[i].id, from, message_pointer); } return; } Well, as the folks at LORD said, this is much more efficient than the previous, and a lot fewer lines of code. No credit needed, just happy to lend a hand! Cathy Gore aka Cheron, Co-Impl, Arcane Realms arcanerealms.org:3011 Thanks to: Mythran the Implementor - L.O.R.D. lord.midsouth.net:9990 for the mailall.lord.txt snippet. Vector for pointing out the binary pfile oversight.