Okie here's the string editor thingy. Files to change: merc.h comm.c merc.h: ------ - Add the following 4 lines to merc.h: /* string.c */ void string_edit args( ( CHAR_DATA *ch, char **pString ) ); void string_append args( ( CHAR_DATA *ch, char **pString ) ); void string_add args( ( CHAR_DATA *ch, char *argument ) ); - Done merc.h comm.c ------ - In game_loop_*, after read_from_buffer and stop_indling, replace if ( d->connected == CON_PLAYING ) if ( d->showstr_point ) show_string( d, d->incomm ); else interpret( d->character, d->incomm ); else nanny( d, d->incomm ); with: > if ( d->pString ) > string_add( d->character, d->incomm ); ! else if ( d->connected == CON_PLAYING ) if ( d->showstr_point ) show_string( d, d->incomm ); else interpret( d->character, d->incomm ); else nanny( d, d->incomm ); (do this in BOTH game loops, just because you're such a nice person ;) - In process_output, right after /* * Bust a prompt. */ replace if ( fPrompt && !merc_down && d->connected == CON_PLAYING ) if ( d->showstr_point ) write_to_buffer( d, with if ( fPrompt && !merc_down && d->connected == CON_PLAYING ) > if ( d->pString ) > write_to_buffer( d, "] ", 2 ); ! else if ( d->showstr_point ) write_to_buffer( d, - Done comm.c Also, put the string.c file (included) in your src dir and add string.o to O_FILES list in Makefile. At this point you have made the necessary changges for SEditor to work. And here is an example how it works: void do_description( CHAR_DATA *ch, char *argument ) { string_append( ch, &ch->description ); return; } The same way you can add a note edit command: if ( !str_prefix( arg, "edit" ) ) { note_attach( ch ); string_append( ch, &ch->pnote->text ); return; } P.S. I hope that I didn't leave anything out. Get a backup of the old files before you try to apply this patch!