codex: fix woodcutting-f2p entry per governor review (bounce fix attempt 2)

- Dragon Slayer I removed from accounts.requires_quest (empty for the
  base entry); it now gates ONLY the optional Maple tier (a1 tier gate,
  a2 maple route, idle transition)
- Dynamic inventory: no hardcoded 28-log assumption — equip the axe only
  when the Attack requirement is met (rune/gilded = 41), otherwise chop
  with the axe carried (27 log slots); inventory-full derived dynamically;
  banking deposits logs ONLY, axe preserved
- version 2 -> 3
This commit is contained in:
Claude 2026-08-27 17:06:15 -05:00
parent 8a8cc0d6b3
commit 368734da65

View File

@ -3,7 +3,7 @@ title: Woodcutting (F2P)
domain: training domain: training
tags: [woodcutting, gathering, f2p, skill-training] tags: [woodcutting, gathering, f2p, skill-training]
status: verified status: verified
version: 2 version: 3 # 3: bounce-fix 2 2026-08-27 — DS I is a Maple-tier gate only (requires_quest empty), dynamic inventory (conditional axe equip, no hardcoded 28)
updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date
summary: > summary: >
@ -23,18 +23,17 @@ summary: >
accounts: accounts:
membership: f2p membership: f2p
min_level: 1 # Woodcutting 1 — normal trees from the start min_level: 1 # Woodcutting 1 — normal trees from the start
requires_quest: requires_quest: [] # EMPTY for the base entry — Tree/Oak/Willow/Yew need no quest. Dragon Slayer I is NOT an entry-level prerequisite: it gates ONLY the optional level-45 Maple tier (Corsair Cove Resource Area) and is expressed in the a1 tier gate, the a2 maple route, and the idle transition — never in accounts.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: requires_other:
- "An axe (bronze/iron are free; iron axe ~66 gp at the GE)" - "An axe. Equip the best-tier F2P axe the account can wield (rune/gilded = 41 Attack to wield); below that, carry the axe in the inventory and chop from the inventory — this works at any level. A carried axe costs ONE log slot (27 log slots), an equipped axe costs none (28 log slots); all inventory-full logic derives the count dynamically, never hardcoded"
- "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" - "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)" - "Bank within a short walk of the tier spot (Draynor, Edgeville, Lumbridge, Varrock, or Corsair Cove bank)"
best_practice: best_practice:
equipment: equipment:
- item: rune axe (level 41 — best F2P axe) - item: rune axe (41 Attack to wield — 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. EQUIP GATE: rune/gilded need 41 Attack to wield — equip only when the account meets it, otherwise chop with the axe in the inventory (legal at every level; costs one log slot)"
source: "OSRS wiki — Woodcutting (axe table incl. F2P/members flags) + Rune axe, Black axe, Gilded axe item pages (members = No) + Dragon axe (members = Yes)" source: "OSRS wiki — Woodcutting (axe table incl. F2P/members flags) + Rune axe, Black axe, Gilded axe item pages (members = No, 41 Attack requirement) + Dragon axe (members = Yes)"
techniques: techniques:
- name: pick the tier route by level, quests, and combat level - 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" 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"
@ -102,7 +101,7 @@ state_machine:
when: "at the tier tree spot" when: "at the tier tree spot"
to: chopping to: chopping
- from: chopping - from: chopping
when: "inventory full (item_count logs == 28)" when: "inventory full (all slots used: 28 logs with the axe equipped, 27 with the axe carried — derive dynamically, never hardcode 28)"
to: walk_to_bank to: walk_to_bank
- from: chopping - from: chopping
when: "tree fell and none interactable at the spot (> 30s of empty-tree state)" when: "tree fell and none interactable at the spot (> 30s of empty-tree state)"
@ -179,7 +178,7 @@ actions:
target: "logs in inventory" target: "logs in inventory"
params: params:
item: "logs of selected tier" item: "logs of selected tier"
op: ">= 28 -> walk_to_bank" op: "inventory full -> walk_to_bank — available log slots = inventory capacity minus non-log items (axe equipped = 28, axe carried = 27); never hardcode 28"
on_fail: skip on_fail: skip
anti_ban: anti_ban:
delay: [150, 700] delay: [150, 700]
@ -200,7 +199,7 @@ actions:
verb: bank_inventory verb: bank_inventory
target: bank target: bank
params: params:
deposit: [all logs] deposit: [all logs] # logs ONLY — the axe must stay (equipped or carried); never deposit the axe
withdraw: [] withdraw: []
on_fail: alert on_fail: alert
@ -227,7 +226,7 @@ actions:
delay: [800, 2200] delay: [800, 2200]
run_control: run_control:
iteration: "one full chop -> bank -> walk-back cycle (28 logs)" iteration: "one full chop -> bank -> walk-back cycle (inventory load: 28 logs with the axe equipped, 27 with the axe carried)"
max_iterations: null max_iterations: null
break: break:
every: [8, 14] # inventories (breaks land at the bank) every: [8, 14] # inventories (breaks land at the bank)