Open up mud.h with pico, and search for 'update.c'....you will find a list of function declarations. At the bottom of those, add this line: void restore_char args( (CHAR_DATA *ch) ); Save mud.h and close the file. Next, pico open update.c, then find the function gain_exp(). (A search for the word 'obtained' should bring you right into it). Near the bottom of the function, you will see this code: while ( ch->level < LEVEL_AVATAR && ch->exp >= exp_level(ch, ch->level+1)) { set_char_color( AT_WHITE + AT_BLINK, ch ); ch_printf( ch, "You have now obtained experience level %d!\n\r", ++ch->level ); advance_level( ch ); IMMEDIATELY after the line 'advance_level( ch );', add this line of code: restore_char(ch); Finally, go to the very bottom of the update.c file, and add this code: void restore_char (CHAR_DATA *ch) { ch->hit = ch->max_hit; ch->mana = ch->max_mana; ch->move = ch->max_move; if ( ch->pcdata ) { ch->pcdata->condition[COND_BLOODTHIRST] = (10 + ch->level); ch->pcdata->condition[COND_FULL] = 40; /* add this if you wish to restore hunger */ ch->pcdata->condition[COND_THIRST] = 40; /* add this if you wish to restore thirst */ } update_pos( ch ); send_to_char_color("&YThe gods are pleased with your progress, and have restored you!\n\r", ch); return; } Save the file, and close pico. Then, while still in the SRC directory, type 'make clean'. After it cleans out the object files, type 'make', to recompile. Once compiled, the mud will need to be rebooted. One note: This adds a function [restore_char()] to your mud, if you have a reason for wanting to restore a char for other things, you can simply call this function from whatever bit of code you want. Just make sure you don't restore_char on a mob! :) Enjoy :) Sadiq sadiq@a-znet.com