Here's a quick little function to toggle weapon flags on weapons. It can come in handy if you don't have OLC (like me because I'm lazy :). It seems to work, but hasn't been thoroughly tested as of yet. Here's a helpfile entry for it: 1 WFLAG~ Usage: wflag <object> <flag number> WFLAG is used to add or remove weapon flags to/from a weapon. The flag will be toggled when the command is used, ie, if it's on, it'll be turned off, and likewise. Flag number table: Flaming: 1 Frost: 2 Vampiric: 3 Sharp : 4 Vorpal: 5 Two Handed: 6 Shocking: 7 Poison: 8 ~ put this in act_wiz.c: void do_wflag(CHAR_DATA *ch, char *argument) { OBJ_DATA *obj; char arg1[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; int bitvector; int flag; argument = one_argument(argument, arg1); argument = one_argument(argument, arg2); if (arg1[0] == '\0' || arg2[0] == '\0') { send_to_char("Syntax: wflag <object> <flag number>\n",ch); send_to_char("See the help file for a list of flag numbers.\n\r",ch); return; } if ((obj = get_obj_world(ch, arg1)) == NULL) { send_to_char("Nothing like that in Heaven, Hell, or Earth.\n\r",ch); return; } if(obj->item_type != ITEM_WEAPON) { send_to_char("That object is not a weapon.\n\r",ch); return; } flag = atoi( arg2 ); switch ( flag ) { case 1: bitvector = WEAPON_FLAMING; break; case 2: bitvector = WEAPON_FROST; break; case 3: bitvector = WEAPON_VAMPIRIC; break; case 4: bitvector = WEAPON_SHARP; break; case 5: bitvector = WEAPON_VORPAL; break; case 6: bitvector = WEAPON_TWO_HANDS; break; case 7: bitvector = WEAPON_SHOCKING; break; case 8: bitvector = WEAPON_POISON; break; default: bitvector = 0; } if (bitvector == 0) { send_to_char("There are no weapon flags like that.\n\r",ch); return; } if (IS_SET(obj->value[4], bitvector)) REMOVE_BIT(obj->value[4], bitvector); else SET_BIT(obj->value[4], bitvector); send_to_char("Ok.\n\r",ch); return; } Any questions or comments can be sent to kyle@caseynet.com. You're welcome to use this without mentioning me - it's not that complex. :) Enjoy, Thori