Files
my-botty/config/params.ini
T

527 lines
16 KiB
INI

; There is detailed documentation for each parameter in the README.md
[general]
; difficulty: game difficulty to create ("normal", "nightmare", "hell")
difficulty=nigtmare
; name: bot profile name used in logs/messages and mod launch option replacement
name=zapzap
; randomize_runs: 0 = run in listed order, 1 = shuffle run order
randomize_runs=0
; target_tz: target Terror Zone id (leave as default unless you know the mapping)
target_tz=1
; saved_games_folder: optional override path to D2R Saved Games folder (blank = auto)
saved_games_folder=
; level_max_steps: max pathing steps for leveling-style routines
level_max_steps=20
; Set to 1 to enable auto-login and auto-launch of D2R on startup.
; Credentials below are ONLY used when auto_login=1.
auto_login=0
bnet_name=
bnet_pass=
; Character name to auto-select from the character selection screen
; If empty, bot relies on the saved character template from previous sessions
char_name=ZapZap
; messaging
; custom_loot_message_hook: optional separate webhook for loot notifications
custom_loot_message_hook="https://discord.com/api/webhooks/1508382502857871380/J4JGQVz0cCyQSM9sSDWvkAUIqb2w7Z2UgEXDQcqBygiDqAgOwhQy5qb0Stj_iQ-RaufH"
; custom_message_hook: main webhook for status/death/chicken messages
custom_message_hook="https://discord.com/api/webhooks/1508382502857871380/J4JGQVz0cCyQSM9sSDWvkAUIqb2w7Z2UgEXDQcqBygiDqAgOwhQy5qb0Stj_iQ-RaufH"
; discord_log_chicken: 1 = send chicken/death style notifications
discord_log_chicken=1
; discord_status_runs: send periodic status every X completed runs (blank/0 disables)
discord_status_runs=10
; discord_status_count: legacy fallback, send periodic status every X games (blank/0 disables)
discord_status_count=20
; message_api_type: "" disables messaging, "discord" or "generic_api"
message_api_type=discord
; breaks
; break_length_m: scheduled break duration in minutes (0 = disabled)
break_length_m=0
; max_runtime_before_break_m: runtime before taking scheduled break (0 = disabled)
max_runtime_before_break_m=0
; timers / fail handling
; d2r_path: Diablo II: Resurrected install path
d2r_path=C:\Program Files (x86)\Diablo II Resurrected
; max_consecutive_fails: stop bot after this many failed runs in a row
max_consecutive_fails=5
; max_game_length_s: emergency timeout per run/game
max_game_length_s=160
; if you set this field to 1, botty will attempt to restart d2 after a crash or failure
restart_d2r_when_stuck=0
; hardcore: 1 enables hardcore-safe assumptions in some routines
hardcore=0
; screenshots
; info_screenshots: save screenshots for info/chicken/death events
info_screenshots=1
; loot_screenshots: save screenshots for picked loot
loot_screenshots=0
; pickit_screenshots: save screenshots for pickit debugging
pickit_screenshots=1
[stealth]
; Multiplies all wait() calls by a random value in this range each call
; 1.0 = no change. Set range wider for more human-like timing variation.
wait_jitter_min = 0.85
wait_jitter_max = 1.20
; Extra pixel variance added to every mouse click (on top of existing randomize=5)
; 0 = off, 10 = +/-10px extra random offset per click
click_variance = 8
; Re-shuffle run order after completing a full rotation (vs only at session start)
reshuffle_each_rotation = 1
; Probability (0-100) of randomly skipping a run each game
; 0 = never skip, 20 = skip ~1 in 5 runs
skip_run_chance = 10
; Probability (0-100) of taking an unscheduled AFK break after any given run
afk_break_chance = 5
; Break duration range in minutes
afk_break_min_m = 2
afk_break_max_m = 12
; Vary run/battle duration by a Gaussian factor (default +/-15%)
; 0.0 = no variation, 0.3 = up to +/-30% variation
run_duration_variance = 0.15
; Micro-pause between actions (simulates human hesitation in milliseconds)
micro_pause_min_ms = 20
micro_pause_max_ms = 120
; Vary kill time to avoid perfectly consistent boss fight durations
vary_kill_time = 1
; Human mouse curve complexity (1.0 = default, 0.5 = more direct, 1.5 = more winding)
human_curve_complexity = 1.0
; Arrival-to-click delay: human-like pause between mouse arriving and clicking (milliseconds)
; 50-800ms range simulates "is this the right thing?" hesitation
click_delay_min_ms = 50
click_delay_max_ms = 800
; Key press duration variance: how long a key is held (milliseconds)
; Most presses are short (20-100ms), some linger (up to 200ms)
key_press_min_ms = 20
key_press_max_ms = 200
; Skill rotation hesitation: pause before casting a skill (milliseconds)
; Prevents machine-speed skill spam
skill_hesitation_min_ms = 80
skill_hesitation_max_ms = 300
; Wrong waypoint chance: 2-3% of selecting wrong TP portal then correcting
; Humans occasionally misclick waypoint targets
wrong_waypoint_chance = 0.025
; Skill mistake chance: 1-2% chance of miscasting and correcting
; Simulates human error during combat
skill_mistake_chance = 0.015
[routes]
; Add these possible routes to "order" as a comma delimited list to run them:
; run_trav
; run_pindle
; run_eldritch
; run_eldritch_shenk
; run_nihlathak
; run_arcane
; run_diablo
; run_vizier
; run_andariel (Act 1 Catacombs)
; run_countess (Act 1 Forgotten Tower)
; run_mephisto (Act 3 Durance of Hate)
; run_baal (Act 5 Throne of Destruction)
order=run_pindle
[char]
; ==========================
; ==== Mandatory Fields ====
; ==========================
; These configs have to be alligned with your d2r settings and char build
; type: character build profile to use (must match one section below)
type=blizz_sorc
; belt_rows: in-game belt size (2/3/4)
belt_rows=4
; casting_frames: your char cast breakpoint (affects action timing)
casting_frames=8
; cta_casting_frames: cast breakpoint on CTA swap (if used)
cta_casting_frames=8
; attack_frames: base attack animation timing for non-cast attacks
attack_frames=15
; cta_available: 1 if Call to Arms swap exists, else 0
cta_available=0
;Do we want to cast non-cta buffs (ex energy shield) with cta
buff_with_cta=1
; safer_routines: enable for optional defensive maneuvers/etc during combat/runs at the cost of increased runtime (ex. hardcore players)
safer_routines=1
; num_loot_columns: Number of empty columns from left to right of inventory to be used for looting.
; Store charms, etc. to the right of the inventory.
num_loot_columns=4
; game hotkeys:
; NOTE: each key must match your in-game binding exactly
force_move=e
inventory_screen=i
potion1=1
potion2=2
potion3=3
potion4=4
; show_belt is different from the default hotkey as "~" is for many keyboards not reachable without also pressing altgr
show_belt=n
show_items=alt
; stand_still cannot be the default "shift" as it would interfere with merc healing
stand_still=capslock
; teleport: leave empty if you can't use
teleport=5
town_portal=6
; call to arms settings:
; weapon_switch/battle_orders/battle_command only used when cta_available=1
weapon_switch=w
battle_orders=7
battle_command=8
; ==========================
; ==== Optional configs ====
; ==========================
stash_gold=1
use_merc=1
; Attack length for barbarians should be as high as 8-10 and even 10-12 for trav/shenk
atk_len_arc=2.5
atk_len_eldritch=3.0
atk_len_nihlathak=4.0
atk_len_pindle=3.0
atk_len_shenk=4.0
atk_len_diablo=3.0
atk_len_trav=3.0
; Boss run attack lengths (per-character defaults in kill_* methods)
; Adjust these if your build is faster/slower against these bosses
atk_len_andariel=4.0
atk_len_countess=3.0
atk_len_mephisto=12.0
atk_len_baal=10.0
atk_len_baal_waves=30.0
; Chaos Sanctuary settings
atk_len_cs_trashmobs=2.0
atk_len_diablo_deseis=5.0
atk_len_diablo_infector=4.0
atk_len_diablo_vizier=2.0
cs_mob_detect=0
; cs_town_visits is currently broken, ignore for now
cs_town_visits=0
kill_cs_trash=1
; Belt settings
belt_hp_columns=1
belt_mp_columns=1
belt_rejuv_columns=2
; Potion/chicken settings
take_health_potion=0.90
take_mana_potion=0.80
take_rejuv_potion_health=0.75
take_rejuv_potion_mana=0.50
heal_merc=0.7
heal_rejuv_merc=0.25
chicken=0.75
merc_chicken=0.25
; Misc.
; helps reduce accidental pickups when enabled especially on walking characters
enable_no_pickup=0
; fill_shared_stash_first: 1 = prefer shared stash tabs before personal stash
fill_shared_stash_first=0
; to gamble, add any/all of the following: circlet, ring, coronet, talon, amulet
gamble_items=
; open_chests: 1 = open clickable chests along path when possible
open_chests=1
; pre_buff_every_run: 1 = always recast buffs at run start
pre_buff_every_run=0
; runs_per_repair: visit repair vendor every X runs (blank/0 disables)
runs_per_repair=20
; runs_per_stash: stash/sell every X runs (blank/0 disables)
runs_per_stash=4
; sell_junk: 1 = vendor non-keep items automatically
sell_junk=1
; pick_rares_for_gold: 1 = pick all yellow (rare) ground items; non-keep rares will be sold
; Requires sell_junk=1 to convert extra pickups into gold.
pick_rares_for_gold=1
; pick_gold: 1 = pick up ground gold piles, 0 = ignore all ground gold
pick_gold=1
[transmute]
;stash tabs by priority where to put transmuted gems
stash_destination=3,2,1,0
; Add these possible gems to "transmute" to transmute them:
; chipped, flawed, standard, flawless
transmute=flawless
;how often we want to run transmute routine(e.g. every 100 games)
transmute_every_x_game=2000
; ===========================
; ==== Builds: Sorceress ====
; ===========================
[sorceress]
energy_shield=f4
frozen_armor=f7
static_field=f5
telekinesis=f6
thunder_storm=
[light_sorc]
; chain_lightning must be bound to left skill (hotkey optional as it shouldnt change)
chain_lightning=
; lightning must be right skill, hotkey required
lightning=
; frozen orb must be right skill, hotkey recommended to increase safty for you and merc at trav!
frozen_orb=
[blizz_sorc]
; blizzard must be right skill, hotkey required
blizzard=f1
; ice_blast must be left skill (hotkey optional as it shouldnt change)
ice_blast=f2
[blizzorb_sorc]
; frozen orb must be left skill and preselected (no hotkey required)
;All others must be right skill and hotkey required!
blizzard=f1
glacial_spike=f7
[nova_sorc]
; nova must be right skill, hotkey required
nova=f1
[hydra_sorc]
; only supports Pindle and Eldritch currently
; alt_attack is any alternate attacking right skill. Fireball,Lightning,Frozen Orb, hotkey required
alt_attack=f7
; hydra must be right skill, hotkey required
hydra=f1
; =========================
; ==== Builds: Paladin ====
; =========================
[paladin]
cleansing=
holy_shield=f2
redemption=f3
vigor=f4
[fohdin]
; foh must be left skill, hotkey required
blessed_hammer=
concentration=
conviction=f5
foh=f6
holy_bolt=f7
[hammerdin]
blessed_hammer=f4
concentration=f5
; =========================
; ==== Builds: Warlock ====
; =========================
[warlock]
; All skills should be on right-click unless otherwise specified
deathmark=f3
lethargy=f4
;Set summon_demon to one of the three demons of your choice.
summon_demon=f5
;If you are summoning a 2nd demon set hotkey here. Can be same as above
summon_demon2=
psychic_ward=
[fire_lock]
; Supported runs: Pindle
;flame_wave must be assigned to left-click and doesn't require hotkey
ring_of_fire=f1
apocalypse=f2
[abyss_lock]
; Supported runs: Pindle
;miasma_bolt must be assigned to left-click and doesn't require hotkey
miasma_chain=f1
abyss=f2
[echo_lock]
; Supported runs: Trav (tele only)
echo_strike=f1
eldritch_blast=f2
hex_bane=f3
;Set ring of fire if you want to stun before echo blast
ring_of_fire=
; ==========================
; ==== Builds: Assassin ====
; ==========================
; Currently no Trav implementaiton!
[trapsin]
; We assume fire blast or shock web is left-click skill which is optional hotkey if pre-assigned.
skill_left=
; Assume all other skills are right-click and hotkey required!
burst_of_speed=f1
death_sentry=f2
fade=
lightning_sentry=f3
shadow_warrior=f4
mind_blast=f5
; ===========================
; ==== Builds: Barbarian ====
; ===========================
; Supported runs: Trav, Pindle, Eld, Shenk, Nihlathak (tele only)
; Make sure leap hotkey is set if you do not have Enigma
; Ensure Battle Order/Command hotkeys are set above in the [char] section
[barbarian]
cry_frequency=0.7
find_item=
leap=
shout=
war_cry=
; ===========================
; ==== Builds: Amazon ====
; ===========================
; Supported runs: Trav, Pindle, Eld, Shenk, Nihlathak (tele only)
; Make sure leap hotkey is set if you do not have Enigma
; Ensure Battle Order/Command hotkeys are set above in the [char] section
[amazon]
;all must be right-click skill
valkyrie=f1
[javazon]
; charged strike must be left-click skill and preselected, no hotkey required
;all others must be right-click
lightning_fury=f2
; ==========================
; ==== Builds: Necro ====
; ==========================
; Pindle+eld+shenk+trav (walking only!)
; needs all of these skills
;skill_left is just some ranged damage spell (spear,teeth, nova,etc)
;leave teleport blank for now this build currently is walking only
;tested with something like this https://d2.maxroll.gg/d2planner/3x01067c
;recomended to set skeleton mage to same as revive hot hey
;skeleton mages cause pathing issues not ideal to use yet
[necro]
amp_dmg=
bone_armor=
clay_golem=
clear_pindle_pack=
corpse_explosion=
heart_of_wolverine=
raise_mage=
raise_revive=
raise_skeleton=
skill_left=
[poison_necro]
bone_armor=
# Can use any golem
clay_golem=
clear_pindle_pack=
corpse_explosion=
heart_of_wolverine=
# Can Use any curse
lower_res=
poison_nova=
raise_mage=
raise_revive=
raise_skeleton=
# Not Required
skill_left=
[bone_necro]
bone_armor=
bone_spear=
bone_spirit=
bone_wall=
clay_golem=
teeth=
; Damage scaling. One setting to adjust kill speed to account for better/worse gear.
; ex: 2 will cast all attack skills twice a long, .5 half as long. Currently only used by bone necro
damage_scaling=1
; ==== Builds: Basic ====
; Supported runs: UNTESTED (this is your job!)
; this will basically continuously left attack, unless right attack is available.
; if the buffs are not set they are not used (they are part of the prebuff setup)
[basic]
left_attack=1
right_attack=
buff_1=
buff_2=
; ==== Builds: Basic Ranged====
; Supported runs: UNTESTED (this is your job!)
; this will basically continuously left attack, unless right attack is available.
; if the buffs are not set they are not used (they are part of the prebuff setup)
[basic_ranged]
left_attack=
right_attack=
buff_1=
buff_2=
[advanced_options]
; startup hotkeys
; select_runs_key: open run selector UI
select_runs_key=f9
; restore_settings_from_backup_key: restore backed-up D2R settings
restore_settings_from_backup_key=f10
; settings_backup_key: create backup of current D2R settings
settings_backup_key=pause
; auto_settings_key: auto-apply required D2R settings
auto_settings_key=page up
; graphic_debugger_key: toggle on-screen debug layers
graphic_debugger_key=insert
; resume_key: start/pause bot loop
resume_key=f11
; exit_key: hard stop bot
exit_key=f12
; etc.
; graphic_debugger_layer_creator: 1 = enable interactive layer creator tooling
graphic_debugger_layer_creator=0
; hwnd_window_process: process regex used to locate D2R window handle
hwnd_window_process=D2R\.exe
; hwnd_window_title: optional title regex override for window lookup
hwnd_window_title=
; launch_options: will replace <name> with setting for [general] "name" above
launch_options=-mod <name> -txt
; logg_lvl: logging verbosity (debug/info/warning/error)
logg_lvl=debug
; message_body_template: payload template for generic_api mode
message_body_template={{"content": "{msg}"}}
; message_headers: optional JSON headers for generic_api mode
message_headers=
; ocr_during_pickit: 1 = run OCR while looting (slower, more diagnostics)
ocr_during_pickit=0
;use "can_teleport_natively" or "can_teleport_with_charges" if you want to force certain behavior in case autodetection isn't working properly
override_capabilities=
; pathing_delay_factor: movement/click delay multiplier (1 fast .. 10 slow)
pathing_delay_factor=2
; If you want to control Hyper-V window from host use 0,51 here
; window_client_area_offset: x,y pixel offset for captured game client area
window_client_area_offset=0,0