This will give you a generic enlist for all for your clans. ** in clans.c ** Change do_enlist to this : void do_enlist( CHAR_DATA *ch, char *argument ) { CLAN_DATA *clan; if ( IS_NPC(ch) || !ch->pcdata ) { send_to_char( "You can't do that.\n\r", ch ); return; } if ( ch->pcdata->clan ) { ch_printf( ch , "You will have to resign from %s before you can join a new organization.\n\r", ch->pcdata->clan->name ); return; } if ( ! IS_SET( ch->in_room->room_flags , ROOM_RECRUIT ) ) { send_to_char( "You don't seem to be in a recruitment office.\n\r", ch ); return; } for ( clan = first_clan; clan; clan = clan->next ) { if ( ch->in_room->vnum == clan->enlistroom ) { SET_BIT( ch->speaks, LANG_CLAN ); ++clan->members; STRFREE( ch->pcdata->clan_name ); ch->pcdata->clan_name = QUICKLINK( clan->name ); ch->pcdata->clan = clan; ch_printf( ch, "Welcome to %s.\n\r", clan->name ); save_clan ( clan ); return; } } send_to_char( "They don't seem to be recruiting right now.\n\r", ch ); return; } add to fread_clan : in CASE 'E' KEY( "Enlist", clan->enlistroom, fread_number( fp ) ); in to do_setclan : change : send_to_char( " leader number1 number2 subclan\n\r", ch ); to : send_to_char( " leader number1 number2 subclan enlistroom\n\r", ch ); Add : if ( !strcmp( arg2, "enlistroom" ) ) { clan->enlistroom = atoi( argument ); send_to_char( "Done.\n\r", ch ); save_clan( clan ); return; } in do_showclan : Add : ch_printf( ch, "Enlist Room: %ld\n\r", clan->enlistroom ); in save_clan Add : fprintf( fp, "Enlist %d\n", clan->enlistroom ); ** in mud.h ** In struct clan_data add : int enlistroom; change : #define ROOM_R_RECRUIT BV27 to : #define ROOM_RECRUIT BV27 ROOM_E_RECRUIT is now a free flag, us it for whatever you like. ** build.c ** change "republic_recruit" to "recruit"