From 8a8cc0d6b3c5ee5e72e009db5736af68c44bfc35 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 27 Aug 2026 12:55:50 -0500 Subject: [PATCH] fix(codex): F2P maple path, XP/income mode, executable bank loop, combat gate (issue #3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Governor-review bounce (PR #12) fixes on issue-3: 1. Maple IS F2P — restored as an optional level-45 tier. The only F2P maples are the 4 trees in the Corsair Cove Resource Area (requires Dragon Slayer I to enter), per the Free-to-play Woodcutting training guide and Maple tree page (members1=No @ Corsair Cove). Entry no longer labels Maple itself members-only; the quest gate is in accounts.requires_quest and the tier route table. 2. XP-versus-income mode is now explicit: state machine and a1 gate-tier take a mode parameter — XP mode stays on Willow (or Maple with Dragon Slayer I) after 60; income mode selects Yew at Edgeville. The guide: yew logs 'earn a profit' but 'it is recommended to cut willow or maple trees for experience'. Default is XP mode; income must be an explicit run parameter. 3. Bank loop is now executable and tier-specific: actions split into walk-to-bank (a5) + deposit-logs (a6) + walk-back-to-trees (a7), and the state machine pins chop -> walk_to_bank -> deposit_logs -> walk_back -> chop with dedicated states. Per-tier tree+bank routes (Lumbridge/Draynor/Edgeville/Corsair Cove) replace the hardcoded Draynor-for-everything; Yew is routed to Edgeville (guide: 'best place to chop yew trees is south of Edgeville bank'). 4. Combat gate instead of a false no-combat claim: the Draynor willow spot sits between two aggressive level-7 Dark Wizards that attack players under combat 15 (Draynor Village wiki page). Accounts below combat 15 are routed to the single Edgeville willow (bank adjacent); relog/respawn N/A now scoped to the gated routes only, and the risk notes call out Draynor as a combat zone for low-level accounts. Tests: python3 tools/validate.py -> 2 entries, 0 errors, 1 pre-existing warning (researched flag on low-alch-f2p, owned by issue #5's PR); merged-tree check (main 79cab78 + head) keeps the issue-6 catalog, gate clean; git diff --check clean. --- codex/training/woodcutting-f2p.yaml | 159 +++++++++++++++++++--------- 1 file changed, 108 insertions(+), 51 deletions(-) diff --git a/codex/training/woodcutting-f2p.yaml b/codex/training/woodcutting-f2p.yaml index 415fcc9..bc5b436 100644 --- a/codex/training/woodcutting-f2p.yaml +++ b/codex/training/woodcutting-f2p.yaml @@ -3,45 +3,56 @@ title: Woodcutting (F2P) domain: training tags: [woodcutting, gathering, f2p, skill-training] status: verified -version: 1 +version: 2 updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date summary: > F2P woodcutting on the verified F2P tree ladder — Tree (1), Oak (15), - Willow (30), Yew (60) — anchored at bankside Draynor Village willows - for sustained XP with logs banked and sold at the GE (yew logs are the - top F2P income per log). Maple (45) and Magic (75) trees are members - content; there is no choppable pine tree in OSRS (pines are scenery - only) — both verified from the wiki, see the handoff note. + Willow (30), Maple (45, optional), Yew (60) — with a per-tier tree and + bank route and an explicit XP-versus-income mode: after level 60 the + guide recommends staying on Willow (or Maple if Dragon Slayer I is done) + for experience and cutting Yew only for profit. Maple IS F2P content at + the Corsair Cove Resource Area (4 trees; requires Dragon Slayer I to + enter); Magic (75) is members-only; there is no choppable pine tree in + OSRS (pines are scenery only) — all verified from the wiki, see the + handoff note. The Draynor willow spot is flanked by two aggressive + level-7 Dark wizards that attack players under combat 15 — this entry + gates that spot to combat 15+ and routes lower-combat accounts to the + Edgeville willow. accounts: membership: f2p min_level: 1 # Woodcutting 1 — normal trees from the start - requires_quest: [] + requires_quest: + - "Dragon Slayer I — ONLY for the optional Maple path (the Corsair Cove Resource Area is quest-gated; the rest of the ladder needs no quest)" requires_other: - "An axe (bronze/iron are free; iron axe ~66 gp at the GE)" - - "Bank with GE reach within a short walk (Draynor Village bank or Varrock GE)" + - "Combat 15+ to use the Draynor Village willow spot (two aggressive level-7 Dark wizards attack players under combat 15); accounts below that use the Edgeville willow instead" + - "Bank within a short walk of the tier spot (Draynor, Edgeville, Lumbridge, Varrock, or Corsair Cove bank)" best_practice: equipment: - item: rune axe (level 41 — best F2P axe) - why: "fastest F2P chop rate; per the wiki axe table Rune axe (41) and Gilded axe (41) are 'the best axes available in Free-to-Play'; Dragon axe is members-only. F2P ladder: Bronze(1)/Iron(1)/Steel(6)/Black(11)/Mithril(21)/Adamant(31) — all F2P per the same table" + why: "fastest F2P chop rate; per the wiki axe table Rune axe (41) and Gilded axe (41) are 'the best axes available in Free-to-play'; Dragon axe is members-only. F2P ladder: Bronze(1)/Iron(1)/Steel(6)/Black(11)/Mithril(21)/Adamant(31) — all F2P per the same table" source: "OSRS wiki — Woodcutting (axe table incl. F2P/members flags) + Rune axe, Black axe, Gilded axe item pages (members = No) + Dragon axe (members = Yes)" techniques: - - name: chop bankside trees (Draynor Village) - why: "bank + trees adjacent — the inventory-full -> bank loop costs seconds; Oak tree page lists Draynor Village oaks 'two directly east of the bank'; Willow tree page lists Draynor Village among members=No locations; yews also nearby (Draynor Manor)" - source: "OSRS wiki — Oak tree (location list), Willow tree (location list incl. Draynor Village members=No), Yew tree (members=No locations incl. Edgeville/Varrock Palace/Rimmington)" + - name: pick the tier route by level, quests, and combat level + why: "per-tier spots and banks (2026-08-27): Tree (1) — west of Lumbridge Castle, bank Lumbridge; Oak (15) — two east of Draynor Village bank, bank Draynor (oaks also south-west of Varrock west bank); Willow (30) — south-west of Draynor Village bank, bank Draynor, GATED to combat 15+ (two aggressive level-7 Dark wizards attack players under combat 15); accounts below that use the single willow East of Edgeville, bank Edgeville; Maple (45) — Corsair Cove Resource Area (4 trees, the only F2P maples; requires Dragon Slayer I; far from a bank, bank Corsair Cove); Yew (60) — south of Edgeville bank (two trees), bank Edgeville" + source: "OSRS wiki — Free-to-play Woodcutting training (level-45 Maple path + Corsair Cove Resource Area; willow spots incl. 'beware of aggressive dark wizards'; yew recommendation 'south of Edgeville bank'); Draynor Village page (two level-7 dark wizards attack players under combat 15); Oak tree / Willow tree / Maple tree / Yew tree location lists — all 2026-08-27" + - name: XP mode vs income mode after level 60 + why: "the F2P guide: yew logs 'earn a profit' but it 'is recommended to cut willow or maple trees for experience and use the time saved to earn' — so after 60 the entry stays on Willow (or Maple with Dragon Slayer I) for XP and switches to Yew only in income mode" + source: "OSRS wiki — Free-to-play Woodcutting training (Levels 60-99: Yew trees section, 2026-08-27)" - name: bank logs, don't drop - why: "logs are F2P-tradeable income: live sell prices 2026-08-27 — willow 21, yew 112 per log (GE limit 15k / 12k per 4h); a 28-log inventory of willows banks ~590 gp" - source: "prices.runescape.wiki latest 2026-08-27 (willow 1519 sell 21 / buy 20; yew 1515 sell 112 / buy 111; limits 15000/12000)" + why: "logs are F2P-tradeable income: live sell prices 2026-08-27 — willow 21, yew 112 per log (GE limit 15k / 12k per 4h); a 28-log inventory of willows banks ~590 gp. (Dropping is faster XP per the guide, but this entry models the banked/income variant; the XP/income mode switch covers the trade-off.)" + source: "prices.runescape.wiki latest 2026-08-27 (willow 1519 sell 21 / buy 20; yew 1515 sell 112 / buy 111; limits 15000/12000); OSRS wiki — Free-to-play Woodcutting training (drop-vs-bank trade-off)" - name: tier progression for XP - why: "per-log XP (wiki infoboxes): Tree 25, Oak 37.5, Willow 67.5, Yew 175 — stay at the highest unlocked F2P tier; Willow (30) is the practical XP/hr tier, Yew (60) the income tier" - source: "OSRS wiki — Tree/Oak tree/Willow tree/Yew tree pages (level + xp infoboxes, 2026-08-27)" + why: "per-log XP (wiki infoboxes): Tree 25, Oak 37.5, Willow 67.5, Maple 100, Yew 175 — climb to the highest unlocked F2P tier; Willow (30) is the practical XP/hr tier through 60+, Maple (45) is an optional 100-xp AFK-ish tier when Dragon Slayer I is done, Yew (60) is the income tier" + source: "OSRS wiki — Tree/Oak tree/Willow tree/Maple tree/Yew tree pages (level + xp infoboxes, 2026-08-27)" economy: # Verified 2026-08-27 against prices.runescape.wiki latest + # OSRS wiki tree-page infoboxes. Logs are pure income (no per-cycle cost; - # axe is one-time equipment). Anchor = Draynor Village willows. + # axe is one-time equipment). Anchor = Draynor Village willows (combat 15+). item: Willow logs # example anchor; highest practical F2P XP/hr tier item_id: 1519 cost_per_cycle: 0 # no supplies consumed; axe cost amortised @@ -53,7 +64,8 @@ economy: supplies: [] profit_drivers: - "Logs are the income: sell at the GE (willow 21, oak 42, yew 112 per log — live 2026-08-27; all F2P-tradeable with 12k-15k/4h buy limits)" - - "Yew (level 60) is the income tier: 175 xp/log and ~112gp/log sell; willow (30) is the XP-per-hour tier for the 30-60 band" + - "EXPLICIT MODE SWITCH (state machine + a1): XP mode = Willow (30) through 60+ (Maple 45 with Dragon Slayer I); income mode = Yew (60) at Edgeville. Default is XP mode; income mode must be an explicit run parameter, never the unstated default" + - "Maple (45, Dragon Slayer I, Corsair Cove Resource Area) is an optional F2P tier: 100 xp/log, 4 trees, far from a bank — the guide notes it is more AFK but lower XP/hr than willows" - "Hourly figures are engineering estimates (wiki per-log XP x assumed chop rate) — re-verify against live runs; the wiki-cited facts are per-log XP and live log prices" state_machine: @@ -61,61 +73,80 @@ state_machine: terminal: [complete, failed] states: idle: - goal: pick the F2P tier by level and arm the run - next: [walk_to_trees] + goal: pick the F2P tier by mode + level + quest/combat gates and arm the run + next: [walk_to_trees, complete] walk_to_trees: - goal: reach the Draynor bankside tree spot for the selected tier + goal: walk the tier route from the bank to the tier's tree spot next: [chopping, idle] chopping: goal: chop the tier tree until inventory full or the tree falls - next: [bank_logs, walk_to_trees, complete, failed] - bank_logs: - goal: deposit logs at the bank, return to the trees + next: [walk_to_bank, walk_to_trees, complete, failed] + walk_to_bank: + goal: walk the tier route from the tree spot to the tier's bank + next: [deposit_logs] + deposit_logs: + goal: deposit all logs at the bank + next: [walk_back] + walk_back: + goal: walk back from the bank to the tier's tree spot next: [chopping, idle] complete: - goal: reached the run's XP/level target + goal: reached the run's XP/level or GP target failed: goal: hard failure — stop, log ERROR sentinel, alert transitions: - from: idle - when: "arm tier by level_is gates: >= 60 yew, >= 30 willow, >= 15 oak, else tree" + when: "arm tier: XP mode -> tree (<15) / oak (<30) / willow (30+, combat 15+ at Draynor or Edgeville below) / maple (45+ AND Dragon Slayer I done) / willow again after 60; income mode -> yew (60+) — see a1" to: walk_to_trees - from: walk_to_trees - when: "at the tree spot" + when: "at the tier tree spot" to: chopping - from: chopping when: "inventory full (item_count logs == 28)" - to: bank_logs + to: walk_to_bank - from: chopping when: "tree fell and none interactable at the spot (> 30s of empty-tree state)" to: walk_to_trees - - from: bank_logs + - from: walk_to_bank + when: "at the tier bank" + to: deposit_logs + - from: deposit_logs when: "logs deposited" + to: walk_back + - from: walk_back + when: "at the tier tree spot" to: chopping - from: idle - when: "woodcutting level >= target (default 60 -> yew tier; 99 for max)" + when: "woodcutting level >= target (XP mode: 99 or target; income mode: target GP banked)" to: complete # --- handoff note (wiki-verified 2026-08-27, do not copy from other entries) --- # F2P tree ladder (level / xp per log, wiki tree-page infoboxes): -# Tree 1 / 25, Oak 15 / 37.5, Willow 30 / 67.5, Yew 60 / 175. +# Tree 1 / 25, Oak 15 / 37.5, Willow 30 / 67.5, Maple 45 / 100 (F2P at +# Corsair Cove Resource Area ONLY — Dragon Slayer I required to enter), +# Yew 60 / 175. # NOT on the F2P ladder: -# Maple (45 / 100) — members: virtually all maple spots are members-only -# (Seers' Village, Woodcutting Guild, etc.); the single members=No flag -# (Corsair Cove Resource Area) sits inside a members resource area. # Magic (75 / 250) — members. # Pine — the issue draft's "45 Pine" is DISPROVEN: OSRS pine trees # (Shayzien/Varlamore, added 2021) are scenery only and cannot be -# chopped ("Pine tree" wiki page). Level 45 is Maple, not Pine. +# chopped ("Pine tree" wiki page). Level 45 is Maple, not Pine — and +# Maple IS F2P via Corsair Cove, so the tier is optional, not members. +# Willow spots and combat: Draynor Village willows sit between two +# aggressive level-7 Dark wizards that attack players under combat 15 — +# gate the spot to combat 15+; the single willow East of Edgeville (bank +# adjacent) is the lower-combat alternative. actions: - id: a1 step: gate-tier verb: level_is - target: "current woodcutting level" + target: "current woodcutting level (mode + gates)" params: - tiers: ">=60 yew | >=30 willow | >=15 oak | else tree" - spot: "Draynor Village bankside (willows; oaks east of bank; yews at Draynor Manor)" + mode: "xp | income (explicit run parameter; xp is the default)" + tiers: + xp: ">= 45 with Dragon Slayer I done -> maple (or willow) | >= 30 -> willow (combat 15+ : Draynor; else Edgeville) | >= 15 -> oak | else tree" + income: ">= 60 -> yew (Edgeville) | >= 45 with Dragon Slayer I done -> maple | >= 30 -> willow | >= 15 -> oak | else tree" + spot: "per tier — see a2 route table" on_fail: retry anti_ban: delay: [200, 900] @@ -125,8 +156,8 @@ actions: verb: walk_to target: "selected tier tree spot" params: - location: "Draynor Village" - method: [walk] + route: "Tree -> west of Lumbridge Castle (bank: Lumbridge); Oak -> two east of Draynor Village bank (bank: Draynor; alt: south-west of Varrock west bank, bank: Varrock west); Willow -> south-west of Draynor Village bank, combat 15+ only (bank: Draynor) OR the single willow East of Edgeville, combat < 15 (bank: Edgeville); Maple -> Corsair Cove Resource Area, Dragon Slayer I only (bank: Corsair Cove); Yew -> two south of Edgeville bank (bank: Edgeville)" + method: [walk, teleport] on_fail: retry anti_ban: delay: [400, 1600] @@ -136,7 +167,7 @@ actions: verb: click_object target: "tree of the selected tier" params: - object: "tree/oak/willow/yew per tier" + object: "tree/oak/willow/maple/yew per tier" until: "inventory full OR tree fell" on_fail: retry anti_ban: @@ -148,13 +179,24 @@ actions: target: "logs in inventory" params: item: "logs of selected tier" - op: ">= 28 -> bank" + op: ">= 28 -> walk_to_bank" on_fail: skip anti_ban: delay: [150, 700] - id: a5 - step: bank-loop + step: walk-to-bank + verb: walk_to + target: "tier bank from the tree spot" + params: + bank: "Lumbridge (tree) | Draynor (oak / combat-15+ willow) | Edgeville (combat-<15 willow / yew) | Corsair Cove (maple)" + method: [walk] + on_fail: retry + anti_ban: + delay: [400, 1600] + + - id: a6 + step: deposit-logs verb: bank_inventory target: bank params: @@ -162,25 +204,36 @@ actions: withdraw: [] on_fail: alert - - id: a6 + - id: a7 + step: walk-back-to-trees + verb: walk_to + target: "tier tree spot from the bank" + params: + route: "reverse of a5 — back to the same tier spot" + method: [walk] + on_fail: retry + anti_ban: + delay: [400, 1600] + + - id: a8 step: move-on-empty-tree verb: walk_to target: "next tree / adjacent spot" params: - location: "same tier spot or neighbouring tree" + location: "same tier spot or neighbouring tree (per the tier route)" when: "tree fell (no interactable tree at spot)" on_fail: retry anti_ban: delay: [800, 2200] run_control: - iteration: "one inventory of logs (28)" + iteration: "one full chop -> bank -> walk-back cycle (28 logs)" max_iterations: null break: every: [8, 14] # inventories (breaks land at the bank) for: [45, 150] # seconds of idle AFK stop_conditions: - - "woodcutting level >= target" + - "woodcutting level >= target (XP mode) or GP target banked (income mode)" - "3 consecutive empty-tree waits at the spot (world dead? hop or re-route)" - "3 consecutive failed clicks (client issue — do not loop)" @@ -188,12 +241,16 @@ risk: ban_level: low notes: - "Woodcutting is one of the most botted skills; keep chop cadence humanised and bank rhythm varied (anti_ban delays above)." - - "Shared tree spots (Draynor willows): if the spot is crowded for > 60s, hop_world; do not camp a single world for hours." - - "No combat/death vector: tree-fall damage does not exist — relog/respawn-at-0hp handling is N/A for this entry." + - "Draynor willow spot is HOSTILE for accounts under combat 15: two aggressive level-7 Dark wizards attack players below that threshold — the state machine routes sub-15 accounts to the Edgeville willow instead of the Draynor spot. The 'no combat/death vector' claim applies ONLY to the gated routes (Edgeville/Corsair Cove/Lumbridge/Varrock); treat Draynor as a combat zone for low-level accounts." + - "Shared tree spots (Draynor willows, Edgeville yews): if the spot is crowded for > 60s, hop_world; do not camp a single world for hours." + - "Maple route (Corsair Cove Resource Area): quest-gated (Dragon Slayer I) and far from a bank — only select it when the account has completed the quest and the bank trip is acceptable (AFK trade-off per the guide)." sources: - - "OSRS wiki — Woodcutting (axe table: F2P axes Bronze 1, Iron 1, Steel 6, Black 11, Mithril 21, Adamant 31, Rune 41, Gilded 41; 'best axes available in Free-to-Play'; Dragon 61+ members)" - - "OSRS wiki — Tree (members=No, level 1, 25 xp), Oak tree (15, 37.5 xp; F2P locations Draynor/Varrock/Lumbridge), Willow tree (30, 67.5 xp; members=No locations Rimmington/Edgeville/Lumbridge/Draynor Village; falls 50 ticks/30s), Yew tree (60, 175 xp; members=No locations incl. Varrock Palace/Edgeville/Rimmington; falls 190 ticks/114s, respawn 99 ticks/59.4s), Maple tree (45, 100 xp; members), Magic tree (75, 250 xp; members) — infoboxes 2026-08-27" + - "OSRS wiki — Free-to-play Woodcutting training (full tier ladder, 2026-08-27): maple = Corsair Cove Resource Area ONLY for F2P, requires Dragon Slayer I; yew 'earn a profit' but 'recommended to cut willow or maple trees for experience'; 'best place to chop yew trees is south of Edgeville bank'; willow spots 'south-west of the bank in Draynor Village, but beware of aggressive dark wizards' + 'one tree East of Edgeville that is very close to a bank'; oak spots incl. south-west of Varrock west bank / behind Lumbridge General Store / near Port Sarim; drop-vs-bank trade-off" + - "OSRS wiki — Draynor Village (two aggressive level-7 Dark Wizards near the willows 'will attack any players under combat level 15')" + - "OSRS wiki — Woodcutting (axe table: F2P axes Bronze 1, Iron 1, Steel 6, Black 11, Mithril 21, Adamant 31, Rune 41, Gilded 41; 'best axes available in Free-to-play'; Dragon 61+ members)" + - "OSRS wiki — Tree (members=No, level 1, 25 xp), Oak tree (15, 37.5 xp; F2P locations Draynor/Varrock/Lumbridge), Willow tree (30, 67.5 xp; members=No locations Rimmington/Edgeville/Lumbridge/Draynor Village; falls 50 ticks/30s), Maple tree (45, 100 xp; members1=No Corsair Cove Resource Area — only F2P maples; falls 100 ticks/60s), Yew tree (60, 175 xp; members=No locations incl. Varrock Palace/Edgeville; falls 190 ticks/114s, respawn 99 ticks/59.4s), Magic tree (75, 250 xp; members) — infoboxes 2026-08-27" + - "OSRS wiki — Corsair Cove Resource Area ('requires completion of Dragon Slayer I to enter'; 4 maple trees + 3 yew trees; only F2P maple location)" - "OSRS wiki — Pine tree (scenery in Shayzien/Varlamore, CANNOT be chopped — disproves any '45 Pine' tier)" - "OSRS wiki — Rune axe / Black axe / Gilded axe item pages (members = No, verified 2026-08-27)" - "prices.runescape.wiki mapping 2026-08-27 (item ids + GE limits: logs 1511/1521/1519 limit 15000, yew 1515 limit 12000)"