codex: fix mining-f2p entry per governor review (bounce fix attempt 2)
- Dynamic inventory/drop model: no hardcoded 27-slot count; drop loop driven by count_item ore + inventory full; equip only when Attack requirement met (rune = 40 Attack), else carry pickaxe in inventory - Outcome wait: new wait_rock state — re-click only on ore gained, rock depleted, or roll timeout; never re-click the active rock - Tier-aware cadence: roll_table per pickaxe tier (bronze 4.8s -> rune 1.8s), mandatory pause >= full roll + [0,1800]ms; anchor rune [1800,3600] - Al Kharid hard-gated to combat 29+ (scorpion aggro ceiling 28 per wiki Aggressiveness); sub-29 -> SE Varrock, no food in the model, eat action removed; survive = retreat-only defensive fallback - version 2 -> 3
This commit is contained in:
parent
b06b168c55
commit
ba3a8af9f9
@ -3,7 +3,7 @@ title: Mining (F2P)
|
||||
domain: training
|
||||
tags: [mining, gathering, f2p, skill-training]
|
||||
status: verified
|
||||
version: 2 # 2: bounce-fix 2026-08-27 — per-slot drop loop, click-cadence model, Al Kharid survivability gate
|
||||
version: 3 # 3: bounce-fix 2 2026-08-27 — dynamic inventory/drop model (no hardcoded slot count), conditional equip, wait_rock outcome gate, tier-aware cadence table, Al Kharid hard-gated to combat 29+ (no food in model)
|
||||
updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date
|
||||
|
||||
summary: >
|
||||
@ -13,33 +13,34 @@ summary: >
|
||||
clay/copper/tin from level 1, iron 15 (the fast-XP ore), silver 20, coal
|
||||
30, gold 40, mithril 55, adamantite 70, runite 85. Mining is a staple
|
||||
low-risk, low-input method with no respawn mechanics in the loop. The Al
|
||||
Kharid powermine is gated: its level-14 scorpions attack players at combat
|
||||
level 28 or below (wiki Aggressiveness), so sub-29 accounts carry food or
|
||||
use the banked South-east Varrock route instead.
|
||||
Kharid powermine is hard-gated: its level-14 scorpions attack players at
|
||||
combat level 28 or below (wiki Aggressiveness), so the mine runs only at
|
||||
combat 29+; sub-29 accounts use the banked South-east Varrock route,
|
||||
which has no aggressive NPCs and needs no food.
|
||||
|
||||
accounts:
|
||||
membership: f2p # whole ore chain verified F2P via the wiki guide
|
||||
min_level: 1 # clay/copper/tin mineable at level 1
|
||||
requires_quest: []
|
||||
requires_other:
|
||||
- "Best-tier F2P pickaxe available (bronze -> rune; equip it to save an inventory slot)"
|
||||
- "Best-tier F2P pickaxe the account can wield (bronze: no requirement -> rune: 40 Attack). Equip it ONLY when the Attack requirement is met; otherwise carry it in the inventory — mining from the inventory works at any level (equipped pickaxe = 28 ore slots, carried = 27; slot counts derive dynamically, never hardcoded)"
|
||||
- "Bank route from the chosen mine (or an inventory-drop spot for powermining)"
|
||||
- "Al Kharid powermine route gate: combat level >= 29 (a monster attacks players at <= 2x its level; the scorpion is level 14, so 29+ is safe) OR carry food; below the gate use the banked South-east Varrock route (no aggressive NPCs)"
|
||||
- "Al Kharid powermine HARD GATE: combat level >= 29 (a monster attacks players at <= 2x its level; the scorpion is level 14, so its aggro ceiling is combat 28 and 29+ is safe). Sub-combat-29 accounts MUST use the banked South-east Varrock route (no aggressive NPCs, no food required)"
|
||||
|
||||
best_practice:
|
||||
equipment:
|
||||
- item: highest-tier pickaxe available (bronze -> rune)
|
||||
why: "each tier is faster — the roll interval drops from 8 ticks (bronze) to 3 ticks (rune), and the guide recommends always using the highest tier available; equipping it frees an inventory slot"
|
||||
- item: highest-tier pickaxe the account can wield (bronze -> rune)
|
||||
why: "each tier is faster — the roll interval drops from 8 ticks (bronze) to 3 ticks (rune), and the guide recommends always using the highest tier available; equipping it frees an inventory slot. Equip only when the Attack requirement is met (rune = 40 Attack); below that, mine with the pickaxe in the inventory (legal at every level)"
|
||||
source: "OSRS wiki — Free-to-play Mining training (Pickaxes: tier table with tick intervals)"
|
||||
techniques:
|
||||
- name: start with Doric's Quest for 1,300 xp (level 1 to 10)
|
||||
why: "the quest reward alone takes Mining from 1 to 10; the materials (6 clay, 4 copper, 2 iron) mine at level 1 except iron, which can be bought on the GE"
|
||||
source: "OSRS wiki — Free-to-play Mining training (Level 1-10: Doric's Quest)"
|
||||
- name: powermine iron at Al Kharid mine for maximum XP
|
||||
why: "iron (level 15, 35 xp) is the fastest F2P training ore and Al Kharid is the only F2P site with three iron rocks around one tile — zero travel between respawns; ~50,000 xp/hr at 41 Mining with a rune pickaxe, 52,500 at 61+ (3 ores per 12 ticks); drop the ores — banking costs XP"
|
||||
source: "OSRS wiki — Free-to-play Mining training (Levels 15-99: Iron ore)"
|
||||
- name: bank iron at the South-east Varrock mine for smithing/money
|
||||
why: "the guide names this F2P banking location explicitly; the eastern Varrock bank is the closest bank leg, and the ores feed Smithing"
|
||||
- name: powermine iron at Al Kharid mine for maximum XP (combat 29+ only)
|
||||
why: "iron (level 15, 35 xp) is the fastest F2P training ore and Al Kharid is the only F2P site with three iron rocks around one tile — zero travel between respawns; ~50,000 xp/hr at 41 Mining with a rune pickaxe, 52,500 at 61+ (3 ores per 12 ticks); drop the ores — banking costs XP. Entry gate: the mine's level-14 scorpions are aggressive to combat 28, so this spot runs at combat 29+"
|
||||
source: "OSRS wiki — Free-to-play Mining training (Levels 15-99: Iron ore); OSRS wiki — Aggressiveness"
|
||||
- name: bank iron at the South-east Varrock mine for smithing/money (sub-29 default)
|
||||
why: "the guide names this F2P banking location explicitly; the eastern Varrock bank is the closest bank leg, and the ores feed Smithing. This is also the sub-combat-29 route (no aggressive NPCs)"
|
||||
source: "OSRS wiki — Free-to-play Mining training (Levels 1/10-15 and 15-99: banking locations)"
|
||||
- name: "coal route: West Lumbridge Swamp mine, or Superheat in place"
|
||||
why: "coal (level 30, 50 xp) banks reasonably from the Lumbridge Swamp mine; with 43 Magic, Superheat Item converts coal into bars without a furnace, cutting bank trips (staff of fire + nature runes, 26 inventory slots)"
|
||||
@ -53,6 +54,10 @@ economy:
|
||||
# Cycle = one rock mined -> one ore (XP path) or one ore banked (money path).
|
||||
# XP rates sourced from the wiki guide (iron powermine); gp/h model below is
|
||||
# derived and labelled (no wiki gp/hr figure exists for banked iron).
|
||||
# Cadence consistency: the 52,500 xp/hr figure IS the continuous 61+ rotation
|
||||
# (rune pickaxe): 52,500 / 35 xp = 1,500 ores/hr = one ore per 2.4s, which is
|
||||
# the rune roll (1.8s) + wait_rock outcome gate + anti_ban delay [1800, 3600]
|
||||
# midpoint (2.7s) — the modeled a2 cadence brackets the wiki rate.
|
||||
item: Iron ore # anchor: the F2P training ore
|
||||
item_id: 440
|
||||
cost_per_cycle: 0 # mining consumes nothing (pickaxe has no fuel; no supply costs)
|
||||
@ -62,7 +67,7 @@ economy:
|
||||
gp_per_hour_high: 28000 # MODELLED (dated): ~400 banked iron ores/hr (bank legs reduce the 52.5k-xp/hr powermine rate) x 70 gp
|
||||
xp_per_hour: 52500 # iron powermine, 61+ (50,000 at 41+ with rune pickaxe) — wiki guide
|
||||
supplies:
|
||||
- item: rune pickaxe # highest F2P tier; withdrawn from bank at session start
|
||||
- item: "pickaxe: highest tier the account can wield (rune needs 40 Attack to equip; below that carried in the inventory)"
|
||||
qty_per_cycle: 1
|
||||
source: bank
|
||||
profit_drivers:
|
||||
@ -76,19 +81,22 @@ state_machine:
|
||||
terminal: [complete, failed]
|
||||
states:
|
||||
idle:
|
||||
goal: be at the chosen mine with pickaxe equipped and inventory clear
|
||||
goal: "be at the chosen mine with the pickaxe ready (equipped only if the account meets its Attack requirement) and the inventory clear; run mode chosen at session start (powermine: drop ores; banked: bank ores)"
|
||||
next: [mine, complete, failed]
|
||||
mine:
|
||||
goal: mine the current tier's rock until the inventory fills or the rotation ends
|
||||
next: [bank_run, drop_run, complete, failed]
|
||||
goal: "mine the current tier's rock until the inventory is full or the target is reached; every click (a2) is followed by the wait_rock outcome wait — never chain clicks on the same rock"
|
||||
next: [wait_rock, drop_run, bank_run, complete, failed]
|
||||
wait_rock:
|
||||
goal: "after clicking a rock (a2), wait for the mining outcome — ore gained, rock depleted, or roll timeout — before any re-click; never re-click the active rock while its roll is unresolved"
|
||||
next: [mine, drop_run, bank_run, failed]
|
||||
bank_run:
|
||||
goal: walk to the bank, deposit ores, walk back to the mine
|
||||
goal: "walk to the bank, deposit ores, walk back to the mine"
|
||||
next: [mine, idle]
|
||||
drop_run:
|
||||
goal: "drop EVERY ore slot: one right-click Drop per slot (a6), looping until the inventory is empty (non-stackable ores: 27 slots, 27 Drops)"
|
||||
goal: "drop every occupied ore slot: one right-click Drop per slot (a6), looping until the inventory holds no ore — slot count is DYNAMIC (inventory capacity minus non-ore items: equipped pickaxe = 28 ore slots, carried = 27, survival/gear load = fewer); drive the loop off count_item ore, never hardcode a slot number"
|
||||
next: [drop_run, mine]
|
||||
survive:
|
||||
goal: "Al Kharid scorpion aggro: eat when HP < 40%; retreat out of the aggro radius if overwhelmed; return to the 3-rock cluster when safe"
|
||||
goal: "defensive fallback only (the 29+ gate means scorpions never aggro at Al Kharid): if attacked anyway (gate bypassed/griefed), retreat out of the aggro radius and re-enter the cluster when safe; no food loop is modeled"
|
||||
next: [mine, failed]
|
||||
complete:
|
||||
goal: level or GP target reached
|
||||
@ -96,25 +104,40 @@ state_machine:
|
||||
goal: hard failure — stop, log ERROR sentinel, alert
|
||||
transitions:
|
||||
- from: mine
|
||||
when: "a2 rock click issued (the tier roll is now in progress)"
|
||||
to: wait_rock
|
||||
- from: wait_rock
|
||||
when: "ore gained (count_item ore > count at click) or the clicked rock depleted"
|
||||
to: mine
|
||||
- from: wait_rock
|
||||
when: "roll timeout (no outcome within 2x the equipped tier's roll interval)"
|
||||
to: mine
|
||||
- from: wait_rock
|
||||
when: "inventory full (powermine mode)"
|
||||
to: drop_run
|
||||
- from: wait_rock
|
||||
when: "inventory full (banked mode)"
|
||||
to: bank_run
|
||||
- from: mine
|
||||
when: "inventory full (powermine mode: 27 ore slots)"
|
||||
when: "inventory full (powermine mode)"
|
||||
to: drop_run
|
||||
- from: mine
|
||||
when: "inventory full (banked mode)"
|
||||
to: bank_run
|
||||
- from: drop_run
|
||||
when: "inventory still holds ore (count_item ore > 0)"
|
||||
to: drop_run
|
||||
- from: drop_run
|
||||
when: "inventory empty (count_item ore == 0)"
|
||||
when: "inventory empty of ore (count_item ore == 0)"
|
||||
to: mine
|
||||
- from: mine
|
||||
when: "HP < 40% (scorpion aggro at Al Kharid, sub-combat-29 run)"
|
||||
when: "HP < 40% (hp_is — defensive only; unexpected aggro despite the gate)"
|
||||
to: survive
|
||||
- from: survive
|
||||
when: "HP >= 60% and out of combat"
|
||||
when: "out of combat (HP stable, no attacker in range)"
|
||||
to: mine
|
||||
- from: survive
|
||||
when: "food exhausted and HP < 40%"
|
||||
when: "is_dead (gate bypassed/griefed)"
|
||||
to: failed
|
||||
- from: bank_run
|
||||
when: "ores deposited and back at the mine"
|
||||
@ -134,8 +157,8 @@ actions:
|
||||
params:
|
||||
location: "Al Kharid Mine (powermine) or South-east Varrock mine (banked)"
|
||||
method: [walk, teleport]
|
||||
note: "arrive with the best-tier pickaxe equipped"
|
||||
route_gate: "Al Kharid powermine only at combat >= 29 (scorpions attack <= 28) or with food; otherwise South-east Varrock (banked, no aggressive NPCs)"
|
||||
note: "arrive with the pickaxe equipped ONLY if the account meets its Attack requirement (rune = 40 Attack); otherwise carry it in the inventory"
|
||||
route_gate: "Al Kharid powermine ONLY at combat level >= 29 (level_is Combat >= 29 — the level-14 scorpion's aggro ceiling is combat 28, wiki Aggressiveness); below combat 29 use the banked South-east Varrock route (no aggressive NPCs, no food required)"
|
||||
on_fail: retry
|
||||
anti_ban:
|
||||
delay: [400, 1600]
|
||||
@ -143,14 +166,17 @@ actions:
|
||||
- id: a2
|
||||
step: mine-rock
|
||||
verb: click_object
|
||||
target: "current tier rock"
|
||||
target: "fresh rock in the cluster — never the rock whose roll is in progress"
|
||||
params:
|
||||
rock: "iron rock (tier-gated: silver 20, coal 30, gold 40, mithril 55, adamantite 70, runite 85)"
|
||||
gate: "level_is Mining >= rock level"
|
||||
rotation: "3-rock cluster; face the respawning rock (rune pickaxe, 3 ticks = 1.8s per roll)"
|
||||
rotation: "3-rock cluster (Al Kharid) or nearest cluster of the selected tier; face the respawning rock and click a fresh rock only after the wait_rock outcome wait"
|
||||
roll_table: "pickaxe roll interval (ticks x 0.6s, wiki table verified 2026-08-27): bronze 8 = 4.8s, iron 7 = 4.2s, steel 6 = 3.6s, mithril 5 = 3.0s, adamant 4 = 2.4s, rune 3 = 1.8s"
|
||||
cadence: "mandatory pause per click = equipped pickaxe roll interval from roll_table + [0, 1800]ms humanisation (anchor model below: rune pickaxe @ 61+ -> delay [1800, 3600]; bronze users apply [4800, 6600], iron [4200, 6000], steel [3600, 5400], mithril [3000, 4800], adamant [2400, 4200]). The pause must never be shorter than the equipped tier's FULL roll, and the wait_rock outcome wait must elapse before any re-click — clicking before the roll resolves (or before the rock depletes) cannot speed the ore and is the bot tell"
|
||||
wait_for: "mining outcome — modeled as the wait_rock state: re-click a fresh rock only when ore was gained, the clicked rock depleted, or the roll timed out (2x roll)"
|
||||
on_fail: retry
|
||||
anti_ban:
|
||||
delay: [2000, 4200] # re-click cadence vs mining roll: rune pickaxe rolls every 3 ticks (1.8s) — clicking faster than the roll cannot speed the ore and IS the bot tell; 2.0-4.2s ≈ one click per roll/break cycle, humanised. Lower-tier pickaxes roll slower (bronze = 8 ticks = 4.8s): scale the pause above the roll interval.
|
||||
delay: [1800, 3600] # rune-pickaxe anchor (61+): full 1.8s roll + up to 1.8s humanisation; per-tier floor in params.roll_table — never below the equipped tier's full roll
|
||||
|
||||
- id: a3
|
||||
step: bank-ores
|
||||
@ -190,57 +216,45 @@ actions:
|
||||
target: "ore slot in inventory"
|
||||
params:
|
||||
option: "Drop"
|
||||
iterate: "one occupied ore slot per execution — non-stackable ores need one Drop per slot; the drop_run -> drop_run transition re-executes a6 until count_item ore == 0"
|
||||
iterate: "one occupied ore slot per execution — non-stackable ores need one Drop per slot; the drop_run -> drop_run transition re-executes a6 until count_item ore == 0. Slot count is DYNAMIC (inventory capacity minus non-ore items: equipped pickaxe = 28, carried = 27) — never hardcode a slot number"
|
||||
mode: "powermine only"
|
||||
on_fail: skip
|
||||
anti_ban:
|
||||
delay: [200, 800] # drop churn on a full inventory is human-normal
|
||||
|
||||
- id: a7
|
||||
step: eat-food
|
||||
verb: eat
|
||||
target: "food in inventory"
|
||||
params:
|
||||
threshold: "HP < 40%"
|
||||
mode: "Al Kharid powermine only (scorpion aggro, sub-combat-29 run)"
|
||||
supply: "session-level, not per-cycle: withdraw ~20 trout/salmon at the bank before a sub-combat-29 Al Kharid run"
|
||||
on_fail: alert # no food left at low HP — the survive -> failed transition is the hard failure
|
||||
anti_ban:
|
||||
delay: [400, 1200]
|
||||
|
||||
- id: a8
|
||||
step: retreat-scorpions
|
||||
step: retreat-aggro
|
||||
verb: retreat
|
||||
target: "self"
|
||||
params:
|
||||
from: "scorpion aggro radius (Al Kharid mine)"
|
||||
method: "walk out of attack range, then re-enter the 3-rock cluster once out of combat"
|
||||
from: "aggro radius at the mine (defensive fallback — the Al Kharid 29+ gate normally prevents all aggro)"
|
||||
method: "walk out of attack range, then re-enter the cluster once out of combat"
|
||||
on_fail: retry
|
||||
anti_ban:
|
||||
delay: [600, 1800]
|
||||
|
||||
run_control:
|
||||
iteration: "one full mine -> bank (or drop) rotation"
|
||||
iteration: "one full mine -> bank (or drop) rotation" # per docs/schema.md: break.every counts iterations
|
||||
max_iterations: null
|
||||
break:
|
||||
every: [8, 14] # rotations
|
||||
every: [8, 14] # iterations = full mine->bank/drop rotations
|
||||
for: [60, 180] # seconds of idle AFK
|
||||
stop_conditions:
|
||||
- "level or GP target reached"
|
||||
- "3 consecutive failed rock clicks (client issue — do not loop)"
|
||||
- "death: hard failure — the Al Kharid gate (combat 29+) plus the survive state prevent it; if is_dead anyway (gate bypassed/griefed) log ERROR + alert and stop, no respawn loop"
|
||||
- "death: hard failure — the Al Kharid hard gate (combat 29+) and the survive (retreat) fallback prevent it in normal operation; if is_dead anyway (gate bypassed/griefed) log ERROR + alert and stop, no respawn loop"
|
||||
|
||||
risk:
|
||||
ban_level: low
|
||||
notes:
|
||||
- "Mining is a staple low-risk method: long, repetitive, low-input behaviour that matches normal player sessions — the guide itself recommends hours of drop-mining."
|
||||
- "The 3-tick powermine rotation is the detection vector if executed perfectly for hours — jitter the rotation cadence (a2 delay 2.0-4.2s, above the 1.8s rune roll) and take the break schedule."
|
||||
- "Al Kharid mine has aggressive level-14 scorpions: they attack players at combat level <= 28 (wiki Aggressiveness). Gate: run Al Kharid at combat 29+, or below that carry food (survive state eats/retreats; food out + low HP = hard failure). The banked South-east Varrock route has no aggressive NPCs."
|
||||
- "The powermine rotation is the detection vector if executed perfectly for hours — keep the a2 tier-aware cadence (wait_rock outcome wait + roll_table pause; anchor rune 1.8-3.6s, never below the equipped tier's full roll) and take the break schedule."
|
||||
- "Al Kharid mine has aggressive level-14 scorpions (they attack players at combat level <= 28 — wiki Aggressiveness). The entry HARD-gates Al Kharid to combat 29+; sub-29 accounts run the banked South-east Varrock route (no aggressive NPCs). No food is part of either route; the survive state (retreat) is a defensive fallback only."
|
||||
|
||||
sources:
|
||||
- "OSRS wiki — Active/passive aggressive monsters: Aggressiveness (a monster attacks players whose combat level is <= 2x its level; a level-14 scorpion is safe from combat level 29) — verified 2026-08-27"
|
||||
- "OSRS wiki — Scorpion (combat level 14, hitpoints 17; Al Kharid mine) — verified 2026-08-27"
|
||||
- "OSRS wiki — Free-to-play Mining training (ore level/xp table — all rows F2P; pickaxe tier table with tick intervals; Doric's Quest 1,300 xp; iron 50,000 xp/hr at 41+ / 52,500 at 61+; Al Kharid 3-rock spot; SE Varrock banking; Superheat coal; adamantite/runite as F2P money methods; scorpions: 'bring food') — verified 2026-08-27"
|
||||
- "OSRS wiki — Free-to-play Mining training (ore level/xp table — all rows F2P; pickaxe tier table with tick intervals (bronze 8 -> rune 3); Doric's Quest 1,300 xp; iron 50,000 xp/hr at 41+ / 52,500 at 61+; Al Kharid 3-rock spot; SE Varrock banking; Superheat coal; adamantite/runite as F2P money methods; scorpions noted — the guide says 'bring food', this entry hard-gates the mine to combat 29+ instead, so food is not modeled) — verified 2026-08-27"
|
||||
- "OSRS wiki — Mining (skill overview, members=No)"
|
||||
- "prices.runescape.wiki/api/v1/osrs/mapping (ore ids: iron 440, coal 453, silver 442, gold 444, mithril 447, adamantite 449, runite 451 — all members=false; buy limits)"
|
||||
- "prices.runescape.wiki/api/v1/osrs/latest (ore sell prices, snapshot 2026-08-27)"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user