codex: woodcutting (F2P) entry

Verified against OSRS wiki 2026-08-27 + live prices:
- F2P tree ladder: Tree 1/25xp, Oak 15/37.5xp, Willow 30/67.5xp,
  Yew 60/175xp (wiki tree-page infoboxes + F2P location lists)
- Issue draft corrected: '45 Pine' disproven (OSRS pines are scenery
  only, Pine tree page); level 45 is Maple (members) — noted in handoff
- F2P axes verified from wiki axe table + item pages: Bronze(1)..Rune(41)
  + Gilded(41) all F2P; Rune axe = best F2P; Dragon = members
- economy anchored on Draynor Village willows: live log sell prices
  (willow 21, yew 112), xp/hr grounded in wiki per-log XP (hourly
  rate explicitly flagged as estimate)
- bankside spot chosen per Oak/Willow/Yew page location lists; tree
  fall timers cited (willow 30s, yew 114s)
- N/A relog/respawn noted (no combat/death vector)

validate.py exit 0 (0 errors). Closes #3
This commit is contained in:
Claude 2026-08-27 03:31:01 -05:00
parent 986fc1a6a8
commit 0ba4646296

View File

@ -0,0 +1,206 @@
id: woodcutting-f2p
title: Woodcutting (F2P)
domain: training
tags: [woodcutting, gathering, f2p, skill-training]
status: verified
version: 1
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.
accounts:
membership: f2p
min_level: 1 # Woodcutting 1 — normal trees from the start
requires_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)"
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"
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: 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)"
- 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)"
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.
item: Willow logs # example anchor; highest practical F2P XP/hr tier
item_id: 1519
cost_per_cycle: 0 # no supplies consumed; axe cost amortised
income_per_cycle: 21 # willow log sell price (latest.high)
net_per_cycle: 21
gp_per_hour_low: 14000 # est. ~700 logs/hr x 21 (see hourly-rate note)
gp_per_hour_high: 21000 # est. ~1000 logs/hr x 21
xp_per_hour: 60000 # est. ~900 willow logs/hr x 67.5 xp (see note)
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"
- "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:
initial: idle
terminal: [complete, failed]
states:
idle:
goal: pick the F2P tier by level and arm the run
next: [walk_to_trees]
walk_to_trees:
goal: reach the Draynor bankside tree spot for the selected tier
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: [chopping, idle]
complete:
goal: reached the run's XP/level 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"
to: walk_to_trees
- from: walk_to_trees
when: "at the tree spot"
to: chopping
- from: chopping
when: "inventory full (item_count logs == 28)"
to: bank_logs
- from: chopping
when: "tree fell and none interactable at the spot (> 30s of empty-tree state)"
to: walk_to_trees
- from: bank_logs
when: "logs deposited"
to: chopping
- from: idle
when: "woodcutting level >= target (default 60 -> yew tier; 99 for max)"
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.
# 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.
actions:
- id: a1
step: gate-tier
verb: level_is
target: "current woodcutting level"
params:
tiers: ">=60 yew | >=30 willow | >=15 oak | else tree"
spot: "Draynor Village bankside (willows; oaks east of bank; yews at Draynor Manor)"
on_fail: retry
anti_ban:
delay: [200, 900]
- id: a2
step: walk-to-trees
verb: walk_to
target: "selected tier tree spot"
params:
location: "Draynor Village"
method: [walk]
on_fail: retry
anti_ban:
delay: [400, 1600]
- id: a3
step: chop-tree
verb: click_object
target: "tree of the selected tier"
params:
object: "tree/oak/willow/yew per tier"
until: "inventory full OR tree fell"
on_fail: retry
anti_ban:
delay: [900, 2400] # human chop rhythm; yew fall = 114s, willow = 30s
- id: a4
step: check-inventory
verb: item_count
target: "logs in inventory"
params:
item: "logs of selected tier"
op: ">= 28 -> bank"
on_fail: skip
anti_ban:
delay: [150, 700]
- id: a5
step: bank-loop
verb: bank_inventory
target: bank
params:
deposit: [all logs]
withdraw: []
on_fail: alert
- id: a6
step: move-on-empty-tree
verb: walk_to
target: "next tree / adjacent spot"
params:
location: "same tier spot or neighbouring tree"
when: "tree fell (no interactable tree at spot)"
on_fail: retry
anti_ban:
delay: [800, 2200]
run_control:
iteration: "one inventory of logs (28)"
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"
- "3 consecutive empty-tree waits at the spot (world dead? hop or re-route)"
- "3 consecutive failed clicks (client issue — do not loop)"
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."
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 — 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)"
- "prices.runescape.wiki latest 2026-08-27 (live buy/sell: willow 20/21, oak 40/42, yew 111/112, rune axe buy 7470)"
- "Per-log XP and hourly estimate: hourly = wiki per-log XP x assumed chop rate (700-1000 logs/hr; flagged as estimate — re-verify against live runs)"
verified: "2026-08-27" # keep quoted (YAML 1.1 date parsing)
related:
- low-alch-f2p
- f2p-alch-catalog