Mushnar's Mostly Safe Tinkering Trainer by mushnar

Created: 07/18/2025
Last Updated: about 1 month ago
Description from the author:

The intent for this script is to be used to level tinkering while standing in town within reach of the bank and a jeweler NPC.

This script will automatically sell beads as they are crafted and move the gold to your bank. Only 2 tinker tools should be in your bag at any given time.

If a thief steals from you they can steal your tinker tools and the script will buy more until the vendor runs out - they might also steal a single bead or the gold from a single sale, but they would have to be quick!

*Update* The Stationary Penalty Debuff now prevents you from buying from vendors, if the script isn't able to buy from vendors it will attempt to pull toolkits from your bank box or a container inside your bank box. Whatever serial number you set for bank_box_or_container_in_bank

Setup:

1. add beads / necklace to your SELL agent and Enable it

2. Add 2 toolkits to your BUY agent and enable it

3. Setup your crafting queue with beads set to Craft Until Skill Reached to your desired skill level

4. Put a container in your bank box and set the crafting queue to pull resources from this container

5. Put all your crafting materials inside this container

6. Set bank_serial_number variable to the serial number of your bank box OR a container INSIDE your bank box

################################# ########### UPDATE LOG ########### # 2025-07-21 # #### Feature: Stops the script & crafting queue if you have less than 10 stones of weight available or over 120 items in your backpack if configured as a failsafe # 2025-07-20 # #### Fixed some edge case bugs that prevented the script from being able to count the number of toolkits in your backpack # #### Feature: Stop the script & crafting queue if your Artisan aspect is capped out on XP if enabled # #### Feature: Stop the script & crafting queue if you run out of resources to prevent the Crafting Queue from making higher level items and wasting resources erroneously # #### Feature: Ping an overhead message on the Jeweler NPC if enabled # #### Feature: Display Debug messages overhead if enabled to assist in troubleshooting errors # #### Feature: Pull Tinker Tools from the bank if unable to buy tools from the vendor ################################# #################################### ############ SCRIPT SETUP ############ # Add beads ONLY to your SELL agent and enable it # Add 2 toolkits to your BUY agent and enable it # Setup your crafting queue with beads set to Craft Until Skill Reached # Put a container in your bank box and set the crafting queue to pull resources from this container # Put all your crafting materials inside this container # Set bank_serial_number variable to the serial number of your bank box OR a container INSIDE your bank box # #### Go to a bank and open it # #### Open Razor and create a new script and give it any name # #### Press the Record button in razor # #### Drag any item into your bank box # #### Copy the serial number from the line that says *drop* # #### Serial number should be in this format 0x72C326D9 #################################### ######################################## ############ TROUBLESHOOTING ############ # Log out of the game entirely on all clients, close the launcher and reopen to ensure there is not a new patch # Clear & recreate your SELL & BUY agents entirely # Delete the script from Razor and create a brand new one & set back up with your desired skill cap, configuration options and bank_box_serial_number ######################################## @setvar! tinkering_skill_cap 55 @setvar! bank_box_serial_number 0x42250BDA @setvar! stop_if_artisan_aspect_capped 0 @setvar! stop_if_out_of_resources 1 @setvar! stop_if_overweight_or_over_item_limit 1 @setvar! mark_jeweler_overhead 0 @setvar! mark_jeweler_overhead_frequency 4000 @setvar! enable_debug_messages 0 if stop_if_artisan_aspect_capped = 1 say "[Aspect" waitforgump 2424293173 1000 endif if mark_jeweler_overhead = 1 removetimer "overhead_cooldown" if not timerexists "overhead_cooldown" createtimer "overhead_cooldown" settimer "overhead_cooldown" mark_jeweler_overhead_frequency endif endif if enable_debug_messages = 1 overhead "DEBUG MESSAGES ENABLED" 53 endif while not dead @clearignore @setvar jeweler_npc 0 while findtype 400|401 ground any any 8 as npc getlabel npc npc_description if "jeweler" in npc_description @setvar jeweler_npc npc if enable_debug_messages = 1 overhead "Found Jeweler!" 53 endif if mark_jeweler_overhead = 1 if timer "overhead_cooldown" >= mark_jeweler_overhead_frequency overhead "▼▼ Jeweler ▼▼" 88 jeweler_npc settimer "overhead_cooldown" 0 endif endif if skill "tinkering" >= tinkering_skill_cap overhead "Tinkering at desired level!" 88 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop else if enable_debug_messages = 1 overhead "Tinkering skill below desired level" 53 endif if stop_if_artisan_aspect_capped = 1 say "[Aspect" waitforgump 2424293173 500 if ingump "Upgrade tier" 2424293173 overhead "UPGRADE ASPECT" 53 # Stop queue if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif endif if counttype "tool kit" backpack <= 1 if enable_debug_messages = 1 overhead "Restocking Tinkers Tools" 53 endif menu jeweler_npc 1 wait 1000 if counttype "tool kit" backpack <= 1 if enable_debug_messages = 1 overhead "Error Buying: Restocking from Bank" 53 endif if findtype 7864 bank_box_serial_number as tools_in_bank if enable_debug_messages = 1 overhead "Found Tinker Tools in Bank" 53 endif @drop backpack -1 -1 -1 getlabel backpack ping lift tools_in_bank 1 getlabel backpack ping wait 100 drop backpack getlabel backpack ping wait 100 endif endif endif if stop_if_overweight_or_over_item_limit = 1 if diffweight <= 10 overhead "Stopping: Overweight!" 53 overhead "Stopping: Overweight!" 53 overhead "Stopping: Overweight!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif getlabel backpack backpack_description wait 100 if "120/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif if "121/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif if "122/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif if "123/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif if "124/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif if "125/125" in backpack_description overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 overhead "Stopping: Backpack full!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif endif # Keep the crafting queue open if not gumpexists 453554062 if enable_debug_messages = 1 overhead "Opening Crafting Queue" 53 endif say "[CraftingQueue" getlabel backpack ping endif # Start queue if ingump "Begin Crafting" 453554062 if enable_debug_messages = 1 overhead "Begin Crafting!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif if stop_if_out_of_resources = 1 if insysmsg "You don't have the resources required to make that item" overhead "Out of resources!" 53 if ingump "Stop Crafting" 453554062 if enable_debug_messages = 1 overhead "Stopping Crafting Queue!" 53 endif gumpresponse 7 453554062 waitforgump 453554062 1000 endif stop endif endif # Sells beads to the Jeweler if findtype 4233 backpack as found_bead if enable_debug_messages = 1 overhead "Selling Beads!" 53 endif menu jeweler_npc 2 getlabel backpack ping wait 100 endif # Moves gold to the bank box if findtype 3821 backpack as found_gold if enable_debug_messages = 1 overhead "Moving Gold to Bank!" 53 endif @drop backpack -1 -1 -1 getlabel backpack ping lift found_gold 60000 getlabel backpack ping drop bank_box_serial_number -1 -1 0 endif wait 1000 if stop_if_artisan_aspect_capped = 1 if gumpexists 2424293173 gumpclose 2424293173 endif endif endif else @ignore npc endif endwhile if jeweler_npc = 0 overhead "No jeweler in range!" stop endif endwhile

Quick Filters

Bard Quick SearchCrafter Quick SearchDexxer Quick SearchHarvester Quick SearchMage Quick SearchPVM Quick SearchPVP Quick SearchStealth Quick SearchTamer Quick Search