Here's an update for drowning and Underwater rooms! Give credit to me however you see fit. Questions or comments to ryouga@jessi.indstate.edu. in merc.h: put this with the other pulses. #define PULSE_UNDERWATER (20 * PULSE_PER_SECOND) and this with the other room flags. #define ROOM_UNDER_WATER (##) ## is any free value. in update.c: stick this in with the other update declarations. void underwater_update args( ( void ) ); add this somewhere. void underwater_update( void ) { CHAR_DATA *ch; CHAR_DATA *ch_next; for ( ch = char_list; ch != NULL; ch = ch_next) { ch_next = ch->next; if (!IS_NPC(ch) && !IS_IMMORTAL(ch) && IS_SET(ch->in_room->room_flags, ROOM_UNDER_WATER) ) { if ( ch->hit > 20) { ch->position = POS_RESTING; ch->hit /= 2; send_to_char("You're drowning!!!\n\r", ch); } else { ch->hit = 1; raw_kill(ch); send_to_char("You are DEAD!!\n\r", ch ); } } } } put this in update_handler. static int pulse_underwater; if ( --pulse_underwater <= 0 ) { pulse_underwater = PULSE_UNDERWATER; underwater_update ( ); } in act_move.c: put this in move_char. if (( in_room->room_flags == ROOM_UNDER_WATER || to_room->room_flags == ROOM_UNDER_WATER ) && (!IS_AFFECTED(ch,AFF_SWIM) && !IS_IMMORTAL(ch) ) { send_to_char("You can't swim!!\n\r", ch); return; }