anchor.diff:  			recipe = rList.first;
   		}
   
  -		if(items[recipe.tool].durability != null) {
  +		if (items[recipe.tool].durability != null) {
   			//take away tool durability
   			bool durabilitySuccess = await InventoryV2.decreaseDurability(email, recipe.tool);
  -			if(!durabilitySuccess) {
  +			if (!durabilitySuccess) {
   				return "it's missing";
   			}
   		}
  
positive.code: 			}
  		});
  
  		// Wait for it to make it, then give the item
  		new Timer(new Duration(seconds: recipe.time), () async {
  			// Add the item after we finish "making" one
  			await InventoryV2.addItemToUser(email, items[recipe.output].getMap(), recipe.output_amt);
  			// Award iMG
  			await trySetMetabolics(email, imgMin: recipe.img);
  
  			//send possible quest event
  			messageBus.publish(new RequirementProgress('makeRecipe_${recipe.output}',email));
  
  			// Count stat for achievements
  
negative.code: 		}
  
  		// Take all of the items
  		String missingItem = null;
  		await Future.forEach(recipe.input.keys, (String itemType) async {
  			if (missingItem != null) {
  				// Can't escape the async forEach,
  				// but we can save inventory calls
  				return;
  			}
  
  			int qty = recipe.input[itemType];
  
  			// Test for the item
  			int gotSim = (await InventoryV2.takeAnyItemsFromUser(
  				email, itemType, qty, simulate: true));
  			if (gotSim < qty) {
  				missingItem = items[itemType].name;
  				return;
  			}
  
  			// Remove the item
  			int got = (await InventoryV2.takeAnyItemsFromUser(email, itemType, qty));
  			if (got != qty) {
  				// If they didn't have a required item, they're not making a smoothie
  