act_wiz.c ********* At the top of the file with the other local variables add: bool double_exp = FALSE; I put this at the bottom of act_wiz.c but you can put it anywhere you like. Uncomment the info code if you use the info channel on your mud. void do_doublexp( CHAR_DATA *ch, char *argument ) { char arg[MIL]; char arg1[MIL]; argument = one_argument( argument, arg ); argument = one_argument( argument, arg1 ); if ( arg[0] == '\0' ) { send_to_char("Syntax: double .\n\r",ch); return; } if (!str_cmp(arg, "on")) { if ( arg1[0] == '\0' ) { send_to_char("You need to appply the number of ticks.\n\r", ch ); return; } if (double_exp) { send_to_char("Double exp is already in affect!\n\r",ch); return; } global_exp = atoi( arg1 ); double_exp = TRUE; /* info( ch, 0, "%s has declared double exp for everyone\n\r", ch->name ); */ send_to_char("Double exp is now in affect!\n\r",ch); return; } if (!str_cmp(arg, "off")) { if (!double_exp) { send_to_char("Double exp is not on please turn it on first!\n\r",ch); return; } double_exp = FALSE; /* info( ch, 0, "%s has removed double experience!\n\r",ch->name ); */ send_to_char( "You have turned off double exp!\n\r", ch ); return; } } update.c ******** At the top of the file below: int save_number = 0; Put this: int global_exp; Then in function update_char: Near the end of the function or any logical spot I put this /* Note this makes use of the info channel so if you don't have it * change this to your global channel. */ if ( global_exp-- > 0) { info( NULL, 0, "Their are %d ticks of double exp left.\n\r", global_exp ); if (global_exp == 0) { info( NULL, 0, "Double exp has run out!\n\r" ); double_exp = FALSE; return; } } merc.h ****** In the global variables below extern OBJ_DATA * obj_free; Put this: extern bool double_exp; extern int global_exp; fight.c ******* in the function xp_compute add a new variable int bonus; at the end of the function below xp = xp * gch->level/( UMAX(1,total_levels -1) ); put this: bonus = xp; if (double_exp) { xp += bonus; info( victim, 0, "You gain %d bonus exp points!\n\r", bonus ); } add definitions for doublexp in interp.c and interp.h and that should do it. If I left anything out please let me know.