osrs-codex/codex/training/magic-alch-handoff.yaml
Claude ca34e97366 codex: replace researched flag with real sources + magic training handoff entry (issue #5)
- low-alch-f2p.yaml: 'bank at a GE-adjacent bank' source now cites the wiki
  Money making guide (noted-item bulk alching, West Varrock Bank F2P hub) and
  High Level Alchemy page (GE buying below alch value; noted-item casting).
  Researched-flag WARN eliminated.
- Verified handoff levels from the wiki: LA 21 (31xp), SII 43 (53xp), HLA 55
  (65xp), all F2P; LA page explicitly recommends HLA at 55. Recorded as a
  soft-efficiency-choice note on the golden entry and a new self-contained
  entry codex/training/magic-alch-handoff.yaml (id magic-alch-handoff).
- Gate: RESULT 2 entries, 0 errors, 0 warnings; diff --check clean.
2026-08-27 03:23:03 -05:00

172 lines
7.8 KiB
YAML

id: magic-alch-handoff
title: Magic training via alchemy (LA → SII → HLA handoff)
domain: training
tags: [magic-training, alching, f2p, xp-training]
status: verified
version: 1
updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date
summary: >
The standard F2P alchemy training path: Low Level Alchemy from level 21
(31 xp/cast), an optional Superheat Item window from 43 (53 xp/cast, smelts
ore into bars), then High Level Alchemy from 55 (65 xp/cast, the wiki's
recommended end-state). All three spells are F2P and stay castable after
their unlock levels, so the handoffs are efficiency recommendations, not
hard caps.
accounts:
membership: f2p # LA, SII and HLA are all members=No spells
min_level: 21 # Magic 21 — Low Level Alchemy unlock
requires_quest: []
requires_other:
- "Staff of Fire equipped (drops LA/SII/HLA rune cost to 1 nature rune per cast)"
- "A bank with GE access within reach (runes + alch items come from the GE)"
best_practice:
equipment:
- item: staff of fire
why: "unlimited fire runes — the rune cost of every alchemy spell drops to a single nature rune per cast"
source: "OSRS wiki — High Level Alchemy (rune cost table; Staff of fire)"
techniques:
- name: hand off LA -> HLA at level 55
why: "LA page: 'Players with level 55 Magic are generally recommended to use High Level Alchemy instead, as it provides more coins and experience per cast' — 65 vs 31 xp/cast, 60% vs 40% of item value"
source: "OSRS wiki — Low Level Alchemy (Comparison with High Level Alchemy); High Level Alchemy (infobox: level 55, 65 xp)"
- name: optional Superheat Item window 43-55
why: "SII unlocks at 43 (53 xp/cast) and smelts ore into bars without a furnace — a training window that can profit when ore/bar margins are positive; it cannot be cast on noted ore, so it needs an ore inventory rather than a note stack"
source: "OSRS wiki — Superheat Item (43 Magic, 53 xp, F2P; 'smelt ore into bars without a furnace'; 'cannot be cast on noted ore')"
- name: buy GE items below alch value, cast on noted items at a bank
why: "HLA page: 'Players who train this way can break even on the cost of runes, or even turn a profit, by buying items on the Grand Exchange for a lower cost than the item's High Alchemy value'; all alchemy spells work on noted items, saving bank withdrawals per cast"
source: "OSRS wiki — High Level Alchemy (GE buying for break-even/profit; noted-item casting)"
- name: treat the handoffs as soft efficiency choices
why: "all three spells remain castable past 21/43/55 and stay on the standard F2P spellbook, so the tier switches optimise xp/cast and cost rather than gate the path"
source: "OSRS wiki — Low Level Alchemy; Superheat Item; High Level Alchemy (level + experience infoboxes, members=No)"
economy:
# Per-cast economics at 2026-08-27 snapshot (prices.runescape.wiki latest):
# staff of fire -> 1 nature rune per cast. Nature rune id 561 buy 145
# (mapping limit 18000, cross-checked against Module:Exchange/Nature_rune,
# members=false, lowalch 72 = 40% of value 180 — consistency assertion).
# Income/net per cast depend on the alched item, so they live in the
# per-activity entries (low-alch-f2p, f2p-alch-catalog): this entry only
# prices the shared consumable.
item: nature rune
item_id: 561
cost_per_cycle: 145 # one nature rune per cast (staff of fire), buy price 2026-08-27
xp_per_hour: 117000 # HLA tier (65 xp/cast, ~1800 casts/hr at the 3-tick spell speed — derived; LA tier 55800, SII tier 95400)
supplies:
- item: nature rune
qty_per_cycle: 1
source: ge
ge_limit: 18000 # mapping + Module:Exchange agree
profit_drivers:
- "XP per cast by tier (wiki infoboxes): LA 31 (level 21) / SII 53 (level 43) / HLA 65 (level 55)"
- "HLA can break even or profit on GE-bought items priced below their High Alchemy value (HLA page); LA is a loss at current prices (see low-alch-f2p)"
- "SII turns a profit only when ore + nature costs stay under the resulting bar's GE price — re-check margins per window (SII page)"
state_machine:
initial: idle
terminal: [complete, failed]
states:
idle:
goal: be at a bank with GE access, staff of fire equipped, nature runes in stock
next: [cast, bank_supplies, complete, failed]
cast:
goal: cast the current tier spell (LA below 43, SII 43-55 if chosen, HLA from 55)
next: [cast, bank_supplies, complete, failed]
bank_supplies:
goal: deposit coins, restock nature runes (+ ores if running the SII window)
next: [cast, idle]
complete:
goal: magic level target reached
failed:
goal: hard failure — stop, log ERROR sentinel, alert
transitions:
- from: cast
when: "nature rune count < buffer (or ore count < buffer in SII window)"
to: bank_supplies
- from: cast
when: "level 43 reached and the SII window is chosen (margins positive)"
to: cast
- from: cast
when: "level 55 reached"
to: cast
- from: idle
when: "magic level >= target"
to: complete
actions:
- id: a1
step: reach-bank
verb: move_to
target: bank
params:
location: "nearest bank with GE"
method: [teleport, walk]
on_fail: retry
anti_ban:
delay: [400, 1600]
- id: a2
step: buy-supplies
verb: ge_buy
target: grand-exchange
params:
item: "nature rune (and ores during the SII window)"
qty: "fill to buffer"
max_price: "live low + 5%"
on_fail: retry
anti_ban:
delay: [1200, 3000]
- id: a3
step: cast-tier-spell
verb: use_item_on
target: "tier supply in inventory (noted stack for LA/HLA, ore for SII)"
params:
spell: "Low Level Alchemy | Superheat Item | High Level Alchemy (per current tier)"
item: "cheapest live candidate in inventory"
on: "itself"
on_fail: retry
anti_ban:
delay: [1600, 3400] # 3-tick cast = ~5.4s game; stay under it, humanised
- id: a4
step: bank-loop
verb: bank_inventory
target: bank
params:
deposit: [all coins, all products]
withdraw: "nature runes up to buffer (+ ores during the SII window)"
on_fail: alert
run_control:
iteration: "one cast"
max_iterations: null
break:
every: [8, 14] # bank cycles (breaks land on bank visits)
for: [45, 120] # seconds of idle AFK
stop_conditions:
- "magic level >= target"
- "gp under floor"
- "3 consecutive failed casts (client issue — do not loop)"
risk:
ban_level: low
notes:
- "3-tick cast cadence is the main detection vector; keep anti_ban delays."
- "The valuable-item warning fires on item GE value (not alch value) — the script must handle the warning widget when alching high-value items (HLA page)."
- "SII ore-buy bursts are pace-sensitive like any GE buy; respect the 4h limit window."
sources:
- "OSRS wiki — Low Level Alchemy (21 Magic, 31 xp/cast, members=No, 3-tick, 40% of item value; 'recommended to use High Level Alchemy instead' at 55 Magic)"
- "OSRS wiki — Superheat Item (43 Magic, 53 xp/cast, members=No; smelts ore into bars without a furnace; cannot be cast on noted ore)"
- "OSRS wiki — High Level Alchemy (55 Magic, 65 xp/cast, members=No, 60% of item value; GE buying for break-even/profit; noted-item casting; valuable-item warning)"
- "prices.runescape.wiki/api/v1/osrs/mapping (id 561 nature rune: members=false, limit 18000, value 180, lowalch 72; limit cross-checked against Module:Exchange/Nature_rune — agree)"
- "prices.runescape.wiki/api/v1/osrs/latest (nature rune buy 145, snapshot 2026-08-27)"
verified: "2026-08-27" # keep quoted (YAML 1.1 date parsing)
related:
- low-alch-f2p
- f2p-alch-catalog
- high-alch-p2p