Repository navigation
JS bot scripting comes to the client: write autonomous bots in JavaScript on a
priority behaviour runner, shipped with a full lumberjack that chops, banks,
restocks, eats, fights, flees and resurrects on its own.
Highlights
- Embedded QuickJS scripting engine — write bots in plain JS, no recompile.
A priority behaviour runner (highest-priority eligible behaviour owns the
body; higher-priority ones preempt) with cancellation tokens so a step
unwinds the instant a threat appears. BehaviorScriptbase class + mixins — lifecycle hooks
(onStart/onStartup/onStop/onPreempt),step()/sequence(), movement
(walkTo), inventory, and opt-inBankSkill/SurvivalSkill(deposit,
withdraw, bandage/rest, eat, find vendor, restock).- Full lumberjack reference bot — chop → bank → restock → eat, with a threat
meter driving fight / flee (DPS-race assessment) / resurrect, plus
forest-stand rotation and avoid-areas. - Threat meter — body-list aggression + confirmed-attack signals, passive HP
queries (0x34), proactive danger scoring.
Bots & navigation
- Embed the QuickJS engine and
Player/World/Mobiles/Vendorbindings. onStartupasync prelude (rest + restock before the first job).- Presence-based mobile blocking and terrain-aware path planning.
- Pipelined movement — fastwalk stack, depth 4 (predict + reconcile).
Networking / protocol
- Console commands for spells, skills, and item handling.
- Target cursor (
0x6C) + war-mode attack (0x05). - Container packets + a simple contents HUD.
Rendering
- Tree-stump overlay for chopped trees.
- Animated corpses + death-animation handoff (
0xAF/0x2006). - Mouse picking: click / double-click, hover highlight, item labels.
- Highlight all mobile layers on hover; face the double-clicked object.
Docs
- JS scripting guide (
BT.md) rewritten around theBehaviorScriptbase class
and mixins;globals.d.tskept as the type source of truth. - README: expanded stdin command table, demo video.
Full changelog: 1.0.0...1.1.0