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