Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
6886eea
Align owns, carries and equips item check helpers
GregHib Jan 25, 2026
dee82f9
Some ideas
GregHib Jan 25, 2026
6e08106
Add 3k bot names
GregHib Jan 26, 2026
cdc9141
Add username length check to login
GregHib Jan 26, 2026
5fe25a4
Add bot name randomising
GregHib Jan 26, 2026
fb8dc33
Fix bots spawning on startup
GregHib Jan 26, 2026
b15f3f8
Add a basic bot manager system which assigns location-based tasks
GregHib Jan 26, 2026
b214ff3
Add behaviour templating
GregHib Jan 27, 2026
bfe49ea
Add requirement ordering
GregHib Jan 27, 2026
cfd96b3
Rename Requirement to Fact
GregHib Jan 27, 2026
4aff6db
Rename requirements to requires
GregHib Jan 27, 2026
2525fd4
Started on resolvers
GregHib Jan 28, 2026
52cd732
Add fact checking
GregHib Jan 28, 2026
e1413e9
Add fact checks and EquipsOne/CarriesOne of a few items given wildcards
GregHib Jan 28, 2026
e173a5f
Add manager debugging
GregHib Jan 28, 2026
d76ac57
Tweak mechanics and add tests for resolver behaviour
GregHib Jan 28, 2026
bc8f7d4
Hack together action implementations
GregHib Jan 28, 2026
8c94092
Fixes
GregHib Jan 29, 2026
29b526c
Split mandatory and resolvable facts into two lists
GregHib Jan 29, 2026
bbcca16
Add activity visibility and grouping based on facts
GregHib Jan 29, 2026
6ee5fe9
Update enter/exit handler to pass AreaDefinition instead of Area
GregHib Jan 29, 2026
167c7f2
Add recalculating activities reactively
GregHib Jan 29, 2026
01a412d
Facts and conditions
GregHib Jan 30, 2026
92f5c12
Add automatic location/area resolver
GregHib Jan 31, 2026
2df6023
Convert Fact's and Conditions to check Players not Bots
GregHib Feb 1, 2026
a6d5bd7
Rename plan to actions, resolve to setup
GregHib Feb 1, 2026
ac947a4
Add variable defaults and walk to tile action
GregHib Feb 1, 2026
f8781b3
Add a new navigation graph with navigation shortcuts
GregHib Feb 1, 2026
dad1a8f
Replace nav graph in MapViewer and add reload button
GregHib Feb 2, 2026
748c417
Reload areas too
GregHib Feb 2, 2026
98e2bf6
Fix area name offset
GregHib Feb 2, 2026
3973054
Link up navigation graph with GoTo and GoToNearest actions
GregHib Feb 2, 2026
b279b32
Add all nav-edges and update varrock teleport shortcut
GregHib Feb 2, 2026
f90abc6
WIP
GregHib Feb 2, 2026
26a43ed
Add clock and timer facts
GregHib Feb 4, 2026
096bb59
Replace retry-actions with success conditions
GregHib Feb 4, 2026
59bdf20
Improvements and fixes
GregHib Feb 4, 2026
ca855c7
Fixes
GregHib Feb 4, 2026
1f3c202
Fixes to shopping and banking, add bunch of woodcutting spots
GregHib Feb 4, 2026
2723439
Remove some inappropriate bot names
GregHib Feb 4, 2026
c60b954
Add combat level fact and more mining bots
GregHib Feb 4, 2026
0832cae
Fix lumbridge swamp lost city npc spawns
GregHib Feb 4, 2026
2bd3a9d
Re-weight buying vs banking
GregHib Feb 4, 2026
fda2619
Fix traversing graphs with zero weight
GregHib Feb 4, 2026
300dbf7
Fix edge-less traversals
GregHib Feb 4, 2026
1077d85
Add equipping and combat bot
GregHib Feb 4, 2026
a9f63b3
Target nearest applicable entity first
GregHib Feb 4, 2026
0fab8a4
Tweak resolvers and combat
GregHib Feb 4, 2026
6b931f6
Add boolean return to validators for immediate feedback
GregHib Feb 5, 2026
e8521cb
Use interaction validators directly for faster feedback
GregHib Feb 5, 2026
840cc93
Add item on item and dialogue continue actions
GregHib Feb 5, 2026
6e555e5
Fix bot disconnecting by making client required and viewport optional
GregHib Feb 5, 2026
36c5a88
Fix invalid inventory messages and bot restart actions
GregHib Feb 5, 2026
099e293
Add fletching bots
GregHib Feb 5, 2026
3c3dcdd
WIP
GregHib Feb 6, 2026
96371af
Tweak reset waiting conditions and thieving, add bone burying
GregHib Feb 6, 2026
c51163d
Add cow bots
GregHib Feb 6, 2026
145cf17
Add cooking bots
GregHib Feb 6, 2026
adfce11
Requirement Refactor
GregHib Feb 7, 2026
88ea7b6
Requirement action requirements
GregHib Feb 7, 2026
2526719
Remove Condition
GregHib Feb 7, 2026
6114c2c
Add deficit concept and evaluator to produce them
GregHib Feb 7, 2026
fec240c
Fix shortcuts
GregHib Feb 7, 2026
098dd74
Split nav edges into locations
GregHib Feb 7, 2026
634aa3a
Introduce ItemView for multi inventory lookups with no copies
GregHib Feb 7, 2026
da45610
Tidy up
GregHib Feb 8, 2026
a534ed9
Add ActionParser with new format
GregHib Feb 8, 2026
875128b
Add object fact and require object interact success predicates
GregHib Feb 8, 2026
1e8ca41
New nav edge format
GregHib Feb 8, 2026
950b95f
New nav edge format
GregHib Feb 8, 2026
6663c5c
Remove old bot and navigation system
GregHib Feb 8, 2026
8ecc11d
Fix
GregHib Feb 8, 2026
2f52c6d
Store tags by tile
GregHib Feb 8, 2026
314ebe3
Sort classes
GregHib Feb 8, 2026
7b800d3
Formatting
GregHib Feb 8, 2026
de4f965
Fix tags off-by-one error
GregHib Feb 8, 2026
00fd335
Add interface closer parser
GregHib Feb 8, 2026
45c3b4d
Tweak deficits
GregHib Feb 8, 2026
8f581c3
Rethinking evaluation, started adding fishing
GregHib Feb 8, 2026
3d0840e
Change produces to keys only
GregHib Feb 9, 2026
862a945
Rename carries to inventory
GregHib Feb 9, 2026
407f8a5
Add start new condition system
GregHib Feb 9, 2026
35d6de4
Add new condition system with dynamic resolvers in place of facts, pr…
GregHib Feb 10, 2026
42e9e3e
Add timeout when an activity doesn't produce anything for a given time
GregHib Feb 10, 2026
4d448d8
Add documentation
GregHib Feb 10, 2026
147d5e9
Fix product templates, taking items from shop samples, tidy messages
GregHib Feb 10, 2026
cccc103
Formatting
GregHib Feb 10, 2026
628f404
Fix fishing timeout
GregHib Feb 10, 2026
af5d507
Add dynamic shop buying resolvers
GregHib Feb 10, 2026
56c1432
Add lumbridge combat tutor bots, fix lots of conditions and resolvers
GregHib Feb 11, 2026
0e1fd05
Remove old area bot data
GregHib Feb 11, 2026
df74e24
Add firemaking bot
GregHib Feb 11, 2026
c7f2f1f
Remove comments
GregHib Feb 11, 2026
425fbfa
Add shop sample resolver and picking up item action, fix chicken fence
GregHib Feb 11, 2026
3fe7c4a
Formatting
GregHib Feb 11, 2026
6b1c1da
Tweaks
GregHib Feb 11, 2026
b8b48d3
Add crayfish cooking bot
GregHib Feb 11, 2026
f47ddaa
Fix viewport
GregHib Feb 16, 2026
87288fc
Fix potion consumption insert order
GregHib Feb 16, 2026
634b288
Formatting
GregHib Feb 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions data/area/kharidian_desert/al_kharid/al_kharid.areas.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,10 @@ tags = ["bank"]
[zekes_scimitar_shop]
x = [3285, 3290]
y = [3187, 3192]
tags = ["shop"]
items = ["bronze_scimitar", "iron_scimitar", "steel_scimitar", "mithril_scimitar"]

