Techniques that made the run
Nine of them cut a cost in half or more
The game let us
Five dialogue clicks in one tick
Quests are told in pages of dialogue, and a player reads each page before clicking on, one page a tick. Where a page offered no choice, the run clicked blind, five times in one tick, the most the server accepts. Across every quest the plan priced that at 878 ticks. The server takes five actions a tick from any player, and the swarm’s coordinator ruled the blind clicks fair.
Used in Doric’s Quest, the Grand Tree quests, the Dwarf Cannon quest, Monkey Madness and the other quests on the route.
Lab, five runs, each exactly 2 ticks.

sources
- rs-sdk fork, docs/speedrun/quests/CONVENTIONS.md lines 54-85 (three dialogue columns; Carla’s 10 pages in 2 ticks, 5 of 5)
- rs-sdk fork, docs/speedrun/RUN-ORDER.md lines 100-109 (11,689 fixed against 10,811 burst, inferred)
- issue rs/51 (blind continues,
main’s ruling) - issue rs/200 (converse burst mode)
- issue rs/287 (demo validation: 16 pages in 8.13 ticks, 0 failed bursts in 24)
- issue rs/507 (the cap measured at five on the demo)
Wine that ferments without a Cooking check
Brewing wine needs Cooking level 35, and the experience arrives when a timer ferments the wine. The run banked stacks of unfermented wine that a helper had brewed and let the timer ferment them all at once. In the last attempt the first firing took Cooking to 60, and the second, one relog later and about 15 seconds after it, to 99. The fermenting timer is a game script with no level check, so it pays out at any level.
Used in the Cooking step near the end of the run.
Lab, three wine runs, all to 99. Kebabs from measured cooking times.

sources
- rs-sdk fork, docs/speedrun/skills/cooking.md lines 33-49 (45-51 active ticks, three runs; kebabs 131; the 450-wine model)
- rs-sdk fork, docs/speedrun/research/wine-window.md section 1
- issue rs/47 (the wine route, merged)
- issue rs/61 (engine exploit sweep)
- issue rs/468 (re-read on the demo engine)
- issue rs/339 (the Cooking step module)
- rs tenet 6
- the run host’s screen recording of attempt 5, 25 Oct 1:25:43–1:26:17 PM, cropped to the game canvas (Cooking 60 after the first relog, 99 after the second)
- the run host’s screen recording of attempt 5, 25 Oct 1:26:01–1:26:16 PM, cropped to the game canvas, the login form cut out (the clip)
Working through the Thieving stun
Pickpocketing a knight sometimes fails, and a failure stuns the thief for 11 ticks in which they cannot steal. In the run each stocked stun cast Superheat Item on ore twice, then Charge, then fletched arrows, while a courier beside the knights traded in the first load of runes and ore but never managed a top-up, so Superheat ran out of ore at Smithing 41; Magic and Fletching both reached 99 inside the Thieving step. The lab measured the first form, three bone burials with Charge and arrows in every stun: Thieving took no longer, and 470 to 510 ticks of other work moved inside it. The stun blocks stealing, not burying, casting or fletching.
Used in Thieving, from level 57 to 99.
In the last attempt the courier never topped up the food, and Thieving stopped for nine hours.
Lab, one idle run and three filled runs.

