Skip to content
Outlands Hub

Razor script

Paragon Chest Bot

by .phisn · 267 lines
Download

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…

Organizing
Paragon Chest Bot.razor
1# This is an automated backup - check out https://outlands.uorazorscripts.com/script/7644f5ab-51ad-435a-9ec1-3ec286721123 for latest2# Automation by Jaseowns3## Script: Paragon Chest Bot4## Created by: .phisn#05#############################################6 7# =============================================================================8# Paragon Chest Bot by Chinga9# =============================================================================10#11# Requirements & Setup:12# 1. Sealed chests only: Completed/unlocked chests returned to the source13#    container are tracked in a persistent list and ignored so they are never14#    retrieved a second time.15# 2. Continuous Lockpicking & Continuous Remove Trap checked in the 16#    Lockpicking Gump menu (Gump ID 736038070).17# 3. On first run, target the container where sealed Paragon Chests are stored.18#    (To reset container memory, toggle WARMODE ON before starting script).19# 4. Script ends with `loop` to continuously monitor the source container20#    for new sealed chests deposited by players.21#22# =============================================================================23 24# --- Variable & List Reset Check (WARMODE ON) ---25if warmode26    @unsetvar "paragonSourceContainer"27    if listexists "completedChestsList"28        clearlist "completedChestsList"29    endif30    overhead "Paragon Container Memory & Lists Wiped!" 3831    warmode off32    pause 100033endif34 35# Initialize tracking list for completed chests36if not listexists "completedChestsList"37    createlist "completedChestsList"38endif39 40# --- Source/Destination Container Selection ---41if not varexist paragonSourceContainer42    overhead "Select the Container holding Paragon Chests..." 8843    hotkey "Cancel Current Target"44    hotkey "Set Last Target"45    wft 500046    while targetexists47        overhead "Target container for Paragon Chests" 4548        pause 100049    endwhile50    @setvar "paragonSourceContainer" lasttarget51    overhead "Container Saved Successfully!" 6952    pause 60053endif54 55# --- Main Core Loop ---56while not dead57    clearsysmsg58    59    # Re-apply ignore flags to already completed chests60    foreach cChest in "completedChestsList"61        @ignore cChest62    endfor63    64    # Retrieve tools from source container if present65    while findtype "lockpicks|drill|trap removal tool|trap removal|5371|2473|25750" paragonSourceContainer as sourceTool66        overhead "Retrieving Tool from container..." 6967        drop backpack68        lift sourceTool 6000069        drop backpack70        while queued71            // Wait for transfer72        endwhile73        getlabel backpack ping74    endwhile75    76    # 1. Search for sealed Paragon Chest in source container77    if findtype "3712|3648|3650|3708|metal chest|3649|29833|29832" paragonSourceContainer as targetChest78        79        # Check 1: Is this chest already recorded as completed?80        if inlist "completedChestsList" targetChest81            @ignore targetChest82            continue83        endif84        85        # Check 2: Inspect chest label inside container before retrieving86        getlabel targetChest chestDesc87        if "unlocked" in chestDesc or "cleared" in chestDesc or "opened" in chestDesc or "open" in chestDesc88            overhead "Skipping unlocked chest..." 3889            if not inlist "completedChestsList" targetChest90                pushlist "completedChestsList" targetChest91            endif92            @ignore targetChest93            continue94        endif95        96        overhead "Sealed Paragon Chest Found! Retrieving..." 8897        98        # Lift chest and bring to backpack99        drop backpack100        lift targetChest 1101        drop backpack102        103        while queued104            // Wait for movement action to complete105        endwhile106        getlabel backpack ping107        108        # Verify chest is now in backpack109        if findtype "3712|3648|3650|3708|metal chest|3649|29833|29832" backpack as activeChest110            111            # Tool Verification: Return chest to container if missing trap tools or lockpicks112            if not findtype "drill|trap removal|2473|25750" backpack113                overhead "ERROR: No Trap Tools in backpack!" 38114                say "I need Trap Tools!" 38115                overhead "Returning chest to container..." 53116                drop backpack117                lift activeChest 1118                drop paragonSourceContainer -1 -1 0119                while queued120                endwhile121                getlabel backpack ping122                stop123            endif124            125            if not findtype "lockpicks|5371" backpack126                overhead "ERROR: No Lockpicks in backpack!" 38127                say "I need Lockpicks!" 38128                overhead "Returning chest to container..." 53129                drop backpack130                lift activeChest 1131                drop paragonSourceContainer -1 -1 0132                while queued133                endwhile134                getlabel backpack ping135                stop136            endif137            138            # Open lockpicking & untrap gump139            gumpclose 736038070140            dclick activeChest141            waitforgump 736038070 2000142            143            # --- Phase 1: Disarm / Remove Traps ---144            if gumpexists 736038070 and not ingump "Cleared Of Traps" 736038070145                overhead "Disarming Traps..." 43146                147                # Trigger Disarm button148                while gumpexists 736038070 and not ingump "Cleared Of Traps" 736038070149                    gumpresponse 7150                    waitforgump 736038070 1000151                    152                    if insysmsg "You attempt to remove traps" or insysmsg "That appears to be devoid"153                        break154                    endif155                endwhile156                157                # Wait for trap removal to complete158                while not dead and gumpexists 736038070159                    if not findtype "drill|trap removal|2473|25750" backpack160                        overhead "WARNING: Out of Trap Tools!" 38161                        say "I ran out of Trap Tools!" 38162                        overhead "Returning chest to container..." 53163                        gumpclose 736038070164                        drop backpack165                        lift activeChest 1166                        drop paragonSourceContainer -1 -1 0167                        while queued168                        endwhile169                        getlabel backpack ping170                        stop171                    endif172                    173                    if insysmsg "You make some progress towards clearing it of traps"174                        say "*clink*" 810175                    endif176                    177                    if insysmsg "You have successfully cleared it of traps" or ingump "Cleared Of Traps" 736038070178                        overhead "Chest Cleared of Traps!" 69179                        break180                    endif181                    182                    pause 250183                endwhile184                185                waitforgump 736038070 1000186            endif187            188            # --- Phase 2: Lockpicking ---189            if gumpexists 736038070 and ingump "Cleared Of Traps" 736038070190                overhead "Picking Lock..." 43191                192                # Trigger Pick Lock button193                while gumpexists 736038070194                    gumpresponse 4195                    waitforgump 736038070 1000196                    197                    if insysmsg "You attempt to pick the lock" or insysmsg "It appears to be unlocked"198                        break199                    endif200                endwhile201                202                # Wait for lockpicking to complete203                while not dead204                    if not findtype "lockpicks|5371" backpack205                        overhead "WARNING: Out of Lockpicks!" 38206                        say "I ran out of Lockpicks!" 38207                        overhead "Returning chest to container..." 53208                        gumpclose 736038070209                        drop backpack210                        lift activeChest 1211                        drop paragonSourceContainer -1 -1 0212                        while queued213                        endwhile214                        getlabel backpack ping215                        stop216                    endif217                    218                    if insysmsg "You make some progress on the lock"219                        say "*click*" 810220                    endif221                    222                    if insysmsg "You successfully pick the lock" or insysmsg "It appears to be unlocked"223                        overhead "Paragon Chest Unlocked!" 69224                        break225                    endif226                    227                    pause 250228                endwhile229                230                gumpclose 736038070231            endif232            233            # --- Phase 3: Return Unlocked Chest to Container ---234            overhead "Returning unlocked chest to container..." 53235            drop backpack236            lift activeChest 1237            drop paragonSourceContainer -1 -1 0238            239            while queued240                // Wait for drop to finalize241            endwhile242            getlabel backpack ping243            244            # Add to persistent completed chests tracking list & ignore245            if not inlist "completedChestsList" activeChest246                pushlist "completedChestsList" activeChest247            endif248            @ignore activeChest249            250        else251            overhead "Could not pick up chest (too heavy or permissions)." 38252            @ignore targetChest253        endif254        255    else256        overhead "Scanning..." 53257        # Clear temporary ignore list and immediately re-ignore completed chests258        @clearignore259        foreach cChest in "completedChestsList"260            @ignore cChest261        endfor262        pause 2000263    endif264    265    pause 500266endwhile267loop