Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
761 commits
Select commit Hold shift + click to select a range
09ce5b6
ControlBot updates - Add cain, add squlching flooders, add ngvote coo…
theBGuy Apr 18, 2025
6f4b557
Update manualplay HelpMenu, changed to module and added close icon
theBGuy Apr 19, 2025
468fbd3
Refactor manualplay hooks, separated out a lot of the logic for clarity
theBGuy Apr 21, 2025
3dc2a62
Update ShrineHooks.js
theBGuy Apr 21, 2025
a91491f
Update Config.js
theBGuy Apr 21, 2025
6902c7c
[hotfix] Update ActionHooks for handling Throne of Destruction exits …
theBGuy Apr 25, 2025
9fcb17f
Add opacity param to HookFactory.createContainer & Make TextHook sett…
theBGuy Apr 25, 2025
6bde85d
[hotfix] Fix reference to this for `addChaosSeals` in ActionHooks.js
theBGuy Apr 26, 2025
cbf3c67
[fix] Remove double check from heal check as Town.heal does its own
theBGuy Apr 27, 2025
3618422
[feat] Add `Config.ImmunityException` override
theBGuy Apr 27, 2025
b91b266
[feat] Enable utilizing `Config.AdvancedCustomAttack` for preAttacks …
theBGuy Apr 27, 2025
f153270
[feat] Add control for CharCreateStatusText popup
theBGuy Apr 28, 2025
4d3b193
feat: Experimental OrgTorchHelper
theBGuy May 5, 2025
a6a4539
patch: Fix ControlAction.getPermedStatus false positives
theBGuy May 5, 2025
c1cf9ed
Add missing `Config.OrgTorch.TaxiChar` in default configs
theBGuy May 8, 2025
b3eb443
Fix OrgTorch waiting for taxi for Tristram + Cleanup
theBGuy May 17, 2025
cef0d3f
Fix countdown timer + cleanup GameAction
theBGuy May 17, 2025
d0eefd1
Update Attack.clearEx for more granular control lifecycle callbacks
theBGuy May 17, 2025
4c22bf8
Update ControlBot ngvote, playertracking, msg randomization
theBGuy May 23, 2025
ea58ef7
Add additional info to MuleLogger.logItem description string
theBGuy May 23, 2025
6ecd61f
Update globals.d.ts
theBGuy May 23, 2025
de51bc7
feat: Add `doConvertNL` action to GameAction
theBGuy May 23, 2025
3ad1b0a
Update MuleLogger.js
theBGuy May 25, 2025
1a01b3a
feat: Add command suggestion feature to ControlBot
theBGuy May 26, 2025
6388bd3
Fix attempting to cancel active ngvote in ControlBot.js
theBGuy May 30, 2025
93144de
Fix ControlBot givewp command when users don't give an area
theBGuy May 30, 2025
f8cfc47
Add druid vine summon classid's to sdk
theBGuy Jun 3, 2025
8f8668f
feat: Add isDruidVine property and size to Unit and update globals.d.ts
theBGuy Jun 3, 2025
44ee44d
feat: Enhance ControlBot chat message handling with burst protection …
theBGuy Jun 3, 2025
0b1166d
Fix AutoRush gidbinn sequence, rusher can't interact with altar
theBGuy Jun 3, 2025
3ba2b86
fix: Avoid non-standard prototype (#450)
AudriusButkevicius Jun 15, 2025
fdb29c5
Add druid raven summon classid
theBGuy Jun 15, 2025
bf016c8
feat: Add isEnchantable property to Monster and update Unit prototype
theBGuy Jun 15, 2025
0bb1d23
fix: Update ControlBot enchanting to check for isEnchantable property…
theBGuy Jun 15, 2025
51cda9e
fix: ControlBot `givewp` check always failing due to being checked af…
theBGuy Jun 15, 2025
4802875
hotfix: Update Unit prototype isNPC getter to exclude mercenary class…
theBGuy Jun 16, 2025
d51e86d
fix: Improve error handling in ControlBot stash and cube operations
theBGuy Jun 18, 2025
2bb3c14
fix: Comply with what is being asked when using Proxy (#452)
AudriusButkevicius Jun 20, 2025
574c75d
Check for String.contains (#451)
AudriusButkevicius Jun 20, 2025
687e60f
fix: ControlBot ngvote noVotes counting, restore global say on cleanu…
theBGuy Jun 23, 2025
2ecc536
feat: Update Idle script to move every 10-12 in combination with the …
theBGuy Jun 23, 2025
b3ec392
Update ControlBot.js
theBGuy Jun 23, 2025
5a7b5d3
Fix ControlBot cancel command for aliases
theBGuy Jun 24, 2025
62a2072
Fix ControlBot ngvote counting non-partied players & refactor count m…
theBGuy Jun 24, 2025
175d96e
feat: Add locale ladder string & use for findCharacter check
theBGuy Jun 27, 2025
a667ac7
Update D2BotCleaner.dbj for SoloPlay data paths to .soloplay directory
theBGuy Jul 3, 2025
1ac8847
feat: Add setup scripts, config files, and update .gitignore
theBGuy Jul 3, 2025
a7ffc1f
Add D2BotSoloPlay.dbj entry script and update .gitignore
theBGuy Jul 3, 2025
daf8be7
Update .gitignore
theBGuy Jul 3, 2025
b960ece
Add SoloPlay submodule to .gitmodules
theBGuy Jul 3, 2025
673dd78
feat: Update .gitmodules for SoloPlay submodule and adjust .gitignore
theBGuy Jul 3, 2025
0cffc1b
Update SoloPlay
theBGuy Jul 4, 2025
4175ecf
Refactor config and setup structure, add GameActionConfig
theBGuy Jul 5, 2025
0a38ae4
Add @types/node to devDependencies
theBGuy Jul 5, 2025
8ed584a
Add IncludePath type and update include function signatures
theBGuy Jul 5, 2025
1068bca
Refactor script and include path typings
theBGuy Jul 5, 2025
83c26b1
Refactor StarterConfig usage for modular system configs
theBGuy Jul 5, 2025
83e1a81
Clean up comments
theBGuy Jul 5, 2025
482dbbe
Refactor Attack.securePosition to use options object
theBGuy Jul 5, 2025
8106038
Update AutoRush summoner sequence to include summoner id in skipIds f…
theBGuy Jul 5, 2025
9c75d2d
Update SoloPlay
theBGuy Jul 5, 2025
f1e8307
Refactor GameAction and MuleLogger type definitions
theBGuy Jul 5, 2025
8703c20
Add type annotations to starter config modules
theBGuy Jul 5, 2025
9e48982
Fix typo in D2BotSoloPlay, had print instead of printToConsole
theBGuy Jul 5, 2025
01df32c
Update SoloPlay
theBGuy Jul 5, 2025
1c516f9
Add debug path visualization for clearLevel
theBGuy Jul 6, 2025
9cd78a6
Added Attack.clearRoom, removed Attack.markRoom
theBGuy Jul 6, 2025
61b82be
Swap to using lazy module loading for Common modules
theBGuy Jul 6, 2025
5409733
Update SoloPlay
theBGuy Jul 6, 2025
0340265
Update .gitignore
theBGuy Jul 6, 2025
39519cb
Update README.md
theBGuy Jul 6, 2025
0fde57d
Add missing tracker to Attack.clearList
theBGuy Jul 6, 2025
a18b166
feat: Add timeout to securePosition props, prevent infinite wait if u…
theBGuy Jul 6, 2025
5934905
Add skipIds for rush commands that come close to boss
theBGuy Jul 6, 2025
b9572c7
Add `distanceTo` prototype on PathNode
theBGuy Jul 7, 2025
9ca8d3c
Update SoloPlay
theBGuy Jul 7, 2025
31063e9
Remove Baal constructor name from export
theBGuy Jul 7, 2025
8bd601e
Add deepMerge utility for deep object merging
theBGuy Jul 8, 2025
db1d6b1
Update SoloPlay
theBGuy Jul 8, 2025
c410d37
Update setup.bat
theBGuy Jul 8, 2025
78db714
Update SoloPlay
theBGuy Jul 9, 2025
81cf5b3
Add missing `SoulQuit` config option for BaalHelper
theBGuy Jul 9, 2025
49d4c48
Replace usage of global print with console.log
theBGuy Jul 9, 2025
5831ad1
Added fallback to moveToPresetObject in Rakanishu.js
theBGuy Jul 10, 2025
e62145c
Update jsdoc for `Config.AdvancedCustomAttack` for `preAttack` addition
theBGuy Jul 10, 2025
d392587
Update README.md
theBGuy Jul 12, 2025
00defaf
Replace batch setup with PowerShell script
theBGuy Jul 14, 2025
494f6df
Add cache timeout constant to QuestData
theBGuy Jul 18, 2025
b11f789
Add mainScript param to Common\Tools#togglePause and update usage
theBGuy Jul 18, 2025
9ca8e25
Handle singleplayer check for cubing ladder recipes
theBGuy Jul 18, 2025
f3633a1
Create copilot-instructions.md
theBGuy Jul 19, 2025
d0fd5cd
Fix: Add missing Cubing ingredients case for `Thul`
theBGuy Jul 19, 2025
f555b9c
Fix typo in LadderOverride config option
theBGuy Jul 19, 2025
dc37434
Update SoloPlay
theBGuy Jul 19, 2025
c130ff9
Refactor deepMerge to perform mutable merge
theBGuy Jul 19, 2025
2293be3
Refactor `Skill.haveTK` definition to use getter declaration
theBGuy Jul 19, 2025
0540c0f
Update globals.d.ts
theBGuy Jul 19, 2025
342f77a
Add Biome config and TypeScript standards, update vscode settings
theBGuy Jul 19, 2025
5ec8c38
Update SoloPlay
theBGuy Jul 19, 2025
e1d5c44
Update SoloPlay
theBGuy Jul 20, 2025
1d962ae
Cleanup + add `PathNode` class type declaration
theBGuy Jul 20, 2025
86c4231
Add CollMap.d.ts
theBGuy Jul 21, 2025
acc436c
Add `DiabloSeal` type for `Config.Diablo.SealOrder`
theBGuy Jul 22, 2025
a001de3
Update Misc.d.ts & globals.d.ts
theBGuy Jul 22, 2025
7c1bc47
Refactor Attack clear logic and add experimental walk clear
theBGuy Jul 23, 2025
d879205
Update Cain.js
theBGuy Jul 23, 2025
8850fa6
Enable subpaths with `PathDebug`
theBGuy Jul 23, 2025
04ce78d
Add `Shrines` to DebugMode config
theBGuy Jul 23, 2025
bfe6be9
Update shriner to accept range and ignore list
theBGuy Jul 23, 2025
39b0d78
Update SoloPlay
theBGuy Jul 23, 2025
962814f
Fix typo in ShrineData + add shrine names
theBGuy Jul 23, 2025
224343f
Add Starter.LocationEvents.charSelectConnecting & Fix type in singlep…
theBGuy Jul 23, 2025
0276107
Update SoloPlay
theBGuy Jul 24, 2025
3f48e08
Fix `findCharacter` for singleplayer & add missing serverdown location
theBGuy Jul 24, 2025
9e2ee6d
Update SoloPlay
theBGuy Jul 24, 2025
c61005d
fix: Fix missing variable declaration (#455)
AudriusButkevicius Jul 26, 2025
6c3485e
fix: Replace usage of deprecated `Town.clearBelt` & usage of global p…
theBGuy Jul 26, 2025
d7cd18f
Update default.dbj
theBGuy Jul 26, 2025
dda0d38
fix: Refactor buildCowRooms to improve readability
theBGuy Jul 26, 2025
671968b
Update ShopBot.js
theBGuy Jul 26, 2025
ef03813
Minor cleanups
theBGuy Jul 27, 2025
1d57343
Update SoloPlay
theBGuy Jul 27, 2025
c8b0673
fix: Pick correct stairs unit when there are multiple (#459)
AudriusButkevicius Aug 23, 2025
3874ad0
Create CharRefresher system - Similar to Mulelogger but just brings c…
theBGuy Sep 7, 2025
0ad36db
Add Starter.JoinGameDelay to help prevent disconnect opening join win…
theBGuy Sep 7, 2025
a2bb781
Fix includes for PickThread
theBGuy Sep 20, 2025
cbf40da
Fix using sock.length instead of unit.sockets for Mulelogger
theBGuy Sep 24, 2025
ea404eb
Move off wp when performing doRandomPrecast
theBGuy Sep 25, 2025
0f70869
fix: Account for the fact modules are not in libs rather than lib fol…
AudriusButkevicius Sep 27, 2025
61cf5ce
Add base64 encoding/decoding module
theBGuy Oct 25, 2025
4926ac1
feat: Add `MuleLogger.dumpItemStats` and update `MuleLogger.logItem`
theBGuy Oct 25, 2025
bf777e0
Update SoloPlay
theBGuy Nov 1, 2025
8358128
fix: Correct the ancients classids
theBGuy Nov 2, 2025
75fac01
chore: update editorconfig for prettier usage
theBGuy Nov 2, 2025
46e70f8
Update globals.d.ts
theBGuy Nov 2, 2025
63f4f39
chore: Update getNearestMonster definition
theBGuy Nov 2, 2025
79c3146
patch: Add LobbyChat location to D2BotPubJoin
theBGuy Nov 15, 2025
e16e99a
Enabled Unit.idle to apply to monsters
theBGuy Nov 16, 2025
7b57525
Update config.d.ts Config.Advertise + add support for array of advert…
theBGuy Nov 17, 2025
4ff9ed5
Refactor sdk namespace to SDK interface
theBGuy Nov 20, 2025
cd54b86
Refactor Misc namespace to interface in type definitions
theBGuy Nov 20, 2025
5b6ec1f
Refactor event system to use AsyncEvents module + add new Events module
theBGuy Nov 20, 2025
2ee30ec
Add PathNode.update method and update typings
theBGuy Nov 20, 2025
e46fa00
Refactor Common module to use LazyLoader proxy
theBGuy Nov 20, 2025
1063485
Refactor class attack handling and modularize logic
theBGuy Nov 20, 2025
5aedc34
Disable nodeActions in doRandomPrecast when moving to spot away from wp
theBGuy Nov 20, 2025
4cd6801
Update ToolsThread.js
theBGuy Nov 24, 2025
b9a959d
Add hardDelay and nativeDelay utilities to globals
theBGuy Nov 24, 2025
53bca98
Add `pickItems` to NodeActions & swap to use nativeDelay for after wp…
theBGuy Nov 24, 2025
11fd8fb
Improve ScriptError handling across core modules
theBGuy Nov 25, 2025
f17b536
Added `FAILED_POSITION` attack result & updated Attack.clear to retur…
theBGuy Nov 25, 2025
4193264
Update SoloPlay
theBGuy Nov 28, 2025
6397451
Add ladder check for AutoMule.getInfo
theBGuy Nov 28, 2025
dce7793
Deprecate generic attack methods in ClassAttack
theBGuy Nov 28, 2025
4990c8f
Replace Attack.openChests with Misc.openChests
theBGuy Nov 28, 2025
a976573
Remove the idle delay for pickItems to stop stutter stepping in pather
theBGuy Nov 28, 2025
221124a
Refactor location handling to use shared run function + track last 5 …
theBGuy Nov 28, 2025
8f755da
Update common/diablo for seal boss detection, light event worker shar…
theBGuy Nov 28, 2025
f441630
Cleanup Wakka to properly use ScriptError for events & end background…
theBGuy Nov 28, 2025
a087774
Update Sorceress.js
theBGuy Nov 28, 2025
f16d3fc
Updated/refactored Diablo to use ScriptError for worker events + cleanup
theBGuy Nov 28, 2025
c35adf0
Add `after game delay` handling when hit with LobbyleaseWait location
theBGuy Nov 28, 2025
5a6e5b7
Update D2BotPubJoin to follow new LocationAction format
theBGuy Nov 28, 2025
9a7ec53
Update SoloPlay
theBGuy Nov 28, 2025
fd71385
Add event emitter support to Diablo module
theBGuy Nov 28, 2025
dcfd074
Add AutoChaos script and config options
theBGuy Nov 29, 2025
e69615e
Fix D2BotPubJoin open join game delay handling
theBGuy Dec 1, 2025
305fbc5
fix: Add missing not operator for tryOpenSeals in Common.Diablo
theBGuy Dec 7, 2025
11f543f
Update SoloPlay
theBGuy Dec 16, 2025
c06ab91
fix: Condition check of using Burst of Speed skill
theBGuy Dec 17, 2025
187cea4
fix: process deletion logic in Worker module
theBGuy Dec 19, 2025
3d61306
Update SoloPlay
theBGuy Dec 19, 2025
80c157a
Add Header for Merc Items (#465)
tricky-eli Dec 19, 2025
39abfd6
patch: Watch for friends joining in D2BotChannel when FriendListQuery…
theBGuy Dec 20, 2025
5e94eef
Add ItemiLevel to itemString in ToolsThread.js (#466)
tricky-eli Dec 21, 2025
a5baa66
Update SoloPlay
theBGuy Dec 21, 2025
013b978
patch: Update Attacks.txt to remove `Not implemented yet` for preattack
theBGuy Dec 26, 2025
05aa028
feat: Add optional priority to runeword creating
theBGuy Dec 26, 2025
e5242de
Update SoloPlay
theBGuy Dec 26, 2025
620e5e5
fix: regex for file path extraction in LazyLoader
theBGuy Dec 27, 2025
63ddb47
Update SoloPlay
theBGuy Dec 28, 2025
96fad79
patch: Update BaalHelper preAction and cleanup methods
theBGuy Dec 29, 2025
9a7271f
Improve ScriptError handling and update BaalHelper errors
theBGuy Dec 29, 2025
22f811d
Add RejectedByServer code to sdk
theBGuy Dec 29, 2025
43a7912
Update SoloPlay
theBGuy Dec 29, 2025
228cb13
Add HurtBaal and HurtDiablo config options for helper scripts
theBGuy Dec 31, 2025
932b8db
Add Lead system config and update config structure
theBGuy Dec 31, 2025
d3d5896
Fix using palace lvl 3 portal during summoner script
theBGuy Dec 31, 2025
3f6ef62
Update manualplay/AttackOverrides Attack.init for new structure
theBGuy Jan 1, 2026
8d63eac
Update SoloPlay
theBGuy Jan 8, 2026
c0301e7
Add `ClearType` to Diablo scripts to control monsters cleared while f…
theBGuy Jan 12, 2026
3a1f92f
Add `docubing` and `makerunewords` cmds to manualplay
theBGuy Jan 12, 2026
118097c
Add Config.SkipId to default configs & Create new Config.AdvancedSkip…
theBGuy Jan 19, 2026
09d8c79
Fix missing `KeyItem` for token recipe
theBGuy Jan 20, 2026
040a965
Update SoloPlay
theBGuy Jan 25, 2026
1e22cad
Update SoloPlay
theBGuy Feb 4, 2026
f081d16
Wrap Item.logItem in try/catch
theBGuy Feb 6, 2026
4826e12
Fix typo in Cubing
theBGuy Feb 14, 2026
493ff82
Update SoloPlay
theBGuy Feb 14, 2026
fa7c070
Update SoloPlay
theBGuy Feb 26, 2026
1cd7bb3
Add Baal silent option & minor refactors
theBGuy Mar 1, 2026
0da9cd7
Add AntiIdle worker & switch IpHunter to use it
theBGuy Mar 1, 2026
f435d6f
Add adaptive and cluster-aware graph search
theBGuy Mar 1, 2026
8f82ffb
U[pdate Town.doChores to run pickit, sort inventory, and prep stash
theBGuy Mar 1, 2026
4f91480
Refactor NTIP.CheckItem and add DebugCheckItem
theBGuy Mar 1, 2026
c92843b
Update D2BotCharRefresher to log accs/chars refreshed
theBGuy Mar 2, 2026
a865f8e
Add RaiseArmy script for necro summoners to use Nith's temple to rais…
theBGuy Mar 2, 2026
f5e372f
Add gem locale string ids + Add extend GemUnit mock
theBGuy Mar 7, 2026
d41e748
Update SoloPlay
theBGuy Mar 7, 2026
d8369bd
Add NTIP codes, item IDs, and class->locale map
theBGuy Mar 7, 2026
c1ef79b
Update Necromancer.js
theBGuy Mar 7, 2026
e770286
Update SoloPlay
theBGuy Mar 9, 2026
b4c4292
Fix DiabloHelper ending runSeals early due to `fail to kill` seal boss
theBGuy Mar 12, 2026
14e2a21
Update SoloPlay
theBGuy Mar 12, 2026
61a4cb3
Fix diablo light watcher ending chores early
theBGuy Mar 22, 2026
40e8cf3
Bump flatted from 3.3.1 to 3.4.2 (#477)
dependabot[bot] Mar 22, 2026
ce64cd3
Cleanup GameAction task logging
theBGuy Mar 24, 2026
33e309b
Add mode + equipped boolean to MuleLogger.logItem
theBGuy Mar 24, 2026
2a35cf4
Update SoloPlay
theBGuy Mar 24, 2026
3fe5f2a
Update Pather.move to check for itemoncursor
theBGuy Mar 27, 2026
0e64db2
Update barbarian.checkCorpse to ignore waterwatcher
theBGuy Mar 28, 2026
9abe123
Update Misc.poll to accept 4th param determining nativeDelay vs worke…
theBGuy Mar 28, 2026
627d9a2
Fix typo in Misc.poll logic
theBGuy Mar 29, 2026
0f86a0a
Fix typo in Follower.js
theBGuy Apr 1, 2026
89b90d3
Fix wpAreas references to use Pather
theBGuy Apr 2, 2026
ed546b9
Update SoloPlay
theBGuy Apr 20, 2026
e0b3450
Minor cleanups
theBGuy Apr 29, 2026
7548104
Fix charsi menu needing `TradeRepair` on shop task
theBGuy May 10, 2026
745ad10
Refactor Pickit ItemStats and pickup checks
theBGuy May 12, 2026
c66ce57
Update globals.d.ts
theBGuy May 12, 2026
9736d50
Update SoloPlay
theBGuy May 12, 2026
198a7b4
Run town chores on last script; add TorchSystem
theBGuy May 13, 2026
ed38d19
Handle disappeared/invalid items in Pickit
theBGuy May 15, 2026
4af04a8
Mark .dbj files as JavaScript in linguist
theBGuy May 15, 2026
1cb2a15
Implement handle updates in D2Bot initialization (#481)
ResurrectedTrader May 16, 2026
d64fc9a
Fix shopping at npcs that use TradeRepair menu
theBGuy May 17, 2026
22b831a
Update SoloPlay
theBGuy May 19, 2026
eef2d95
Add scrolls check to clearInventory nearest npclogic
theBGuy May 26, 2026
4275a32
Update SoloPlay
theBGuy May 27, 2026
0a3d462
Update SoloPlay
theBGuy May 27, 2026
183fd3b
Add AutoRush system and RushConfig support
theBGuy May 28, 2026
3fae102
Update SoloPlay
theBGuy May 29, 2026
99038db
Update soloplay
theBGuy May 29, 2026
d23bc3d
Update SoloPlay
theBGuy May 30, 2026
1f0d8bd
Use Set for monsterObjects; add isSoul prop
theBGuy May 30, 2026
4e708fb
Add missing condition for using Teleport & UseWells definition
theBGuy Jun 3, 2026
c361934
Update SoloPlay
theBGuy Jun 3, 2026
f2506ba
Update SoloPlay
theBGuy Jun 7, 2026
3bf6036
Add InvTrans property to logged items (#484)
ResurrectedTrader Jun 10, 2026
bf6c5bf
Fix quitFlag declaration in BaalHelper.js (#486)
Antiwarden Jun 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 43 additions & 0 deletions +setup/automule/MuleConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/**
* @filename MuleConfig.js
* @author theBGuy
* @desc Configuration profiles for AutoMule system, for TorchAnni specific @see TorchAnniMules.js
*
*/

(function (module) {
module.exports = {
"Mule1": {
muleProfile: "", // The name of mule profile in d2bot#. It will be started and stopped when needed.
accountPrefix: "", // Account prefix. Numbers added automatically when making accounts.
accountPassword: "", // Account password.
charPrefix: "", // Character prefix. Suffix added automatically when making characters.
realm: "", // Available options: "useast", "uswest", "europe", "asia"
expansion: true,
ladder: true,
hardcore: false,
charsPerAcc: 18, // Maximum number of mules to create per account (between 1 to 18)

// Game name and password of the mule game. Never use the same game name as for mule logger.
muleGameName: ["", ""], // ["gamename", "password"]

// List of profiles that will mule items. Example: enabledProfiles: ["profile 1", "profile 2"],
enabledProfiles: [""],

// Stop a profile prior to muling. Useful when running 8 bots without proxies.
stopProfile: "",
stopProfileKeyRelease: false, // true = stopProfile key will get released on stop. useful when using 100% of your keys for botting.

// Trigger muling at the end of a game if used space in stash and inventory is equal to or more than given percent.
usedStashTrigger: 80,
usedInventoryTrigger: 80,

// Mule items that have been stashed at some point but are no longer in pickit.
muleOrphans: true,
// Continuous Mule settings
continuousMule: false, // Mule stays in game for continuous muling. muleProfile must be dedicated and started manually.
skipMuleResponse: false, // Skip mule response check and attempt to join mule game. Useful if mule is shared and/or ran on different system.
onlyLogWhenFull: false // Only log character when full, solves an issue with droppers attempting to use characters who are already in game
},
};
})(module);
26 changes: 26 additions & 0 deletions +setup/automule/StarterConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
* @filename StarterConfig.js
* @author theBGuy
* @desc Starter Configuration file for D2BotAutoMule system
*
*/

(function (module) {
/**
* @description D2BotAutoMule specific settings - for global settings see libs/starter/StarterConfig.js
* @type {Partial<StarterConfig>}
*/
const StarterConfig = {
MinGameTime: 30, // Minimum game length in seconds. If a game is ended too soon, the rest of the time is waited in the lobby
MaxGameTime: 60, // Maximum game length in minutes, only for continuous muling
CreateGameDelay: 5, // Seconds to wait before creating a new game
SwitchKeyDelay: 0, // Seconds to wait before switching a used/banned key or after realm down
ExitToMenu: false, // Set to true to wait out restriction in main menu or false to wait in lobby.
VersionErrorDelay: rand(15, 30), // Seconds to wait after 'unable to identify version' message
MakeAccountOnFailure: true
};

module.exports = {
StarterConfig: StarterConfig
};
})(module);
45 changes: 45 additions & 0 deletions +setup/automule/TorchAnniMules.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* @filename TorchAnniMules.js
* @author theBGuy
* @desc Torch/Anni specific mule profiles for AutoMule system
*
*/

/**
* @description Torch/Anni mules:
* - Torch is muled in OrgTorch script after finishing uber Tristram successfully or when starting OrgTorch script with a Torch already on the character.
* - Anni is muled after successfully killing Diablo in Palace Cellar level 3 using Config.KillDclone option or KillDClone script.
* - If a profile is listed in Torch/Anni mule's enabledProfiles list, it will also do a check to mule Anni at the end of each game.
* @note Anni that is in locked inventory slot will not be muled.
* @note Each mule will hold either a Torch or an Anni, but not both. As soon as the current mule has either one, a new one will be created.
*/
(function (module) {
module.exports = {
"Mule1": {
muleProfile: "", // The name of mule profile in d2bot#. It will be started and stopped when needed.
accountPrefix: "", // Account prefix. Numbers added automatically when making accounts.
accountPassword: "", // Account password.
charPrefix: "", // Character prefix. Suffix added automatically when making characters.
realm: "", // Available options: "useast", "uswest", "europe", "asia"
expansion: true,
ladder: true,
hardcore: false,
charsPerAcc: 8, // Maximum number of mules to create per account (between 1 to 18)

// Game name and password of the mule game. Never use the same game name as for mule logger.
muleGameName: ["", ""], // ["gamename", "password"]

// List of profiles that will mule items. Example: enabledProfiles: ["profile 1", "profile 2"],
enabledProfiles: [""],

// Stop a profile prior to muling. Useful when running 8 bots without proxies.
stopProfile: "",
stopProfileKeyRelease: false, // true = stopProfile key will get released on stop. useful when using 100% of your keys for botting.

// Continuous Mule settings
continuousMule: true, // Mule stays in game for continuous muling. muleProfile must be dedicated and started manually.
skipMuleResponse: true, // Skip mule response check and attempt to join mule game. Useful if mule is shared and/or ran on different system.
onlyLogWhenFull: true // Only log character when full, solves an issue with droppers attempting to use characters who are already in game
},
};
})(module);
135 changes: 135 additions & 0 deletions +setup/autorush/RushConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
/**
* @filename RushConfig.js
* @author theBGuy
* @desc Configuration file for AutoRush system
*
*/

(function (module) {
// no touchy - need these imports
const { RushModes } = require("./RushConstants");

/**
* This is what you edit.
*
* Each key is a profile name.
* The value shape depends on the selected mode (`type`).
*
* Rushee modes:
* - `RushModes.quester`
* - `RushModes.follower`
* - `RushModes.bumper`
*
* Rusher modes:
* - `RushModes.rusher`
* - `RushModes.manual`
*
* `create` usage variants:
* - Account + character creation: provide `account`, `password`, `charName`, and `charInfo`.
* - Character-only creation: provide only `charName` and `charInfo`. You can skip charName for automatic name generation (uses soloplay's NameGen if available, otherwise will error).
*
* Rusher config defaults:
* - Quest toggles default to `true`.
* - `Wps` defaults to `false`.
* - You do not need to define every `config` property when you want default behavior.
*
* @example
* // Quester with account + character creation
* "quester-profile": {
* type: RushModes.quester,
* startProfiles: ["bumper-profile", "follower-profile", "rusher-profile"],
* create: {
* account: "myacc",
* password: "mypassword",
* charName: "quester",
* charInfo: "scl-sorc",
* },
* config: {
* Leader: "my-rusher-char",
* },
* }
*
* @example
* // Follower with character-only creation
* "follower-profile": {
* type: RushModes.follower,
* leader: "quester-profile",
* create: {
* charName: "follower",
* charInfo: "scl-zon",
* },
* config: {
* Leader: "my-rusher-char",
* },
* }
*
* @example
* // Bumper with minimal config
* "bumper-profile": {
* type: RushModes.bumper,
* leader: "quester-profile",
* config: {
* Leader: "my-rusher-char",
* },
* }
*
* @example
* // Rusher with minimal config (uses defaults)
* "rusher-profile": {
* type: RushModes.rusher,
* leader: "quester-profile",
* config: {
* Wps: true,
* LastRun: "baal",
* },
* }
*
* @example
* // Rusher with explicit full config
* "rusher-profile-full": {
* type: RushModes.rusher,
* leader: "quester-profile",
* playerWaitTimeout: Time.minutes(1),
* config: {
* WaitPlayerCount: 1,
* Cain: true,
* Radament: true,
* LamEsen: true,
* Izual: true,
* Shenk: true,
* Anya: true,
* Ancients: {
* Normal: true,
* Nightmare: true,
* Hell: false,
* },
* Wps: false,
* LastRun: "",
* },
* }
*
* @example
* // Manual mode (same config shape as rusher)
* "manual-profile": {
* type: RushModes.manual,
* leader: "quester-profile",
* config: {
* Wps: true,
* },
* }
*
* @type {Object.<string, DefaultConfig}>}
*/
const RushConfig = {
"quester-profile": {
type: RushModes.quester,
config: {
Leader: "my-rusher-char",
},
}
};

module.exports = {
RushConfig: RushConfig,
};
})(module);
65 changes: 65 additions & 0 deletions +setup/channel/ChannelConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/**
* @filename ChannelConfig.js
* @author theBGuy
* @desc Configuration file for D2BotChannel system
*
*/

(function (module) {
/**
* @description D2BotChannel specific settings - for global settings see libs/starter/StarterConfig.js
* @type {Partial<StarterConfig>}
*/
const StarterConfig = {
// JoinRetryDelay: 5, // Time in seconds to wait before next join attempt
};

const ChannelConfig = {
SkipMutedKey: true,
MutedKeyTrigger: "Your account has had all chat privileges suspended.",
JoinDelay: 10, // Seconds to wait between announcement and clicking join
JoinRetry: 5, // Amount of times to re-attempt joining game
// watch for whisper event instead?
FriendListQuery: 0, // Seconds between "/f l" retries. 0 = disable. To prevent spamming when using set time rand(80, 160)
/**
* @typedef {Object} GameInfo
* @property {string} game
* @property {string} password
*
* @type {GameInfo[]}
* @example
* Games: [
* { game: "baal-", password: "" },
* ],
*/
Games: [
{ game: "", password: "" },
],
/**
* @description excludeFilter format
* @example <caption>Multiple entries in the same array mean AND</caption>
* // ignores games that contain "baal" and "-"
* const includeFilter = ["baal", "-"];
*
* @example <caption>Multiple entries in different arrays mean OR</caption>
* // will ignore games with either "baal" or "diablo" in their name
* const includeFilter = [
* ["baal"],
* ["diablo"]
* ];
* @type {Array<Array<string>>}
*/
excludeFilter: [],
/**
* Leaders in game character name, only use this if the leader is using announce in the chat.
* Can be an array or names ["somename", "somename2"]
* @type {string[]}
*/
Follow: [],
};

module.exports = {
ChannelConfig: ChannelConfig,
StarterConfig: StarterConfig,
};
})(module);
37 changes: 37 additions & 0 deletions +setup/charrefresher/RefresherConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* @filename RefresherConfig.js
* @author theBGuy
* @desc Configuration file for CharRefresher system
*
*/

(function (module) {
module.exports = {
LobbyTime: [15, 30], // (30, 60) to if you want to be less likely to get disconnected in the lobby

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
RefreshAccounts: {
/* Format:
"account1/password1/realm": ["charname1", "charname2 etc"],
"account2/password2/realm": ["charnameX", "charnameY etc"],
"account3/password3/realm": ["all"]

To refresh a full account, put "account/password/realm": ["all"]

realm = useast, uswest, europe or asia

Enter Individual entries are separated with a comma below
*/
"exampleAcc/pa33word3/realm": ["all"],
},
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //

/**
* @description D2BotCharRefresher specific settings - for global settings see libs/starter/StarterConfig.js
* @type {Partial<StarterConfig>}
*/
StarterConfig: {
// none needed right now
}
};
})(module);
Loading
Loading