sources
- rs-sdk fork, docs/speedrun/research/stun-pack.md section 1, lines 23-37 (1,908, 2,098 and 1,997 against 1,986; 470-510 replaced, inferred)
- issue rs/106 (the lab question)
- issue rs/317 (the six-event stun window on the browser client)
- issue rs/324
- issue rs/335
- the attempts timeline, attempt 5, 25 Oct 2:33 AM (Thieving stop) and the 9 h 08 min hold
- rs-sdk fork, speedrun/runner/chain.ts line 1190 at the run commit 10215624 (S18: the stun pack with Superheat, 2 casts a stun, and Charge unlocked)
- rs-sdk fork, speedrun/skills/thieving.ts lines 45-90 at 10215624 (the pack, and its Superheat form in place of the burials)
host's messages, 25 Oct 2:36 AM (the courier's asks: copper, tin, iron, sharks and arrow tips; Magic 99 and Fletching 99 at the stop)- attempt 5’s step log, from the swarm’s post-run export, attempt 5's fourth runner launch: one hand-off at the knights' anchor before the Thieving band, no top-up interval in its 2,223 ticks, and Smithing 41 at its last Superheat level-up
- the run host’s screen recording of attempt 5, 25 Oct 2:18:44–2:20:06 AM, cropped to the game canvas (the courier's trade, stuns, Charge, Smithing levels from Superheat, Magic 99)
- the run host’s screen recording of attempt 5, 25 Oct 2:18:44–2:18:59 AM, cropped to the game canvas (the clip: Magic 82 to 84, Smithing 4 to 7)
Charge, recast with no cooldown
Charge is a Magic spell unlocked by the Mage Arena quest, and a spell normally makes its caster wait before the next cast. Charge has no wait, so it can be cast again at once: in the lab, Magic went from 80 to 99 in 156 to 163 casts over 32 to 33 ticks. In the run, Charge went inside the Thieving stun pack, one or two casts a stun, and Magic reached 99 about 85 seconds into the Thieving step. Each cast is a legal click, and the spell’s script checks no timer.
Used in the Thieving stun pack.

sources
- rs-sdk fork, docs/speedrun/skills/magic.md lines 45-49 (156-163 casts in 32-33 ticks, measured in the lab)
- rs-sdk fork, speedrun/runner/chain.ts line 1190 at the run commit 10215624 (Charge unlocked inside the S18 stun pack)
- the run host’s screen recording of attempt 5, 25 Oct 2:18:41–2:20:06 AM, cropped to the game canvas (Charge lines between stuns; Magic 85, 89, then 99)
- issue rs/20 (Mage Arena and Charge)
- issue rs/32 (the Magic 80-99 route)
- issue rs/466 (demo probe: five sent, four landed in one tick; read as relay straddling)
- rs-sdk fork, docs/speedrun/RUN-ORDER.md line 111
main's thread, correction, 26 Oct 2:08 PM (publish the rate, not a per-tick count)- the run host’s screen recording of attempt 5, 25 Oct 2:19:01–2:19:16 AM, cropped to the game canvas (the clip: Magic 85 to 90)
Logged-out time is free
Most races are timed by a clock on the wall. This hiscore times an account by the in-game tick of its last level-up, and only logged-in ticks count. The run logged out between steps, so waits of up to nine hours for helpers and fixes cost nothing. It is the hiscore’s own rule.
Used in every planned logout and hand-off.
See the run’s first logout on the route, at the crowded iron rocks →
sources
- rs-sdk fork, docs/speedrun/RUN-ORDER.md lines 5-7 (the hiscore rule)
- rs tenet 1
- the attempts timeline, attempt 5 (holds of 9 h 08 min, 5 h 50 min and 6 h 46 min)
Quests picked for what they unlock
Quests are optional stories, taken in any order. The route took Mage Arena for the Charge spell and Dwarf Cannon for the cannon, ordered the rest by what they unlock and how far apart they are, and moved Agility from 75 to 99 to the very end. Quest order is the player’s choice.
Used in Doric’s Quest, the Grand Tree quests, the Dwarf Cannon quest, Monkey Madness and the Agility finish.
See Plague City on the route, taken for the teleport it teaches →
sources
- rs-sdk fork, docs/speedrun/RUN-ORDER.md lines 18-21
- issue rs/3
- issue rs/20
- issue rs/111 (RUN-ORDER version 2)
A cannon carried by a helper
The Dwarf Cannon fires at monsters on its own and pays its owner Ranged experience, but the set and its cannonballs fill a pack. A helper held the set and the balls, the run’s account set the cannon up and picked it up again, and the cannon did the Ranged training. The cannon is ordinary game content, unlocked by the Dwarf Cannon quest.
Used in the Dwarf Cannon quest, the cannon step and the last cannon session.
Both of the rehearsal account’s deaths, and the last attempt’s only death, came at the cannon step.

sources
- rs-sdk fork, docs/speedrun/RUN-ORDER.md, the cannon step row (104 to 128 ticks, n = 4, lab; no alternative measured)
- issue rs/125 (the cannon helper)
- issue rs/199 (the Ranged module)
- issue rs/257 (the quest module)
- issue rs/20
- the attempts timeline, rehearsal 23 Oct 9:38 PM and 23 Oct 11:28 PM; attempt 5, 25 Oct 8:40 PM
- the run host’s screen recording of attempt 5, 26 Oct 3:28:39–3:28:53 AM, cropped to the game canvas (the clip)
The client let us
Answering the level-up page at once
Each new level opens a congratulations page, and the player is busy until it closes. A bot that waits to see the new level loses a full cycle of work. The run answered the page in the tick it appeared, alongside the next action, so the work loop never paused. Closing the page is an ordinary click that arrives early.
Used in every skill loop on the route.
In the last attempt a Strength level-up page left open after the Dragon Slayer fight stopped the run until a resume closed it.
Lab, 18 of 18 level-ups.

sources
- rs-sdk fork, docs/speedrun/research/levelup-cost.md lines 6-29 (0 when answered on the next label; 3 ticks on knife oak, 18 of 18)
- issue rs/108
- issue rs/97 (the next-label answer in the in-page programs)
- rs-sdk fork, film/samples/firemaking-80 (clip.mp4, meta.json, trace.jsonl: level-ups at server ticks 72, 84 and 96, each answered in the same tick as the next light)
- the attempts timeline, attempt 5, 25 Oct 1:35 PM
A relog that sees the world on its first tick
The swarm’s bots relogged by reloading the browser tab, and the account stood in the world for about 20 ticks before the bot could act. The rebuilt relog logs in again inside the same page, so the bot sees the world on the new session’s first tick, and the game’s own logout button leaves the world at once where a dropped connection can leave the player standing for hundreds of ticks. In the run’s own order the login turns run on first, so the first click goes out on the third tick: in the lab, the bank booth clicked on tick 3 was open on tick 4. Both are ordinary logins and logouts.
Used in the two logins of the Cooking step, the relog before the body-altar Runecrafting and every helper hand-off.
In the last attempt the game refused a logout in the middle of combat, and the account died in the world.
Three relogs each way; the lab film’s two same-page relogs also saw the world on tick 1.

sources
- issue rs/174 (tab relog: first state at client tick 20, 21 and 22; the same-page relog at login plus one, 3 relogs per path)
- rs-sdk fork, docs/speedrun/HELPERS.md line 86 (clean logout; the 16-tick combat rule)
- rs-sdk fork, docs/speedrun/research/travel-and-overhead.md row 3
- issue rs/168
- issue rs/164
- the attempts timeline, attempt 5, 25 Oct 8:36 PM
- the lab film of the Cooking step’s relog, rs-sdk 4f62822f (first state on session tick 1, booth click on tick 3, bank open on tick 4, in 2 of 2 relogs)
Burying bones between woodcutting rolls
Prayer is trained by burying bones, one click each, usually beside a bank, and Prayer 1 to 99 takes 555 dragon bones. The knife reset left a free moment in every woodcutting cycle, and the run buried a bone in it while helpers traded fresh bones at the tree. In the last attempt Prayer reached 99 inside the woodcutting step. A burial is one item click, and five clicks fit in a tick.
Used in the willow woodcutting band and the iron mining band.
Attempt 2 stalled in the willow band when no helper delivered its bones.
Lab, two 600-tick sessions on oak, 357 bones.

sources
- rs-sdk fork, docs/speedrun/research/bones-placement.md lines 10-19 (0.23 against 2.07 per bone, 2 x 600 ticks, 357 bones)
- rs-sdk fork, docs/speedrun/skills/interleaving.md section 7
- issue rs/105
- issue rs/182 (the mining bury option)
- the attempts timeline, attempt 2, 23 Oct 12:48 PM
main's messages, 25 Oct 12:35 AM (attempt 5: Prayer 99 at chain tick 3622, inside the willow band; 26 bone loads traded)- the lab film of the willow band burying in the knife loop, rs-sdk 4f62822f (a bone every 3 ticks, 20 bones in 57 ticks while the chopping went on)
Banking five clicks at a time
The standard bot library deposits one item a tick, so 24 kinds of item take 24 ticks. The swarm’s library sends every bank click at once and the server takes them five a tick; it withdraws a whole stack with the fill button. Five actions a tick is the server’s own limit.
Used in every bank visit, from the starting kit to the bank booths late in the run.
Lab bank measurement.

sources
- rs-sdk fork, speedrun/README.md lines 181-188 (lab/measure-bank.ts: 24 to 5, 28 to 6, 2 to 1)
- issue rs/40
- rs tenet 4 (quotes 48 for the stock deposit; unresolved against the README’s 24)
- the lab film of measure-bank.ts’s two deposits, rs-sdk 4f62822f (24 ticks for the stock deposit and 5 for the swarm’s, in 4 of 4 rounds over two takes)
Trading in one burst
A trade runs through screens of offers, accepts and confirms, and the standard library clicks through them one at a time, then waits two ticks. The helper offers everything and accepts in one burst, and the run’s account accepts the moment the items arrive. Every click is one the trade screen offers.
Used in every helper hand-off.
In the last attempt a hand-off stopped because the account had three free slots and needed four.
Lab, timed from the receiving account’s first click.

sources
- rs-sdk fork, speedrun/README.md lines 196-231 (lab/measure-trade.ts: 7 to 4, 29 to 8)
- issue rs/22
- issue rs/40
- issue rs/267 (openTrade)
- swarm post 399 (three X offers hung a trade)
- the attempts timeline, attempt 5, 25 Oct 2:06 AM
- the run host’s screen recording of attempt 5, 26 Oct 3:27:15–3:27:27 AM, cropped to the game canvas (the clip: two hand-offs at Lumbridge after the recovery login, each offer arriving with an accept)
One tick per dialogue page, not two
The standard bot client spent two ticks on every dialogue page, one to see it and one to click. The swarm’s client publishes the game’s state once a tick, so the click goes out in the tick the page appears. The fix is in the bot’s own client, and the server sees the same click a tick sooner.
Used in every conversation on the route.
Lab.

sources
- rs-sdk fork, docs/speedrun/primitives.md lines 43-46
- rs-sdk fork, docs/speedrun/quests/CONVENTIONS.md lines 61-69
- issue rs/22 (publish once per tick)
The knife-on-logs reset
With a rune axe on a willow, the game rolls for a log every 4 ticks. One tick after each roll the bot uses a knife on its logs, picks a fletching option, drops a log and clicks the tree again, all in one tick. The next roll comes 3 ticks after the last, and the menu closes before anything is spent. Opening the fletching menu rewrites the player’s action timer, and the woodcutting script trusts that timer.
Used in the willow woodcutting band and the iron mining band.
Lab, 131 logs.
sources
- rs-sdk fork, docs/speedrun/research/tick-manipulation.md lines 39-59 and 160-194 (willow 5.53 to 4.23, 131 gaps; fly fishing 5.56 to 3.80; iron 4.94 to 3.00 at the demo’s respawn)
- issue rs/9 (the knife starter)
- issue rs/5 (the mining rotation)
- issue rs/53 (demo respawn measurements)
- issue rs/130 and issue rs/151 (demo burst minute: 5.32 against 6.39)
The knife reset on a slow server
The reset works only when the server answers on time, and the live server was sometimes slow. Each woodcutting and mining band ran a small program inside the game page that counted how many of 20 actions landed on time. Below 14.5 it fell back to plain cutting, unless the band was burying bones, which only the knife loop can do. The program sends the same clicks a player could.
Used in the willow woodcutting band and the iron mining band.
Attempt 3 ended in the willow band: on a slow server it fell back to plain cutting, which could not clear the bones it carried.
Inferred from two rows of the run plan.
sources
- rs-sdk fork, docs/speedrun/RUN-ORDER.md lines 117-120 (headline: 35,069.3 knife on against 37,808.3 knife off, expected)
- rs-sdk fork, speedrun/lib/gated-program.ts
- issue rs/97 (in-page programs)
- issue rs/156 (the gate)
- issue rs/642 (forced knife for burying bands; the attempt 3 stop)
- issue rs/643 (break-even 14.5 of 20)
- issue rs/684 (ragged server: 7.97 against 7.06)
- the attempts timeline, attempt 3, 23 Oct 4:16 PM
Fitting extra actions into the gathering rhythm
A gathering skill keeps its rhythm only while the player clicks the tree or rock again on the right tick, and using an item normally breaks it. The run sent its extra actions earlier in the same tick as the gathering click, so the click landed last and the rhythm held. The server handles a player’s actions in the order they arrive, up to five a tick.
Used in the willow woodcutting band, the iron mining band, the Thieving stun pack, the Cooking step and the final arrow fletching.
sources
- rs-sdk fork, docs/speedrun/skills/interleaving.md lines 119-155 (12.71 against 11.14 base xp a tick, called roll noise; 0.213 bones a tick on a plain clock)
- rs-sdk fork, docs/speedrun/RUN-ORDER.md line 111 (the five-action cap)
- issue rs/38
- issue rs/507
The infrastructure let us
A fresh account that skips the tutorial
The swarm’s first account already carried 547 ticks of play, and a new player starts on Tutorial Island. The run used a new account, and on this server the tutorial guide offers to skip the island in one conversation, which took 6 ticks in the lab. The demo server runs without its production setting, and that leaves the skip on.
Used in the run’s first login.
The first account’s hiscore row, and the skip in the lab.
sources
- rs-sdk fork, docs/speedrun/research/travel-and-overhead.md row 1 (about 540 ticks; the skip at 6 with the stock SDK)
- rs-sdk fork, docs/speedrun/research/free-xp.md lines 35-44 (the guide’s skip while map_live is false)
- rs tenet 1
- issue rs/287 and issue rs/312 (the loopback gateway the skip needs)
A run host 3 ms from the server
The game server sits in a data centre in Virginia, and from Southern California a click takes 80 to 90 ms there and back, so a reaction often misses the tick it was meant for. The run’s bot ran on a machine in the same data-centre region, about 3 ms away, so a reaction to one tick landed in the next. Anyone can rent a machine near the game’s server.
Used in the knife bands, the Thieving stun pack, the Agility laps and every helper hand-off.
In the rehearsal the run host’s nine-hour session limit ran out, and the account dropped 13 times.
Three paired runs.
sources
- rs-sdk fork, docs/speedrun/research/demo-latency.md summary lines 23-24 (180 of 180 direct against 123 of 180 through the relay, three paired runs) and section 10 lines 1140-1146
- issue rs/83
- issue rs/85 (the latency analysis)
- rs tenets 12 and 17
- the attempts timeline, rehearsal 23 Oct 6:33 PM