[al_kharid_kebab_shop]
x = [3271, 3275]
y = [3179, 3183]
type = "range"
tags = ["cooking", "spaces_2"]

[al_kharid_multi_area]
x = [3264, 3327]
Expand All @@ -34,6 +30,10 @@ y = [3121, 3125]
x = [3291, 3308]
y = [3281, 3320]

[al_kharid_mine_north]
x = [3291, 3308]
y = [3309, 3320]

[greater_al_kharid]
x = [3264,3264,3391,3391,3423,3423,3455,3455]
y = [3136,3327,3327,3263,3263,3182,3182,3136]
Expand Down
35 changes: 35 additions & 0 deletions data/area/kharidian_desert/al_kharid/al_kharid.bots.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Mining
[al_kharid_iron_mining]
template = "iron_ore_template"
capacity = 2
fields = { location = "al_kharid_mine" }

[al_kharid_coal_mining]
template = "coal_template"
capacity = 1
fields = { location = "al_kharid_mine" }

[al_kharid_silver_mining]
template = "silver_ore_template"
capacity = 2
fields = { location = "al_kharid_mine" }

[al_kharid_north_copper_mining]
template = "copper_ore_template"
capacity = 1
fields = { location = "al_kharid_mine_north" }

[al_kharid_north_silver_mining]
template = "silver_ore_template"
capacity = 1
fields = { location = "al_kharid_mine_north" }

