Name dcss:brainstorm:interface: autoexplore
Summary Please give a brief overview of the dcss:brainstorm:interface content. That is: tell us what you want to change, or add. Put your reasons for wanting it in the main body, not here! Keep it short and sweet.
Further informationYou might want to link to other relevant Wiki pages, SF FRs, or Mantis items - see here for how! You can add as many rows of further information as you need.
Added by ortoslon
Added on 2011-01-24 01:01


Autoexplore should stop immediately before or after entering silence, halos or the LOS of a magically detected monster or a previously seen sleeping monster. The latter would prevent unwanted alerts (but this interruption could be mildly irritating for unstealthy tankish characters so a keyboard toggle like for autopickup might be needed). This should also take magic-mapped terrain into account. Related to Ashenzariortoslon 2011-01-24 01:09

I don't see why that would slow you down or be annoying. Wouldn't autoexplore end on the very next turn without the change anyways? There's no reason that'd be any more annoying or in need of toggling than other autoexplore stoppers. — Brickman 2011-01-24 01:56

Line-of-sight Exploration

Autoexplore presently gives up if it realizes you can't travel to an unexplored tile, even if the tile is within LOS of a tile you can reach. This behavior is unintuitive because autoexplore reports that it “can't reach some places” before the tile is revealed, but that it is “done exploring” after you investigate yourself. This is also very annoying in places like Lair, where plants obscure travel to many pockets of wall that otherwise lead nowhere. It would be nice if autoexplore considered tiles with LOS to unexplored tiles as unexplored, as this should solve the problem. — rriegs 2011-06-05 16:21

I fixed it. — galehar 2011-06-12 00:22
Much appreciated! — rriegs 2011-07-12 02:42

Unreachable Items

Autoexplore will silently ignore a desirable item if it is an unreachable place, e.g. under a plant. Instead it would be helpful if it prompted the player that the item was visible as it does for items that are not autopickup. — Tenaya 2011-06-08 01:06

Corner Exploration

Consider the following not-so-uncommon occurance:


Note the unexplored tile in the upper-left corner (an underscore because docuwiki can't stand leading spaces). This is almost certainly just a wall, but without fail, autoexploration darts to the corridor on the right, presumably because the unexplored tiles there are nearer. Afterwards, autoexplore often crosses the map a few times to fill in the corners it's missed. Yes, yes, optimizing these kinds problems away is practically impossible, but maybe autoexplore could favor unexplored tiles adjacent to diagonally adjacent walls, i.e. those that look like:


Can anyone think of any other simple patterns that deserve a quick peek before exploration moves on? — rriegs 2011-07-12 02:42

The obvious example is Swamp, where autoexplore will typically circle the map up to 3 or 4 times before it's actually seen all the corners and edges. I've wondered a few times if anything can be done about this. Maybe autoexplore just needs some knowledge of where room corners and map edges are. This is information that's technically hidden from the player, but in reality a human can work these things out at a very quick glance, whereas programming an efficient AI to do the job is somewhat hard! — mumra
The adjacent-to-diagonally-adjacent-walls (ATDAW) method should actually work well for Swamp/Lair, because the majority of unexplored tiles are indeed just corners. Autoexplore would have to prioritize unexplored ATDAW tiles above all else, regardless of distance, for this to work, but such unexplored tiles won't last long if it does, so I doubt it would waste a bunch of time filling corners in. — rriegs 2011-07-13 17:34

Another idea is to (much more simply) prioritize tiles ordinally adjacent to walls (OATW; i.e. adjacent, but not diagonally adjacent) over all others, as these have a much greater chance of being walls themselves. The more adjacent walls, the higher the priority, so autoexploration will still fill in corners first. As for other map configurations:

  • Corridors and small rooms will be explored the same because OATW tiles always exist at the end/perimeter of these.
  • Large rooms will be explored perimeter-first, which is actually quite a bit safer than normal autoexplore. You have a much lower chance of stumbling upon an unmanageable horde, plus you discover exits and/or choke-points sooner rather than later.

This could leave holes in the middle of large rooms, but it's hard to fit a lot of large rooms on one map, so I doubt autoexplore would have a lot of running around to do after finishing with all the perimeters. — rriegs 2011-07-13 17:34

Hunger/Species/Diety-based Auto-Explore

One thing I would find very useful would be for auto-explore to also visit squares with items that warrant visiting. Then add some type of in-game toggle or selection list for auto-explore parameters. For example, when:

hungry/gourmand/(hungry soon?) - stop on corpses, 
sacrifice diety - stop on corpses,
Elyvilon - stop on weapons,
fulsome distillation - stop on corpses,
nemelex - stop on everything/stop on weapons/stop on armour/stop on wonder-ous items/etc,
beogh - stop on orc corpses,

Thanks. — Tenaya 2011-09-07 00:27

Also, unvisited upstairs. — KiloByte 2011-09-07 12:34
Some effort has been put into addressing this in trunk: greedy_sacrificeable will visit (and stop exploration on) squares with items your god accepts, sacrifice_before_explore will sacrifice those items when exploration is resumed, and auto_sacrifice will sacrifice such items without even stopping exploration. This applies equally to corpse-loving gods as well as to Elyvilon, Nemelex, and Beogh.

Also, and though they're not yet in trunk, I've added a set of equivalent options to handle butchery: greedy_butcherable, butcher_before_explore, and auto_butcher. These butcher corpses that can be eaten as well as those that can be used for Sublimation/Simulacra (i.e., everything, if you have either spell). Exploration always pauses for corpses that could either be butchered or sacrificed, so players have a chance to decide what to do, but if they just hit Explore again, sacrifice takes precedence over butchery unless the player can eat the resulting chunks immediately (and has auto_eat_chunks set).

As mentioned, I've given some consideration to butchery for reasons other than food. Similarly, I've designed greedy_butcherable to visit (and pause on) chunks that Vampires could drain/bottle, even though they're not ordinarily interested in butchery. This prevents auto_sacrifice from slurping up corpses that Vampires might otherwise be interested in. Yet to be worked out is consideration of other corpse-driven spells: e.g., pausing for Animate Dead, or even using Animate Skeleton as a means of butchery. (I'm a bit leery of the latter; it feels a bit like botting, but it is strictly superior to butchery when available.)

