############################################################################### # QW DCSS bot rcfile - cleaned for current maintained crawl/qw layout. # # This replaces the old monolithic elliptic/qw rcfile. # It expects the maintained QW Lua file to be available as: # # qw.lua # # Recommended source: # https://github.com/crawl/qw # # Put this file and qw.lua in the same Crawl rc/include directory, or inline # qw.lua using the crawl/qw make-qw.sh workflow. ############################################################################### ################# ### Interface ### ################# # Default username. name = qw # Set true for online play so the bot does not hammer the server. : DELAYED = true # Delay per action in milliseconds. : DELAY_TIME = 125 # Whether to start playing immediately when a new game is started. # This may still stop if the game starts with a -more- prompt. : AUTO_START = false ################ ### Gameplay ### ################ # Set true to cycle through combos in COMBO_CYCLE_LIST. : COMBO_CYCLE = false # Sample combo cycle list. Only used when COMBO_CYCLE is true. : COMBO_CYCLE_LIST = "GrBe.handaxe, MiFi.waraxe^O, GrHu^O" # Main combo. # Keep this conservative while testing the updated bot. combo = GrBe.handaxe # Acceptable gods; qw joins whichever one it finds first. # Trog is safest for the classic berserker path. : GOD_LIST = { "Trog", "Okawaru", "Makhleb" } # Use faded altar, abandoning if the result is not in GOD_LIST. : FADED_ALTAR = false # Chaos Knight safety: abandon Xom on turn 0. : CK_ABANDON_XOM = true # Use a shield aggressively for melee characters. : SHIELD_CRAZY = true # Do second Lair rune branch before Depths. : EARLY_SECOND_RUNE = true # Wait to do Orc until after D:15. : LATE_ORC = true # Lair rune preferences: # random - no preference # nowater - prefer Snake/Spider first # smart - Spider > Snake/Swamp > Shoals # dsmart - Swamp/Spider > Snake > Shoals : RUNE_PREFERENCE = "random" # Modern goal model replaces the old ENDGAME_PLAN/ZIG_DIVE/BURN_BOOKS style. : GOALS = { : ["3 Runes"] = "Normal", : ["15 Runes"] = "Normal, Zot:1-4, Slime:5, God:TSO, Crypt, Tomb, Pan" : .. ", Hells, Abyss, Win", : ["Zig"] = "Normal, Zot:1-4, God:TSO, Crypt, Zig, Win", : ["All"] = "Normal, Zot:1-4, Slime:5, God:TSO, Crypt, Tomb, Pan, Hells" : .. ", Abyss, Win", : } # Default target. : DEFAULT_GOAL = "3 Runes" # Timed portals qw may attempt. : ALLOWED_PORTALS = { "Bazaar", "Sewer", "Ossuary", "Gauntlet", "WizLab", : "Desolation" } # Panic/stop at full inventory. : FULL_INVENTORY_PANIC = true # Quit after this number of turns while stuck. : QUIT_TURNS = 1000 ############################# ### Miscellaneous options ### ############################# autofight_stop = 0 restart_after_game = false equip_bar = true ability_menu = false force_ability_targeter = force_spell_targeter = view_delay = 20 use_animations = beam, pickup, player, branch_entry darken_beyond_range = false clear_messages = true travel_delay = -1 explore_delay = -1 rest_delay = -1 travel_key_stop = false default_manual_training = true auto_exclude = hp_warning = 0 show_more = false show_newturn_mark = false force_more_message = show_travel_trail = false skill_focus = false autoinscribe += slay:mikee flush.failure = false char_set = ascii cset = cloud:xa4 cset = item_orb:0 use_fake_player_cursor = true equip_unequip = true dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += overview,messages,screenshot,monlist,kills,notes,vaults dump_order += skill_gains,action_counts,xp_by_level ood_interesting = 6 note_hp_percent = 25 note_skill_levels = 1,3,6,9,12,15,18,21,24,27 note_all_spells = true fire_order = launcher, rock, javelin, boomerang read_persist_options = true # Avoid noisy unknown-command spam in the message log. message_colour ^= mute:Unknown command explore_stop = explore_stop += items,branches,portals,stairs,altars explore_stop += greedy_visited_item_stack,greedy_pickup_smart stop := runrest_stop_message ignore := runrest_ignore_message stop = ignore = ignore += .* runrest_ignore_poison = 3:15 # These keys are useful to answer prompts and are not critical for manual play. bindkey = [Y] CMD_NO_CMD_DEFAULT bindkey = [N] CMD_NO_CMD_DEFAULT bindkey = [B] CMD_NO_CMD_DEFAULT bindkey = [C] CMD_NO_CMD_DEFAULT bindkey = [.] CMD_NO_CMD_DEFAULT # Down arrow; qw uses this only for menus. bindkey = [\{-253}] CMD_NO_CMD_DEFAULT # Lua console for testing/debugging. bindkey = [^D] CMD_LUA_CONSOLE # Autopickup is handled directly by qw. autopickup = autopickup_exceptions = ################ ### Runtime ### ################ # Use coroutine execution to avoid Lua throttling and high memory usage. : COROUTINE_THROTTLE = true # Memory guard in MB. Use Crawl's -lua-max-memory above this value when local. : MAX_MEMORY = 120 ################# ### Debugging ### ################# # Keep false for normal play. This also prevents repeated AUTO DEBUG spam. : DEBUG_MODE = false # Debug channels used only when DEBUG_MODE is true. : DEBUG_CHANNELS = { "goals", "plans" } # Tab takes a single action when true, useful for testing only. : SINGLE_STEP = false # Allow death in wizard mode only when explicitly testing. : WIZMODE_DEATH = false ############################################################################### # Load QW. # # This is the key modern change. The old uploaded file embedded thousands of # lines of stale Lua. Current QW keeps that logic in qw.lua. ############################################################################### include = qw.lua