[al_kharid_north_iron_mining]
template = "iron_ore_template"
capacity = 2
fields = { location = "al_kharid_mine_north" }

[al_kharid_north_mithril_mining]
template = "mithril_ore_template"
capacity = 2
fields = { location = "al_kharid_mine_north" }
1 change: 1 addition & 0 deletions data/area/kharidian_desert/al_kharid/al_kharid.npcs.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ examine = "Likes you more, the more you spend."
id = 541
categories = ["human"]
shop = "zekes_superior_scimitars"
area = "zekes_scimitar_shop"
wander_range = 3
collision = "indoors"
examine = "Sells superior scimitars."
Expand Down
16 changes: 0 additions & 16 deletions data/area/misthalin/draynor/draynor.areas.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,18 @@ hint = "around a village between a great tower and a vampyre's manor."
[draynor_willow_trees]
x = [3083, 3090]
y = [3227, 3238]
tags = ["trees"]
trees = ["willow"]
levels = "30-45"
spaces = 6

[draynor_oak_trees]
x = [3098, 3103]
y = [3241, 3253]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[draynor_west_oak_trees]
x = [3068, 3072]
y = [3248, 3260]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[draynor_north_trees]
x = [3075, 3085]
y = [3265, 3274]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[draynor_bank]
x = [3088, 3097]
Expand All @@ -45,9 +32,6 @@ tags = ["bank"]
[draynor_fishing_area]
x = [3085, 3086]
y = [3227, 3231]
tags = ["fish"]
type = "lure_bait"
spaces = 5

[draynor_village_multi_area]
x = [3112, 3136, 3136, 3104, 3104, 3112]
Expand Down
20 changes: 20 additions & 0 deletions data/area/misthalin/draynor/draynor.bots.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[draynor_east_trees]
template = "normal_tree_template"
fields = { location = "draynor_oak_trees" }

[draynor_east_oak_trees]
template = "oak_tree_template"
fields = { location = "draynor_oak_trees" }

[draynor_north_trees]
template = "normal_tree_template"
fields = { location = "draynor_north_trees" }

[draynor_west_oak_trees]
template = "oak_tree_template"
fields = { location = "draynor_west_oak_trees" }

