AIO Cooker
by ArcaneOxbow ·Cooking
Pick a food, hit start, it banks and cooks
3
Installed
1.0.2
Version
18 Aug 2026
Updated
About this script
AIO Cooker
Cooks any fish
Needs
- A bank and fire close together
- Raw food in the bank
Builds
| Version | Kind | Published | Size | What changed |
|---|---|---|---|---|
| 1.0.2 current | text script | 18 Aug 2026 | 6 KB | Make script public |
| 1.0.1 | text script | 18 Aug 2026 | 6 KB | First upload. |
Source of 1.0.2
Published by the author. This is the current build, exactly as it will be delivered.
script "AIO Cooker" author "Mark" version "1.0.2" every 600 # The selected raw food, and its cooked/burnt ids (set by lookupCook). var rawId = 0 var curCooked = 0 var curBurnt = 0 var started = false on start { if not bankAvailable() { print("Bank not available") } if not batchAvailable() { print("Batch not available") } if not minimapAvailable() { print("Warning: minimap hooks not ready - walkPath may misbehave") } pathStart("route", "bank", tile(216, 451)) pathFinish("route", "fire", tile(214, 456)) uiTab("Cooker") uiHeader("Pick a fish to cook") uiLabel("status", "Tick the food you want, then press Start.") showFish() uiButton("Start", "onStart") } # ---- the cooking table, straight from the game's ItemCookingDef list ---- fun fishId(int i) -> int { if i == 0 { return 349 } if i == 1 { return 137 } if i == 2 { return 354 } if i == 3 { return 361 } if i == 4 { return 256 } if i == 5 { return 351 } if i == 6 { return 552 } if i == 7 { return 717 } if i == 8 { return 358 } if i == 9 { return 550 } if i == 10 { return 255 } if i == 11 { return 363 } if i == 12 { return 345 } if i == 13 { return 356 } if i == 14 { return 254 } if i == 15 { return 366 } if i == 16 { return 324 } if i == 17 { return 339 } if i == 18 { return 372 } if i == 19 { return 369 } if i == 20 { return 554 } if i == 21 { return 1280 } if i == 22 { return 1101 } if i == 23 { return 1104 } if i == 24 { return 708 } if i == 25 { return 545 } if i == 26 { return 591 } if i == 27 { return 1192 } if i == 28 { return 1190 } return 0 } fun lookupCook(int raw) { if raw == 349 { curCooked = 350 curBurnt = 353 } if raw == 137 { curCooked = 138 curBurnt = 139 } if raw == 354 { curCooked = 355 curBurnt = 360 } if raw == 361 { curCooked = 362 curBurnt = 365 } if raw == 256 { curCooked = 258 curBurnt = 260 } if raw == 351 { curCooked = 352 curBurnt = 353 } if raw == 552 { curCooked = 553 curBurnt = 365 } if raw == 717 { curCooked = 718 curBurnt = 365 } if raw == 358 { curCooked = 359 curBurnt = 360 } if raw == 550 { curCooked = 551 curBurnt = 365 } if raw == 255 { curCooked = 259 curBurnt = 260 } if raw == 363 { curCooked = 364 curBurnt = 365 } if raw == 345 { curCooked = 346 curBurnt = 347 } if raw == 356 { curCooked = 357 curBurnt = 360 } if raw == 254 { curCooked = 257 curBurnt = 260 } if raw == 366 { curCooked = 367 curBurnt = 368 } if raw == 324 { curCooked = 325 curBurnt = 322 } if raw == 339 { curCooked = 330 curBurnt = 331 } if raw == 372 { curCooked = 373 curBurnt = 374 } if raw == 369 { curCooked = 370 curBurnt = 371 } if raw == 554 { curCooked = 555 curBurnt = 368 } if raw == 1280 { curCooked = 1269 curBurnt = 1281 } if raw == 1101 { curCooked = 1103 curBurnt = 1103 } if raw == 1104 { curCooked = 1105 curBurnt = 1110 } if raw == 708 { curCooked = 709 curBurnt = 710 } if raw == 545 { curCooked = 546 curBurnt = 547 } if raw == 591 { curCooked = 590 curBurnt = 590 } if raw == 1192 { curCooked = 1193 curBurnt = 1248 } if raw == 1190 { curCooked = 1191 curBurnt = 1247 } } fun showFish() { let i = 0 while i < 29 { let id = fishId(i) uiToggle("raw-" + str(id), itemDef(id).name + " (" + str(id) + ")", false) i = i + 1 } } fun pickedRaw() -> int { let i = 0 while i < 29 { let id = fishId(i) if uiToggled("raw-" + str(id)) { return id } i = i + 1 } return 0 } fun onStart() { let raw = pickedRaw() if raw == 0 { uiLabel("status", "Tick a food first.") return } rawId = raw lookupCook(raw) started = true uiClear() uiHeader("Cooking " + itemDef(raw).name) uiLabel("status", "Heading to the bank...") } # ---- states ---- state setup { if started { become banking } return 400 } state banking { let how = walkPath("route", "bank") if how == "ARRIVED" { let banker = nearestNpc(id: 95, within: 10) if banker == none { print("No Banker (95) found nearby") return 1000 } if not bankIsOpen() { if reach(banker) == "DRAWN" { let fresh = nearestNpc(id: 95, within: 10) if fresh != none { interact(fresh, "Bank") } } return 1000 } if invContains(curCooked) { uiLabel("status", "Banking cooked food") bankDepositAll(curCooked) return 1000 } if invContains(curBurnt) { uiLabel("status", "Banking burnt food") bankDepositAll(curBurnt) return 1000 } if not invContains(rawId) { uiLabel("status", "Withdrawing raw food") bankWithdraw(rawId, 29) return 1000 } bankClose() become cooking } else if how == "WALKING" { return 900 } else if how == "CROSSING" { return 1500 } else { print("bank walk status:", how) return 1000 } } state cooking { let food = invItem(rawId) if food != none { let fire = nearestObject(id: 97, within: 8) if fire == none { print("No Fire (97) found nearby") return 1000 } if reach(fire) == "DRAWN" { uiLabel("status", "Cooking " + itemDef(rawId).name) interact(food, "Use") let cooked = interact(fire, "Use") if cooked { wait until batchActive() timeout 4000 else { return 1000 } wait until not batchActive() timeout 90000 else { return 600 } } } return random(2000, 2500) } become banking }