All scripts

Wilderness Agility - no swing (for high lvls, see description)

by SolemnVanguard ·Agility

Wilderness Agility - no swing (for high lvls, see description)

1

Installed

1.0.1

Version

21 Aug 2026

Updated

About this script

This is a copy of the other Wilderness Agility script, but this one heals at 5% health threshold. If you have 90+ HP with the other script, it will eat your food quick. This one will only heal when you reach 5 health (if you have 99 hits).

Builds

VersionKindPublishedSizeWhat changed
1.0.1 current text script 21 Aug 2026 2 KB First upload.

Source of 1.0.1

Published by the author. This is the current build, exactly as it will be delivered.

script "Wilderness Agility"
author "Mark Gore"
version     "1.0.1"
every 600
setting int obstacleDelayMin = 250 "Shortest delay after an obstacle, before trying the next (ms)"
setting int obstacleDelayMax = 400 "Longest delay after an obstacle, before trying the next (ms)"
var stage = 0
var recovering = false
on loop {
    if movementKnown() and moving() { return 100 }
    if isSleeping() {
        return 100
    }
    if fatigue() > 90 {
        let bag = invItem(1263)
        if bag != none { interact(bag, "sleep") }
        return 1000
    }
    if myTile().y > 1000 {
        if inCombat() {
            walkTo(tile(289, 2934))
            return 650
        }
        let up = nearestObject(id: 5)
        if up != none {
            recovering = true
            interact(up, "climb-up")
        }
        return 1250
    }
    if recovering {
        stage = 2
        recovering = false
    }
    if skillsAvailable() and healthPercent() < 6 {
        for food in inv() {
            let d = food.id
            if d == 350 or d == 352 or d == 355 or d == 357 or d == 359 or d == 362 or d == 364 or d == 367 or d == 370 or d == 373 or d == 546 or d == 551 or d == 553 or d == 555 or d == 718 or d == 111 or d == 1193 or d == 132 or d == 2384 or d == 2383 {
                interact(food, "eat")
                return 1250
            }
        }
        return 1250
    }
    if stage != 3 and myTile().x == 297 and myTile().y == 105 { stage = 3 }
    if stage == 0 {
        let o = nearestObject(id: 705)
        if o != none { interact(o, "enter") }
        return humanised(obstacleDelayMin, obstacleDelayMax)
    } else if stage == 2 {
        let o = nearestObject(id: 707)
        if o != none { interact(o, "balance on") }
        return humanised(obstacleDelayMin, obstacleDelayMax)
    } else if stage == 3 {
        let o = nearestObject(id: 708)
        if o != none { interact(o, "balance on") }
        return humanised(obstacleDelayMin, obstacleDelayMax)
    } else if stage == 4 {
        let o = nearestObject(id: 709)
        if o != none { interact(o, "climb up") }
        return humanised(obstacleDelayMin, obstacleDelayMax)
    }
    return 1000
}
on message(line, from) {
    trace(from, "said:", line)
    if contains(line, "the pipe") { stage = 2 }
    if contains(line, "and walk across") {
        if stage == 3 { stage = 4 } else if stage == 2 { stage = 3 }
    }
    if contains(line, "up the cliff") { stage = 0 }
}