• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Celestial Essence macro

Siddin

Rikk-tikk-tikki-tikki-tchk!
Joined
Feb 6, 2005
RedCents
504¢
you shouldn't need the restock.ini or the restock2.ini, but you'll still need the rest.
To use this macro you need to start it while your in the bazaar. On you you need 8 trader satchels. in the bank the first 7 spots need to be bags that you can hold outside of the bazaar and not be encumbered. the 8th slot needs to be the mixing bowl. right clicking on the mixing bowl needs to be set so it brings up the old combining window for tradeskills.
Rich (BB code):
#include move.inc
    Sub Main 
    
    :Start 
    :recheck		
 					 /echo Checking: Celestial Essence (${FindItemCount[=Celestial Essence]}/100) 
  			 /if (${FindItemCount[=Celestial Essence]} > 100) {
  				/ooc Celestial Essence 10p each
    				/delay 600s
    				/goto :recheck 
    				}
 					 /if (${FindItemCount[=Celestial Essence]} < 100) /call GoToPOK
    /goto :Start
    /return 
    
    
    
    
    
    Sub GoToPOK
      /echo Going to Plane of Knowledge
    /warp loc 1167.55 -847.07 2.28
    /target banker denton
    /face fast nolook
    /click right target
    /call bankswitch
    /delay 2s
    /cleanup
    /sit
    /delay 30s
  /zone poknowledge
    
    
    | POK
    /delay 30s
    /doort pok
    /stick
    /delay 10s
    /target darius gandril
    /warp loc 54.37 1516.39 -124.25
    /delay 5
    /face fast nolook
    /delay 2s
    /stick 10
    /delay 2s
    /click right target
    /delay 2s
    /call restocking
    /stick off
    /delay 2s
    
    /call movetoloc -60.43 1513.25
    /call movetoloc -72.33 1435.96
    :PullMoveLoopw
      /if (${Me.State.Equal[SIT]}) /stand 
      /face nolook loc -114.14,1424.46
      /if (${Math.Distance[-114.14,1424.46]}>2) {
    	/nomodkey /keypress forward hold
    	/nomodkey /keypress USE
      }
      /if (${Math.Distance[-114.14,1424.46]}<=2) {
    	/nomodkey /keypress forward
    	/goto :PullMoveLoopx
      }
      /goto :PullMoveLoopw
      /delay 1s
    
      :PullMoveLoopx
    
    /call movetoloc -114.66 1412.35
    /target Loran Thu`leth
    /call restocking2
    /cleanup
    /delay 1s
 /zone bazaar
    /delay 30s
    /warp loc 1167.55 -847.07 2.28
    /call Make CelestialEssence silent-mode=1
    /delay 10s
    /call bagswitchback
    /delay 5s
    /warp loc 1419.85 -961.09 -26.97
    /trad
    /delay 1s
    /notify bazaarWND BZW_Start_Button leftmouseup 
    /return
    
    Sub bankswitch
    /target banker denton
    /click right target
    /delay 5s
    /shift /notify InventoryWindow IW_Money0 leftmouseup 
    /shift /notify BigBankWnd BIGB_Money0 leftmouseup
    /delay 5s
    /notify BigBankWnd BIGB_Money0 leftmouseup
    /delay 5s
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /nomodkey /keypress backspace chat
    /delay 3
    /keypress 1 chat
    /keypress 2 chat
    /keypress 0 chat
    /keypress 0 chat
    /delay 3
    /notify QuantityWnd QTYW_Accept_Button leftmouseup
    /notify InventoryWindow IW_Money0 leftmouseup 
    /delay 3
    /call OpenPacks
    /delay 5s
    /itemnotify pack1 leftmouseup
    /itemnotify bank1 leftmouseup
    /itemnotify pack1 leftmouseup
    /itemnotify pack2 leftmouseup
    /itemnotify bank2 leftmouseup
    /itemnotify pack2 leftmouseup
    /itemnotify pack3 leftmouseup
    /itemnotify bank3 leftmouseup
    /itemnotify pack3 leftmouseup
    /itemnotify pack4 leftmouseup
    /itemnotify bank4 leftmouseup
    /itemnotify pack4 leftmouseup
    /itemnotify pack5 leftmouseup
    /itemnotify bank5 leftmouseup
    /itemnotify pack5 leftmouseup
    /itemnotify pack6 leftmouseup
    /itemnotify bank6 leftmouseup
    /itemnotify pack6 leftmouseup
    /itemnotify pack7 leftmouseup
    /itemnotify bank7 leftmouseup
    /itemnotify pack7 leftmouseup
    /itemnotify pack8 leftmouseup
    /itemnotify bank8 leftmouseup
    /itemnotify pack8 leftmouseup
    /itemnotify pack1 rightmouseup
    /itemnotify bank1 rightmouseup
    /itemnotify pack2 rightmouseup
    /itemnotify bank2 rightmouseup
    /itemnotify pack3 rightmouseup
    /itemnotify bank3 rightmouseup
    /itemnotify pack4 rightmouseup
    /itemnotify bank4 rightmouseup
    /itemnotify pack5 rightmouseup
    /itemnotify bank5 rightmouseup
    /itemnotify pack6 rightmouseup
    /itemnotify bank6 rightmouseup
    /itemnotify pack7 rightmouseup
    /itemnotify bank7 rightmouseup
    /itemnotify pack8 rightmouseup
    /itemnotify bank8 rightmouseup
    /cleanup
    /return
    
    
    
    
    Sub bagswitchback 
    /target banker denton
    /click right target
    /delay 5s
    /shift /notify InventoryWindow IW_Money0 leftmouseup 
    /shift /notify BigBankWnd BIGB_Money0 leftmouseup
    /delay 5s
    /shift /itemnotify in pack1 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack1 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack2 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack3 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack4 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack5 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack6 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 5 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 6 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 7 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 8 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 9 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack7 10 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack8 1 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack8 2 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack8 3 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /shift /itemnotify in pack8 4 leftmouseup
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /delay 5s
    /itemnotify pack1 leftmouseup
    /itemnotify bank1 leftmouseup
    /itemnotify pack1 leftmouseup
    /itemnotify pack2 leftmouseup
    /itemnotify bank2 leftmouseup
    /itemnotify pack2 leftmouseup
    /itemnotify pack3 leftmouseup
    /itemnotify bank3 leftmouseup
    /itemnotify pack3 leftmouseup
    /itemnotify pack4 leftmouseup
    /itemnotify bank4 leftmouseup
    /itemnotify pack4 leftmouseup
    /itemnotify pack5 leftmouseup
    /itemnotify bank5 leftmouseup
    /itemnotify pack5 leftmouseup
    /itemnotify pack6 leftmouseup
    /itemnotify bank6 leftmouseup
    /itemnotify pack6 leftmouseup
    /itemnotify pack7 leftmouseup
    /itemnotify bank7 leftmouseup
    /itemnotify pack7 leftmouseup
    /itemnotify pack8 leftmouseup
    /itemnotify bank8 leftmouseup
    /itemnotify pack8 leftmouseup
    /cleanup
    /return
    Sub restocking
    |darius gandril Celestial Solvent
    		/if (!${Target.ID} && !${Merchant.Open}) { 
    				/echo Target a merchant! 
    				/endmacro 
    		} 
    		/if (${Target.ID} && !${Merchant.Open}) { 
    				/click right target 
    				/delay 1s 
    		} 
    		/if (${Ini[Restock.ini,${Me.Name}].Length}) /call ProcessIni 
    		/if (${Merchant}) { 
    				/keypress esc 
    				/keypress esc 
    		} 
    		/return 
    
    Sub restocking2
    		/if (!${Target.ID} && !${Merchant.Open}) { 
    				/echo Target a merchant! 
    				/endmacro 
    		} 
    		/if (${Target.ID} && !${Merchant.Open}) { 
    				/click right target 
    				/delay 1s 
    		} 
    		/if (${Ini[Restock.ini,${Me.Name}].Length}) /call ProcessIni2 
    		/if (${Merchant}) { 
    				/keypress esc 
    				/keypress esc 
    		} 
    		/return
    		
    Sub ProcessIni 
    		/declare index int local 
    		/declare KeyNames string local ${Ini[Restock.ini,${Me.Name}]} 
    		/declare ItemName string local 
    		/declare ItemQty int local 
 					 /echo Checking: Celestial Solvent (${FindItemCount[=Celestial Solvent]}/${ItemQty}) 
 					 /if (${FindItemCount[=Celestial Solvent]} < ${660}) /call Restock "Celestial 
    
    Solvent" 660 
    		/return 
    		
    
    Sub ProcessIni2
    		/declare index int local 
    		/declare KeyNames string local ${Ini[Restock.ini,${Me.Name}]} 
    		/declare ItemName string local 
    		/declare ItemQty int local 
 					 /echo Checking: The Scent of Marr (${FindItemCount[=The Scent of Marr]}/${ItemQty}) 
 					 /if (${FindItemCount[=The Scent of Marr]} < ${660}) /call Restock "The Scent of 
    
    Marr" 660 
    		/return 
    
    Sub Restock(ItemName,Qty) 
    		/declare ItemSlot int local 
    
 		/if (${Merchant.Item[=${ItemName}].InvSlot}) /call BuyItems "${ItemName}" ${Qty} 
    		
    		/return 
    
    Sub BuyItems(ItemName,Qty) 
    		/declare StartCash int local ${Me.Cash} 
    		/declare QtyStart int local ${FindItemCount[=${ItemName}]} 
    		/declare QtyNeeded int local 
    		
    		/if (!${Merchant.Open}) { 
 				/echo No Merchant open to buy from 
    				/return 
    		} 
    		
    		/if (${FindItemCount[=${ItemName}]} >= ${Qty}) { 
 			 /echo Already have all the ${ItemName}(s) needed. 
    				/return 
    		} 
    		
    		/itemnotify ${Merchant.Item[=${ItemName}].InvSlot} leftmouseup 
    		
    		/varset QtyNeeded ${Math.Calc[${Qty} - ${FindItemCount[=${ItemName}]}].Int} 
    		:BuyItemLoop0 
    		/doevents 
    		/if (${QtyNeeded} >= 20) { 
 			 /call CheckFunds "${ItemName}" ${Merchant.Item[=${ItemName}].BuyPrice} 20 
 			 /if (${Me.FreeInventory[${Merchant.Item[=${ItemName}].Size}]}) { 
 					 /buyitem 20 
 			 } else {		
 					 /echo No space to buy more ${ItemName}, exiting 
 					 /endmacro 
    				} 
    			    /varset QtyNeeded ${Math.Calc[${QtyNeeded}-20]} 
    		} else { 
 			 /call CheckFunds "${ItemName}" ${Merchant.Item[=${ItemName}].BuyPrice} ${QtyNeeded} 
    				/buyitem 20 
    		} 
    		/delay 1s 
    		/if (${FindItemCount[=${ItemName}]} < ${Qty}) /goto :BuyItemLoop0 
    		
    		/echo Purchased ${Math.Calc[${Qty} - ${QtyStart}].Int} ${ItemName}(s) for 
    
    ${Math.Calc[(${StartCash}-${Me.Cash})/1000].Int}pp ${Math.Calc[((${StartCash}-${Me.Cash})/100)%10].Int}gp 
    
    ${Math.Calc[((${StartCash}-${Me.Cash})/10)%10].Int}sp ${Math.Calc[((${StartCash}-${Me.Cash})%10)].Int}cp 
    		
    		/return 
    
    Sub CheckFunds(ItemName,Price,Qty) 
    		/if (${Me.Cash} < ${Math.Calc[${Price} * ${Qty}]}) { 
 			 /echo Insufficient funds to purchase: ${Qty} x ${ItemName} 
    				/keypress esc 
    				/keypress esc 
    				/endmacro 
    		} 
    		/return 
    
    
    |** 
    	khiTS.mac 
    
    	Author:	 Kaitain Heavy Industries 
    	Date:	   30 Apr 04 
    	Version:	2.2.2.14 
    
    	Description: 
    	Performs tradeskill combines using recipes supplied in an ini file 
    
    	Credits: 
    	Inspired by Dont_Know_At_All's Trade Skills macro - The status report idea is completely stolen from 
    
    him (but rewritten by me) 
 	Ini file uses the format created by Diggler (this will eventually being changed to a new format using 
    
    item id's) 
    
    	Notes: 
    	* Updated to use MQ2DataVars 
    	* This is a complete overhaul of the whole macro in addition changing it to work with MQ2Data and 
    
    MQ2DataVars 
  	* You should be able to simply rename "sub main" to "sub khiTS" if you want to use this as an included 
    
    file. 
    	* No longer destroys tools or components used to do combines when destroy-results is enabled. 
    	* This is a BIG macro and may be slow as hell on older computers. 
    
       Usage: 
       #include khits.inc 
       . 
       . 
       . 
       /call Make  <recipe_name>  
    
       Example: 
       /call Make khits bits "show-stats=0 destroy=0 abort-on-tell=0 end-on-trivial=0 silent-mode=0 
    
    stop-at-skill-level=200" 
       Ported to Inc by Draco 
    **| 
    
    | ***** Tweak this to your computer, if you get a lot of an item in the combine container, increase this 
    
    number ***** | 
    #define COMBINE_DELAY 3 
    
    | ***** CHANGE THIS TO MATCH YOUR INI FILE NAME IF NECESSARY ***** | 
    #define INIPATH "recipes.ini" 
    
    
    #event SkillTrivial "You can no longer advance your skill from making this item#*#" 
    #event SkillUp "You have become better at #1#! (#2#)" 
    #event SkillFailure "You lacked the skills#*#" 
    #event SkillSuccess "You have fashioned the items together to create something new#*#" 
    #event FullInventory "There was no place to put that#*#" 
    #event CombineError "You cannot combine these items in this container type!" 
    #event HandsFull   "You cannot combine items when your hands are full#*#" 
    
    #chat tell 
    
    #define COMBINE_SUCCESS		 0 
    #define COMBINE_FAILED		 1 
    #define COMBINE_ERROR		 2 
    #define COMBINE_INVENTORY_FULL   3 
    #define COMBINE_TRIVIAL		 4 
    
    #include utils.inc 
    
    | Main entry point 
    sub Make 
    	/echo 
    	/echo ***************************************** 
    	/echo khiTs: Tradeskills running : ${Time} 
    	/echo ***************************************** 
    	/echo 
    
    
    	| Check for no parameters or help 
    	/if (!${Defined[Param0]} || ${Param0.Equal[HELP]}) { 
    		/call displayHelp 
    		/call clearCursor ${iDestroyResults} 
    		/endmacro 
    	} 
    	
    	| container in which the recipe will be made 
    	/declare containerName	  string  local   NOT_SET 
    	
    	| The name of the current component we're getting 
    	/declare currentComp		string  local   NOT_SET 
    	
    	| Make sure we have that recipe in the ini file 
    	/declare recipeCheck		string  local   NOT_SET 
    
    	| Settings (see end of this file for list of settings) 
    	| Stops the macro if someone sends you a tell 
        /declare abortOnTell	    int	 local   0 
    	
    	| How many itmes the user has requested be made 
    	/declare makeThisMany	   int	 local   0 
    	
    	| Display when you succed, get skillups, fail, etc. 
        /declare showStats		  int	 local   0 
    
    	| For looping through containers 
        /declare slotNumber		 int	 local   1 
    	
    
       | Exit and Return Flags added by Draco 
       /declare combineResult int outer 0 
       /declare cleanUpAndExit int outer 0 
       /declare combineErrorCounter int outer 0 
    
  	| Only declare outer variables once, this is in case you use this as an include	
       /if (!${Defined[components]}) { 
    		| Array of components used to make the recipe 
    		/declare components[10]	 string  outer 
    		
  	 | The name of the combination being done, this is used to look up the recipe in the recipe.ini file 
    	   /declare recipeName		 string  outer 
    		
    		| Container in which the recipe will be made 
    	    /declare containerNum	   string  outer   NOT_SET 
    		
    		| The number of components in the recipe 
 	 /declare iCompCount		 int	 outer 0 
    
    		| Flags 
    	    /declare bCombineDone	   bool	outer   FALSE 
    	    /declare bSkillTrivial	  bool	outer   FALSE 
    
    		| Destroys the results of a combine (but not any items used in the combine) 
    	    /declare iDestroyResults	 int	 outer   0 
    
    		| Stops the macro when you can no longer get skillups from doing the combine 
    	    /declare iEndOnTrivial	   int	 outer   0 
    
    		| How many times you've tried a combination 
    	    /declare iSkillAttempts	  int	 outer   0 
    		
    		| How many times it worked 
    	    /declare iSkillSuccess	   int	 outer   0 
    		
    		| How many times it didn't work 
    	    /declare iSkillFailure	   int	 outer   0 
    		
    		| How many skill points you have received 
 	 /declare iSkillUps		 int	 outer 0 
    		
    		| Skill level to stop at 
    	    /declare iStopAtSkillLevel    int	 outer	0 
    
    	   | Keeps MQ window spam to a minimum 
 	 /declare silentMode		 int	 outer 0 
    		
    	   | Output debugging information 
 	 /declare debug			 int outer	0 
    		
    	   | Flag to close tradeskill container when finished 
    	   /declare iCloseContainer	int   outer	1 
    		
    		| The results of what we are making 
    	    /declare sResults		   string  outer 
    		
    		| Skill we are using (i.e. Brewing, Smithing, etc) 
    	    /declare sUsing		    string   outer   NOT_SET 
    	} else { 
    	    | Clean out the last components used, this is in case we have not cleared the variables or are 
    
    using this as an include 
    		/deletevar components 
    		/declare components[10] 
    	} 
    
    
    	|Get requested recipe's name 
    	/varset recipeName ${Param0} 
    
    	| If there is only one parameter, then there are no options 
    	/if (${Defined[Param1]}) { 
    	   /declare tmp int local 
    	   /declare parms int local ${Macro.Params} 
    	   /declare parmString string local 
    	   /varcalc parms ${parms}-1 
    	  
    	  /for tmp 1 to ${parms} 
    		 /varset parmString ${parmString} ${Param${tmp}} 
    	  /next tmp 
    	  
    		/call parseArguments "abort-on-tell" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset abortOnTell ${Macro.Return} 
    	   } 
    
    		/call parseArguments "destroy-results" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset iDestroyResults ${Macro.Return} 
    	   } 
    
    		/call parseArguments "end-on-trivial" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset iEndOnTrivial ${Macro.Return} 
    	   } 
    
    		/call parseArguments "make-this-many" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset makeThisMany ${Macro.Return} 
    	   } 
    
    		/call parseArguments "show-stats" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset showStats ${Macro.Return} 
    	   } 
    
    		/call parseArguments "stop-at-skill-level" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset iStopAtSkillLevel ${Macro.Return} 
    	   } 
    		
    		/call parseArguments "close-container" "${parmString}" 
    		
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset iCloseContainer ${Macro.Return} 
    	   } 
    		
    		/call parseArguments "debug" "${parmString}" 
    		/if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    		   /varset debug ${Macro.Return} 
    	   } 
    
    		/if (!${debug}) { 
    		   /call parseArguments "silent-mode" "${parmString}" 
    		   /if (${Macro.Return.NotEqual[__NOT_FOUND__]}) { 
    			  /varset silentMode ${Macro.Return} 
    		  } 
    	   } else { 
    		  /echo ***** DEBUGGING ON ***** 
    	   } 
    	} 
    
    	| Make sure the recipe file exists (the recipes thing is a fix for a bug in the Ini function) 
    	/varset recipeCheck ${Ini[INIPATH,recipes]} 
    	/if (${recipeCheck.Equal[NULL]}) { 
    		/echo khiTS Error: Recipe file not found 
    		/echo Path = INIPATH 
    		/goto :khiTSreset 
    	} 
    
    	| Make sure this recipe exists in the recipe.ini file 
    	/varset recipeCheck ${Ini[INIPATH,${recipeName}]} 
    	/if (${recipeCheck.Equal[NULL]}) { 
    		/echo khiTS Error: Recipe not found 
    		/echo Recipe name = ${recipeName} 
    		/goto :khiTSreset 
    	} 
    
    	| Get the container name 
    	/varset containerName ${Ini[INIPATH,${recipeName},Cont]} 
    	/if (${containerName.Equal[NULL]}) { 
 		/echo khiTS Error: Error in ini file for this recipe, no container is specified 
    		/echo khiTS	  : Recipe = ${RecipeName} 
    		/goto :khiTSreset 
    	} 
    	
    	| Get the skill we are using 
    	/varset sUsing ${Ini[INIPATH,${recipeName},Skill]} 
    	/if (${sUsing.Equal[NULL]})   /varset sUsing NOT_SET 
    
    	| Get the item we are making 
    	/varset sResults ${Ini[INIPATH,${recipeName},LongName]} 
    	/if (${sResults.Equal[NULL]})   /varset sResults ${recipeName} 
    
    	| Find the combine container number 
    	/if (${containerName.Equal[Enviro]}) { 
    		/if (!${Window[Enviro].Open}) { 
 		 /echo khiTS Error: You must have the enviromental container open to begin 
    			/goto :khiTSreset 
    		} 
    		/varset containerNum e 
    	} else { 
 	 | Not an enviromental container so find the container's pack number, this is how we will refer to 
    
    it from now on 
    		/varset containerNum ${FindItem[=${containerName}].InvSlot.ID} 
    		/if (${containerNum}) { 
    			/varcalc containerNum ${containerNum}-21 
    			/varset containerNum ${containerNum.Arg[0,.]} 
    		} else { 
    			| Didn't find the container 
    		    /echo khiTS Error: Could not find container in your inventory 
    		    /echo khiTS	  : Contanier name = ${containerName} 
    			/goto :khiTSreset 
    		} 
    	} 
    	
  	| Read the ingredients for the recipe from the ini file		
    	:khiTSReadComponentsLoop 
    	/varset currentComp ${Ini[INIPATH,${recipeName},Comp${iCompCount}]} 
       /if (${currentComp.NotEqual[NULL]}) { 
    		/varcalc iCompCount ${iCompCount}+1 
    		/varset components[${iCompCount}] ${currentComp} 
    		/goto :khiTSReadComponentsLoop 
    	} 
    
    	/call OpenPacks 
    
    	| Remove anything from the cursor if needed 
    	/call clearCursor ${iDestroyResults} 
    
    	| Clear the combine pack 
    	/call cleanPack ${containerNum} 
    	/if (${cleanUpAndExit})   /goto :khiTSreset 
    
       | Let's just do this here rather than through every iteration of combines 
       /declare MAIN_CONTAINER string local 
    	/if (${containerNum.Equal[e]}) { 
    		/varset MAIN_CONTAINER enviro 
    	} else { 
    		/varset MAIN_CONTAINER pack${containerNum} 
    	} 
    	
    	
    	:khiTSCombineLoop 
    		| Delete or Save items depending on settings 
    		/call clearCursor ${iDestroyResults} 
    
    	  /if (!${silentMode})   /echo khiTS: Making ${sResults} - Count = ${iSkillSuccess} 
    
    		| Move ingredients to container 
    		/call addComponents 
    		/if (${cleanUpAndExit})   /goto :khiTSCleanUpMacro 
    
    		| Combine 
    		/varset bCombineDone FALSE 
    		/varcalc iSkillAttempts ${iSkillAttempts}+1 
    		
    		:DoCombineLoop 
    		/combine ${MAIN_CONTAINER} 
    
    		| Need this delay here to make sure the combine is finished 
    		/delay COMBINE_DELAY 
    
  	 | Call these events individually so they do not conflict with a parent macro if this macro is used 
    
    as an included file 
    		/doevents SkillTrivial 
    		/doevents SkillUp 
    		/doevents SkillFailure 
    		/doevents SkillSuccess 
    		/doevents CombineError 
    		/doevents FullInventory 
    		/doevents tell 
    		/doevents HandsFull 
    	  
    		 /if (${cleanUpAndExit})   /goto :khiTSCleanUpMacro 
    		/if (!${bCombineDone})   /goto :DoCombineLoop 
    
    		/varset combineErrorCounter 0 
    
    		| See if we have made enough 
    	    /if (${makeThisMany} && ${makeThisMany} == ${iSkillSuccess})   /goto :khiTSCleanUpMacro 
    
    		/goto :khiTSCombineLoop 
    
    	| The macro is ending, clean up 
    	:khiTSCleanUpMacro 
    	  | Delete or Save items depending on settings - Just in case 
    	  /call clearCursor ${iDestroyResults} 
    	  /call cleanPack ${containerNum} 
    	  /call DisplayStats 
    	  
    	:khiTSreset 
    	  /if (${iCloseContainer})   /notify ContainerWindow DoneButton leftmouseup 
    	  /call resetKhits 
    
    /return ${combineResult} 
    
    
    Sub resetKhits 
       /deletevar combineResult 
       /deletevar cleanUpAndExit 
       /deletevar combineErrorCounter 
       /deletevar containerNum 
       /deletevar iCompCount 
       /deletevar bCombineDone 
       /deletevar bSkillTrivial 
       /deletevar iDestroyResults 
       /deletevar iEndOnTrivial 
       /deletevar iSkillAttempts 
       /deletevar iSkillSuccess 
       /deletevar iSkillFailure 
       /deletevar iSkillUps 
       /deletevar sResults 
       /deletevar components 
       /deletevar iStopAtSkillLevel 
       /deletevar recipeName 
       /deletevar iCloseContainer 
    /return 
    
    
    
    sub clearCursor(int DestroyResults) 
       /declare saveCount int local 
    
    	:khiTSClearCursorLoop 
    	/delay 2 ${Cursor.ID} 
    
    	| Is there anything on the cursor? 
    	/if (${Cursor.ID}) { 
    		/if (${DestroyResults}) { 
    		    | Make sure the item on the cursor is not something we want to save 
    			/for saveCount 1 to 10 
 			 /if (${components[${saveCount}].Equal[${Cursor.Name}]}) { 
 				 /if (!${silentMode}) /echo -- Saving ${components[${saveCount}]} to inventory 
 					/autoinv 
   				 /goto :khiTSClearCursorLoop 
    				} 
    			/next saveCount 
    
    			| Whatever is on the cursor wasn't in the save list 
    		    /if (!${silentMode})   /echo -- Destroying ${Cursor.Name} 
    			/destroy 
    		} else { 
    			/autoinv 
    		} 
    
    		/goto :khiTSClearCursorLoop 
    	} 
    /return 
    
    
    
    Sub DisplayStats 
    	/echo 
    	/echo khiTS: Stat display 
    	/echo ================================ 
    	/echo Attempts: ${iSkillAttempts} 
    	/echo Successes: ${iSkillSuccess} 
    	/echo Faliures: ${iSkillFailure} 
    	/echo Skill Ups: ${iSkillUps} 
    
    	/if (${Me.Skill[${sUsing}]}) { 
    	   /echo Skill Level: ${Me.Skill[${sUsing}]} 
    	} else { 
    	   /echo Skill Level: Unknown 
    	} 
    /return 
    
    
    
    Sub Event_Chat(string type, string sender, string text) 
    	/if (${String[${abt}].Equal[TRUE]} && ${type.Equal[tell]} ) { 
    		/echo khiTS Event_Chat: Got a tell, pausing. 
    		/if (!${Defined[pauseTimer]}) /declare pauseTimer timer outer 
    		/varset pauseTimer 600 
    	  :TellPause 
    		 /if (${Spawn[gm]}) { 
    		   /if (!${Me.Sitting})   /docommand /sit 
    		   /docommand /camp desktop 
    		   /call mqout "GM in Zone! Logging out" 
    		   /endmacro 
    		 } 
    
    		/if (${pauseTimer<1}) /return 
    		/goto :TellPause 
    		/mqpause 
    	} 
    /return 
    
    
    
    Sub Event_HandsFull 
       /echo khiTS Event_HandsFull Error: Unrecoverable error, ending macro 
       /endmacro 
    /return 
    
    
    
    Sub Event_CombineError 
    	/varcalc combineErrorCounter ${combineErrorCounter}+1 
    	/if (!${silentMode})   /echo khiTS Event_CombineError: ${combineErrorCounter} 
    
    	/endmacro 
    	
    	| *** FIXME *** | 
    	/if (${combineErrorCounter} < 3) { 
    	   /call cleanPack ${containerNum} 
    	   /call clearCursor ${iDestroyResults} 
    	   /varset bCombineDone TRUE 
       } else { 
    	   /varset combineResult COMBINE_ERROR 
    	   /varset cleanUpAndExit 1 
       } 
    /return 
    
    
    
    Sub Event_FullInventory 
    	/echo khiTS Event_FullInventory Error: Your inventory is full, ending macro. 
    	/call DisplayStats 
    	/varset combineResult COMBINE_INVENTORY_FULL 
    	/varset cleanUpAndExit 1 
    /return 
    
    
    
    Sub Event_SkillFailure 
    	/varcalc iSkillFailure ${iSkillFailure}+1 
    	/varset bCombineDone TRUE 
    	/varset combineResult COMBINE_FAILED 
    /return 
    
    
    
    Sub Event_SkillSuccess 
    	/if (${sResults.Equal[${recipeName}]}) { 
    	   /declare MaxWaitCount timer local 100 
    	   :WaitForIt 
    	   /delay 2 ${Cursor.ID} 
    	   /if (!${Cursor.ID} && !${MaxWaitCount} == 0)   /goto :WaitForIt 
    	   /varset sResults ${Cursor.Name} 
    	} 
    
    	/varcalc iSkillSuccess ${iSkillSuccess}+1 
    	/varset bCombineDone TRUE 
    	/varset combineResult COMBINE_SUCCESS 
    /return 
    
    
    
    Sub Event_SkillUp 
       /varset sUsing ${Param1} 
    	/varcalc iSkillUps ${iSkillUps}+1 
    
    	/if (${iStopAtSkillLevel} && ${iStopAtSkillLevel} == ${Param2}) { 
    		/call DisplayStats 
    		/call cleanPack ${containerNum} 
    		/call clearCursor ${iDestroyResults} 
    		/varset cleanUpAndExit 1 
    	} 
    /return 
    
    
    
    Sub Event_SkillTrivial 
    	/if (!${bSkillTrivial}) { 
    		/echo khiTS Event_SkillTrivial: Skill is trivial 
    		/varset bSkillTrivial TRUE 
    	} 
    
    	/if (${iEndOnTrivial}) { 
    		/call DisplayStats 
    		/call cleanPack ${containerNum} 
    		/call clearCursor ${iDestroyResults} 
    		/varset cleanUpAndExit 1 
    	} 
    
    	/varset combineResult COMBINE_TRIVIAL 
    /return 
    
    
    
    sub cleanPack(string PackNumber) 
    	/if (!${silentMode})   /echo khiTS cleanPack: Cleaning out pack: ${PackNumber} 
    	
    	| Used for looping through pack slots 
    	/declare iSlot	  int local 
    	
    	| How many freeslots are in the bag 
    	/declare iCount	 int local 
    
    	/if (${PackNumber.Equal[e]}) { 
    	   /if (!${silentMode})	/echo khiTs cleanPack: Clearing enviro 
    
    		/for iSlot 1 to 10 
    		   /if (${InvSlot[enviro${iSlot}].Item.ID}) { 
    			   /shiftkey /itemnotify enviro${iSlot} leftmouseup 
    			   /call clearCursor ${iDestroyResults} 
    		   } 
    		/next iSlot 
    	} else { 
    	  /if (!${silentMode})   /echo khiTs cleanPack: Cleaning out ${PackNumber} 
    		| Can't empty a non-pack duh! 
    		/if (!${Me.Inventory[Pack${PackNumber}].Container}) { 
    			/echo khiTs cleanPack Error: No pack in slot 
    			/varset cleanUpAndExit 1 
    			/return 
    		} 
    
    		/for iSlot 1 to ${Me.Inventory[Pack${PackNumber}].Container} 
    			| Quit if the pack is empty 
    		    /if (!${Me.Inventory[Pack${PackNumber}].Container})   /return 
    
 		 /if (${debug}) /echo khiTs cleanPack: Clearing Pack: Pack${PackNumber}, Slot:${iSlot}, Item: 
    
    ${Me.Inventory[Pack${PackNumber}].Item[${iSlot}]} 
    
 			/if (${Me.Inventory[Pack${PackNumber}].Item[${iSlot}].ID}) { 
 			 /varset iCount ${Me.Inventory[Pack${PackNumber}].Items} 
    
 			 /shiftkey /itemnotify in pack${PackNumber} ${iSlot} leftmouseup 
 				/call clearCursor ${iDestroyResults} 
    
 			 | Make sure we aren't just putting it back in the same bag 
 			 /if (${Me.Inventory[Pack${PackNumber}].Items} == ${iCount}) { 
 				 /echo khiTs cleanPack Error: Unable to empty pack 
    				    /varset cleanUpAndExit 1 
 					/return 
    				} 
    			} 
    		/next iSlot 
    	} 
    
    	/if (!${silentMode})   /echo khiTs: Done Cleaning pack 
    /return TRUE 
    
    
    
    Sub addComponents 
    	/declare newLen	  int	  local 
    	/declare compNum	int	  local 
    	/declare componentId	  int	  local 0 
    	/declare combineSlot   int	  local   1 
    
    	/for compNum 1 to ${iCompCount} 
    	    /if (!${silentMode})   /echo -- components[${compNum}] = ${components[${compNum}]} : Length = 
    
    ${components[${compNum}].Length} 
    		/if (!${components[${compNum}].Length})   /return 
    
    		/varset componentId ${FindItem[=${components[${compNum}]}].InvSlot.ID} 
    		
 		/if (${String[${componentId}].NotEqual[NULL]} && ${componentId} > 0) { 
    		   /call addComponent ${combineSlot} ${componentId} 
    		} else { 
    		   /echo khiTS addComponents Error: You are out of ${components[${compNum}]} 
    		   /varset cleanUpAndExit 1 
    		   /return 
    		} 
    	/next compNum 
    /return 
    
    
    Sub addComponent(int combineSlot, int packSlot) 
       /declare failCount   int	  local   0 
    	
       | Check container to see if it is full 
      | /if (${containerNum.Equal[e]}) { 
     |	 | No way I know of to check enviro containers for space - but I'm ignorant so... 
     |  } else { 
 |	 /if (!${Me.Inventory[pack${containerNum}].Container} - ${Me.Inventory[pack${containerNum}].Items}) { 
     |	    /echo khiTS AddComp Error: Unable to add this item to the container, it is full 
     |		/varset cleanUpAndExit 1 
     |		/return 
     |	 } 
     |  } 
    
       :FindEmptySlot 
       /if (${containerNum.Equal[e]}) { 
    	  /if (${combineSlot} > 10) { 
    		 /echo khiTS AddComp Error: No such slot ${combineSlot} in container 
    		 /varset cleanUpAndExit 1 
    		 /return 
    	  } 
       } else { 
    	  /if (${combineSlot} > ${Me.Inventory[pack${combineSlot}].Container}) { 
    		 /echo khiTS AddComp Error: No such slot ${combineSlot} in container 
    		 /varset cleanUpAndExit 1 
    		 /return 
    	  } 
       } 
    
       | See if there's anything in the slot in which we are trying to put the combine component 
       /if (${containerNum.Equal[e]}) { 
    	  /itemnotify in enviro ${combineSlot} leftmouseup 
    	
    	  | Make sure the cursor is clear, otherwise something was in that slot 
    	  /if (${Cursor.ID}) { 
    		 /itemnotify in enviro ${combineSlot} leftmouseup 
    		 /varcalc combineSlot ${combineSlot}+1 
    		 /goto :FindEmptySlot 
    	  } 
       } else { 
    	  /if (${Me.Inventory[pack${containerNum}].Item[${combineSlot}].ID}) { 
    		 /varcalc combineSlot ${combineSlot}+1 
    		 /varset combineSlot ${String[${combineSlot}].Arg[0,.]} 
    		 /goto :FindEmptySlot 
    	  } 
       } 
    
       :PickUpItem 
       | Slot is empty, so go ahead and put item into it 
       /ctrlkey /itemnotify ${packSlot} leftmouseup 
    
       |Check to see if cursor has multiple a stack. 
       /if (${Cursor.Stack} > 1 && ${failCount} < 3) { 
    	  /autoinv 
    	  /varcalc failCount ${failCount}+1 
    	  /goto :PickUpItem 
       } 
    
       /if (${containerNum.Equal[e]}) { 
    	  /itemnotify in enviro ${combineSlot} leftmouseup 
       } else { 
    	  /itemnotify in pack${containerNum} ${combineSlot} leftmouseup 
       } 
    /return 
    
    
    sub displayHelp 
    	/echo Syntax:   /macro khiTS "<recipe name>" "" 
    	/echo Example:  /macro khiTS "bits" "show-stats=0 destroy=0 abort-on-tell=0 end-on-trivial=0" 
    	/echo - 
    	/echo MAKE SURE THAT 
    	/echo * Recipe.ini is in your macro folder, or INIPATH points to your recipe.ini file 
    	/echo * Inventory is open. 
    	/echo * All your containers are open. 
    	/echo * Nothing crosses over each other, all windows (bags, inventory, buttons) must be free. 
    	/echo * Your windos positions are saved (by closing them and opening them again after they have been 
    
    moved). 
    	/echo - 
    	/echo Options: 
    	/echo -------- 
    	/echo * show-stats 
    	/echo -- Syntax: show-stats=1|0 
    	/echo -- Example: show-stats=0 
    	/echo -- Shows combine statistics. 
    	/echo -- Set to 1 for show showing stats, 0 to leave out the stats. 
    	/echo -- Default set to 1 (show stats). 
    	/echo - 
    	/echo * destroy-results 
    	/echo -- Syntax: destroy-results=1|0 
    	/echo -- Example: destroy-results=1 
    	/echo -- Tells the macro wether end-result is destroyed or kept. 
    	/echo -- Set to 1 for destroying end-result, 1 to keep end-result. 
    	/echo -- Default set to 0 (keep end-result). 
    	/echo - 
    	/echo * abort-on-tell 
    	/echo -- Syntax: abort-on-tell=1|0 
    	/echo -- Example: abort-on-tell=1 
    	/echo -- Tell the macro wether it should /endmacro when recieving a tell. 
    	/echo -- Set to 1 for ending macro on tells, 0 to ignore tells. 
    	/echo -- Default set to 0 (ignore tells). 
    	/echo - 
    	/echo * end-on-trivial 
    	/echo -- Syntax: end-on-trivial=1|0 
    	/echo -- Example: end-on-trivial=1 
    	/echo -- Tell the macro wether it should stop when recieving a trivial message. 
    	/echo -- Set to 1 for ending macro on trivial, 0 to ignore trivial. 
    	/echo -- Default set to 0 (ignore trivial). 
    	/echo - 
    	/echo * make-this-many 
    	/echo -- Syntax: make-this-many=# 
    	/echo -- Example: make-this-many=100 
 	/echo -- The number of successfull combines you want made (or till no more components are available). 
 	/echo -- Set to 0 for unlimited combines (or till no more components are available), or to the wanted 
    
    amount. 
    	/echo -- Default set to 0 (unlimited). 
    	/echo - 
    	/echo * stop-at-skill-level 
    	/echo -- Syntax: stop-at-skill-level=### 
    	/echo -- Example: stop-at-skill-level=123 
    	/echo -- Tell the macro to stop when a certain skill level is reached. 
    	/echo -- Default set to 0 (do not stop at any skill level) 
    	/echo - 
    	/echo * silent-mode 
    	/echo -- Syntax: silent-mode=1|0 
    	/echo -- Example: silent-mode=1 
    	/echo -- Tell the macro to only output errors 
    	/echo -- Default set to 0 (output everything) 
    	/echo - 
    	/echo * debug 
    	/echo -- Syntax: debug=1|0 
    	/echo -- Example: debug=1 
    	/echo -- Tell the macro to only everything. This also sets silent-mode=0 
    	/echo -- Default set to 0 (do not output debugging information) 
    	/echo - 
    	/echo * close-container 
    	/echo -- Syntax: close-container=1|0 
    	/echo -- Example: close-container=1 
    	/echo -- Tell the macro to close the tradeskill container when finished 
    	/echo -- Default set to 1 
    /return
 
Last edited:
restock2.ini
Rich (BB code):
[Character name]
Celestial Essence=100

restock.ini
Rich (BB code):
[character name]
The Scent of Marr=660
Celestial Solvent=660

recipe.ini
Rich (BB code):
[Recipes]
Test=True

[Accuracy]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Blue Vervain Bulb
Comp2=Fenugreek

[acorn]
Cont=Enviro
Comp0=Misty Acorn
Comp1=Water Flask

[AcornOil]
Cont=Enviro
Comp0=Misty Acorn
Comp1=Water Flask

[acryliabits]
Cont=Enviro
Comp0=Small Piece Of Acrylia
Comp1=Small Piece Of Acrylia
Comp2=Water Flask

[acryliasheet]
Cont=Enviro
Comp0=Block Of Acrylia Ore
Comp1=Smithy Hammer
Comp2=Water Flask

[Adrenaline]
Cont=Medicine Bag
Comp0=Comfrey
Comp1=Dhea

[Adr]
Cont=Medicine Bag
Comp0=Comfrey
Comp1=Dhea

[Adroitness]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Blue Vervain Bulb
Comp2=Sage Leaf

[advancedpoisonvial]
Cont=Enviro
Comp0=High Quality Firing Sheet
Comp1=Unfired Advanced Poison Vial

[advancedpropulsionunit]
Cont=Enviro
Comp0=Coiled Spring
Comp1=Firewater
Comp2=Saltpeter
Comp3=Tinkered Catapult

[Ale]
Cont=Enviro
Comp0=Barley
Comp1=Cask
Comp2=Malt
Comp3=Water Flask

[Ant]
Cont=Medicine Bag
Comp0=Celandine Herb
Comp1=Sumbul

[Antibody]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Maidenhair Fern
Comp2=Mullein

[AntiWeight]
Cont=Medicine Bag
Comp0=Hydrangea
Comp1=Sumbul

[ApricotMarmalade]
Cont=spit
Comp0=Frosting
Comp1=Frosting
Comp2=Frosting
Comp3=Fruit

[aqualung]
Cont=Enviro
Comp0=Fine Coral Mesh
Comp1=Fresh Fish
Comp2=Gnomish Bolts
Comp3=Metal Rod
Comp4=Metal Twine
Comp5=Silk Lined Steel Helm

[AquaticHaunt]
Cont=Medicine Bag
Comp0=Hydrangea
Comp1=Jatamasi

[Arrow102Triv]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Hooked Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[Arrow36Triv]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Medium Groove Nocks
Comp3=Several Round Cut Fletchings

[Arrow46Triv]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Parabolic Cut Fletchings

[Arrow56Triv]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Several Round Cut Fletchings
Comp3=Small Groove Nocks

[Arrow68Triv]
Cont=Fletching Kit
Comp0=Bundled Bone Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[Arrow82Triv]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Shield Cut Fletchings

[arrowz]
Cont=Planar Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Ceramic Arrow Vanes

[artisanseal]
Cont=Enviro
Comp0=Mounted Black Sapphire
Comp1=Mounted Blue Diamond
Comp2=Mounted Diamond
Comp3=Mounted Jacinth
Comp4=Small Block Of Clay
Comp5=Vial Of Purified Mana
Comp6=Water Flask

[ashafts]
Cont=Enviro
Comp0=Arrow Shaft Mold
Comp1=Small Brick Of Acrylia Ore
Comp2=Water Flask

[AshenDye]
Cont=Enviro
Comp0=Ashweed
Comp1=Water Flask

[Assailing]
Cont=Medicine Bag
Comp0=Bugbane
Comp1=Cyclop's Eye

[BA1]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Sage Leaf
Comp2=Sumbul

[BA2]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Elderberry
Comp2=Sage Leaf

[BA3]
Cont=Medicine Bag
Comp0=Briar Thistle
Comp1=Figwort
Comp2=Sage Leaf

[BA4]
Cont=Medicine Bag
Comp0=Agrimony
Comp1=Briar Thistle
Comp2=Clover
Comp3=Dhea
Comp4=Sage Leaf

[baas]
Cont=Enviro
Comp0=Arrow Shaft Mold
Comp1=Small Brick Of Acrylia Ore
Comp2=Water Flask

[BandedGorget]
Cont=Enviro
Comp0=Gorget Mold
Comp1=Sheet Metal
Comp2=Water Flask

[BandedHelm]
Cont=Enviro
Comp0=Helm Mold
Comp1=Sheet Metal
Comp2=Sheet Metal
Comp3=Water Flask

[BandedMail]
Cont=Enviro
Comp0=Mail Sectional Mold
Comp1=Sheet Metal
Comp2=Sheet Metal
Comp3=Sheet Metal
Comp4=Water Flask

[Barbarian]
Cont=Medicine Bag
Comp0=Barbarian Meat
Comp1=Wormwood

[baseprototype]
Cont=Enviro
Comp0=Grease
Comp1=Pinion
Comp2=Steel Ball Bearing
Comp3=Steel Casing

[BDP]
Cont=Enviro
Comp0=Blue Diamond
Comp1=Jar Of Acid

[BearCreamFillet]
Cont=spit
Comp0=Creamy Fennel Sauce
Comp1=Filleted Bear

[bearfilletcream]
Cont=Enviro
Comp0=Creamy Fennel Sauce
Comp1=Filleted Bear

[BearFillets]
Cont=spit
Comp0=Bear Meat
Comp1=Filleting Knife

[bits]
Cont=Enviro
Comp0=Small Piece Of Ore
Comp1=Small Piece Of Ore
Comp2=Water Flask

[bdust]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Imbued Emerald
Comp2=Jar Of Acid

[BlockMQOre]
Cont=Enviro
Comp0=Large Brick Of Medium Quality Ore
Comp1=Large Brick Of Medium Quality Ore
Comp2=Large Brick Of Medium Quality Ore
Comp3=Water Flask

[bluediamondpowder]
Cont=Enviro
Comp0=Blue Diamond
Comp1=Jar Of Acid

[boarchops]
Cont=Collapsible Spit
Comp0=Boar Meat
Comp1=Garnish
Comp2=Spices

[bogjuice]
Cont=Enviro
Comp0=Bottle
Comp1=Snake Scales
Comp2=Water Flask

[BoneField]
Cont=Medicine Bag
Comp0=Heliotrope
Comp1=Sandlewood

[Bracelet]
Cont=Kit
Comp0=System.collections.arraylist
Comp1=System.collections.arraylist

[BreadedStormSalmon]
Cont=Collapsible Spit
Comp0=Bread Crumbs
Comp1=Garnish
Comp2=Jug Of Sauces
Comp3=Storm Salmon

[BreathlessMist]
Cont=Medicine Bag
Comp0=A Cork
Comp1=Cave Algea
Comp2=Empty Vial
Comp3=Oakmoss
Comp4=Sage Leaf
Comp5=Woundwart

[brick]
Cont=Enviro
Comp0=Brick
Comp1=Brick
Comp2=Water Flask

[bucket]
Cont=Enviro
Comp0=Bucket Mold
Comp1=Metal Bits
Comp2=Metal Bits
Comp3=Water Flask

[C1WHA]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Hooked Arrowheads
Comp2=Medium Groove Nocks
Comp3=Several Round Cut Fletchings

[C1WS]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Large Groove Nocks
Comp2=Several Round Cut Fletchings
Comp3=Silver Tipperd Arrowheads

[C1WSA]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Large Groove Nocks
Comp2=Several Round Cut Fletchings
Comp3=Silver Tipped Arrowheads

[C2SSA]
Cont=Planar Fletching Kit
Comp0=Bundled Steel Arrow Shafts
Comp1=Several Parabolic Cut Fletchings
Comp2=Silver Tipped Arrowheads
Comp3=Small Groove Nocks

[C2WPA]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Several Parabolic Cut Fletchings
Comp3=Small Groove Nocks

[C4BHA]
Cont=Fletching Kit
Comp0=Bundled Bone Arrow Shafts
Comp1=Hooked Arrowheads
Comp2=Medium Groove Nocks
Comp3=Set Of Wooden Arrow Vanes

[c5wp]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Bone Arrow Vanes

[C6sta]
Cont=Collapsible Fletching Kit
Comp0=Bundled Wooded Arrow Shafts
Comp1=Medium Groove Nocks
Comp2=Set Of Ceramic Arrow Vanes
Comp3=Silver Tiped Arrowheads

[C6WP]
Cont=Fletching Kit
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Ceramic Arrow Vanes

[CA1]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Benzoin
Comp2=Sumbul

[CA2]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Benzoin
Comp2=Elderberry

[CA3]
Cont=Medicine Bag
Comp0=Benzoin
Comp1=Briar Thistle
Comp2=Figwort

[CA4]
Cont=Medicine Bag
Comp0=Agrimony
Comp1=Benzoin
Comp2=Briar Thistle
Comp3=Clover
Comp4=Dhea

[CalcifiedSteelBracer]
Cont=Enviro
Comp0=Bone Temper
Comp1=Medium Quality Folded Sheet Metal
Comp2=Plate Bracer Mold
Comp3=Smithy Hammer
Comp4=Superb Leather Padding
Comp5=Water Flask

[cdrb]
Cont=Enviro
Comp0=Darkwood Bow Staff
Comp1=Silk String
Comp2=Whittling Blade

[CelestialEss]
Cont=Collapsible Mortar And Pestle
Comp0=Celestial Solvent
Comp1=The Scent Of Marr

[celestialessance]
Cont=Collapsible Mortar And Pestle
Comp0=Celestial Solvent
Comp1=Words Of The Ethereal

[CelestialEssence]
Cont=Mixing Bowl
Comp0=Celestial Solvent
Comp1=The Scent Of Marr

[Cess]
Cont=Mixing Bowl
Comp0=Celestial Solvent
Comp1=The Scent Of Marr

[ctemp]
Cont=enviro
Comp0=Blue Diamond Powder
Comp1=Purified Water

[celestialtemp]
Cont=Enviro
Comp0=Blue Diamond Powder
Comp1=Purified Water

[celestialtemper]
Cont=Enviro
Comp0=Blue Diamond Powder
Comp1=Purified Water

[CEPrex]
Cont=pestle
Comp0=Celestial Solvent
Comp1=Tears Of Prexus

[ceramic]
Cont=Fletching Kit
Comp0=Bundled Ceramic Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[CERathe]
Cont=pestle
Comp0=Celestial Solvent
Comp1=Essence Of Rathe

[CERo]
Cont=pestle
Comp0=Celestial Solvent
Comp1=Essence Of Ro

[CERZ]
Cont=pestle
Comp0=Celestial Solvent
Comp1=Glove Of Rallos Zek

[CEs]
Cont=pestle
Comp0=Celestial Solvent
Comp1=The Scent Of Marr

[cessence]
Cont=Enviro
Comp0=Celestial Solvent
Comp1=The Scent Of Marr

[CEXeg]
Cont=pestle
Comp0=Celestial Solvent
Comp1=Wing Of Xegony

[CharmingDeceit]
Cont=Medicine Bag
Comp0=Mugwart
Comp1=Undead Froglok Tongue

[Cheese]
Cont=Mixing Bowl
Comp0=Bottle Of Milk
Comp1=Bottle Of Milk
Comp2=Dairy Spoon
Comp3=Rennet

[class1-102]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Hooked Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[class1-135]
Cont=Enviro
Comp0=Bundled Ceramic Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[class1-16]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[class1-182]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Large Groove Nocks
Comp2=Several Round Cut Fletchings
Comp3=Silver Tipped Arrowheads

[class1-36]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Medium Groove Nocks
Comp3=Several Round Cut Fletchings

[class1-56]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Several Round Cut Fletchings
Comp3=Small Groove Nocks

[class1-68]
Cont=Enviro
Comp0=Bundled Bone Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[class3-82]
Cont=Enviro
Comp0=Bundled Bone Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Shield Cut Fletchings

[class4-122]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Wooden Arrow Vanes

[class5-162]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Bone Arrow Vanes

[class6-202]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Set Of Ceramic Arrow Vanes

[CLining]
Cont=Enviro
Comp0=Quality Firing Sheet
Comp1=Unfired Ceramic Lining

[ClumpOfDough]
Cont=Collapsible Mixing Bowl
Comp0=Basilisk Eggs
Comp1=Bottle Of Milk
Comp2=Cup Of Flour

[CodOil]
Cont=Brew Barrel
Comp0=Cobalt Cod
Comp1=Water Flask

[Cohesion]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Fenugreek
Comp2=Sage Leaf

[Cold]
Cont=Medicine Bag
Comp0=Allspice
Comp1=Birthwart
Comp2=Blue Vervain Bulb

[Concealment]
Cont=Medicine Bag
Comp0=Burdock Root
Comp1=Empty Vial
Comp2=Mystic Ash
Comp3=Swamp Vine

[Concentration]
Cont=Medicine Bag
Comp0=Violet Tri-tube
Comp1=Yerbhimba

[cookingdevice]
Cont=Enviro
Comp0=Blue Diamond
Comp1=Branch Of Sylvan Oak
Comp2=Cogs
Comp3=Gears
Comp4=Grease
Comp5=Sprockets

[Corpal]
Cont=Medicine Bag
Comp0=Evil Eye Eyestalk
Comp1=Horehound

[Cream]
Cont=mixing
Comp0=Benzoin
Comp1=Bottle Of Milk
Comp2=Bottle Of Milk
Comp3=Dairy Spoon

[CreamyFennel]
Cont=mixing
Comp0=Cream
Comp1=Cup Of Flour
Comp2=Fennel

[csa]
Cont=Enviro
Comp0=Chunk Of Condensed Shadow
Comp1=File
Comp2=Water Flask

[curedmask]
Cont=Enviro
Comp0=Heady Kiola
Comp1=Mask Pattern
Comp2=Silk Swatch

[CuredSilkMask]
Cont=Planar Sewing Kit
Comp0=Heady Kiola
Comp1=Mask Pattern
Comp2=Silk Swatch

[DA1]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Birthwart
Comp2=Sumbul

[DA2]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Birthwart
Comp2=Elderberry

[DA3]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Briar Thistle
Comp2=Figwort

[DA4]
Cont=Medicine Bag
Comp0=Agrimony
Comp1=Birthwart
Comp2=Briar Thistle
Comp3=Clover
Comp4=Dhea

[dairyspoon]
Cont=Enviro
Comp0=Metal Bits
Comp1=Metal Bits
Comp2=Scaler Mold
Comp3=Water Flask

[DarkElf]
Cont=Medicine Bag
Comp0=Dark Elf Parts
Comp1=Wormwood

[darkwoodbow]
Cont=Enviro
Comp0=Darkwood Bow Staff
Comp1=Hemp Twine
Comp2=Standard Bow Cam
Comp3=Standard Bow Cam

[DBKaladimC]
Cont=Enviro
Comp0=Fermenting Dust
Comp1=Kaladim Constitutional
Comp2=Kaladim Constitutional
Comp3=Purified Water

[DEndurance]
Cont=Medicine Bag
Comp0=Beltherium Bark
Comp1=Blade Leaf

[dish]
Cont=Enviro
Comp0=Casserole Dish Sketch
Comp1=Ceramic Lining
Comp2=Large Block Of Clay
Comp3=Water Flask

[dough]
Cont=mixing
Comp0=egg
Comp1=flour
Comp2=milk

[Dristilate]
Cont=Medicine Bag
Comp0=A Chant Rock
Comp1=Firiona Drixie Dust
Comp2=Stoneleer Emerald Plume

[Dulsehound]
Cont=Medicine Bag
Comp0=Balm Leaves
Comp1=Hill Giant Toes

[dustemerald]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Imbued Emerald
Comp2=Jar Of Acid

[Dwarf]
Cont=Medicine Bag
Comp0=Dwarf Meat
Comp1=Wormwood

[DWFur]
Cont=Vale Sewing Kit
Comp0=Embroidering Needle
Comp1=Patch Of Dire Wolf Fur
Comp2=Patch Of Dire Wolf Fur
Comp3=Patch Of Dire Wolf Fur

[DWPatch]
Cont=Vale Sewing Kit
Comp0=Embroidering Needle
Comp1=Tuft Of Dire Wolf Fur
Comp2=Tuft Of Dire Wolf Fur
Comp3=Tuft Of Dire Wolf Fur

[dye]
Cont=Enviro
Comp0=Plant Shoot
Comp1=Water Flask

[DyeVial]
Cont=Enviro
Comp0=Quality Firing Sheet
Comp1=Unfired Dye Vial

[eamber]
Cont=Planar Jeweler's Kit
Comp0=Amber
Comp1=Electrum Bar

[ehs]
Cont=Enviro
Comp0=Elm Bow Staff
Comp1=Metal Bits
Comp2=Shears Mold
Comp3=Water Flask

[ElmShears]
Cont=Enviro
Comp0=Elm Bow Staff
Comp1=Metal Bits
Comp2=Shears Mold
Comp3=Water Flask

[emal]
Cont=Planar Jeweler's Kit
Comp0=Electrum Bar
Comp1=Malachite

[ENeedle]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Metal Bits
Comp2=Needle Mold
Comp3=Water Flask

[Erudite]
Cont=Medicine Bag
Comp0=Erudite Meat
Comp1=Wormwood

[Ethira]
Cont=Medicine Bag
Comp0=Hyssop
Comp1=Lady's Mantle

[evbits]
Cont=Enviro
Comp0=Coldain Velium Temper
Comp1=Small Piece Of Velium
Comp2=Small Piece Of Velium
Comp3=Spell: Enchant Velium

[fayshak]
Cont=Enviro
Comp0=Cask
Comp1=Dwarven Ale
Comp2=Elven Wine
Comp3=Gnomish Spirits
Comp4=Mead

[FermentedYarrow]
Cont=Brew Barrel
Comp0=Water Flask
Comp1=Yarrow

[Fetid Essence]
Cont=Brew Barrel
Comp0=Fishing Grubs
Comp1=Water Flask

[fetidessence]
Cont=Enviro
Comp0=Fishing Grubs
Comp1=Water Flask

[file]
Cont=Enviro
Comp0=File Mold
Comp1=Metal Bits
Comp2=Water Flask

[filletbear]
Cont=Enviro
Comp0=Bear Meat
Comp1=Filleting Knife

[fire]
Cont=Enviro
Comp0=firing
Comp1=unfired

[Fish Rolls]
Cont=Spit
Comp0=Bat Wing
Comp1=Fresh Fish

[fishrolls]
Cont=Enviro
Comp0=Bat Wing
Comp1=Fresh Fish

[fishwine]
Cont=Enviro
Comp0=Bottle
Comp1=Fresh Fish
Comp2=Grapes
Comp3=Water Flask

[flamelesslantern]
Cont=Enviro
Comp0=Firewater
Comp1=Large Lantern
Comp2=Metal Twine

[FleetingLanguor]
Cont=Medicine Bag
Comp0=Burdock Root
Comp1=White Wolf Skin

[fletch]
Cont=Enviro
Comp0=Bundled Wooden Arrow Shafts
Comp1=Medium Groove Nocks
Comp2=Set Of Cermaic Arrow Vanes
Comp3=Silver Tipped Arrowheads

[fletting knife]
Cont=Enviro
Comp0=Metal Bits
Comp1=Metal Bits
Comp2=Metal Bits
Comp3=Scaler Mold
Comp4=Water Flask

[FPBracer]
Cont=Enviro
Comp0=Leather Padding
Comp1=Medium Quality Folded Sheet Metal
Comp2=Plate Bracer Mold
Comp3=Smithy Hammer
Comp4=Water Flask

[Frost]
Cont=Medicine Bag
Comp0=Heliotrope
Comp1=Oakmoss

[FrostEssence]
Cont=Enviro
Comp0=Frost Turnip
Comp1=Water Flask

[FrostInsurgency]
Cont=Medicine Bag
Comp0=Bistort
Comp1=Polar Bear Skin

[GAccuracy]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Fenugreek
Comp2=Valerian Bulb

[GAdroitness]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Sage Leaf
Comp2=Valerian Bulb

[GAntibody]
Cont=Medicine Bag
Comp0=Maidenhair Fern
Comp1=Mullein
Comp2=Valerian Bulb

[Gate]
Cont=Medicine Bag
Comp0=Heliotrope
Comp1=Heliotrope
Comp2=Heliotrope

[gator]
Cont=Collapsible Mixing Bowl
Comp0=Gator Meat
Comp1=Jar Of Acid
Comp2=Mandrake Root

[gcarn]
Cont=Planar Jeweler's Kit
Comp0=Carnelian
Comp1=Gold Bar

[GCohesion]
Cont=Medicine Bag
Comp0=Fenugreek
Comp1=Sage Leaf
Comp2=Valerian Bulb

[GCold]
Cont=Medicine Bag
Comp0=Allspice
Comp1=Birthwart
Comp2=Valerian Bulb

[GConcentration]
Cont=Medicine Bag
Comp0=Duskglow Vine
Comp1=Violet Tri-tube

[GHeat]
Cont=Medicine Bag
Comp0=Benzoin
Comp1=Sage Leaf
Comp2=Valerian Bulb

[GiantHalibutSteak]
Cont=Enviro
Comp0=Giant Halibut
Comp1=Jug Of Sauces

[gmal]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Malachite

[GMInfusion]
Cont=Medicine Bag
Comp0=Sickle Leaf
Comp1=Yerbhimba

[GNegation]
Cont=Medicine Bag
Comp0=Mercury
Comp1=Mystic Ash
Comp2=Mystic Ash

[Gnome]
Cont=Medicine Bag
Comp0=Gnome Meat
Comp1=Wormwood

[GnomishBoils]
Cont=Medicine Bag
Comp0=Bat Fur
Comp1=Eyebright

[GNull]
Cont=Medicine Bag
Comp0=Fenugreek
Comp1=Mandrake Root
Comp2=Valerian Bulb

[GoldBlackPearl]
Cont=Planar Jeweler's Kit
Comp0=Black Pearl
Comp1=Gold Bar

[GoldFireEmerald]
Cont=Planar Jeweler's Kit
Comp0=Fire Emerald
Comp1=Gold Bar

[GoldFireOpal]
Cont=Planar Jeweler's Kit
Comp0=Fire Opal
Comp1=Gold Bar

[GoldRuby]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Ruby

[GoldSapphire]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Sapphire

[goldstaramulet]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Star Rose Quartz

[GoldStarRuby]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Star Ruby

[gopal]
Cont=Planar Jeweler's Kit
Comp0=Gold Bar
Comp1=Opal

[GorgingToxin]
Cont=Medicine Bag
Comp0=Boneset
Comp1=Giant Wasp Venom Sac

[GPower]
Cont=Medicine Bag
Comp0=Fenugreek
Comp1=Lucerne
Comp2=Valerian Bulb

[GPurity]
Cont=Medicine Bag
Comp0=Lucerne
Comp1=Night Shade
Comp2=Valerian Bulb

[GraveyardDust]
Cont=Medicine Bag
Comp0=Dragonwart
Comp1=Fire Giant Toes

[GRejuvenation]
Cont=Medicine Bag
Comp0=Agrimony
Comp1=Lucerne
Comp2=Sage Leaf

[grobb]
Cont=Enviro
Comp0=Cask
Comp1=Cork
Comp2=Corking Device
Comp3=Liquidised Gator
Comp4=Liquidised Rat
Comp5=Liquidised Snake
Comp6=Malt
Comp7=Soda Water

[GrobbLM]
Cont=Brew Barrel
Comp0=Cask
Comp1=Cork
Comp2=Corking Device
Comp3=Liquidised Gator
Comp4=Liquidised Rat
Comp5=Liquidised Snake
Comp6=Malt
Comp7=Soda Water

[GrobbMeat]
Cont=Enviro
Comp0=Cask
Comp1=Cork
Comp2=Corking Device
Comp3=Liquidised Gator
Comp4=Liquidised Rat
Comp5=Liquidised Snake
Comp6=Malt
Comp7=Soda Water

[GStability]
Cont=Medicine Bag
Comp0=Lucerne
Comp1=Sage Leaf
Comp2=Valerian Bulb

[GTRibbon]
Cont=Collapsible Sewing Kit
Comp0=Elm Handled Shears
Comp1=Gold Ribbon
Comp2=Jaggedpine Dye

[Gukta]
Cont=Medicine Bag
Comp0=Froglok Blood
Comp1=Wormwood

[Gulon]
Cont=Medicine Bag
Comp0=Figwort
Comp1=Lightstone

[GVigor]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Lucerne
Comp2=Valerian Bulb

[GWRibbon]
Cont=Planar Sewing Kit
Comp0=Gold Ribbon
Comp1=Hickory Handled Shears
Comp2=Steam Dye

[HalasMeatPies]
Cont=Enviro
Comp0=Bear Fillet In Cream
Comp1=Clump Of Dough
Comp2=Clump Of Dough
Comp3=Lion Fillet In Cream
Comp4=Mammoth Fillet In Cream
Comp5=Pie Tin
Comp6=Sage Leaf
Comp7=Wolf Fillet In Cream

[HalfElf]
Cont=Medicine Bag
Comp0=Half Elf Meat
Comp1=Wormwood

[Halfling]
Cont=Medicine Bag
Comp0=Halfling Parts
Comp1=Wormwood

[handbear]
Cont=Collapsible Sewing Kit
Comp0=Backpack Pattern
Comp1=High Quality Bear Skin

[handrock]
Cont=Collapsible Sewing Kit
Comp0=Backpack Pattern
Comp1=High Quality Rockhopper Hide

[harrowhead]
Cont=Enviro
Comp0=File
Comp1=Small Brick Of Ore
Comp2=Small Brick Of Ore
Comp3=Small Brick Of Ore
Comp4=Water Flask

[HawkEye]
Cont=Medicine Bag
Comp0=Star Reach Clover
Comp1=Tri-fern Leaf

[heady]
Cont=Enviro
Comp0=Bottle
Comp1=Packet Of Kiola Sap
Comp2=Packet Of Kiola Sap
Comp3=Water Flask

[HeadyK]
Cont=Enviro
Comp0=Bottle
Comp1=Packet Of Kiola Sap
Comp2=Packet Of Kiola Sap
Comp3=Water Flask

[Heat]
Cont=Medicine Bag
Comp0=Benzoin
Comp1=Blue Vervain Bulb
Comp2=Sage Leaf

[Herosandwitch]
Cont=Enviro
Comp0=Dressing
Comp1=Hero Parts
Comp2=Loaf Of Bread
Comp3=Smoked Hero Parts
Comp4=Spiced Hero Parts
Comp5=Vegetables

[HighElf]
Cont=Medicine Bag
Comp0=High Elf Parts
Comp1=Wormwood

[HightoMedHopperHide]
Cont=Planar Sewing Kit
Comp0=High Quality Rockhopper Hide
Comp1=Skinning Knife

[HQRings]
Cont=Enviro
Comp0=File
Comp1=Large Brick Of High Quality Ore
Comp2=Water Flask

[HQSealedVial]
Cont=Enviro
Comp0=High Quality Cat Pelt
Comp1=Sealed Vial Sketch
Comp2=Small Block Of Clay
Comp3=Water Flask

[Human]
Cont=Medicine Bag
Comp0=Human Parts
Comp1=Wormwood

[Iksar]
Cont=Medicine Bag
Comp0=Iksar Meat
Comp1=Wormwood

[infusedPT]
Cont=Enviro
Comp0=Celestial Temper
Comp1=Platinum Thread

[ipt]
Cont=Enviro
Comp0=Celestial Temper
Comp1=Platinum Thread



[JaggedpineDye]
Cont=Enviro
Comp0=Plant Shoot
Comp1=Water Flask

[jasperGE]
Cont=Jeweler's Kit
Comp0=Gold Bar
Comp1=Jasper

[JordMeatPie]
Cont=Collapsible Spit
Comp0=Clump Of Dough
Comp1=Jord Meat
Comp2=Pie Tin

[JumjumCake]
Cont=spit
Comp0=Cake Round
Comp1=Clump Of Dough
Comp2=Frosting
Comp3=Jumjum Stalk
Comp4=Winter Chocolate

[JumjumSalad]
Cont=mixing
Comp0=Fennel
Comp1=Jumjum Stalk
Comp2=Lettuce
Comp3=Vegetables

[JumjumSpicedBeer]
Cont=Enviro
Comp0=Barley
Comp1=Bottle
Comp2=Hops
Comp3=Jumjum Stalk
Comp4=Spices
Comp5=Water Flask

[JusticeFruitPie]
Cont=Collapsible Spit
Comp0=Celestial Essence
Comp1=Celestial Essence
Comp2=Clump Of Dough
Comp3=Frosting
Comp4=Justice Fruit
Comp5=Muffin Tin

[KaladimC]
Cont=Brew Barrel
Comp0=A Strange Dark Fungus
Comp1=Bottle
Comp2=Celestial Essence
Comp3=Cork
Comp4=Corking Device
Comp5=Fermented Yarrow
Comp6=Soda Water
Comp7=Underfoot Mushroom

[KilvaFlame]
Cont=Medicine Bag
Comp0=Clover
Comp1=Clubmoss
Comp2=Jatamasi

[KilvaFlesh]
Cont=Medicine Bag
Comp0=Clubmoss
Comp1=Jatamasi

[Kithar]
Cont=Medicine Bag
Comp0=Echinacea
Comp1=Lady's Mantle

[lantern]
Cont=Enviro
Comp0=Bottle
Comp1=Lantern Casing Mold
Comp2=Metal Bits
Comp3=Water Flask

[laqopal]
Cont=Collapsible Jeweler's Kit
Comp0=Jar Of Lacquer
Comp1=Opal

[large]
Cont=Enviro
Comp0=Glass Shard
Comp1=Large Block Of Clay
Comp2=Large Bowl Sketch
Comp3=Water Flask

[largemqore]
Cont=Enviro
Comp0=Small Brick Of Medium Quality Ore
Comp1=Small Brick Of Medium Quality Ore
Comp2=Small Brick Of Medium Quality Ore
Comp3=Water Flask

[lbco]
Cont=Enviro
Comp0=Large Brick Of Acrylia Ore
Comp1=Smithing Chisel

[leatherfoot]
Cont=Vale Sewing Kit
Comp0=Acorn Oil
Comp1=Infused Platinum Thread
Comp2=Infused Platinum Thread
Comp3=Infused Platinum Thread
Comp4=Woven Dire Wolf Fur
Comp5=Woven Dire Wolf Fur
Comp6=Woven Dire Wolf Fur
Comp7=Woven Dire Wolf Fur

[LeatherPaddingBear]
Cont=Planar Sewing Kit
Comp0=Low Quality Bear Skin
Comp1=Silk Thread

[LeatherPaddingCat]
Cont=Planar Sewing Kit
Comp0=Low Quality Cat Pelt
Comp1=Silk Thread

[LeatherPaddingHopper]
Cont=Planar Sewing Kit
Comp0=Low Quality Rockhopper Hide
Comp1=Shade Silk Thread

[Lining]
Cont=Enviro
Comp0=System.collections.arraylist
Comp1=System.collections.arraylist
Comp2=System.collections.arraylist

[LionCreamFillet]
Cont=spit
Comp0=Creamy Fennel Sauce
Comp1=Filleted Lion

[LionFillets]
Cont=spit
Comp0=Filleting Knife
Comp1=Lion Meat

[LOETunic]
Cont=Enviro
Comp0=Chainmail Tunic Pattern
Comp1=Electrum Bar
Comp2=High Quality Metal Rings
Comp3=High Quality Metal Rings
Comp4=High Quality Metal Rings
Comp5=Smithy Hammer
Comp6=Water Flask

[LowQBear]
Cont=Planar Sewing Kit
Comp0=Medium Quality Bear Skin
Comp1=Quiver Pattern

[LowQCat]
Cont=Planar Sewing Kit
Comp0=Medium Quality Cat Pelt
Comp1=Skinning Knife

[LowQWolf]
Cont=Planar Sewing Kit
Comp0=Medium Quality Wolf Skin
Comp1=Skinning Knife

[LRejuvenation]
Cont=Medicine Bag
Comp0=Lucerne
Comp1=Sage Leaf
Comp2=Yarrow

[MammothCreamFillet]
Cont=spit
Comp0=Creamy Fennel Sauce
Comp1=Filleted Mammoth

[mammothfillets]
Cont=Enviro
Comp0=Filleting Knife
Comp1=Mammoth Meat

[mantle]
Cont=Enviro
Comp0=Heady Kiola
Comp1=Heady Kiola
Comp2=Heady Kiola
Comp3=Heady Kiola
Comp4=Shoulderpad Pattern
Comp5=Silk Swatch
Comp6=Vial Of Viscous Mana

[MAptitude]
Cont=Medicine Bag
Comp0=Duskglow Vine
Comp1=Yerbhimba

[MarmaladeSandwich]
Cont=mixing
Comp0=Apricot Marmalade
Comp1=Loaf Of Bread

[MatureCheese]
Cont=mixing
Comp0=Bottle Of Milk
Comp1=Bottle Of Milk
Comp2=Dairy Spoon
Comp3=Rennet

[mbits]
Cont=Enviro
Comp0=Small Piece Of Ore
Comp1=Small Piece Of Ore
Comp2=Water Flask

[Mead]
Cont=Enviro
Comp0=Cask
Comp1=Hops
Comp2=Malt
Comp3=Yeast

[mechlockpick]
Cont=Enviro
Comp0=Gears
Comp1=Lockpicks
Comp2=Rat Ears
Comp3=Sprockets

[medium]
Cont=Enviro
Comp0=Block Of Clay
Comp1=Medium Bowl Sketch
Comp2=Water Flask

[medium quality sheets of metal]
Cont=Enviro
Comp0=Block Of Medium Quality Ore
Comp1=Smithy Hammer
Comp2=Water Flask

[MedQBear]
Cont=Large Sewing Kit
Comp0=High Quality Bear Skin
Comp1=Skinning Knife

[MedQCat]
Cont=Large Sewing Kit
Comp0=High Quality Cat Pelt
Comp1=Skinning Knife

[MedQWolf]
Cont=Large Sewing Kit
Comp0=High Quality Wolf Skin
Comp1=Skinning Knife

[MedtoLowHopperHide]
Cont=Planar Sewing Kit
Comp0=Medium Quality Rockhopper Hide
Comp1=Skinning Knife

[melt]
Cont=Enviro
Comp0=Bear Meat
Comp1=Cheese
Comp2=Loaf Of Bread
Comp3=Non-stick Frying Pan

[MInfusion]
Cont=Medicine Bag
Comp0=Sickle Leaf
Comp1=Sickle Leaf

[mini]
Cont=Enviro
Comp0=Cask
Comp1=Malt
Comp2=Malt
Comp3=Malt
Comp4=Short Beer
Comp5=Short Beer
Comp6=Water Flask
Comp7=Water Flask
Comp8=Yeast

[MinoBrew]
Cont=Enviro
Comp0=Cask
Comp1=Malt
Comp2=Malt
Comp3=Malt
Comp4=Short Beer
Comp5=Short Beer
Comp6=Water Flask
Comp7=Water Flask
Comp8=Yeast

[Minotar heros brew]
Cont=Brew Barrel
Comp0=Cask
Comp1=Malt
Comp2=Malt
Comp3=Malt
Comp4=Short Beer
Comp5=Short Beer
Comp6=Water Flask
Comp7=Water Flask
Comp8=Yeast

[mistletemp]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Elven Wine
Comp2=Mistletoe

[MistWolf]
Cont=Medicine Bag
Comp0=A Cork
Comp1=Bistort
Comp2=Empty Vial
Comp3=Saprophytic Moss
Comp4=Wolf Blood
Comp5=Wolf Blood
Comp6=Woundwart

[MistyThicketPicnic]
Cont=Enviro
Comp0=Jumjum Salad
Comp1=Jumjum Spiced Beer
Comp2=Marmalade Sandwich
Comp3=Mature Cheese
Comp4=Picnic Basket
Comp5=Royal Mints
Comp6=Slice Of Jumjum Cake
Comp7=Slice Of Jumjum Cake

[mountbd]
Cont=Planar Jeweler's Kit
Comp0=Blue Diamond
Comp1=Velium Bar
Comp2=Velium Bar

[mountdiamond]
Cont=Planar Jeweler's Kit
Comp0=Diamond
Comp1=Velium Bar
Comp2=Velium Bar

[mountjacinth]
Cont=Planar Jeweler's Kit
Comp0=Jacinth
Comp1=Velium Bar
Comp2=Velium Bar

[mountsap]
Cont=Planar Jeweler's Kit
Comp0=Black Sapphire
Comp1=Velium Bar
Comp2=Velium Bar

[MQoreconvert]
Cont=Enviro
Comp0=Small Brick Of Medium Quality Ore
Comp1=Small Brick Of Medium Quality Ore
Comp2=Small Brick Of Medium Quality Ore
Comp3=Water Flask

[MQSealedVial]
Cont=Enviro
Comp0=Medium Quality Cat Pelt
Comp1=Sealed Vial Sketch
Comp2=Small Block Of Clay
Comp3=Water Flask

[MQSheet]
Cont=Enviro
Comp0=Block Of Medium Quality Ore
Comp1=Smithy Hammer
Comp2=Water Flask

[mrings]
Cont=Enviro
Comp0=File
Comp1=Large Brick Of Ore
Comp2=Water Flask

[Null]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Fenugreek
Comp2=Mandrake Root

[OCCoif]
Cont=Enviro
Comp0=Chainmail Coif Pattern
Comp1=High Quality Metal Rings
Comp2=High Quality Metal Rings
Comp3=Silver Bar
Comp4=Smithy Hammer
Comp5=Water Flask

[OCTunic]
Cont=Enviro
Comp0=Chainmail Tunic Pattern
Comp1=High Quality Metal Rings
Comp2=High Quality Metal Rings
Comp3=High Quality Metal Rings
Comp4=Silver Bar
Comp5=Smithy Hammer
Comp6=Water Flask

[Ogre]
Cont=Medicine Bag
Comp0=Ogre Meat
Comp1=Wormwood

[Ol' Tujim's Fierce Brew]
Cont=Barrel
Comp0=Barley
Comp1=Cask
Comp2=Hops
Comp3=Malt
Comp4=Yeast

[OltujimsFB]
Cont=Enviro
Comp0=Barley
Comp1=Cask
Comp2=Hops
Comp3=Malt
Comp4=Yeast

[OpalSlush]
Cont=Medicine Bag
Comp0=Gorge Moss
Comp1=Pouch Of Dust
Comp2=Sponge Mushroom

[opalstein]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Ceramic Lining Sketch
Comp2=Lacquered Opal
Comp3=Large Block Of Magic Clay
Comp4=Sculpting Tools
Comp5=Water Flask

[PA1]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Night Shade
Comp2=Sumbul

[PA2]
Cont=Medicine Bag
Comp0=Aloe
Comp1=Elderberry
Comp2=Night Shade

[PA3]
Cont=Medicine Bag
Comp0=Briar Thistle
Comp1=Figwort
Comp2=Night Shade

[PA4]
Cont=Medicine Bag
Comp0=Agrimony
Comp1=Briar Thistle
Comp2=Clover
Comp3=Dhea
Comp4=Night Shade

[PatchworkCloakCat]
Cont=Large Sewing Kit
Comp0=Cloak Pattern
Comp1=Ruined Cat Pelt

[pattymelt]
Cont=Enviro
Comp0=Bear Meat
Comp1=Cheese
Comp2=Loaf Of Bread
Comp3=Non-stick Frying Pan

[PBRibbon]
Cont=Enviro
Comp0=Ashen Dye
Comp1=Elm Handled Shears
Comp2=Platinum Ribbon

[PDye]
Cont=Enviro
Comp0=Glaze Lacquer
Comp1=Prism Shard

[perpetualairpump]
Cont=Enviro
Comp0=Coiled Spring
Comp1=Cured Leather Tubing
Comp2=Gears
Comp3=Steel Ball Bearing
Comp4=Vial Of Gases

[perpetualsteampump]
Cont=Enviro
Comp0=Coiled Spring
Comp1=Cured Leather Tubing
Comp2=Gears
Comp3=Steel Ball Bearing
Comp4=Water Flask

[picnic]
Cont=Collapsible Sewing Kit
Comp0=Steel Boning
Comp1=Woven Mandrake

[PicnicBasket]
Cont=Large Sewing Kit
Comp0=Steel Boning
Comp1=Woven Mandrake

[planarsteelbolts]
Cont=Enviro
Comp0=Brick Of Immaculate Steel
Comp1=Cam Parts Mold
Comp2=File

[planarwindbolts]
Cont=Enviro
Comp0=Cam Parts Mold
Comp1=Chunk Of Wind Metal
Comp2=File

[platjasper]
Cont=Planar Jeweler's Kit
Comp0=Jasper
Comp1=Platinum Bar

[PlatLapis]
Cont=Planar Jeweler's Kit
Comp0=Lapis Lazuli
Comp1=Platinum Bar

[PlatMala]
Cont=Planar Jeweler's Kit
Comp0=Malachite
Comp1=Platinum Bar

[PoTE]
Cont=Medicine Bag
Comp0=Faerie Wing
Comp1=Yebamante

[Power]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Fenugreek
Comp2=Lucerne

[poweredgloves]
Cont=Enviro
Comp0=Firewater
Comp1=Gears
Comp2=Metal Twine
Comp3=Sprockets
Comp4=Steel Lined Gloves

[PTRibbon]
Cont=Enviro
Comp0=Elm Handled Shears
Comp1=Jaggedpine Dye
Comp2=Platinum Ribbon

[purifiedwater]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Water Flask
Comp2=Water Flask

[Purity]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Lucerne
Comp2=Night Shade

[Purwater]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Water Flask
Comp2=Water Flask

[pvial]
Cont=Enviro
Comp0=High Quality Firing Sheet
Comp1=Unfired Poison Vial

[PWRibbon]
Cont=Planar Sewing Kit
Comp0=Elm Handled Shears
Comp1=Platinum Ribbon
Comp2=Steam Dye

[QeynosAT]
Cont=Brew Barrel
Comp0=Bayle's Delight
Comp1=Celestial Essence
Comp2=Cream
Comp3=Eucalyptus Leaf
Comp4=Flask
Comp5=Tea Leaves
Comp6=Water

[QoK]
Cont=Medicine Bag
Comp0=Erudition Vine
Comp1=Tanaan Ginko

[Quiver]
Cont=Planar Sewing Kit
Comp0=High Quality Cat Pelt
Comp1=Quiver Pattern

[rat]
Cont=Collapsible Mixing Bowl
Comp0=Jar Of Acid
Comp1=Mandrake Root
Comp2=Rat Meat

[regruameat]
Cont=Enviro
Comp0=Crab Cracker
Comp1=Regrua Claws

[Rejuvenation]
Cont=Medicine Bag
Comp0=Figwort
Comp1=Lucerne
Comp2=Sage Leaf

[roseplatring]
Cont=Planar Jeweler's Kit
Comp0=Platinum Bar
Comp1=Star Rose Quartz

[RoyalMints]
Cont=mixing
Comp0=Eucalyptus Leaf
Comp1=Frosting

[SacredTunareSilk]
Cont=Large Sewing Kit
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Silk Swatch

[STSilk]
Cont=Large Sewing Kit
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Silk Swatch

[sbco]
Cont=Enviro
Comp0=Small Piece Of Acrylia
Comp1=Small Piece Of Acrylia
Comp2=Small Piece Of Acrylia
Comp3=Water Flask

[sblockclay]
Cont=Enviro
Comp0=Block Of Clay
Comp1=Water Flask

[scarn]
Cont=Planar Jeweler's Kit
Comp0=Carnelian
Comp1=Silver Bar

[Serpent]
Cont=Medicine Bag
Comp0=Eucalyptus Leaf
Comp1=Fennel

[ShadeSilkThread]
Cont=Planar Sewing Kit
Comp0=Shadeling Silk
Comp1=Shadeling Silk

[Shadeweaver]
Cont=Medicine Bag
Comp0=Comfrey
Comp1=Figwort
Comp2=Heliotrope

[shadowheads]
Cont=Enviro
Comp0=Chunk Of Condensed Shadow
Comp1=File
Comp2=Water Flask

[sheetmetal]
Cont=Enviro
Comp0=Small Brick Of Ore
Comp1=Small Brick Of Ore
Comp2=Water Flask

[shortale]
Cont=Enviro
Comp0=Barley
Comp1=Cask
Comp2=Hops
Comp3=Water Flask

[Shumar]
Cont=Medicine Bag
Comp0=Horehound
Comp1=Vampire Dust

[sickleblade]
Cont=Enviro
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Curved Blade Mold
Comp3=Emerald
Comp4=Mistletoe Temper
Comp5=Sheet Metal
Comp6=Smithy Hammer

[sicklehilt]
Cont=Enviro
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Hilt Mold
Comp3=Mistletoe Temper
Comp4=Ruby
Comp5=Sheet Metal
Comp6=Smithy Hammer

[sicklepommel]
Cont=Enviro
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Mistletoe Temper
Comp3=Pommel Mold
Comp4=Sapphire
Comp5=Sheet Metal
Comp6=Smithy Hammer

[SilkBandage]
Cont=Vale Sewing Kit
Comp0=Silk Thread
Comp1=Silk Thread

[SilkCord]
Cont=Planar Sewing Kit
Comp0=Silk Thread
Comp1=Silk Thread
Comp2=Silk Thread

[SilkGLoves]
Cont=Large Sewing Kit
Comp0=Glove Pattern
Comp1=Silk Swatch

[SilkSwatch]
Cont=Large Sewing Kit
Comp0=Spider Silk
Comp1=Spider Silk

[SilkThread]
Cont=Planar Sewing Kit
Comp0=Spiderling Silk
Comp1=Spiderling Silk

[SimpleBelt]
Cont=Large Sewing Kit
Comp0=Simple Belt Pattern
Comp1=Yard Of Rough Cloth

[Skullale]
Cont=Enviro
Comp0=Cyclops Skull
Comp1=Short Beer
Comp2=Spices
Comp3=Vinegar

[smal]
Cont=Planar Jeweler's Kit
Comp0=Malachite
Comp1=Silver Bar

[Smith248Triv]
Cont=Enviro
Comp0=Banded Boot Mold
Comp1=Humming Luclinite Mallet
Comp2=Humming Orb
Comp3=Swirling Shadows
Comp4=Swirling Shadows
Comp5=Vah Shir Anvil
Comp6=Water Flask

[smokehero]
Cont=Enviro
Comp0=Hero Parts
Comp1=Smoker
Comp2=Spices

[snake]
Cont=Collapsible Mixing Bowl
Comp0=Jar Of Acid
Comp1=Mandrake Root
Comp2=Snake Meat

[soda]
Cont=Enviro
Comp0=Soda
Comp1=Water Flask

[SolsticeRobe]
Cont=Enviro
Comp0=Embroidering Needle
Comp1=Gem Studded Chain
Comp2=Sacred Tunare Silk
Comp3=Sacred Tunare Silk
Comp4=Sacred Tunare Silk
Comp5=Tunic Pattern

[SRobe]
Cont=Large Sewing Kit
Comp0=Embroidering Needle
Comp1=Gem Studded Chain
Comp2=Sacred Tunare Silk
Comp3=Sacred Tunare Silk
Comp4=Sacred Tunare Silk
Comp5=Tunic Pattern


[Soluan]
Cont=Medicine Bag
Comp0=Vetiver Root
Comp1=Werewolf Pelt

[SoR]
Cont=Medicine Bag
Comp0=Fire Drake Scale
Comp1=Vox's Dust

[SoulIncorp]
Cont=Medicine Bag
Comp0=Feather
Comp1=Stinging Nettle

[SOW]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Fenugreek
Comp2=Wolf Blood

[spicehero]
Cont=Enviro
Comp0=Hero Parts
Comp1=Jug Of Sauces
Comp2=Spices
Comp3=Vinegar

[SpiritShield]
Cont=Medicine Bag
Comp0=Clover
Comp1=Clubmoss
Comp2=Sumbul

[SpiritShift]
Cont=Medicine Bag
Comp0=Mercury
Comp1=Mystic Ash
Comp2=Sumbul

[spoon]
Cont=Enviro
Comp0=Metal Bits
Comp1=Metal Bits
Comp2=Scaler Mold
Comp3=Water Flask

[Spurn]
Cont=Medicine Bag
Comp0=Reucoat Herb
Comp1=Zombie Skin

[spyglass]
Cont=Enviro
Comp0=Bottle
Comp1=Collapsible Fishing Pole
Comp2=Metal Rod
Comp3=Metal Twine
Comp4=Reflective Shard

[srobe]
Cont=Collapsible Sewing Kit
Comp0=Embroidering Needle
Comp1=Gem Studded Chain
Comp2=Sacred Tunare Silk
Comp3=Sacred Tunare Silk
Comp4=Sacred Tunare Silk
Comp5=Tunic Pattern

[ssilk]
Cont=Large Sewing Kit
Comp0=Spiderling Silk
Comp1=Spiderling Silk

[STAA]
Cont=Planar Fletching Kit
Comp0=Bundled Acrylia Arrow Shafts
Comp1=Condensed Shadow Arrowheads
Comp2=Several Shield Cut Fletchings
Comp3=Small Groove Nocks

[Stability]
Cont=Medicine Bag
Comp0=Blue Vervain Bulb
Comp1=Lucerne
Comp2=Sage Leaf

[stalkingprobe]
Cont=Enviro
Comp0=Bottle
Comp1=Firewater
Comp2=Gears
Comp3=Gears
Comp4=Metal Rod

[standardbowcam]
Cont=Enviro
Comp0=Gears
Comp1=Gnomish Bolts
Comp2=Grease

[starroseneck]
Cont=Planar Jeweler's Kit
Comp0=Enchanted Electrum Bar
Comp1=Star Rose Quartz

[Steel]
Cont=Enviro
Comp0=File
Comp1=Small Brick Of Ore
Comp2=Water Flask

[SteelBoning]
Cont=Enviro
Comp0=File
Comp1=Small Brick Of Ore
Comp2=Water Flask

[steelpa]
Cont=Fletching Kit
Comp0=Bundled Steel Arrow Shafts
Comp1=Field Point Arrowheads
Comp2=Large Groove Nocks
Comp3=Several Round Cut Fletchings

[StingingWort]
Cont=Medicine Bag
Comp0=Balm Leaves
Comp1=Ice Giant Toes

[StormSalmonFilet]
Cont=Collapsible Spit
Comp0=Jug Of Sauces
Comp1=Storm Salmon

[Studded]
Cont=Planar Jeweler's Kit
Comp0=Emerald
Comp1=Ruby
Comp2=Sapphire
Comp3=Worked Silver Chain

[StudMaskBear]
Cont=Large Sewing Kit
Comp0=Mask Pattern
Comp1=Medium Quality Bear Skin
Comp2=Studs

[StudMaskCat]
Cont=Large Sewing Kit
Comp0=Mask Pattern
Comp1=Medium Quality Cat Pelt
Comp2=Studs

[StudMaskWolf]
Cont=Large Sewing Kit
Comp0=Mask Pattern
Comp1=Medium Quality Wolf Skin
Comp2=Studs

[studs]
Cont=Enviro
Comp0=File
Comp1=Metal Bits
Comp2=Metal Bits
Comp3=Metal Bits
Comp4=Water Flask

[SurefallRTJ]
Cont=Brew Barrel
Comp0=Air-sealed Arador
Comp1=Celestial Essence
Comp2=Surefall Sap

[Swamp]
Cont=Medicine Bag
Comp0=Bladderwrack
Comp1=Heliotrope

[SwirlingLiquid]
Cont=Medicine Bag
Comp0=Dristilate
Comp1=Opal Slush

[telescopiceyepatch]
Cont=Enviro
Comp0=Gnomish Bolts
Comp1=Low Quality Dire Wolf Fur
Comp2=Reflective Shard
Comp3=Velium Lens

[Test]
Cont=Test
Comp0=Test
Comp1=Test

[thermalcloak]
Cont=Enviro
Comp0=Firewater
Comp1=Metal Rod
Comp2=Tattered Gnomish Cloak

[tinkeredcatapult]
Cont=Enviro
Comp0=Firewater
Comp1=Gears
Comp2=Metal Twine
Comp3=Shaped Ashwood Recurve Bow
Comp4=Sprockets

[Titan]
Cont=Medicine Bag
Comp0=Maliak Leaf
Comp1=Tri-fern Leaf

[TMercury]
Cont=Medicine Bag
Comp0=Comfrey
Comp1=Mercury

[topazear]
Cont=Enviro
Comp0=Gold Bar
Comp1=Topaz

[Troll]
Cont=Medicine Bag
Comp0=Troll Parts
Comp1=Wormwood

[Tunare]
Cont=Enviro
Comp0=Blessed Dust Of Tunare
Comp1=Celestial Essence
Comp2=Silk Swatch

[Turtle]
Cont=Medicine Bag
Comp0=Clubmoss
Comp1=Sumbul

[ucd]
Cont=Enviro
Comp0=Casserole Dish Sketch
Comp1=Ceramic Lingin
Comp2=Large Block Of Clay
Comp3=Water Flask

[ucl]
Cont=Pottery Wheel
Comp0=Ceramic Lining Sketch
Comp1=Small Block Of Clay
Comp2=Water Flask

[UCWB]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Lacquered Opal
Comp2=Sculpting Tools
Comp3=Small Block Of Clay
Comp4=Vial Of Cloudy Mana
Comp5=Water Flask

[UFCass]
Cont=Enviro
Comp0=Casserole Dish Sketch
Comp1=Ceramic Lining
Comp2=Large Block Of Clay
Comp3=Water Flask

[UFCLining]
Cont=Enviro
Comp0=Ceramic Lining Sketch
Comp1=Small Block Of Clay
Comp2=Water Flask

[UFMedBowl]
Cont=Enviro
Comp0=Block Of Clay
Comp1=Medium Bowl Sketch
Comp2=Water Flask

[UFMedJar]
Cont=Enviro
Comp0=Block Of Clay
Comp1=Medium Jar Sketch
Comp2=Water Flask

[UndeadRecourse]
Cont=Medicine Bag
Comp0=Damlana
Comp1=Warbone Chips

[Unfired Casserole Dish]
Cont=Pottery Wheel
Comp0=Casserole Dish Sketch
Comp1=Ceramic Lining
Comp2=Large Block Of Clay
Comp3=Water Flask

[Unfired Small Container]
Cont=Pottery Wheel,
Comp0=Block Of Clay
Comp1=Small Jar Sketch
Comp2=Water Flask

[unfirelargebowl]
Cont=Enviro
Comp0=Glass Shard
Comp1=Large Block Of Clay
Comp2=Large Bowl Sketch
Comp3=Water Flask

[UnlifeAwareness]
Cont=Medicine Bag
Comp0=Elderberry
Comp1=Fennel

[unplanarstein]
Cont=Enviro
Comp0=Block Of Tanaan Clay
Comp1=Ceramic Lining Sketch
Comp2=Sculpting Tools
Comp3=Tainted Planar Essence
Comp4=Water Flask

[uvial]
Cont=Enviro
Comp0=Low Quality Wolf Skin
Comp1=Small Block Of Clay
Comp2=Vial Sketch
Comp3=Water Flask

[VahShir]
Cont=Medicine Bag
Comp0=Vah Shir Meat
Comp1=Wormwood

[Vampire]
Cont=Medicine Bag
Comp0=Feverfew
Comp1=Griffon Feathers

[VannToeStew]
Cont=Collapsible Spit
Comp0=Bottle Of Milk
Comp1=Spices
Comp2=Vann Toes

[veliumbits]
Cont=Enviro
Comp0=Coldain Velium Temper
Comp1=Small Piece Of Velium
Comp2=Small Piece Of Velium

[veliumsheet]
Cont=Enviro
Comp0=Block Of Velium
Comp1=Coldain Velium Temper
Comp2=Velium Smithy Hammer

[veliumstuds]
Cont=Enviro
Comp0=Coldain Velium Temper
Comp1=File
Comp2=Velium Bits
Comp3=Velium Bits
Comp4=Velium Bits

[veltemper]
Cont=Enviro
Comp0=Celestial Essence
Comp1=Celestial Essence
Comp2=Celestial Essence
Comp3=Celestial Essence
Comp4=Coldain Heater

[VialPDye]
Cont=Enviro
Comp0=Dye Vial
Comp1=Prismatic Dye

[Vigor]
Cont=Medicine Bag
Comp0=Birthwart
Comp1=Blue Vervain Bulb
Comp2=Lucerne

[voil]
Cont=Enviro
Comp0=Vegetables
Comp1=Water Flask

[Vox]
Cont=Medicine Bag
Comp0=Froglok Leg
Comp1=Sea Spirit

[WeightlessMist]
Cont=Medicine Bag
Comp0=A Cork
Comp1=Birthwart
Comp2=Comfrey
Comp3=Deep Cavern Fungus
Comp4=Empty Vial
Comp5=Figwort
Comp6=Hydrangea

[WF]
Cont=Spit
Comp0=Filleting Knife
Comp1=Wolf Meat

[WinterChocolate]
Cont=mixing
Comp0=Brownie Parts
Comp1=Frosting
Comp2=Frosting

[WolfCreamFillet]
Cont=spit
Comp0=Creamy Fennel Sauce
Comp1=Filleted Wolf

[WolvesBlood]
Cont=Medicine Bag
Comp0=High Quality Wolf Skin
Comp1=Sticklewart

[WoodElf]
Cont=Medicine Bag
Comp0=Wood Elf Parts
Comp1=Wormwood

[worked]
Cont=Enviro
Comp0=Enchanted Silver Bar
Comp1=Metal Bits
Comp2=Water Flask

[woven]
Cont=Collapsible Sewing Kit
Comp0=Mandrake Root
Comp1=Mandrake Root

[WovenMandrake]
Cont=Large Sewing Kit
Comp0=Mandrake Root
Comp1=Mandrake Root

[Wrackbane]
Cont=Medicine Bag
Comp0=Mammoth Meat
Comp1=Woundwart

[WuMantle]
Cont=Planar Sewing Kit
Comp0=Heady Kiola
Comp1=Heady Kiola
Comp2=Heady Kiola
Comp3=Heady Kiola
Comp4=Shoulderpad Pattern
Comp5=Silk Swatch
Comp6=Vial Of Viscous Mana

[wupants]
Cont=Enviro
Comp0=Heady Kiola
Comp1=Heady Kiola
Comp2=Heady Kiola
Comp3=Heady Kiola
Comp4=Pant Pattern
Comp5=Silk Swatch
Comp6=Silk Swatch
Comp7=Silk Swatch
Comp8=Vial Of Viscous Mana

[WuSleeve]
Cont=Planar Sewing Kit
Comp0=Heady Kiola
Comp1=Heady Kiola
Comp2=Heady Kiola
Comp3=Heady Kiola
Comp4=Silk Swatch
Comp5=Silk Swatch
Comp6=Sleeve Pattern
Comp7=Vial Of Viscous Mana

[WuTunic]
Cont=Enviro
Comp0=Heady Kiola
Comp1=Heady Kiola
Comp2=Heady Kiola
Comp3=Heady Kiola
Comp4=Silk Swatch
Comp5=Silk Swatch
Comp6=Silk Swatch
Comp7=Tunic Pattern
Comp8=Vial Of Viscous Mana

[YewLeafTannin]
Cont=Brew Barrel
Comp0=Water Flask
Comp1=Yew Leaf

utils.inc
Rich (BB code):
| Generic sub to wait for something
| i.e. Cursor.ID, Merchant.Open, etc
Sub WaitFor
/declare MaxWaitCount timer local 1
:WaitForX
/echo WaitFor ${Param0} (${${Param0}})
/if (${String[${${Param0}}].Equal[NULL]} && ${MaxWaitCounter} > 0) {
     /delay 1
     /goto :WaitForX
} else {
     /delay 5
     /if (${${Param0}}) /return 1
}
/return 0


Sub OpenPacks
/declare slotNumber int local

    | Open all packs if they aren't already
    /for slotNumber 1 to 8
        /if (!${Window[Pack${slotNumber}].Open}) {
            /itemnotify pack${slotNumber} rightmouseup
        }
    /next slotNumber
/return


Sub OpenBanks
/declare slotNumber int local

    | Open all bank packs if they aren't already
    /for slotNumber 1 to 18
        /if (!${Window[Bank${slotNumber}].Open}) {
         /if (${slotNumber} < 17) {
            /itemnotify bank${slotNumber} rightmouseup
         } else {
         /itemnotify sharedbank${Int[${Math.Calc[${slotNumber}-16]}]} rightmouseup
         }
        }
    /next slotNumber
/return


Sub ClosePacks
/declare slotNumber int local

    | Close all packs if they aren't already
    /for slotNumber 1 to 8
        /if (${Window[Pack${slotNumber}].Open}) {
            /itemnotify pack${slotNumber} rightmouseup
        }
    /next slotNumber
/return


Sub CloseBanks
/declare slotNumber int local

| Open all bank packs if they aren't already
/for slotNumber 1 to 18
     /if (${Window[bank${slotNumber}].Open}) {
         /if (${slotNumber} < 17) {
            /itemnotify bank${slotNumber} rightmouseup
         } else {
         /itemnotify sharedbank${Int[${Math.Calc[${slotNumber}-16]}]} rightmouseup
         }
     }
/next slotNumber
/return


| Finds the value of an argument in a parameter string
| Use __ in place of spaces
sub parseArguments(string sArgument, string sParameters)
    /declare iArgNum    int     local
    /declare sArgValue string local
    
    /for iArgNum 1 to ${sParameters.Count[=]}
     /if (${sParameters.Arg[${iArgNum}, ].Left[${sArgument.Length}].Equal[${sArgument}]}) {
         |/declare tmp int local ${sArgument.Length}
         |/varcalc tmp (${tmp}+1)*-1
         |/varset sArgValue ${sParameters.Arg[${iArgNum}, ].Right[${tmp}]}
        
         /varset sArgValue ${sParameters.Arg[${iArgNum}, ].Right[${Math.Calc[(${sArgument.Length}+1)*-1]}]}
        
         /if (${String[${sArgValue.Find[__]}].NotEqual[NULL]}) {
             /declare sepLoop int local
             /declare tmpValue string local ${sArgValue}
             /varset sArgValue

             /for sepLoop 1 to ${Math.Calc[${tmpValue.Count[_]}+1]}
                /if (${Math.Calc[${sepLoop}%2]}) {
                 /varset sArgValue ${sArgValue} ${tmpValue.Token[${sepLoop},_]}
                }
             /next sepLoop
         }

         /return ${sArgValue}
     }
    /next iArgNum
/return __NOT_FOUND__

move.inc
Rich (BB code):
|
| move.inc
|
|Advanced moving and object-avoidance routines
|
|Originally by beatnik007 (Who credits Mckorr)
|
|Revised and converted to MQ2Data by Terramantian
|
|Signifagant and on-going Improvments by EQBot_Man 8.9.04
| Added /call MoveToSpawnName
| This will take a partial name and a distance and reliably target and move
| to the nearest spawn of that name
| Added code to get you to stop a lot closer than 10 units. You should stop almost
| right at the location you want when using MoveToLoc
| Sometimes you would get stuck at a door and if you were macroing unattended
| you would continue to strafe for hours making it obvious you were
| macroing. Added code that if the strafe function is called more
| than 10 times in 60 sec to /quit you out
| Have added lots of little checks including NULL targets and corpse checks and a lot
| of little things that I can't remember now but I needed to add due to rare
| circumstances of the subroutines failing to do what they were desigend to do.
|
| Subroutines:
| Sub MoveToLoc
| Moves you to a specified xy loc
| Sub MoveToSpawn
| Moved you to a specified ID number(pretty pointless)
| Sub MoveToSpawnName
| Moves you to the nearest spawn given a partial or full name
|
|===================================================|


| Sub MoveToLoc |
|---------------------------------------------------|
|This simply moves the player to within 1 unit of |
|the requested location, while avoiding obstacles |
| |
|This is beatnik007's original sub, with a few minor|
|changes and rewritten in MQ2Data format |
| |
|SYNTAX: /call MoveToLoc Y X |


Sub MoveToLoc(MoveToY, MoveToX)
/echo Moving to Location: ${MoveToY}, ${MoveToX}.
/echo Distance: ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/declare FailureTimer timer local 0
/declare StrafeFailure int local
/declare running int local
/declare MaxSpeed int local
/declare StopDistance int local
/declare distanceNow float local
/declare distanceBefore float local
/declare distanceModifier int local
/varset running 0
/declare distanceTimer timer 15
/varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/varset distanceModifier 1
/varset MaxSpeed 0
:moveToLocation

/if (${Me.Speed}>=${MaxSpeed}) /varset MaxSpeed ${Me.Speed}
/if (${MaxSpeed}<=166) {
/varset StopDistance 3
} else {
/varset StopDistance 10
}

/face fast nolook loc ${MoveToY},${MoveToX}

/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<${StopDistance}) {
/keypress forward
/return
}

/if (${distanceTimer}==0) {
/if (${Me.Sneaking}) {
/varset distanceModifier 2
} else {
/varset distanceModifier 1
}

/varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
/if (${FailureTimer}==0) {
/varset StrafeFailure 0
/varset FailureTimer 600
}
/if (${FailureTimer}>0) {
/varset StrafeFailure ${Math.Calc[${StrafeFailure} + 1]}
}
/if (${StrafeFailure}>=10 && ${FailureTimer}>0) {
/keypress forward
/keypress back hold
/delay 5
/keypress back
/afk Be back later, leave a message
/echo Your movement failed more than 10 times in 30 seconds and most likely looked macroed. Ending macro. . .
/endmacro
/quit
}
/call strafePastObstacle ${StrafeFailure}
}

/varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/varset distanceTimer 15
}

/if (${running}==0) {
/keypress forward
/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>${StopDistance}) {
/varset running 1
/keypress forward hold
}
} else {
/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<${StopDistance}) {
/varset running 0
/keypress forward
}
}
/goto :moveToLocation
/return


| Sub MoveToSpawn |
|---------------------------------------------------|
|This moves the player to within a provided distance|
|of the provided spawn, while avoiding obstacles |
| |
|I "wrote" this, but as you can see, it's the same |
|as MoveToLoc with a few variable replacements. |
| |
|The second parameter, Distance, allows for the |
|player to stop short of the target by a certain |
|amount, to provide for different aggro radii, etc. |
| |
|SYNTAX: /call MoveToSpawn ID Distance |

Sub MoveToSpawn(MoveToID, StopDistance)


/if (!(${Defined[MoveToID]})||(${Spawn[MoveToID].ID})) {
/echo Spawn ID not found or no ID provided. Aborting...
/return
}
/if (!(${Defined[StopDistance]})) {
/echo Stopping point not defined, using default distance of 70
/declare StopDistance int local
/varset StopDistance 70
}
/echo Moving to Spawn: ${MoveToID} (${Spawn[${MoveToID}].CleanName}).
/echo Current Location: ${Spawn[${MoveToID}].Y}, ${Spawn[${MoveToID}].X}
/echo Current Distance: ${Spawn[${MoveToID}].Distance}
/declare FailureTimer timer local 0
/declare StrafeFailure int local
/declare running int local
/declare distanceNow float local
/declare distanceBefore float local
/declare distanceModifier int local
/varset running 0
/declare distanceTimer timer 15
/varset distanceBefore ${Spawn[${MoveToID}].Distance}
/varset distanceModifier 1

:moveToSpawn

/squelch /face fast nolook id ${MoveToID}

/if (${Spawn[${MoveToID}].Distance}<${StopDistance}) {
/keypress forward
/return
}

/if (${distanceTimer}==0) {
/if (${Me.Sneaking}) {
/varset distanceModifier 2
} else {
/varset distanceModifier 1
}

/varset distanceNow ${Spawn[${MoveToID}].Distance}
/if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
/if (${FailureTimer}==0) {
/varset StrafeFailure 0
/varset FailureTimer 600
}
/if (${FailureTimer}>0) {
/varset StrafeFailure ${Math.Calc[${StrafeFailure} + 1]}
}
/if (${StrafeFailure}>=10 && ${FailureTimer}>0) {
/keypress forward
/keypress back hold
/delay 5
/keypress back
/sit
/afk Be back later, leave a message
/echo Your movement failed more than 10 times in 30 seconds and most likely looked macroed. Ending macro. . .
/endmacro
/quit
}
/call strafePastObstacle ${StrafeFailure}
}
/varset distanceBefore ${Spawn[${MoveToID}].Distance}
/varset distanceTimer 15
}

/if (${running}==0) {
/keypress forward
/if (${Spawn[${MoveToID}].Distance}>=${StopDistance}) {
/varset running 1
/keypress forward hold
}
} else {
/if (${Spawn[${MoveToID}].Distance}<${StopDistance}) {
/varset running 0
/keypress forward
}
}
/goto :moveToSpawn
/return


| Sub MoveToSpawnName |
|---------------------------------------------------|
|This moves the player to within a provided distance|
|of the provided spawn, while avoiding obstacles |
| |
|I "wrote" this, but as you can see, it's the same |
|as MoveToLoc with a few variable replacements. |
| |
|The second parameter, Distance, allows for the |
|player to stop short of the target by a certain |
|amount, to provide for different aggro radii, or to|
|attack. |
| |
|SYNTAX: /call MoveToSpawnName Name Distance |
| Does take partial names: |
| /call MoveToSpawnName skel 9 |
| to move you to the nearest skeleton |
| |
| I use this for farming bone chips and silks |

Sub MoveToSpawnName(Name, StopDistance)
/keypress esc
/target ${Name} npc
/delay 2
/if (${String[${Target}].Find["NULL"]}) /return
/if (${String[${Target}].Find["corpse"]}) /return
/if (!${Target.ID}) {
/echo Name not found or no name provided. Aborting...
/return
}
/if (!(${Defined[StopDistance]})) {
/echo Stopping point not defined, using default distance of 70
/declare StopDistance int local
/varset StopDistance 70
}
/echo Moving to Spawn: ${Target.CleanName}.
/declare FailureTimer timer local 0
/declare StrafeFailure int local
/declare running int local
/declare distanceNow float local
/declare distanceBefore float local
/declare distanceModifier int local
/varset running 0
/declare distanceTimer timer 15
/varset distanceBefore ${Target.Distance}
/varset distanceModifier 1

:moveToSpawn
/if (${String[${Target}].Find["NULL"]}) /return
/face fast predict

/if (${Target.Distance}<${StopDistance}) {
/keypress forward
/return
}

/if (${distanceTimer}==0) {
/if (${Me.Sneaking}) {
/varset distanceModifier 2
} else {
/varset distanceModifier 1
}

/varset distanceNow ${Target.Distance}
/if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
/if (${FailureTimer}==0) {
/varset StrafeFailure 0
/varset FailureTimer 600
}
/if (${FailureTimer}>0) {
/varset StrafeFailure ${Math.Calc[${StrafeFailure} + 1]}
}
/if (${StrafeFailure}>=10 && ${FailureTimer}>0) {
/keypress forward
/keypress back hold
/delay 5
/keypress back
/sit
/afk Be back later, leave a message
/echo Your movement failed more than 10 times in 30 seconds and most likely looked macroed. Ending macro. . .
/endmacro
/quit
}
/call strafePastObstacle ${StrafeFailure}
}
/varset distanceBefore ${Target.Distance}
/varset distanceTimer 15
}

/if (${running}==0) {
/keypress forward
/if (${Target.Distance}>=${StopDistance}) {
/varset running 1
/keypress forward hold
}
} else {
/if (${Target.Distance}<${StopDistance}) {
/varset running 0
/keypress forward
}
}
/goto :moveToSpawn
/return

| Only to be used by the previous functions - It's obvious what it does. |

sub strafePastObstacle(Number)
/keypress forward
/keypress back hold
/delay ${Math.Calc[${Number}*3/2+4]}
/keypress back
/if (!${Me.State.Equal["STAND"]}) /stand
/if (${Math.Rand[99]}>50) {
/keypress strafe_right hold
} else {
/keypress strafe_left hold
}
/delay ${Math.Calc[${Number}*4+5]}
/keypress strafe_right
/keypress strafe_left
/keypress forward hold
/return

Sub Turn(THeadingY,THeadingX)
/declare PHeading outer 0
/declare THeading outer 0
/declare Bearing outer 0
/declare IsTurning outer 0
/declare TurnKey outer NULL

:TurnLoop
/delay 0
/if (${Me.Sitting}) /sit off
/varset PHeading ${Me.Heading.Degrees}
/if (${Defined[THeadingX]}) {
/varset THeading ${Heading[${THeadingY},${THeadingX}].Degrees}
} else {
/varset THeading ${Target.HeadingTo.Degrees}
}

/varset Bearing ${Math.Calc[(${PHeading}-${THeading}+540)%360-180]}

/if (${Bearing}>=-7 && ${Bearing}<=7) {
/if (${String[${TurnKey}].NotEqual[NULL]}) /keypress ${TurnKey}
/face heading ${Heading[${THeading}].Degrees} nolook
/return
} else /if (${Bearing}>=-180 && ${Bearing}>=7) {
/if (${String[${TurnKey}].NotEqual
}) /varset TurnKey LEFT } else /if (${Bearing}<=180 && ${Bearing}<=7) { /if (${String[${TurnKey}].NotEqual
}) /varset TurnKey RIGHT } /if (!${IsTurning}) { /keypress ${TurnKey} hold /varset IsTurning 1 } /goto :TurnLoop /return​
 
Hmm...This might be a nifty macro to modify for tradeskillers...Because Vegetables are now player made as well as foraged. 15 skill in baking, Lettuce, Carrot, and Turnip in a Mixing bowl...All 3 are sold at the same vendor, Klen Ironstove.
 
I get "[MQ2] Checking: NULL (0/0)" when running this, but I'm NOT a macro guru. What's the issue?
 
Any chance an update for this, for the new merchant window? ive messed around trying to get it to work and gave up :P
 
Just curious but is there an easy way to change what recipie your doing?

Heady Kola are a great seller too.

5-10pp each depending on market but heck 3pp ea is triple your investment

8-)
 
Celestial Essence macro

Users who are viewing this thread

Back
Top
Cart