Nightmare mudlib lfun: catch_tell() void catch_tell(string str); Any string told to a living object gets passed through first to any catch_tell() function in the living object. If no such function exists, then nothing happens. If such a function exists, then whatever is defined in catch_tell() by the creator happens. ***** example: This code might appear in any monster: void catch_tell(string str) { string who; if(!sscanf(str, "%s smiles %*s", who) return; if(!present(lower_case(who))) return; tell_room(environment(this_object()), "Monster smiles at "+who+".\n", ({ this_object(), present(lower_case(who)) }) ); tell_object(present(lower_case(who)), "Monster smiles at you.\n"); }