[draynor_willow_trees]
template = "willow_tree_template"
capacity = 8
fields = { location = "draynor_willow_trees" }
87 changes: 12 additions & 75 deletions data/area/misthalin/lumbridge/lumbridge.areas.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,30 @@ y = [3136, 3136, 3336, 3336, 3346, 3349, 3347, 3347, 3337, 3333, 3333, 3330, 333
[lumbridge_north_trees]
x = [3220, 3234]
y = [3244, 3249]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[lumbridge_west_yew_tree]
x = [3164, 3168]
y = [3218, 3222]
tags = ["trees"]
trees = ["tree", "yew"]
levels = "60-68"

[lumbridge_north_west_yew_tree]
x = [3183, 3187]
y = [3225, 3229]
tags = ["trees"]
trees = ["tree", "yew"]
levels = "60-68"

[lumbridge_west_trees]
x = [3186, 3197]
y = [3238, 3250]
tags = ["trees"]
trees = ["tree", "oak"]
spaces = 2
levels = "0-30"

[lumbridge_east_trees]
x = [3260, 3267]
y = [3214, 3226]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[lumbridge_cow_trees]
x = [3254, 3264]
y = [3249, 3254]
tags = ["trees"]
trees = ["tree", "oak"]
levels = "0-30"

[bobs_axe_shop]
x = [3227, 3233]
y = [3201, 3205]
tags = ["shop"]
items = ["bronze_pickaxe", "bronze_hatchet", "iron_hatchet", "steel_hatchet", "iron_battleaxe", "steel_battleaxe", "mithril_battleaxe"]

[lumbridge_castle_bank]
x = [3207, 3210]
Expand All @@ -66,64 +45,34 @@ tags = ["high"]
[lumbridge_swamp_east_copper_mine]
x = [3227, 3231]
y = [3143, 3149]
tags = ["mine"]
rocks = ["copper"]
levels = "1-15"
spaces = 2

[lumbridge_swamp_east_tin_mine]
x = [3222, 3226]
y = [3145, 3149]
tags = ["mine"]
rocks = ["tin"]
levels = "1-15"
spaces = 2

[lumbridge_swamp_west_coal_mine]
x = [3143, 3147]
y = [3148, 3154]
tags = ["mine", "coal"]
rocks = ["coal"]
levels = "30-40"
spaces = 2

[lumbridge_swamp_west_mithril_mine]
x = [3143, 3149]
y = [3143, 3147]
tags = ["mine"]
rocks = ["mithril"]
levels = "55-70"

[lumbridge_swamp_west_adamantite_mine]
x = [3147, 3149]
y = [3145, 3149]
tags = ["mine"]
rocks = ["adamantite"]
levels = "70-85"

[lumbridge_east_cow_field]
x = [3253, 3253, 3251, 3251, 3249, 3246, 3244, 3244, 3240, 3240, 3242, 3242, 3240, 3240, 3241, 3256, 3257, 3260, 3261, 3263, 3265, 3265, 3266, 3266, 3265, 3265, 3266, 3266, 3265, 3265, 3264]
y = [3255, 3272, 3274, 3276, 3278, 3278, 3280, 3281, 3285, 3286, 3288, 3294, 3296, 3297, 3298, 3298, 3299, 3299, 3298, 3298, 3296, 3293, 3292, 3286, 3285, 3276, 3275, 3272, 3271, 3256, 3255]
tags = ["combat_training"]
npcs = ["cows"]
spaces = 7
levels = "10-20"

[lumbridge_east_goblin_settlement]
x = [3262, 3259, 3253, 3251, 3251, 3249, 3245, 3242, 3242, 3240, 3240, 3239, 3239, 3252, 3252, 3264, 3264, 3265, 3265, 3266, 3266, 3267, 3267, 3266, 3266]
y = [3215, 3218, 3222, 3223, 3227, 3228, 3232, 3235, 3239, 3241, 3249, 3251, 3256, 3256, 3254, 3254, 3247, 3246, 3238, 3237, 3226, 3225, 3220, 3219, 3215]
tags = ["combat_training"]
npcs = ["goblins", "giant_spiders"]
spaces = 6
levels = "5-15"

[lumbridge_chicken_pen]
x = [3225, 3225, 3237, 3237]
y = [3287, 3301, 3301, 3287]
tags = ["combat_training"]
npcs = ["chickens"]
spaces = 5
levels = "1-10"

[lumbridge_castle_courtyard]
x = [3218, 3224, 3224, 3218]
Expand All @@ -136,29 +85,18 @@ y = [3239, 3243]
[lumbridge_swamp_fishing_area]
x = [3240, 3247]
y = [3142, 3157]
tags = ["fish"]
type = "small_net_bait"
spaces = 8

[lumbridge_river_fishing_area]
x = [3238, 3240]
y = [3241, 3255]
tags = ["fish"]
type = "lure_bait"
spaces = 3

[hanks_fishing_shop]
x = [3191, 3198]
y = [3251, 3255]
tags = ["shop"]
items = ["small_fishing_net", "fishing_rod", "fly_fishing_rod", "crayfish_cage", "fishing_bait", "feather"]

[lumbridge_south_river_fishing_area]
x = [3258, 3259]
y = [3203, 3207]
tags = ["fish"]
type = "crayfish"
spaces = 2

[lumbridge_teleport]
x = [3221, 3222]
Expand All @@ -172,32 +110,23 @@ y = [3250, 3256]
[lumbridge_swamp_giant_rats]
x = [3212, 3232]
y = [3173, 3190]
tags = ["combat_training"]
npcs = ["giant_rats"]
spaces = 2
levels = "10-14"

[lumbridge_firemaking_spot]
x = [3219, 3219]
y = [3247, 3248]
tags = ["fire_making", "spaces_2"]
x = [3220, 3221]
y = [3257, 3259]

[lumbridge_kitchen]
x = [3205, 3212]
y = [3212, 3217]
type = "range"
tags = ["cooking", "spaces_2"]
level = 0

[lumbridge_south_cooking_range]
x = [3230, 3237]
y = [3195, 3198]
type = "range"
tags = ["cooking", "spaces_2"]

[lumbridge_furnace]
x = [3222, 3229]
y = [3252, 3257]
tags = ["smithing", "smelting", "spaces_2"]

[freds_farmhouse]
x = [3184, 3192]
Expand All @@ -207,4 +136,12 @@ y = [3270, 3275]
x = [3136, 3263]
y = [3136, 3327]
tags = ["penguin_area"]
hint = "in the south of the kingdom of Misthalin."
hint = "in the south of the kingdom of Misthalin."

[lumbridge_thieving_area]
x = [3220, 3225]
y = [3236, 3242]

[lumbridge_west_cow_field]
x = [3156, 3202]
y = [3316, 3341]
Loading
Loading