Skip to content

Add new player bot AI architecture#889

Merged
GregHib merged 128 commits intomainfrom
v2-bots
Feb 17, 2026
Merged

Add new player bot AI architecture#889
GregHib merged 128 commits intomainfrom
v2-bots

Conversation

@GregHib
Copy link
Owner

@GregHib GregHib commented Feb 11, 2026

Introduces a brand new bot system which focuses on improved ease of writing, robustness and failure handling.

For more technical details see the Bot Architecture wiki page.

  • Allows writing bots in *.bots.toml config files
  • Allowing Instruction validators to return immediate failures closes Interaction feedback for bots #209
  • Uses conditions to detect mode, queues and clocks to determine other states
  • Add BehaviourState with failure Reason's instead of exceptions closes Ai Robustness #241
  • Adds a new graph implementation with a virtual start point to support Shortcuts like jewellery teleporting closes Bot navigation #114

Also:

  • Randomised bot names
  • Adds refresh button to MapViewer
  • Added support for multi-line maps to intellij's toml plugin
  • Username length sign-up check
  • Changes for bot disconnecting
  • Remove old bot system
  • Fix lost city npc spawns

Remaining tasks:

  • Add a bot example for doing a quest (rune mysteries?) More types of bots #888
  • Add multiple bot spawning locations (e.g. Varrock, banks?)
  • Bot progress saving - might want to store in a separate location than player saves
  • Increase bot system testing coverage (esp around event and available tasks)
  • More listeners for world state for re-evaluation
  • Add bot integration tests to prove they continue working Add bot integration tests #892
  • Weighted target selection to avoid clumping
  • More bots for the broader world outside of Lumbridge More types of bots #888
  • Combat running away when low
  • More complex armour setups
  • Faster node searches Ai Navigation Graph linking #239
  • Bots temporarily get stuck on gates and doors
  • Spawning bots with requirements fulfilled
  • Slots should be tied to areas not activities (see: smithing)
  • Improved randomised walking - issues with nodes on edges of areas
    • Perhaps use nodes as targets not areas

@GregHib GregHib marked this pull request as ready for review February 17, 2026 22:49
@GregHib GregHib changed the title New player bot AI Add new player bot AI architecture Feb 17, 2026
@GregHib GregHib merged commit 964ffc4 into main Feb 17, 2026
3 checks passed
@GregHib GregHib deleted the v2-bots branch February 17, 2026 23:20
@codecov
Copy link

codecov bot commented Feb 17, 2026

Codecov Report

❌ Patch coverage is 56.56475% with 966 lines in your changes missing coverage. Please review.
✅ Project coverage is 38.06%. Comparing base (7e9d1bc) to head (be70426).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...otlin/content/bot/behaviour/condition/Condition.kt 55.49% 53 Missing and 28 partials ⚠️
game/src/main/kotlin/content/bot/BotManager.kt 60.20% 56 Missing and 22 partials ⚠️
game/src/main/kotlin/content/bot/BotCommands.kt 17.56% 58 Missing and 3 partials ⚠️
...src/main/kotlin/content/bot/behaviour/Behaviour.kt 77.57% 34 Missing and 16 partials ⚠️
...content/bot/behaviour/action/BotInterfaceOption.kt 2.43% 40 Missing ⚠️
...ontent/bot/behaviour/navigation/NavigationGraph.kt 79.03% 28 Missing and 11 partials ⚠️
...in/content/bot/behaviour/setup/DynamicResolvers.kt 74.82% 15 Missing and 21 partials ⚠️
...tlin/content/bot/behaviour/condition/BotHasMode.kt 3.12% 31 Missing ⚠️
...otlin/content/bot/behaviour/action/ActionParser.kt 81.08% 8 Missing and 20 partials ⚠️
...kotlin/content/bot/behaviour/action/BotFightNpc.kt 58.92% 10 Missing and 13 partials ⚠️
... and 132 more
Additional details and impacted files
Files with missing lines Coverage Δ
.../main/kotlin/world/gregs/voidps/engine/GameLoop.kt 3.12% <ø> (ø)
...ps/engine/client/instruction/InstructionHandler.kt 0.00% <ø> (ø)
...orld/gregs/voidps/engine/client/ui/InterfaceApi.kt 74.19% <100.00%> (+1.15%) ⬆️
...gs/voidps/engine/data/definition/AreaDefinition.kt 100.00% <100.00%> (ø)
...dps/engine/data/definition/InventoryDefinitions.kt 70.96% <100.00%> (+2.54%) ⬆️
...s/voidps/engine/data/definition/ItemDefinitions.kt 35.00% <100.00%> (+0.65%) ⬆️
game/src/main/kotlin/ContentLoader.kt 65.51% <ø> (-1.15%) ⬇️
game/src/main/kotlin/GameModules.kt 51.28% <100.00%> (-0.72%) ⬇️
game/src/main/kotlin/GameTick.kt 86.00% <100.00%> (+1.68%) ⬆️
.../main/kotlin/content/area/misthalin/BorderGuard.kt 82.92% <100.00%> (ø)
... and 159 more

... and 1 file with indirect coverage changes

@@             Coverage Diff              @@
##               main     #889      +/-   ##
============================================
+ Coverage     37.02%   38.06%   +1.04%     
- Complexity     7284     7509     +225     
============================================
  Files          1522     1541      +19     
  Lines         59552    60229     +677     
  Branches      15048    15215     +167     
============================================
+ Hits          22050    22928     +878     
+ Misses        32537    32160     -377     
- Partials       4965     5141     +176     
Components Coverage Δ
Content 35.89% <59.78%> (+1.69%) ⬆️
Engine 42.85% <24.87%> (+0.02%) ⬆️
Network 60.85% <0.00%> (-0.08%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ai Robustness Interaction feedback for bots Bot navigation

1 participant

Comments