Please see and linked for more details and discussion. — rriegs 2012-09-25 07:15

Auto-qualify all Branch Exit Stairs

Autoexplore uses the shortest route to travel. When the two other branch exit stairs (and optional upwards exit hatch) are discovered on the first floor of a branch, if the player does not travel them himself first, autoexplore will ignore them for calculating travel routes, even if they are shorter. All of these exits travel to the same place as the original entrance stairs; there are no surprises, they should automatically qualify and not require travel by the player to qualify them. — XuaXua 2011-12-22 19:27

Separate vault entrances from explore_stop's "stairs" group

The “stairs” group of the explore_stop option seems to group normal staircases, escape hatches, and vault entrances (ossuary, ice cave, bailey, etc), it would be nice to have separate groups for them, as players may want to ignore the common escape hatches (or even staircases) while autoexploring, but may not want to ignore or miss the rare vault entrances. — kurzedmetal 2012-03-14 23:13

Implemented. Now you can use “explore_stop = branches,portals” (for branch/hell/pan/abyss entrances or just “explore_stop -= stairs” to stop for branch entrances and portals but not other stairs. — neil = |amethyst 2012-03-19 07:46

Greedy autoexplore and unvisited upstairs

To ensure you don't lose good parts of a level, and also to let autotravel work, it is good to visit every upstair. However, you currently need to do this manually. This is only a minor annoyance if there are no monsters around, but if there's any fight around, you often have to leave them unvisited and it will then be ignored by autoexplore.

This used to be the case for items as well, but after a recent change, you can xg the item, marking it for pickup once monsters are dealt with.

It'd be great if there was an option for autoexplore to visit unexcluded unvisited upstairs.

RC file (init.txt) option to always visit corpses, even when not worshipping Trog (0.16.1)

Here's something that happens to me at least once per DCSS session:

  • 1. Start a new game, minotaur fighter for example (not berserker!)
  • 2. Autoexplore, kill some stuff here and there
  • 3. Get hungry
  • 4. Autoexplore, find a bat / gnoll or some other edible enemy
  • 5. Enemy slain, he leaves his corpse on a tile adjacent to me
  • 6. Press Autoexplore
  • 7. I'm now miles away from the corpse, it has rotten away, and i'm now very hungry

Meanwhile, where if i'd chosen minotaur berserker (of Trog obviously)

  • 6. Press autoexplore
  • 7. I'm now put on top of the corpse, and can 'c' butcher it to fill my stomach or 'p' sacrifice it.

Suggestion: Have an RC file (init.txt) option that let's my Autoexplore ALWAYS visit tiles with a corpse on it, even if not worshipping a sacrifice-happy-god like trog.

For example: autoexplore_visit_corpse_tiles = ( all | no_poisonous_and_mutagenic | no_poisonous | no_mutagenic | none ) where the default would be none. — anonamenonymous 2015-04-29 12:00

Logged in as: Anonymous (VIEWER)
dcss/brainstorm/interface/autoexplore.txt · Last modified: 2015-04-29 12:01 by anonamenonymous
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki