Paragon Chest Bot by .phisn

Related: Lockpicking
Created: 09/07/2026
Last Updated: about 19 hours ago
Description from the author:

Harvest T9 & 120 Lockpicking/Detect Hidden can use Gold+ tools to open Greater Paragons without failure.

Added a mechanic to return partially picked chests to the source container in case you ran out of tools (untested)

The bot grab lockpicks/trap tools placed in the source container. This avoids having to trade them. Ensure they're Gold+ or you're likely to *boom*

# ============================================================================= # Paragon Chest Bot by Chinga # ============================================================================= # # Requirements & Setup: # 1. Sealed chests only: Completed/unlocked chests returned to the source # container are tracked in a persistent list and ignored so they are never # retrieved a second time. # 2. Continuous Lockpicking & Continuous Remove Trap checked in the # Lockpicking Gump menu (Gump ID 736038070). # 3. On first run, target the container where sealed Paragon Chests are stored. # (To reset container memory, toggle WARMODE ON before starting script). # 4. Script ends with `loop` to continuously monitor the source container # for new sealed chests deposited by players. # # ============================================================================= # --- Variable & List Reset Check (WARMODE ON) --- if warmode @unsetvar "paragonSourceContainer" if listexists "completedChestsList" clearlist "completedChestsList" endif overhead "Paragon Container Memory & Lists Wiped!" 38 warmode off pause 1000 endif # Initialize tracking list for completed chests if not listexists "completedChestsList" createlist "completedChestsList" endif # --- Source/Destination Container Selection --- if not varexist paragonSourceContainer overhead "Select the Container holding Paragon Chests..." 88 hotkey "Cancel Current Target" hotkey "Set Last Target" wft 5000 while targetexists overhead "Target container for Paragon Chests" 45 pause 1000 endwhile @setvar "paragonSourceContainer" lasttarget overhead "Container Saved Successfully!" 69 pause 600 endif # --- Main Core Loop --- while not dead clearsysmsg # Re-apply ignore flags to already completed chests foreach cChest in "completedChestsList" @ignore cChest endfor # Retrieve tools from source container if present while findtype "lockpicks|drill|trap removal tool|trap removal|5371|2473|25750" paragonSourceContainer as sourceTool overhead "Retrieving Tool from container..." 69 drop backpack lift sourceTool 60000 drop backpack while queued // Wait for transfer endwhile getlabel backpack ping endwhile # 1. Search for sealed Paragon Chest in source container if findtype "3712|3648|3650|3708|metal chest|3649|29833|29832" paragonSourceContainer as targetChest # Check 1: Is this chest already recorded as completed? if inlist "completedChestsList" targetChest @ignore targetChest continue endif # Check 2: Inspect chest label inside container before retrieving getlabel targetChest chestDesc if "unlocked" in chestDesc or "cleared" in chestDesc or "opened" in chestDesc or "open" in chestDesc overhead "Skipping unlocked chest..." 38 if not inlist "completedChestsList" targetChest pushlist "completedChestsList" targetChest endif @ignore targetChest continue endif overhead "Sealed Paragon Chest Found! Retrieving..." 88 # Lift chest and bring to backpack drop backpack lift targetChest 1 drop backpack while queued // Wait for movement action to complete endwhile getlabel backpack ping # Verify chest is now in backpack if findtype "3712|3648|3650|3708|metal chest|3649|29833|29832" backpack as activeChest # Tool Verification: Return chest to container if missing trap tools or lockpicks if not findtype "drill|trap removal|2473|25750" backpack overhead "ERROR: No Trap Tools in backpack!" 38 say "I need Trap Tools!" 38 overhead "Returning chest to container..." 53 drop backpack lift activeChest 1 drop paragonSourceContainer -1 -1 0 while queued endwhile getlabel backpack ping stop endif if not findtype "lockpicks|5371" backpack overhead "ERROR: No Lockpicks in backpack!" 38 say "I need Lockpicks!" 38 overhead "Returning chest to container..." 53 drop backpack lift activeChest 1 drop paragonSourceContainer -1 -1 0 while queued endwhile getlabel backpack ping stop endif # Open lockpicking & untrap gump gumpclose 736038070 dclick activeChest waitforgump 736038070 2000 # --- Phase 1: Disarm / Remove Traps --- if gumpexists 736038070 and not ingump "Cleared Of Traps" 736038070 overhead "Disarming Traps..." 43 # Trigger Disarm button while gumpexists 736038070 and not ingump "Cleared Of Traps" 736038070 gumpresponse 7 waitforgump 736038070 1000 if insysmsg "You attempt to remove traps" or insysmsg "That appears to be devoid" break endif endwhile # Wait for trap removal to complete while not dead and gumpexists 736038070 if not findtype "drill|trap removal|2473|25750" backpack overhead "WARNING: Out of Trap Tools!" 38 say "I ran out of Trap Tools!" 38 overhead "Returning chest to container..." 53 gumpclose 736038070 drop backpack lift activeChest 1 drop paragonSourceContainer -1 -1 0 while queued endwhile getlabel backpack ping stop endif if insysmsg "You make some progress towards clearing it of traps" say "*clink*" 810 endif if insysmsg "You have successfully cleared it of traps" or ingump "Cleared Of Traps" 736038070 overhead "Chest Cleared of Traps!" 69 break endif pause 250 endwhile waitforgump 736038070 1000 endif # --- Phase 2: Lockpicking --- if gumpexists 736038070 and ingump "Cleared Of Traps" 736038070 overhead "Picking Lock..." 43 # Trigger Pick Lock button while gumpexists 736038070 gumpresponse 4 waitforgump 736038070 1000 if insysmsg "You attempt to pick the lock" or insysmsg "It appears to be unlocked" break endif endwhile # Wait for lockpicking to complete while not dead if not findtype "lockpicks|5371" backpack overhead "WARNING: Out of Lockpicks!" 38 say "I ran out of Lockpicks!" 38 overhead "Returning chest to container..." 53 gumpclose 736038070 drop backpack lift activeChest 1 drop paragonSourceContainer -1 -1 0 while queued endwhile getlabel backpack ping stop endif if insysmsg "You make some progress on the lock" say "*click*" 810 endif if insysmsg "You successfully pick the lock" or insysmsg "It appears to be unlocked" overhead "Paragon Chest Unlocked!" 69 break endif pause 250 endwhile gumpclose 736038070 endif # --- Phase 3: Return Unlocked Chest to Container --- overhead "Returning unlocked chest to container..." 53 drop backpack lift activeChest 1 drop paragonSourceContainer -1 -1 0 while queued // Wait for drop to finalize endwhile getlabel backpack ping # Add to persistent completed chests tracking list & ignore if not inlist "completedChestsList" activeChest pushlist "completedChestsList" activeChest endif @ignore activeChest else overhead "Could not pick up chest (too heavy or permissions)." 38 @ignore targetChest endif else overhead "Scanning..." 53 # Clear temporary ignore list and immediately re-ignore completed chests @clearignore foreach cChest in "completedChestsList" @ignore cChest endfor pause 2000 endif pause 500 endwhile loop

Quick Filters

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