This is an old revision of the document!


Name dcss:brainstorm:interface: autopickup
Summary Everything about autopickup.
Added by rob
Added on 2010-09-10 18:51

Advanced Autopickup

More intelligent autopickup has been on my wishlist for a while. The Lua hooks should all be there, it's just a matter of designing and implementing it.

  • Allow setting per-item limits (pick up heal wounds while carrying ⇐2).
  • Allow switching between different modes. In particular, a mode while going down (just unknown and useful stuff up to limits, no valuable things like enchant foo, recharge), and a hoovering mode (collect things for stash). You could switch when turning back in a branch.

I have a few autopickup requests:

  • Notify the player when gold is picked up. currently gold is picked up silently. For ergonomics sake, it is convenient to use 'o' to mean “go pickup that gold over there” rather than explore the level. At the least it would be nice if the option was in the rcfile and commented out;
  • I would like to be able to edit my autopickup settings while in game. Early in a game I might be inclined to pick up anything that I can throw (e.g. clubs, needles, etc) but later in the game this is not usually the case. Some type of toggle would be handy;
  • And, yes a per-item limit would be very nice (e.g. no more than 5 scrolls of detect curse, etc.)
  • I have had trouble figuring out how to set new stops in my auto-explore (specifically swiftness timing out) I tried to set a force_more message and that “worked” but then continued with the autoexplore. Perhaps some additional standard reasons for stopping could be set as default in the rcfile. (e.g. lich-form expiration, swiftness, etc.) Additionally, the syntax examples might be helpful for players setting up their rcfile;
  • When autopickup is off, autoexplore silently ignores items that would have been picked up. Instead in my opinion, autoexplore should stop and notify the player (i.e. “You found a scroll of recharging.” just the same as “You found a club.”)
  • It would be nice to have a prompt somewhere for how to access the hidden *.txt files used by the rcfile; I only play on CAO so I don't have the files installed locally.

Thanks! — Tenaya 2010-09-20 23:28

Autopickup any Stackable item currently carried in Inventory

Added by XuaXua
Added on 2014-12-04 19:43
Discussion Tavern Thread to Discuss

Currently by default, having Sticks to Snakes or Sandblast memorized causes the required components to be set to autopickup. With weight limits gone, there is no reason to not pick up any ammo you are already carrying from the ground.

Autopickup should pick up any item that stacks with an item you are already carrying, since there's no real downside to doing that any more. It should not, however, pick up a variation of an ammo that you are not currently carrying (a Javelin vs. a Steel Javelin, or a flaming arrow vs. a frost arrow). There is no in-game reason for any character to be carrying launchable/throwable ammunition other than for explicit use; therefore there is no downside to this change to autopickup behavior.

Once a stackable is carried, all stackables of that exact type should be set to autopickup. If the stackable is explicitly dropped, autopickup for that type should deactivate (unless Sticks to Snakes / Sandblast is memorized per the current rules for those spells). If the last stackable was fired (not dropped), then autopickup for that type should remain active. This “dropping” behavior should only apply to ammo/launchable inventory items; do not modify current scroll/potion behavior.

There should be an init flag to dictate this behavior.

While having certain spells memorized already dictates this behavior, carrying a launcher should not dictate this behavior, as that launcher may be carried for brand purposes.

Autopickup Configuration Screen

ledtim 2010-12-16 08:06 I'd propose screen where you can configure various autopickup options, akin to the skill toggle screen.

Configure your autopickup options by pressing the letter of an autopickup category.
Artefacts: [on/off]
Potions: [on/off]

The default configuration would be determined by the player's skills at the beginning. For example, for casters with dodging, heavy armour would not be picked up. Maybe if the player has a weapon skill, shiny/glowing/runed weapons of that type and ones that crosstrain with that type would have autopickup turned by default.

Also, I think weapons and armour could stand to use more configuration in autopickup options. For example,

Runed/Glowing/Shiny axe: [all/one handed only/two handed only/good one-handed base-type only/good two-handed base-type only/best one handed only/best two-handed base-type only]
Shiny armour: [light armour only/heavy armour only]

