anchor.diff:  event({npc_shop_buy, ShopItemIndex, QuantityOrColor}, Client=#client{socket=Socket, gid=GID}) ->
   	ShopID = egs_users:shop_get(GID),
   	ItemID = egs_shops_db:nth(ShopID, ShopItemIndex + 1),
  -	log("npc shop ~p buy itemid ~8.16.0b quantity/color+1 ~p", [ShopID, ItemID, QuantityOrColor]),
  +	io:format("~p: npc shop ~p buy itemid ~8.16.0b quantity/color+1 ~p~n", [GID, ShopID, ItemID, QuantityOrColor]),
   	#psu_item{name=Name, rarity=Rarity, buy_price=BuyPrice, sell_price=SellPrice, data=Constants} = egs_items_db:read(ItemID),
   	{Quantity, Variables} = case element(1, Constants) of
   		psu_clothing_item ->
  
positive.code: 	<< SpawnID:32/little, _:64, Type:32/little, _:64 >> = Data,
  	case Type of
  		7 -> % spawn cleared @todo 1201 sent back with same values apparently, but not always
  			log("cleared spawn ~b", [SpawnID]),
  			{ok, User} = egs_users:read(GID),
  			{BlockID, EventID} = psu_instance:spawn_cleared_event(User#users.instancepid, element(2, User#users.area), SpawnID),
  			if	EventID =:= false -> ignore;
  
negative.code: event({npc_invite, NPCid}, Client=#client{gid=GID}) ->
  	{ok, User} = egs_users:read(GID),
  	%% Create NPC.
  	io:format("~p: invited npcid ~b~n", [GID, NPCid]),
  	TmpNPCUser = egs_npc_db:create(NPCid, ((User#users.character)#characters.mainlevel)#level.number),
  	%% Create and join party.
  	case User#users.partypid of
  