-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Guide to the DCSS knowledge Bots
DCSS has several online bots available to look up information about game topics and statistics for games played online. The main bots are:
- Sequell Provides access to LearnDB, a user-contributed database of game knowledge as well as online game tracking and statistics
- Gretell Monster information lookup for current and previous versions.
- Cheibriados Git commit lookup.
These bots are accessible via Libera IRC. Additionally, there are the relay bots beem for WebTiles chat, Cerebot for Discord, and LomLobot for Twitch chat. The relay bots automatically pass your commands to the correct IRC knowledge bots and return the results.
DCSS has extensive in-game information that improves in quality and detail with each release. In most cases, you can find sufficient details in-game:
- Use
x
then move to an on-screen monster, item, or terrain and hitv
to see its details. - Use
i
to pull up inventory and inspect inventory items. - Use
I
to see details about memorized spells. UseM
and then!
to see details about spells in your library. - Use
a
then*
then!
to see details about your abilities. - Use
A
to see details about your mutations. - Use
^
to see details about your current god. - Use
?/
to see details on any monsters, item, spells, god, statuses, etc. in the game.
Online games are tracked for all official servers from CAO Scoring. To see statistics for your online games, visit the URL below after replacing <name>
with your account name in all lower-case:
http://crawl.akrasiac.org/scoring/players/<name>.html
-
IRC: You can query the knowledge bots directly from Libera IRC in the channel
#crawl
or by sending a PM to the relevant bot itself. PMs to Sequell will have output unabridged. Changes to LearnDB can be made from#crawl
or#crawl-sequell
. -
WebTiles: If you play on official servers CAO, CBR2, CDI, CUE, CPO, CXC, or LLD, you can subscribe to beem to have it join your WebTiles chat whenever you start a session. To get beem, find an online user from the WebTiles lobby that already has the bot in their chat and type
!subscribe
from the chat window. To find a user with beem, you can sort users by number of spectators in the WebTiles lobby, and beem will also join the chat of whichever user has the most spectators. -
Discord: You can query Cerebot in the Roguelikes Discord and the CUE server Discord. Please limit bot queries in the DCSS channels to things you'd like to discuss with the channel. For arbitrary queries, use the dedicated bot channels (
#bot-commands
on Roguelikes Discord) or direct message Cerebot. Direct messages to Cerebot have the benefit of unabridged output. -
Twitch chat: If you stream games of DCSS on Twitch, you can have LomLobot join your channel's chat. Check the About information on LomLobot's Twitch channel for more details.
-
Browser: You can make monster and LearnDB queries through a web interface here. Additionally you can read the entire LearnDB in one page here.
This is an overview on the basics of using the bot commands. The examples below work both with the knowledge bots directly on IRC and with the relay bots, except where noted.
The LearnDB is a user-contributed knowledge database of topics, each of which can have multiple entries. Use the ??
prefix to look up a topic, adding an index in the form of [n]
at the end to look up a specific entry:
??sigmund
??singing_sword[2]
To search for text within a topic, add an index in the form of [TEXT]
where TEXT
is your search string:
??apropos_randart[minotaur]
Use the ?/
prefix to search the entire LearnDB:
?/moon
See ??learndb
for other ways to read the topics. You can only edit the LearnDB from the #crawl
and #crawl-sequell
channels on Libera IRC.
Use the !lg
command to see details from completed games. For example, details on your last game, and details on the last game you won:
!lg
!lg . won
In the second query, the .
argument means yourself, and won
is a keyword that filters for only winning games.
Use the !lm
to see milestones from completed or in-progress games. For instance, the last time you found a rune:
!lm . rune
For beem, Cerebot, and LomLobot, the variable $chat
is set to a value containing the names of people in chat. For example, here's a query to show the win rates of chat players for non-quit games from the last two stable versions, sorted by win rate:
!lg $chat recent !boring s=name o=% / won
For Cerebot and LomLobot, $chat
will contain every non-bot chat user who's sent a message in the last hour. For beem, $chat
will contain every non-bot chat user. Additionally, the $p
variable will be set to the current player or streamer for beem or LomLobot.
See ??listgame_examples
for more examples and ??lg
and ??lm
for further details.
To see the morgue of a completed game, add -log
to any !lg
query, or use !log
:
!lg . won -log
!log . won
To see the current dump for your most recent in-progress game:
&dump
Note that you may need to hit #
in-game to update your dump if you game is being played now. The dump is updated automatically when you save.
You can give &dump
arguments to query a specific user, server, and version:
&dump . cbr2 trunk
There are other predefined as well as many user-defined sequell commands available for performing specialized queries. Some examples follow below, but see the userdef page to see all user-defined commands and key words.
Details on all games you've won:
!won
Details on the games played by the user elliptic, as well as details on his best win streak:
!gamesby elliptic
!streak elliptic
Starting stats of a particular combo, in this case a Minotaur Berserker:
!stats MiBe
Look up aptitudes of a particular species, or see all species aptitudes for a given skill:
!apt Mi
!apt Summonings
Look up progress towards various win achievements:
!greatplayer gammafunk
!greaterplayer gammafunk
!greatrace mummy enegeticocto
!greatrole CK p0werm0de
Use !help
to see documentation for commands with help documentation available.
You can watch ASCII recordings of games played on servers that support them (all but cpo). Add -tv
to any !lg
or !lm
query to watch playback on FooTV. For example, to watch the last time you picked up the Orb of Zot and to watch the last time you died in Zot:
!lm . orb -tv
!lg . zot -tv
Click the link shown in the output to watch playback in your browser. Use -ttyrec
to a query to get the set of relevant ttyrec file URLs if you'd like to use a ttyrec player to watch them on your computer. See ??footv
and ??ttyrec
for further details.
Look up monster statistics with the prefix @??
for trunk or @?
for the current stable version:
@??the royal jelly
Gretell has monster information for previous versions going back to version 0.19. Use a prefix of the form @0.N?
, where N
is the version, to look up this information:
@0.19?cigotuvi's monster
When querying beem, Cerebot, or LomLobot, you can use the *
instead of @
in the prefixes of any these queries to avoid pinging other users.
It's possible to query monsters with specific enchantments, equipment, and spells:
@??orb_guardian perm_ench:berserk
@??orc ; crystal plate armour plus:14
@??orc wizard ; spells:firestorm.200.wizard
See the MONS section of the DES syntax guide for details on this syntax.
Use %git
to look up commits in the official crawl github repository. The argument can be a commit hash, branch name, tag, or any other ref. For example:
%git 0a147b9
%git 0.27.0
Search for the most recent commit with message:
%git HEAD^{/orb}
Use the !gitgrep
to simplify searching for prior matches. For example, the Search for the 2nd most recent commit matching a string:
!gitgrep 2 orb
beem has some additional control commands we document here. These commands can be run from the WebTiles chat of any game where beem is listening, including your own games.
-
!subscribe
Have beem watch your games automatically whenever it sees them. You only need to run this command once, since beem will remember your subscription. You can also run this command to resubscribe after having used the
!unsubscribe
command, and there's no limit to resubscriptions. -
!unsubscribe
Prevent beem from watching your games. beem will leave your game's chat after you run this command. You can run
!subscribe
from any other game's chat where beem is listening to resubscribe. -
!player-only [on|off]
If spectators are spamming too many DCSS bot commands in your game's chat, type
!player-only on
to have it only respond to you for these queries. You can toggle this setting on and off as much as you want. Note that beem will still respond to anyone for the beem control commands.