I actually managed to add stuff to my init file that achieves much of the same, but it would be nice to have it work through an ingame toggle screen and have it account for the character type/skill to come up with a default option (for example, for a spriggan, it wouldn't pick up leather armour, only robes, by default without you specifying it).

How my init file works is this: All shiny equipment is given appropriate labels. Then I can comment/uncomment various autopickup options to pickup only equipment I want to pickup. For example, I could uncomment the line that says #autopickup_exceptions = <(shinypolearmbestonehand|shinypolearmgoodonehand) to have the game automatically pickup any shiny polearm that's either a trident or a demon trident. I could uncomment the line that says #autopickup_exceptions = <shinypolearmbestonehand to have the game only pickup shiny demon tridents, which are the best one-handed polearms in the game.

#Automated inscription for sorting shiny and rare armor/weapons, use search and the label to find. For example, search shinymacebestonehand to find a shiny one handed mace that's worth using endgame.
autoinscribe = (runed|glowing|shiny|embroid|dyed):shiny
autoinscribe = (runed|glowing|shiny|embroid|dyed).*axe:axe
autoinscribe = (runed|glowing|shiny|embroid|dyed).*hand axe:projectile
autoinscribe = (runed|glowing|shiny|embroid|dyed).*mace:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*flail:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*hammer:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*whip:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*star:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*ankus:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*club:mace
autoinscribe = (runed|glowing|shiny|embroid|dyed).*short sword:short
autoinscribe = (runed|glowing|shiny|embroid|dyed).*dagger:shortprojectile
autoinscribe = (runed|glowing|shiny|embroid|dyed).*sabre:short
autoinscribe = (runed|glowing|shiny|embroid|dyed).*quick blade:short
autoinscribe = (runed|glowing|shiny|embroid|dyed).*glaive:polearm
autoinscribe = (runed|glowing|shiny|embroid|dyed).*trident:polearm
autoinscribe = (runed|glowing|shiny|embroid|dyed).*halberd:polearm
autoinscribe = (runed|glowing|shiny|embroid|dyed).*bardiche:polearm
autoinscribe = (runed|glowing|shiny|embroid|dyed).*scythe:polearm
autoinscribe = (runed|glowing|shiny|embroid|dyed).*spear:polearmprojectile
autoinscribe = (runed|glowing|shiny|embroid|dyed).*lajatang:staff
autoinscribe = (runed|glowing|shiny|embroid|dyed).*quarterstaff:staff
autoinscribe = (runed|glowing|shiny|embroid|dyed).*crossbow:crossbow
#Hack since just 'bow' fits both crossbow and bow and I'm too lazy to figure out to correct syntax to exclude crossbows
autoinscribe = (runed bow|glowing bow|shiny bow|runed longbow|glowing longbow|shiny longbow):bow
autoinscribe = (runed elven longbow|glowing elven longbow|shiny elven longbow):bow
autoinscribe = (runed|glowing|shiny|embroid|dyed).*sling:sling
autoinscribe = (runed|glowing|shiny|embroid|dyed).*blow:blowgun
autoinscribe = (runed|glowing|shiny|embroid|dyed).*long sword:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*scimitar:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*falchion:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*katana:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon blade:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*double sword:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*great sword:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*triple sword:sword
autoinscribe = (runed|glowing|shiny|embroid|dyed).*shield:shield
autoinscribe = (runed|glowing|shiny|embroid|dyed).*buckler:buckler
autoinscribe = (runed|glowing|shiny|embroid|dyed).*boots:feet
autoinscribe = (runed|glowing|shiny|embroid|dyed).*(hat|cap):headfitall
autoinscribe = (runed|glowing|shiny|embroid|dyed).*helm:head
autoinscribe = (runed|glowing|shiny|embroid|dyed).*(gloves|gauntlets|bracers):hands
autoinscribe = (runed|glowing|shiny|embroid|dyed).*cloak:cloak
autoinscribe = (runed|glowing|shiny|embroid|dyed).*robe:lightfitall
autoinscribe = (runed|glowing|shiny|embroid|dyed).*leather armour:light
autoinscribe = (runed|glowing|shiny|embroid|dyed).*troll:fitall
autoinscribe = (runed|glowing|shiny|embroid|dyed).*mail:heavy
autoinscribe = (runed|glowing|shiny|embroid|dyed).*steam dragon:lightfitall
autoinscribe = (runed|glowing|shiny|embroid|dyed).*mottled dragon:lightfitall
autoinscribe = (runed|glowing|shiny|embroid|dyed).*dragon:heavyfitall
autoinscribe = (runed|glowing|shiny|silver|steel).*bullet:bullet
autoinscribe = (runed|glowing|shiny|silver|steel).*bolt:bolt
autoinscribe = (runed|glowing|shiny|silver|steel).*arrow:arrow
autoinscribe = (runed|glowing|shiny|silver|steel).*javelin:javelin

#endgame-worthy weapon types
autoinscribe = lajatang:best

autoinscribe = (runed|glowing|shiny|embroid|dyed).*broad axe:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*battleaxe:goodtwohand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*executioner's axe:besttwohand

autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon blade:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*katana:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*double sword:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*scimitar:goodonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*long sword:goodonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*great sword:goodtwohand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*triple sword:besttwohand

autoinscribe = (runed|glowing|shiny|embroid|dyed).*spiked flail:goodonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*great mace:goodtwohand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*spiked club:besttwohand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*eveningstar:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon whip:bestonehand

autoinscribe = (runed trident|glowing trident|shiny trident):goodonehand
autoinscribe = (runed orcish trident|glowing orcish trident|shiny orcish trident):goodonehand
autoinscribe = (runed elven trident|glowing elven trident|shiny elven trident):goodonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon trident:bestonehand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*bardiche:besttwohand
autoinscribe = (runed|glowing|shiny|embroid|dyed).*glaive:goodtwohand

autoinscribe = (runed|glowing|shiny|embroid|dyed).*sabre:best
autoinscribe = (runed|glowing|shiny|embroid|dyed).*quick blade:best

autoinscribe = (runed|glowing|shiny|embroid|dyed).*longbow:best

#rare items. Not adding demon weapons because they are common in hell/pandemonium
autoinscribe = (executioner's axe|katana|double sword|triple sword|eveningstar|quick blade):rare
autoinscribe = (storm dragon hide|storm dragon armour|gold dragon|crystal plate):rare

#racial marks
autoinscribe = dwarven:dwarven
autoinscribe = elven:elven
#autoinscribe = orcish:orcish

#Pick up filter. Remove the '#' to pick up glowing items of the particular type automatically, or add the '#' to stop picking up.

#uncomment to pick up all shiny items
#autopickup_exceptions = <shiny
autopickup_exceptions = <rare

#autopickup_exceptions = <shinylight
autopickup_exceptions = <shinylightfitall
#autopickup_exceptions = <shinyheavy
#autopickup_exceptions = <shinyheavyfitall

autopickup_exceptions = <shinybuckler
autopickup_exceptions = <shinyshield

#autopickup_exceptions = <shinyhead
autopickup_exceptions = <shinyheadfitall
autopickup_exceptions = <shinycloak
#autopickup_exceptions = <shinyfeet
#autopickup_exceptions = <shinyhands
#autopickup_exceptions = <naga barding
#autopickup_exceptions = <centaur barding

#autopickup_exceptions = <shinyshort
#autopickup_exceptions = <shinyshortbest
#pickup daggers which are the best stabbers
#autopickup_exceptions = <shinyshortprojectile

#autopickup_exceptions = <shinyaxe
#autopickup_exceptions = <(shinyaxebest|shinyaxegood)
#autopickup_exceptions = <(shinyaxebestonehand|shinyaxegoodonehand)
#autopickup_exceptions = <(shinyaxebesttwohand|shinyaxegoodtwohand)
#autopickup_exceptions = <shinyaxebest
#autopickup_exceptions = <shinyaxebestonehand
#autopickup_exceptions = <shinyaxebesttwohand

#autopickup_exceptions = <shinysword
#autopickup_exceptions = <(shinyswordbest|shinyswordgood)
#autopickup_exceptions = <(shinyswordbestonehand|shinyswordgoodonehand)
#autopickup_exceptions = <(shinyswordbesttwohand|shinyswordgoodtwohand)
#autopickup_exceptions = <shinyswordbest
#autopickup_exceptions = <shinyswordbestonehand
#autopickup_exceptions = <shinyswordbesttwohand

#autopickup_exceptions = <shinypolearm
#autopickup_exceptions = <(shinypolearmbest|shinypolearmgood)
#autopickup_exceptions = <(shinypolearmbestonehand|shinypolearmgoodonehand)
#autopickup_exceptions = <(shinypolearmbesttwohand|shinypolearmgoodtwohand)
#autopickup_exceptions = <shinypolearmbest
#autopickup_exceptions = <shinypolearmbestonehand
#autopickup_exceptions = <shinypolearmbesttwohand

#autopickup_exceptions = <shinymace
#autopickup_exceptions = <(shinymacebest|shinymacegood)
#autopickup_exceptions = <(shinymacebestonehand|shinymacegoodonehand)
#autopickup_exceptions = <(shinymacebesttwohand|shinymacegoodtwohand)
#autopickup_exceptions = <shinymacebest
#autopickup_exceptions = <shinymacebestonehand
#autopickup_exceptions = <shinymacebesttwohand

#autopickup_exceptions = <shinystaff
#autopickup_exceptions = <shinystaffbest

#autopickup_exceptions = <shinysling
#autopickup_exceptions = <shinycrossbow
#autopickup_exceptions = <shinyblowgun
#autopickup_exceptions = <shinybow
#autopickup_exceptions = <shinybowbest

#autopickup_exceptions = <needle
#autopickup_exceptions = <needles of (paralysis|sleeping)
#autopickup_exceptions = <arrow
#autopickup_exceptions = <shinyarrow
#autopickup_exceptions = <bolt
#autopickup_exceptions = <shinybolt
#autopickup_exceptions = <stone
#autopickup_exceptions = <bullet
#autopickup_exceptions = <shinybullet
#autopickup_exceptions = <throwing net
#autopickup_exceptions = <javelin
#autopickup_exceptions = <shinyjavelin

#for not picking up chunks automatically, handy with orbs of destruction which spreads chunks around and late game when it's annoying to micromanage dropping chunks due to being encumbered
autopickup_exceptions = >chunk

#pickup shiny dagger/spears/handaxes on the chance they are returning brand if using throwing
#autopickup_exceptions = <projectile

#pick up all artefacts
autopickup_exceptions = <artefact

#for mummy who wants to pick up potions and food for nemelex etc.
#autopickup_exceptions = <potion
#autopickup_exceptions = <food
Logged in as: Anonymous (VIEWER)
dcss/brainstorm/interface/autopickup.1428595875.txt.gz · Last modified: 2015-04-09 18:11 by XuaXua
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki