fix(codex): F2P maple path, XP/income mode, executable bank loop, combat gate (issue #3)

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.
This commit is contained in:
Claude 2026-08-27 12:55:50 -05:00
parent 0ba4646296
commit 8a8cc0d6b3

View File

@ -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)"