Sequell User Definitions

Updated 2024-04-26 18:11:02 UTC

Commands

Command Definition
!abyssratio

.echo $(let (x (- (!lm ${1:-.} !ak $* banished fmt:"${n}") (!lg ${1:-.} !ak $* abyss fmt:"${n}")) y (!lm ${1:-.} !ak $* banished fmt:"${n}")) "$(name_fixup ${1:-.}) $(if $* "("$*") ")has survived banishment $x of $y times: $(int (* 100 (/ (float $x) $y)))%")

For each time you were banished checks whether you died in Abyss in that game or not. Shows ratio.

!abyssturns

.echo $(let (t (map int (split ' ' (=abyssturns.tripturns ${1:-.} $*)))) (name_fixup ${1:-.})" "(if $* "("$*") ")"has "(length $t)" round trips to the Abyss, Shortest abyss trip: "(foldr min (car $t) $t)" turns, Longest abyss trip: "(foldr max (car $t) $t)" turns, Average abyss trip: "(int (/ (apply ${+} $t) (float (length $t))))" turns.")

Could be incorrect if you have crashes in abyss, play multiple games simultaneously, or are a dev. Try adding 'recent' if it is timing out/crashing/giving incorrect results. e.g. !abyssturns . recent

!ac

.echo $(/ (int (+ 0.5 (* 100 (/ 22.0 $1)))) 100.0) armour skill per 1 AC for $1 base AC

Usage: !ac <base AC>, tells you how much armour skill per AC

!acbonus

.echo $(int (* $1 (/ $2 22.0)))

Usage: !acbonus <base AC> <armour skill>

!aclevels

.echo $(if (<= $1 0) "$bot casts a spell. $user is cast into the abyss!" "Armour skill breakpoints for $1 base armour: $(let (ac (!skillperac $1)) (join ", " (map (fn (n) (/ (int (* $n (* 100 $ac))) 100.0)) (range 1 (/ 27 $ac))))) (Breakpoints approximate; overtrain a tad to be sure)")

Given the total of your *base* armour, gives the armour skill breakpoints to get another point of AC. Breakpoints are approximate so train a little extra to be sure. Try: !aclevels 7

!aevp

.echo ER=$1, str=$2, armour skill=$3 : -$(int (/ (* (/ (* (/ 2 5.0) (** $1 2)) (+ $2 3)) (- 45 $3)) 45.0)) EV

Usage: !aevp <ER> <str> <armour skill>. Returns the aevp (armour EV penalty)

!aptstrength

.echo $(sprintf "Aptitude $1 skills require %.0f%% as much experience as a skill with aptitude 0." (* (** 2 (* -1 (/ $1 4.0))) 100))

Give it an aptitude and it will tell you how much that skill costs to train relative to an apt0 skill. Try !aptstrength 3

!armourdodgepenalty

.echo $(let (size (- 1 (/ (=evbonus.sizefactor $(lower $1)) -8.0)) er $2 str $3) "Size Factor:$size, ER:$er, str:$str : -$(int (max 0 (* (- (* $er $size) 3) (/ 10.0 $str)))) EV")

Usage: !armourdodgepenalty <species abbrev> <ER> <strength>. Calculates the penalty from armour to the EV bonus from dodging skill. e.g. !armourdodgepenalty Mi 20 18

!beem

!learn q beem

Type !beem for beem help.

!browse

.echo https://loom.shalott.org/learndb.html#$(ldb-canonical-term $*)

Link a learn database entry for easy reading in a web browser. Try !browse coffin

!cerebot

!learn q cerebot

Type `!help` or `!cerebot` for help with Cerebot. For help with Sequell, type `!sequellhelp`.

!combowinrates

!lg * $* s=char recentishish year !boring !bot o=% fmt:"${.} ${n_ratio}" title:"Winrates for combos with at least 15 winners this year$(argst $*)" x=count(name) / won ?: count(name)>=15

Winrates for "active" combos - combos in recentishish versions in the past 365 days with at least 15 winning accounts. Try !combowinrates or !combowinrates naga !t-all

!commit

!commitby ${nick} ${*}

Thanks to innovative new AI, Sequell can parse your request and code up a commit to make any desired change to Crawl! Isn't it great?

!crystalball

.echo $(name_fixup ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl>=$lm[2] xl<=$(* 1.5 $lm[2]) absdepth>$lm[6] fmt:"$vmsg|$place|$sc|$turn|$dur|$xl"))) (ripformat $lm[0] $lm[1] $game[5] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))

A command that uses the cursed vision of Ashenzari to peer into the future and foretell your certain doom!

!csdc

.echo $(let (wk (=csdcwk $1)) $(let (n (!lg csdc $wk $* won fmt:"${n}" stub:"0")) (if (> $n 5) "$n wins for csdc $wk$(if $* " " "")$*" (=wins csdc $wk $*)))" || $(=games csdc $wk $*)")

Give an overview of the current {csdc} week.

!csdcgod

!lm csdc $(=csdcwk $1) god.worship s=god

Give the gods used for the current {csdc} week.

!csdclive

!lm csdc csdcwk alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @csdc csdcwk alive name!=$nick) ago on [${src}]( $(&watch ${name}) ): ${name} the ${char}^$(=godshortname ${god}) ${milestone}'

Gives the latest {csdc} milestone with a watch link.

!dam

.echo $(let (l (length (re-replace '[^!]' '' $*))) (if (> $l 1) (=maxdam $(- $l 1))" - "(=maxdam $l) (if (= $l 1) "7.0 - 17.0" "0.0 - 7.0")))

Calculates damage for a supplied hit message. Syntax: !dam Message_ending_in_exclamation_marks!!!

!decentchar

!oneandwonchar

Randomly picks a char you have never played, weighted by recent wins

!dodgebonus

.echo $(let (size (=evbonus.sizefactor $(lower $1)) dex (min $2 (+ 14 (log2 (** (+ 1 (/ (- $2 14) 10.0)) 10)))) dodge $3) "Size Factor:$size, Eff dex:$dex, Dodging:$dodge : +$(int (/ (+ 7 (* $dodge $dex)) (- 20.0 $size))) EV")

Usage: !dodgebonus <species abbrev> <dex> <dodging>. Calculates the EV bonus from dodging skill. e.g. !dodgebonus Mi 29 10

!dream

!lm ${1:-*} verb=dreamshard oktv -tv $*

Queues up a recording of a milestone where the player broke the dreamshard. Try !dream * recent oktv -random

!dreamsaved

!lm ${1:-.} cv>=0.31-a dreamshard !cat $* / ((won || ${lg:turns>=turns+100})) title:"Dreamshard savior% for $(name_fixup ${1:-.})$(argst $*)"

Percentage of times the dreamshard shattered but the player survived at least 100 more turns. Excludes felids for cheating. Try !dreamsaved * recent s=br

!ev

.echo This command used incorrect/old formulas. If you want to try to fix the command, the old version is in !ev.wrong.

Usage: !ev <species abbrev> <str> <dex> <ER> <dodging> <armour>. e.g. !ev Mi 20 20 18 15 15

!firstgameafter

.echo $(ignore $1)$(- (!lg * $* x=cdist(name) fmt:"$x") (!lg * $* cv<$1 x=cdist(name) fmt:"$x"))

Shows how many people started playing online on a specified or newer version of Crawl. Syntax: !firstgameafter version

!gemmed

!lg * vmsg=~"11 gems (all intact)" s=name title:"Players who really gemmed it$(argst $*)" stub:"No all-gem winners$(argst $*)" $*

Lists players that obtained all gems without shattering any.

!gemratio

.echo $(let* (ends (!lm ${2:-.} $* br=$1 br.end fmt:"${n}" notitle stub:'0') gems $(intactgems ${2:-.} "br=$1 $*") intact (nth 0 $gems) found (nth 1 $gems) lost (nth 2 $gems)) (if $1 (sprintf "$intact intact gems ($found found, $lost lost) out of $ends $1 branch endings ($(if $(= $(int $ends) 0) 🤷 %0.2f)%%) $(name_fixup [${2:-.})$(argst $*)]" (/ (* $intact 100) (float $ends))) $(!help gemratio)))

Ratio of unshattered gems to br.end milestones for the given branch. Syntax: !gemratio <branch name> [player selector] [lm filters]. Try: !gemratio vaults or !gemratio snake * t

!goodchar

!rg * recent playable won $* fmt:"The RNG chooses: $char"

Will randomly pick a char weighted by number of recent wins

!greatchar

!rg * playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player!"

Will randomly pick a char with a race and class you have not won yet, weighted by number of recent wins

!greateroneandwon

!lg * playable:job role!=$(!lg * won s=char / gid=$(=oneandwongids $*) fmt:'$(combo_to_class ${.})' join:"|" stub:"" ?: %!=0) title:"non-oneandwon roles for $(name_fixup $*)" stub:"$(name_fixup $*) is a greateroneandwoner" s=role fmt:"${.}"

Show remaining classes to win through a oneandwon containing that class.

!greatoneandwon

!lg * playable:sp !experimental crace!=Barachian crace!=$(!lg * won playable:sp !experimental s=char / gid=$(=oneandwongids $*) fmt:'$(combo_to_race ${.})' join:"|" stub:"" ?: %!=0) title:"non-oneandwon races for $(name_fixup $*)" stub:"$(name_fixup $*) is a greatoneandwoner" s=crace fmt:"${.}"

Show remaining species to win through a oneandwon containing that species.

!greatprogress

.echo $(=greatprogress.species $*) | $(=greatprogress.role $*)

Shows how many combos you have to win to get !greatrace/!greatrole for each species/background respectively.

!greattodo

!rng $(re-replace ',' '' $(re-replace '\b ' '_' $(re-replace '.*: ' ' ' $(!greatplayer ${*:-.}))))

Chooses at random one of unwon species for a specified nickname.

!grunttv

!tv * ntv=0 xl>20 kmap~~grunt|map~~grunt

Shows tv of some poor soul who died in a vault or on a map designed by Grunt.

!hilarious

=eval_rand_entry hilarious_deaths 2

Shows a random entry from ??hilarious_deaths.

!hoursperwin

.echo $(let* (name (name_fixup ${1:-.}) duration (!lg ${1:-.} $* x=sum(dur) notitle fmt:'$x') wins (!lg ${1:-.} $* won notitle fmt:'${n}') avg (/ (/ (float (pduration $duration)) $wins) 3600)) (if (> $wins 0) (sprintf "Total playtime divided by wins for $name$(argst $*): %1.2f hours" $avg) "No wins for $name$(argst $*)... yet!"))

Hours played divided by number of wins. How long it takes you to get a win on average. Try !hoursperwin . recent

!hp

.echo $(if $* (let* (t (split " " $*) apt (nth 1 (split "=" (!apt $t[0] HP))) xl $t[1] f $t[2]) "HP apt: "$apt", XL: "$xl", Fighting: "$f" => MHP = "$(int (* (+ (int (* 5.5 $xl)) 8 (int (* $xl (/ $f 14.0))) (int (/ (+ 1 (* 3 $f)) 2.0))) (+ 1 (/ $apt 10.0))))) "Usage: !hp [species] [XL] [Fighting]")

Usage: !hp [species] [XL] [Fighting]. Calculate the maximum HP for a character with a given species, experience level, and Fighting skill.

!intactgems

!lg ${1:-.} won vmsg~~'\d+ gems? \((?:\w+ )?intact!?\)' s=int(regexp_replace(regexp_replace(regexp_replace(regexp_replace(vmsg, '.*and (\d+) gems? \(intact!?\).*', '1'), '.*and (\d+) gems? \(both intact!?\).*', '2'), '.*and (\d+) gems? \(all intact!?\).*', "\1"), '.*and \d+ gems? \((\w+) intact!?\).*', "\1")) o=-. title:"Intact gem wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No gem wins for $(name_fixup ${1:-.})$(argst $*)" $*

Lists intact gems obtained during winning games for the selected player(s). Only includes games that have some gems ("0" means all their gems shattered).

!isonline

.echo $(=time_since_milestone $*) since last activity ($(replace . $nick $*))

Shows time since the last milestone satisfying a supplied condition. Syntax: !isonline <!lm_condition> | Examples: !isonline <servername> | !isonline @nickname

!karmicbalance

.echo "The Karmic Balance of Crawl to-date: Violence win% $(!violentwinning $*) .vs. nonviolence win% $(!nonviolentwinning $*)"

This command displays the win rates of violent religions vs. nonviolent religions for the Crawl player base as a whole

!killratio

.echo $(let (target $(=target ${2:-*})$(replace " ()" '' " ($*)") ratio $(=killratio.calc $(!lg ${2:-*} $* ikiller=$1 fmt:"${n}" stub:"0") $(!lm ${2:-*} $* uniq=$1 fmt:"${n}" stub:"0"))) $(if $(= $ratio NaN) "No battles for $1"$(if $(/= $target *) " and $target"). "$1 wins $ratio% of battles"$(if $(/= $target *) " against $target").))

Displays the number of player deaths/number of unique deaths. Only works for uniques!

!last

!won ${2:-.} $* rend>=$(!lg ${2:-.} $* fmt:"${rend}" -${1:-100})

Usage: !last <number> <player> <other args>, shows wins in the last x games played. e.g. !last 50 . Be

!last10

!lg * $* won s=-end x=max(end),max(name),max(char) fmt:'${x[1]} (${x[2]})' rend>=$(!lg * $* won -10 fmt:"$end") title:"last 10 wins $(if $* "for $* " " ")are"

This command shows the last 10 games won on any public server(s)

!lastgames

!lg ${1:-.} $(split " " $*) x=xl,char,god,ckiller -count:10 fmt:'L${x[0]} ${x[1]}^$(=godshortname ${x[2]}) (${x[3]})' title:"Last 10 games for $(name_fixup $1)" stub:"No games for $(name_fixup $1)"

Shows information about the last 10 games you played (or played by the person in the command argument)

!lgm

!lg $* $(thismonth)

Like !lg, but only looks at games played this month.

!lgt

!lg $* $(today)

Like !lg, but only looks at games played today.

!listmax

!lg $1 title:"$(name_fixup $1): max $2 for $3, show $4 ($*)" $* (($(!lg $1 $* s=$3 x=max\($2\) join:"||" fmt:"$3=${.} $2=${x}"))) s=$3,$2,$4 pfmt:"${.} ${child}"

Usage: !listmax <nick> <X> <Y> <Z> <other opts>. Lists games for <nick> by Y, maximising X and showing Z. e.g. !listmax mfc xl name place HuWn

!lowhptv

!lm * ((tiles || nothuge)) ((cln end>=20130626 || !cln)) !csn abyss.exit|abyss.enter|br.enter|br.exit|br.end|zig.enter|zig.exit|unique|uniq.ban|uniq.pac|ghost|ghost.ban|ghost.pac|orb|rune xl>=16 hp<20 $* min=ntv -tv

Uniques and ghosts killed/pacified/banished, abysses/ziggurats/branches exited and entered, runes and orbs grabbed, all when the person viewed has less than 20 hp and is xl 16 or higher. Examples: !lowhptv, !lowhptv recent, !lowhptv recent -random

!mediandur

.echo $(let* (times (split '|' $(!lg * $* s=name x=median(dur) o=median(dur) fmt:'$x' notitle join:'|' stub:'N/A')) median (if (= $times 'N/A') "N/A" (elt (/ (length $times) 2) $times))) "Median game duration of the median player$(argst $*): $median")

The median game duration of the median player. A reasonable indicator of how long a game typically lasts. Try !mediandur * recent won urune=3

!moralvictory

.echo "$(!evilvictory $*) . . . $(!goodvictory $*) . . . $(!pietytracker $*)"

This command outputs a player's winning tendencies when following "good" religions vs. "evil" religions

!nevertried

.echo $(let (r (apply nevertried $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo: " (join " " $r))))

lists char + god combos which have never been tried before in the history of crawl!

!neverwon

.echo $(let (r (apply neverwonsorted $*)) (if (= 0 (length $r)) "All of those combos have been won" (concat "Combo (number of attempts): " (join " " $r))))

lists char + god combos which have never been won, along with the number of times they have been attempted.

!next

.echo $(let* (p ${1:-${user}} c (last_win $p) e (entry ~${p}_next 1) needcombo (or (= '' $e) (has_won $p $e))) (if (= $c XXXX) "Get your first win first, ${p}!" (if (and (= $channel msg) $needcombo) "Run this command in a public IRC channel to choose your next combo." "The RNG declares that $p shall win $(if $needcombo (=newnext $p) $e) next.")))

Gives you a combo that you haven't won yet. Will remember your current combo and only change when you win it; only available for players who have already won. See !help !next-pref and !help !next-cheat for other options.

!next-cheat

.echo $(no_pm (do (if (= 0 (entrylength ~${user}_next)) "" (ldb-rm! ~${user}_next 1)) (!next)))

Rerolls your current !next combo. Cheating!

!next-pref

.echo $(no_pm (do (if (= 0 (entrylength ~${user}_pref)) (ldb-add ~${user}_pref 1 "$*") (ldb-set! ~${user}_pref 1 "$*")) "New !next preferences for ${user}: ${*}."))$(ignore (concat $*))

Sets restrictions on what combos !next will give you, e.g. "!next-pref --en !mu--" to receive a random non-mummy enchanter you haven't won yet. Use !next-pref-append to add new restrictions on at the end of your current prefs.

!nonaut

.echo $(let* (name (name_fixup ${1:-.}) autsec (split (!lg ${1:-.} x=sum(aut),sum(dur) notitle fmt:"${x[0]} ${x[1]}" $*)) aut (float (elt 0 $autsec)) secs (pduration (elt 1 $autsec))) (sprintf "There are %1.2f non-arbitrary units of time per second for $name$(argst $*)." (/ $aut $secs)))

Find out how much real-life time the average aut is for the selected games. Try !nonaut . recent

!nowin

.echo $(if (>= $(!lg ${1:-.} win fmt:"$n" stub:"0") 1) $(!lg ${1:-.} $* !boring !win rstart>$(!lg ${1:-.} win fmt:"$start" stub:"0") fmt:"$name has not won for $n games since their last win." stub:"$name has won their last game.") "${1:-.} has not won yet.")

<nickname> [options ...]

!oneandwon

.echo $(let (l (length (split , (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"$l chars won first try for $name" stub:"No chars won on first try for $name"))

Show combos won on the first attempt of that combo.

!orbruntombtv

.echo $(let (name $1 tomb_array (orb_run_tombs_array_for $1)) $(let (channel $(if $(= $name ".") $nick $name) chars (map $(fn (x) $(nth 3 $x)) $tomb_array)) $(if $(> (length $tomb_array) 0) $(!lg $name gid=$(nth 1 (car $tomb_array)) -tv:<T$(nth 0 (car $tomb_array)):>>:channel=$channel))))

Plays the last successful orbruntomb by a player on its own channel. Currently there isn't a way to play previous orb run tombs using this command. Example: !orbruntombtv lainiw

!orbsplat

!lm ${*:-*} orb !won -game

Plays splats that happened after the orb was picked up. Examples: !orbsplat, !orbsplat recent, !orbsplat recent unwatched max=sc

!order

.echo $(ignore $1)$(let (verb $1 query $*) (let (gid (exec (concat $query ' fmt:"$game_key" stub:"XXX"'))) (if (= $gid XXX) "No games found ($query)" (!lm * gid=$gid verb=$verb s=-turn,milestone x=max(noun),max(turn) o=-max(turn) pfmt:"${child}" fmt:"$x[0]" title:"$verb order \($query\)" stub:"$verb order \($query\): no ${verb} milestones"))))

Shows the order of milestones from a certain game. Syntax: !order <milestone_condition> !lm <game> Example: !order rune !lm * won

!ouchtv

!lg * !won !boring ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn recent ${*:-xl>=8} max=sc dam>${mhp/2} ntv=0 -tv

Plays splats that really hurt. Examples: !ouchtv, !ouchtv cv=0.13-a

!owned

!lg ${1:-.} $* x=tdam,mhp tdam>=${mhp} tdam>70 !((ak place=abyss xl<5)) stub:"$name hasn't been owned by Crawl yet. $name should play some more ;)"

Games in which the player lost all of their hp in a single turn. The damage must be greater than 70 and low level AKs in abyss don't count. Try: .owned or .owned * recent

!panname

!lg * ikiller~~pandemonium_lord x=ikiller -random fmt:'$(re-replace "^ikiller=(.*) the pandemonium lord" $1 $x)'

A random panlord name. Chosen from panlords that killed a player and have thus immortalized themselves in this command. Try !panname

!polymorphtv

!lm * uniq~~shaped min=ntv -tv

Various kills of polymorphed TRJ or Lenny

!pyrrhic

!lg ${1:-*} gid=$(!lm ${1:-*} uniq|rune|orb|ghost !won ${lg:turn-turn}<=3 $* fmt:'$x[0]' x=gid stub:'') stub:"No games lost within 3 turns of killing a ghost/unique or getting an orb/rune for $(name_fixup ${1:-*})$(argst $*)"

Plays splats that occured close to an important milestone. Examples: !pyrrhic, !pyrrhic recent unwatched max=sc

!qwstats

.echo $(let (l (split ' ' (=qw $*))) (join ' ' (list (per (nth 1 $l) (nth 0 $l)) (per (nth 2 $l) (nth 1 $l)) (per (nth 3 $l) (nth 2 $l)) (per (nth 4 $l) (nth 3 $l)) (per (nth 5 $l) (nth 4 $l)) (per (nth 6 $l) (nth 5 $l)) (per (nth 7 $l) (nth 6 $l)) (per (nth 8 $l) (nth 7 $l)) (per (nth 9 $l) (nth 8 $l)))))

percentages for start -> enter Lair -> exit Lair -> first rune -> enter Depths -> exit Depths -> enter Zot -> Zot:5 -> orb -> win.

!randnevertried

.echo $(let (r (apply randnevertried $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo: " (join " " $r))))

picks a random char + god combo which has never been tried before!

!randneverwon

.echo $(let (r (apply randneverwon $*)) (if (= 0 (length $r)) "All of those combos have been tried" (concat "Combo (number of attempts): " (join " " $r))))

picks a random char + god combo which has never been won before, along with the number of times it has been attempted. Will probably time out unless you specify race or class. See also: !help !randnevertried

!recent

!lg * won s=name recent

This command lists players sorted by most recent wins for a chosen religion, species or profession. For Example: '!recent ely' '!recent ee' or '!recent gr'

!recentwinrates

!lg * recentishish year title:"High winrate players this year$(argst $*) (winrate wins name)" fmt:'${n_ratio} $(re-replace "^(\d+).*" $1 ${n_x}) ${.}' $* s=name o=% / won ?: N>11

Top winrates in the last year on modern versions (up to 3 versions behind stable). Listed players need 12+ wins under those conditions to be eligible!

!recentwins

!lg * won s=name recent

This command lists players sorted by most recent wins for a chosen religion, species or profession. For Example: '!recentwins ely' '!recentwins ee' or '!recentwins gr'

!rg

!lg ${*:-.} -random

Like !lg, but picks a random game fuifilling the given criteria.

!score

.echo Approx score for $1 runes in $2 turns: $(* 100000 (int (/ (+ 254000 (* $1 (+ $1 12) 1000) (* 2000 $1) (/ (* 6250000000 $1 $1) $2) 800000) 100000)))

Usage: !score <runes> <turns>

!selfown

!lg ${1:-.} selfown $*

Like !lg but filtering for player deaths caused by the player (mostly miscasts, ally kills, teleporting in front of your OoD and projectile reflections). Try !selfown * week s=ckaux

!send

.echo Sending $(ignore $1)$* to ${1}.

Usage: !send <person> <thing>. Sends <thing> to <person> (this is a campaign promise).

!skillperac

.echo $(float (/ 22.0 $1))

<base AC>

!speedcoc

.echo $(name_fixup ${1:-.})'s fastest Icy rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=icy s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=icy s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Coc s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Coc to picking up the Icy rune. Usage: !speedcoc <name> <other options>

!speeddis

.echo $(name_fixup ${1:-.})'s fastest Iron rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=iron s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=iron s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Dis s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Dis to picking up the Iron rune. Usage: !speeddis <name> <other options>

!speedgeh

.echo $(name_fixup ${1:-.})'s fastest Obsid. rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=obsidian s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=obsidian s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Geh s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Geh to picking up the Obsidian rune. Usage: !speedgeh <name> <other options>

!speedorb

.echo $(name_fixup ${1:-.})'s fastest orb retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Zot to picking up the Orb. Usage: !speedorb <name> <other options> e.g. !speedorb .

!speedrune

.echo $(let (name ${1:-.} branch $2 other $*) (if (str-find? $branch (=turns_to_rune.branches)) (if (str-find? "No milestones" (=turns_to_rune.rune $name $branch $other)) $(name_fixup $name)$(if $other " ("$other")")" has never found the "$branch" rune" (=turns_to_rune.format $name $branch $other)) $branch" is not a valid branch. Valid branches: "(replace | , (=turns_to_rune.branches))))

Returns shortest number of turns from entering a branch to finding it's rune. Usage: !speedrune <name> <branch> <other options> e.g. !speedrune . tomb recent

!speedtar

.echo $(name_fixup ${1:-.})'s fastest Bone rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=bone s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=bone s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=Tar s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Tar to picking up the Bone rune. Usage: !speedtar <name> <other options>

!speedzot5

.echo $(name_fixup ${1:-.})'s fastest Zot:5 enter to Orb retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

Returns shortest number of turns from entering Zot:5 to picking up the Orb. Usage: !speedzot5 <name> <other options>

!stats

.echo $(if (= (lower (sub 2 $1)) wn) "Wanderer starting stats are random. Stat gain: $(getldbsid (combo_to_race $1))" $(!lm * begin char=$1 ${2:-recent trunk} $* x=str,int,dex fmt:"Starting stats for ${char}: Str $x[0] Int $x[1] Dex $x[2]. Stat gain: $(getldbsid (combo_to_race $1))" stub:"Go start a ${1:-?} if you want me to know its starting stats."))

Provides starting stats for the given starting character, such as !stats GhBe.

!stepdown

.echo $(if (< (int $1) (int ${3:-${2}})) $1 (+ (- ${3:-${2}} $2) (stepdown (- $1 (- ${3:-${2}} $2)) $2)))

Calculates stepdown_value(int base_value, int stepping, int first_step). Here first_step = stepping by default. Example: "!stepdown n 50" for the spellpower stepdown. Doesn't apply a ceiling_value.

!timeline

.echo Timeline: $(let (args $(split ; $*)) $(let (lg_args (car $args) lm_args (car (cdr $args))) $(foldr $(fn (x y) $(concat (str (cdr $x)) " (+" (car $x) ")" (if (not (null? $y)) "; " "") $y)) "" $(format_timeline_array 0 $(game_milestones_array $lg_args $lm_args) $(cons)))))

Groups and orders milestones for a specific game. Usage: !timeline lg_arguments ; lm_arguments Examples: !timeline madreisz won ; rune|orb s=turn,noun. !timeline madreisz won ; unique s=turn,noun,ev

!titleprogress

.echo $(let (known (!lg * x=cdist(title) notitle fmt:"${x}" stub:"0") won (!lg ${1:-.} won x=cdist(title) notitle fmt:"${x}" stub:"0") name (name_fixup ${1:-.})) (sprintf "$name has won %d out of %d known titles (%.2f%%). %s" $won $known (/ (* 100.0 $won) $known) (if (> $won 99) "$name is an entitled player!" "")))

Lets you know how many titles a player has won with, compared to all titles seen so far. Try !titleprogress . or !titleprogress Ge0ff

!topuniquewins

.echo $(apply allplayeruniquewinsscore $*)

Like !uniquewins but only shows the total number instead of listing each combo.

!tourneychar

!rg * recent playable won crace=$(=tourneychar.topraces crace!=$(=wonraces ${1:-.} t)) role=$(=tourneychar.toproles role!=$(=wonroles ${1:-.} t)) $* fmt:'The RNG chooses: $char, $(!charworth $char) points'

Returns a random char from the top 10 races and roles by score which you have not yet won. Best used with a team nick, e.g. !tourneychar ruthlessrubes

!tstats

.echo $(let (arg1 ${1:-16} arg2 ${*:-t}) (let (t (concat $arg2 " !@bot " end<$(+ (stamptime (!lg * $arg2 1 fmt:"$end")) $arg1))) "Stats after $arg1 days $(concat '(' $arg2 ')'): $(=tstats.players $t), $(=tstats.runers $t), $(=tstats.winners $t), $(=tstats.wins $t), $(=tstats.games $t), $(=tstats.winrate $t), $(=tstats.playertime $t)."))

!tstats <days> <tournament selector> for information on games/runes/wins. Example: !tstats 15 t0.14

!uniquewins

.echo $(apply allplayeruniquewins $*)

rank of all players by the number of unique char + god combos they have won.

!uniquewinslookup

.echo $(apply uniquewinsplayer ${1:-$user} (cdr $*))

lookup the number of unique char + god combos a player has won

!watchrandom

&watch $(let (names (split " " $(!lm * ktyp= type!=crash time>=$(- (utc (time)) (interval-minute 30)) !cdo s=name fmt:"${.}" join:" " $*))) $(if $(> $(length $names) 0) $(elt $(rand 0 $(length $names)) $names) "No active games to watch."))

Gives a link to spectate a random game that was active in the last half hour.

!whichgod

!lg * won $1 recent $* s=god title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."

Usage: !whichgod [race and/or role]

!whichrace

!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* class=$*) s=crace title:"${n} recent wins" stub:"No recent wins for $*."

Usage: !whichrace [role or god]

!whichrole

!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* race=$*) s=role title:"${n} recent wins" stub:"No recent wins for $*."

Usage: !whichrole [race or god]

!wintimes

!lg ${1:-.} won s=nhour(end),$${2:-0}$ o=nhour(end) pfmt:'${n_x}$(mod (+ ${child[0]} ${.}) 24)' fmt:'${.}'

Show the times at which you've won in your time zone. e.g. !wintimes . 2 for in the UTC+2 time zone

!xldeathrate

.echo $(let* (toHash (fn (lg) (foldr xldeath-helper4 (hash) (split ", " $lg))) xlL (toHash (!lg ${1:-.} !won s=xl notitle fmt:"${.} ${n_x}" $*)) xlW (toHash (!lg ${1:-.} won s=xl notitle fmt:"${.} ${n_x}" $*)) total (xldeath-helper3 28 $xlW $xlL) result (fn (xl) (sprintf "%s: %2.2f%%" $xl (* 100 (/ (float (xldeath-helper $xl $xlL)) (- $total (xldeath-helper3 $xl $xlW $xlL))))))) (map result (range 1 27)))

Shows the rate of deaths (quits/deaths/etc) at each XL, for characters that made it to that XL. Basically, it shows something approximating the game's difficulty curve. Graphs: https://docs.google.com/spreadsheets/d/1m_aGyxgq97BKp2rZi2pksZyFaYeE58YAHAedZo2vlXo/edit Breakdown: https://gist.github.com/RypoFalem/10845d564efbf4d55f108278aa01d201

!xxx

.echo $(let (num $(rand 5 15)) "$nick $(=rndspellgesture). $num tentacled monstrosities appear! The tentacled monstrosity tentacle-slaps ${*:-Mnoleg's tentacle}! x$num")

Cast Summon Horrible Things on some puny mortal.

!zigdeathgraph

!lg ${1:-.} s=zigdeepest br='zig' zigscompleted=0 place='zig' o=zigdeepest -graph

This command graphs a player's (or, with "*" ALL players') number of deaths per Zig level, assuming no Zigs yet completed this game.

&dump

!lm ${1:-.} fmt:"\$(=morgue_link ${2:-${src}} \$(if \$(match -a ${3:-${cv}}) trunk ${3:-${cv}}))/${name}/${name}.txt" stub:"No milestones for $(name_fixup ${1:-${user}})."

Find a player's in-progress game dump based on their last milestone (by default) or by server (argument two) and game version (argument three). For example, to find your last 0.20 game on cbro use: &dump . cbro 0.20

&rc

=eval $(=rc.helper $*)

Gets the rc file of the specified player, version, and server. Syntax: &rc [player selector] [canonical version] [source]. Try "&rc" for your own rc, or "&rc qw 0.20 cao" for a specific rc.

&splat

!lg * recent !blacklist ((tiles || !@hugeterm)) ((ikiller=(a_pandemonium_lord|dispater|geryon|ereshkigal|asmodeus|cerebov|gloorx_vloq|lom_lobon|mnoleg) || ckiller=a_pandemonium_lord)) $* min=ntv -tv

Plays a death to an &. Examples: &splat, &splat recent

.csdc

!lg * xl>=5 !won csdc $* max=rend oktv ntv=$(!lg * xl>=5 !won csdc $* min=ntv oktv fmt:"$ntv") -tv:channel=csdc

Watch the latest un-watched {csdc} death.

.s

!lg * !won !boring ((tiles || !@hugeterm)) !cwz !cpo recent max=sc ntv=0 -tv ${*:-xl>15}

plays an unwatched splat. You can add keywords and fields to filter which splat is played. Examples: .s, .s xl>=20, .s cv=0.13-a fe--

.suspensetv

.echo $(let (cmd (if (rand 2) (!lg $(=suspensetv.lgopt) $(rand $(!lg $(=suspensetv.lgopt) $*)) $* x=gid fmt:"!lg * gid=\$x[0] -tv") (!lm $(=suspensetv.lmopt) $(rand $(!lm $(=suspensetv.lmopt) $*)) $* x=gid,turn fmt:"!lm * gid=\$x[0] turn=\$x[1] -tv"))) (do $(ldb-set! ~suspensetv 1 $cmd) (exec $cmd) "suspensetv requested for FooTV (telnet termcast.shalott.org or http://termcast.shalott.org )."))

Randomly plays either a death or a near-death milestone. The options for lg and lm respectively can be edited in the functions =suspensetv.lgopt and =suspensetv.lmopt

.suspensetvreplay

.echo $(exec (nth 1 (split "]: " (ldb ~suspensetv))))

Replays the last .suspensetv

!*rc

!echo test

!1n1

!rng $(!lg * recent $(ignore $1)$* playable s=char join:' ' fmt:"${.}" / @${1:-.} ?:N=0)

!27club

!lg ${*:-.} !won xl=27 -random

!a-background

!rng @role

!a-char

!a-character

!a-character

!echo $(re-replace 'The RNG chooses: ([^.]+)\.' '$1' (!a-race)) $(re-replace 'The RNG chooses: ([^.]+)\.' '$1' (!a-class))

!a-choice

.echo Sign: $(randelem $(split & $(=a-signlist))) Race: $(randelem $(split & $(=a-racelist))) Class: $(randelem $(split & $(=a-classlist)))

!a-class

!rng @role

!a-god

!rng @god

!a-monster

!rg * killer!= x=killer fmt:"$x[0]" xl=$(rand 1 27) ${*:-current}

!a-race

!rng @race

!a-role

!rng @role

!a-sign

!rng raven book wand unicorn salamander dragon sword falcon cup candle wolf tree

!a-species

!rng @race

!absolutezero

.echo $nick $(=rndspelltarget ${*:-something}). $nick chills ${*:-something} to absolute zero! ${*:-something} is frozen into a solid block of ice!

!abyssrunevaultkills

!echo Abyss rune vault kills$(argst $*): $(vaultallkills kmap~~abyss_rune map~~abyss_rune $*)

!activegames

!lm * ktyp= type!=crash time>=$(- (utc (time)) (interval-minute 30)) s=name,src pfmt:"${.} (${child})" fmt:"${.}" title:"Active games, last half-hour ($*)" stub:"No milestones in the last half-hour ($*)" $*

!actualoldest

!lg * $* won playableme s=char x=max(rend) o=-max(rend) join:" " fmt:"${.}" notitle

!add

!commit Add $*

!alignedwinner

.echo "$(!evilwinner $*) . . . $(!goodwinner $*)"

!always

!motto $(cons always ${*:-be closing})

!ancestorclasses

!lm ${1:-.} verb=ancestor.class $* s=regexp_replace(noun, ".*\m(\w+)\.$", "\1")%

!ancestornames

!lm ${1:-.} $* ancestor s=regexp_replace(milestone, '.*remembered their ancestor (.+)as a (battlemage|hexer|knight).*$', '\1') title:"Ancestor names for $(name_fixup ${1:-$nick})$(argst $*)"

!ancestorpopularity

!lm * verb=ancestor.class $* s=regexp_replace(noun, ".*\m(\w+)\.$", "\1")%

!antiprogress

.echo $(name_fixup ${1:-.}) antiprogress: $(car (split | (!lg ${1:-.} $* won s=char fmt:"${n_x}${.}" join:"|")))

!antititleprogress

.echo $(name_fixup ${1:-.}) antititleprogress: $(car (split | (!lg ${1:-.} $* won s=title fmt:"${n_x}${.}" join:"|")))

!aptsum

!echo $(let (a (apthash $1)) (apply ${+} (map (fn (k) (elt $k $a)) (hash-keys $a))))

!argtest

!lg * char=$1 s=char,name x=max(xl) $(ignore $2) $* ?: max(xl)>=$2

!averageapt

.echo $(let (apts (map (fn (t) (re-replace '[!*]' (re-replace "[^:]+: " $t))) (filter (fn (t) (not (or (str-find? 'N/A' $t) (str-find? 'Dr[' $t)))) (split , (!apt $1))))) (.echo Average apt for $1: $(sprintf "%1.1f" (/ (float (apply ${+} $apts)) (length $apts)))))

!averagesessions

!echo $(let (ns (sort (filter (fn (n) (> $n 0)) (map (fn (g) (!numbersessions ${1:-.} gid=$g)) (split '|' (!lg ${1:-.} won $* s=gid fmt:'${.}' join:'|' notitle)))))) (.echo Average number of sessions for games won by $(name_fixup ${1:-$nick})$(argst $*): $(sprintf '%.2f' (/ (float (apply ${+} $ns)) (length $ns))); #Games: $(length $ns); MinSessions: $(elt 0 $ns); MaxSessions: $(elt 0 (reverse $ns))))

!avggamestats

!lg ${1:-.} $* x=avg(xl),avg(mmhp),avg(mmp),avg(ac),avg(ev),avg(sh),avg(str),avg(int),avg(dex) title:"Average stats for $(name_fixup $1)$(argst $*) over \$n games" fmt:"XL: $x[0], MHP: $x[1], MMP: $x[2], AC: $x[3], EV: $x[4], SH: $x[5], Str: $x[6], Int: $x[7], Dex: $x[8]"

!avgmilestonestats

!lm ${1:-.} $* x=avg(xl),avg(mmhp),avg(mmp),avg(ac),avg(ev),avg(sh),avg(str),avg(int),avg(dex) title:"Average stats for $(name_fixup $1)$(argst $*) over \$n milestones" fmt:"XL: $x[0], MHP: $x[1], MMP: $x[2], AC: $x[3], EV: $x[4], SH: $x[5], Str: $x[6], Int: $x[7], Dex: $x[8]"

!awaken

.echo $nick $(=rndspelltarget ${*:-something}). Some walls begin to move on their own! The earth elemental hits ${*:-something}!!! x$(rand 2 7)

!awbwchar

!rg * recent playable won char!=$(!lg awbw won s=char fmt:"${.}" join:"|") $* fmt:"The RNG chooses: $char."

!awbwleft

!lg awbw playable s=char o=-char fmt:"${.}" / won ?: N=0

!awbwlive

!lm awbw alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @awbw alive name!=$nick) ago on ${src} $(if ${tiles} tiles console): ${name} the ${char}^$(=godshortname ${god}) ${milestone}'

!awbwprogress

.echo awbw progress: $(let (num (!lg awbw playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")

!badchar

!rg * playable name~~hyper !@hyperimposters !won fmt:"The RNG chooses: $char"

!banish

.echo $nick casts a spell. ${1:-Everyone} is cast into ${*:-$(=badplace)}!

!banish2

.echo $nick casts a spell. ${1:-Everyone} is cast into ${2:-$(=badplace)}!

!banishratio

.echo $(let (x (!lm ${1:-.} !ak $* banished fmt:"${n}") y (!lg ${1:-.} !ak $* fmt:"${n}") z (!lg ${1:-.} !ak $* x=sum(turns) fmt:"${x}" )) "$(name_fixup ${1:-.}) $(if $* "("$*") ")was banished $x times in $y games over $z turns: $(int (* 100 (/ (float $x) $y)))% of games, $(int (* 1000000 (/ (float $x) $z))) per 1,000,000 turns")

!beam

.echo $(if (and (not (str-find? elliptic $nick)) (or (str-find? wheals $*) (str-find? Wensley $*))) "$nick miscasts Beamishment. $nick is cast into beam.cc!" "$nick casts a spell. $* is cast into beam.cc!")

!beckon

.echo $nick $(=rndspelltarget $*). "Get OVER here!!" $* is pulled closer!

!beer

.echo /me slides a $(sub 0 1 $(sub $(rand $(length $(split & $(=beervessel)))) $(split & $(=beervessel)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=beerlist)))) $(split & $(=beerlist)))) down the bar to ${*:-${nick}}$(if $* ", courtesy of $nick").

!beestorm

.echo $nick $(=rndspelltarget $*). A raging swarm of bees appear! The great swarm engulfs ${*:-something}!

!beetv

.echo $(!lg * cikiller~~bee cikiller!~ghost recent -tv:<0.5 -$(rand 12000))

!bestunwonchar

!lg * !boring char=$(!lg * $(ignore $1)$* playable won s=char notitle fmt:'${.}' join:'|' / @${1:-.} ?: N=0) s=char title:"Best unwon chars for $(name_fixup ${1:-.})$(argst $*)" o=% / won

!bet

.echo $(mvmoney $* "~"$nick":money" "~holdem:pot")

!bigdrain

!lg ${1:-*} $* newdrain ${mmhp-mhp > 50} !won x=${mmhp-mhp},mmhp,mhp title:"Big drain characters for $(name_fixup ${1:-*})$(argst $*)" stub: "No big drain characters for $(name_fixup ${1:-*})$(argst $*)"

!biglcs

.echo $nick $(=rndspelltarget ${*:-something}). The crystal spear hits ${*:-something}$(nth $(rand 3) $(split '|' '!!!|!!!!|!!!!!'))!!

!blame

.echo I pronounce ${*:-${nick}}... Guilty!

!blame2

.echo $(re-replace '(.)' '$1$1$1' "$*")

!blame3

.echo $(re-replace '([AEIOUYaeiouy])' '$1$1$1$1$1' $*)

!blame37

!chaos $(!blame2 $*)

!blame3n

!recur !blame3 $*

!blame4

!chaos $(!blame3 $*)

!blamedev

!echo $(!blame $(randelt (nick-aliases devteam)))

!blamen

!recur !blame2 $*

!boris

.echo $(name_fixup ${1:-.}): $(car (split | (!lm ${1:-.} $* uniq=boris s=gid fmt:"${n_x}" join:"|"))) Boris

!branchless

!lg ${1:-.} cv>=0.5 won gid!=$(!lm ${1:-.} won br.enter=lair|vaults|temple|orc s=gid join:"|") -opt:(title:"Branchless wins by $name" stub:"$name doesn't have any branchless wins... Tragic!") pfmt:"${.} (${child})" s=char,god join:", "

!brendratio

.echo $(let (x (!lm ${2:-.} $* br.end=${1} ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${2:-.} $* fmt:"${n}" stub:"0") player (name_fixup $2)) "${player}$(if "${*}" " (${*})" "") has reached the ${1} branch end in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")

!brstats

!lg * recent !won !boring br=(snake|swamp|spider|shoals) xl=$(!lg * recent br=$1 urune=0 x=median(xl) $* fmt:"$x[0]") x=cdist(gid) fmt:"$x[0]" / br=$1 $* title:"Lethality of $1 $(argst $*) as a first Lair rune:"

!bug

.echo https://crawl.develz.org/mantis/view.php?id=${1:-$(rand 1 10000)}

!buyin

!holdeminit

!calc

!lg xyz x=$$*$ fmt:"${x[0]}"

!cancel

!lg * -tv:nuke

!canoneandwon

!lg * playable cls!=$(join "|" (map (fn (c) (replace ?? (!ftw $c))) (split "|" (!lg . $1 playable s=cls fmt:"${.}" join:"|" title:"")))) s=cls fmt:"${.}" title:"Available classes for $1 oneandwon"

!cardpower

.echo $(let (c (=cardpower $1 $2) x (=ornate.card.lvl1 $1 $2) y (=legendary.card.lvl1 $1 $2) z (=legendary.card.lvl2 $1 $2) ) "evo skill=$1, nemelex piety=$2, Cardpower=$c, Ornate Lvl 1: $(int (* $x 100))% , Legendary Lvl 1: $(int (* $y 100))% , Legendary Lvl 2: $(int (* $z 100))% ")

!cards

.echo $(nth 1 (split "]:" (ldb "~"$nick":cards")))

!cats

!lg ${1:-.} won fe-- $* s=char join:"|" fmt:"${n_x}{=^;^=}" stub:"=u.u=" title:"Cats won for $(name_fixup $1)"

!cdirc

.echo https://crawl.dcss.io/crawl/rcfiles/crawl-bot-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cdi x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

!celcius

.echo $(sprintf "$* degrees F is %1.1f degrees C" $(/ (- $1 32) 1.8))

!centuryplayer

!won ${1:-.} 100 stub:"${1:-.} is not yet a CenturyPayer"

!chaos

!echo $(map (fn (w) (apply concat (map (fn (c) (if (rand 2) (upper $c) (lower $c))) (split '' $w)))) (split ' ' ${*:-$(!banish)}))

!chargodgames

!lg ${1:-.} $* s=char,god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Games for $(name_fixup ${1:-.})$(argst $*)" stub:"No games for $(name_fixup ${1:-.}$(argst $*)"

!chargodwins

!lg ${1:-.} won $* s=char,god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No wins for $(name_fixup ${1:-.}$(argst $*)"

!chars

!lg ${*:-.} s=char

!charworth

.echo $(+ $(!raceworth $(combo_to_race $1)) $(!roleworth $(combo_to_class $1)))

!cheatstreak

!streak ${1:-.} $* won

!cheers

.echo /me slides a $(sub 0 1 $(sub $(rand $(length $(split & $(=cheers.containers)))) $(split & $(=cheers.containers)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=cheers.drinklist)))) $(split & $(=cheers.drinklist)))) across the bar to ${*:-${nick}}$(if $* ", courtesy of $nick").

!cheqpanlord

!lg * vlong>0.18-a0-1305-g2d5df2f ckiller=a_pandemonium_lord

!circus-dump

.echo http://crawl.homedns.org/morgue/${1}/$1.txt (user names are case sensitive, make sure you got it right!)

!circus-rc

.echo http://crawl.homedns.org/morgue/$1.rc (user names are case sensitive, make sure you got it right!)

!circus-watch

.echo Watch $1 at http://crawl.homedns.org/crawl#watch-${1}

!ckorc

.echo https://crawl.kelbi.org/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cko x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

!clanname

!learn add reserved_clan_names "$* [$nick]"

!clannamefor

.echo $(let (p $1 n $*) (!learn add reserved_clan_names "$n [$p]"))

!clap

!emote 👏 $*

!clapall

!emoteall 👏 $*

!clapmotto

!emotemotto 👏 $*

!classcannchoice

!lg * current nem-eligible $1 s=char o=-. fmt:"${.}" title:"Available combos for Nemelex Choice with $1"

!classcanoneandwon

.echo $(let (c (fullclass $1)) (!lg * playable cls="$c" $(ignore $1)$(ignore $2)$* crace!=$(!lg ${2:-.} cls="$c" $* s=regexp_replace(char, "..$", "") fmt:"${.}" join:'|' title:'') s=char o=-. fmt:"${.}" title:"Available combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)" stub:"No vailable combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)"))

!classhs

!lg * playable sc<1000000000 s=cls x=max(char),+max(score) fmt:'$(combo_to_class ${x[0]}): $(short_num ${x[1]})' title:"Class high scores"

!classoneandwoncounts

!lg ${1:-.} $* char=$(join '|' (split ', ' (re-replace '^[^:]+: ' '' (!oneandwon ${1:-.} $*)))) s=cls won title:"Race oneandwon counts for $(name_fixup $1)$(argst $*)" stub:"No oneandwons for $(name_fixup $1)$(argst $*)"

!classwords

.echo $(map (fn (p) (.echo $p${1})) (sort (split "|" (!lg * playable current alpha s=regexp_replace(char, "..$", "") join:"|" fmt:"${.}"))))

!clswords

.echo $(map (fn (p) (.echo ${p}${1})) (sort (map (fn (c) (replace "??" (!ftw $c))) (split "|" (!lg * playable current trunk s=crace join:"|" fmt:"${.}")))))

!cmdcp

.echo $(!cmd $2 $(re-replace-n 1 '.*?=>' '' (!cmd $1)))

!cmdfind

!cmdsearch

!cmdlist

!cmd -$(.echo ls)

!cmdmv

.echo $(do (!cmd $2 $(re-replace-n 1 '.*?=>' '' (!cmd $1))) (!cmd -rm $1))

!cmdsearch

.echo $(let (x (join ', ' (re-gmatch "[^\s]*$*\w*" (!cmd -ls)))) (if $x $x "Couldn't find that!"))

!coffee

.echo /me hands ${1:-${user}} a $(sub 0 1 $(sub $(rand $(length $(split & $(=coffee.containers)))) $(split & $(=coffee.containers)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=coffee.coffeelist)))) $(split & $(=coffee.coffeelist)))), brewed by $(=tea.brewer).

!coinflip

!rng heads tails

!comborobin

.echo comborobin progress: $(let (num (!lg comborobin playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")

!comborobinchar

!lg * recent playable char!=$(!lg comborobin won s=char fmt:"${.}" join:"|") char!=$(!lm comborobin alive s=char fmt:"${.}" join:"|") s=char won o=n title:"Best chars to play with comborobin (not currently being played)" stub:"$(!comborobinnotwonchar)"

!comborobinfail

!lg comborobin won s=char title:"Characters over-won for comborobin" fmt:"${.}" ?: N>1

!comborobinhs

!highscores comborobin

!comborobinnotwonchar

!lg * recent playable char!=$(!lg comborobin won s=char fmt:"${.}" join:"|") s=char won o=n title:"Best chars to play with comborobin (currently being played, but not won)" stub:"All comborobin chars won."

!comborobinold

.echo comborobin new+old(>=0.10) progress: $(let (num (!lg comborobin cv>=0.10 !experimental won x=count(char) fmt:"${x[0]}") den (!lg * cv>=0.10 crace!=Dj|LO|Yak cls!=Jr stable x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")

!commitby

.echo $(let (v (=version) c (=commitby.counter) h (randhex 7) f (+ 1 (rand 50)) a (+ 200 (rand 799)) r (+ 200 (rand 799))) " 03${1:-$nick} ⛐ ${v}-a0-${c}-g${h}: ${*:-do stuff} 10(in the future, $f files, ${a}+ ${r}-) 13http://s-z.org/neil/git/commit.png?p=crawl.git;a=commitdiff;h=${h} ")

!coolplayer

!lg ${1:-.} $(replace " " | (ldbent-text (ldb words 1))) won console s=char fmt:"$name is a coolplayer!" stub:"$name is not a coolplayer!" title:"" join:" "

!countgoodplayers

.echo $(length (split , (!listgoodplayers))) good players

!countgreaterplayers

.echo $(length (split , (!listgreaterplayers))) up to date greaterplayers!

!countgreatplayers

.echo $(length (split , (!listgreatplayers))) up to date greatplayers!

!countnick

.echo $(length (split ' ' (nick-aliases $*)))

!cpodump

!lm ${1:-.} cpo fmt:"https://crawl.project357.org/morgue/${name}/${name}.txt"

!crash

!crashlog

!crashlog

!lm ${*:-!ignoredcrashers} crash -log

!crunwon

.echo $(let (x (=0woncomborobin.list)) $(if (= $x x) "All combos have been won at least once!" "$(length (split | $x)) $(plural combo (length (split | $x))) won zero times: "$(split | $x)))

!crunwonold

.echo $(let (x (=0woncomborobinold.list)) $(if (= $x x) "All new+old(>=0.10) combos have been won at least once!" "$(length (split | $x)) $(plural combo (length (split | $x))) won zero times: "$(split | $x)))

!crush

.echo $nick $(nth $(rand 5) $(split '|' "crushes $* like a grape|beats $* like a drum|flattens $* like a pancake|pounds $* like an anvil|hammers $* like a gong"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!

!csdcwon

!lg csdc $(=csdcwk $1) won s=name

!currentgamepath

!lmpath ${1:-.} alive

!cwzrc

.echo http://webzook.net/soup/rcfiles/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cwz x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

!d1panlordtv

!tv * d:1 ckiller=pandemonium_lord $*

!damnation

!hellfire $*

!dang

.echo ohh dang!!!!!

!darkbolt

!echo I cast Darkbolt! ${*:-$channel} is struck by a blast! ${*:-$channel} is paralyzed!

!daysperwin

.echo $(name_fixup ${1:-.}) wins approximately once per $(let (age $(int $(let (first $(ptime $(!lg $(name_fixup ${1:-.}) x=min(end) fmt:"${x[0]}" stub:'$(ftime $(utc $(time)) "%Y-%m-%d %H:%M:%S")') "%Y-%m-%d %H:%M:%S") now $(utc $(time))) (- $now $first)))) (/ (float $age) $(!lg $(name_fixup ${1:-.}) won $* fmt:"${n}"))) days

!daystilltourney

.echo $(int $(- $(ptime "2019-10-23 20:00:00" "%Y-%m-%d %H:%M:%S") $(utc $(time)))) days till 0.24 tourney start!

!deal

.echo $(if (deal (split ' ' $*)) "Cards dealt to $(replace " " ", " $*). Do !cards in pm to see")

!death

.echo Death has come for ${*:-${nick}}...

!deathless

!lg ${*:-*} start>20101115 fe-- won gid!=$(!lm ${*:-*} death won s=gid join:"|") s=name,char -opt:(title:"Deathless wins for ${*:-*}")

!deathsin

!lg * place=${*} ktyp!=quitting|leaving|winning s=name

!deathtimes

!lg ${1:-.} !won s=nhour(end),$${2:-0}$ o=nhour(end) pfmt:'${n_x}$(mod (+ ${child[0]} ${.}) 24)' fmt:'${.}'

!debug

.echo $nick sets a breakpoint on ${*}. $(capitalise ${*}) $(nth $(rand 6) $(split '&' $(=resist_message))). You crash... Would you like your variables identified?

!decentgreatchar

!rg * playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") char!=$(!lg ${1:-.} s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player, or has played every combo!"

!decentplayer

.echo $(let (l (length (split , (!lg $(name_fixup $*) rstart=$(!lg $(name_fixup $*) s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (if (> $l 9) "$(name_fixup $*) is a decent player. $l oneandwon wins." "$(name_fixup $*) is not a decent player. $l oneandwon wins ($(- 10 $l) to go)."))

!depthsvaultkills

!echo Depths (non-encompass) vault kills$(argst $*): $(vaultallkills depthsvaultkmap depthsvaultmap "$*")

!descentplayer

.echo $(let (name (name_fixup ${1:-.}) played (!lg ${1:-.} $* game=descent notitle fmt:'$n') won (!lg ${1:-.} $* game=descent won notitle fmt:'$n')) (if (> $played 0) "$name is a descent player. ($played played, $won won)" "$name is not a descent player. (no descent games played)"))

!desolated

!lg * desolation

!dflip

!flip $(!flip $*)

!dice

.echo $(/ (* $1 (+ 1 $2)) 2.0)

!dieselratio

.echo $(name_fixup ${1:-.}) $(if $* "("$*") ")has been diesel $(!lg ${1:-.} $* defstats diesel won fmt:"${n}" stub:"0") out of $(!lg ${1:-.} $* defstats won fmt:"${n}" stub:"0") wins: $(int (* 100 (/ (float (!lg ${1:-.} $* defstats diesel won fmt:"${n}")) (!lg ${1:-.} $* defstats won fmt:"${n}"))))%

!dieselteamideas

.echo $(join ': ' $(sub 1 $(split ':' $(ldb dieselteamideas $(rand 1 (entrylength dieselteamideas))))))

!dieselteamup

.echo $(join '; ' (groups (shuffle (split ' ' $*)) 3))

!disc

!calc (1- (30-${1:-0})/100.0)**3

!discord

.echo $* flies into a frenzy!

!dispel

.echo $nick $(=rndspelltarget ${*:-something}). ${*:-something} convulses!

!doom

.echo $nick unleashes a terrible howl, and it begins to echo in ${*}'s mind! The $nick bites ${*}!!! x$(rand 4 6)

!dragonscall

.echo $nick calls out to the draconic realm, and the dragon horde roars back! The golden dragon tramples ${*}!!! x3

!drain

.echo $nick $(=rndspelltarget ${*:-something}). The bolt of negative energy hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))! ${*:-something} is drained!

!duhzlitewin

!lg ${*:-.} won gid=$(=allhellrunes $*) gid=$(=helluniques $*) gid!=$(!lm ${*:-.} abyss.enter !banished won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|depths|hell|geh|coc|tar|dis|zot|icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUHZ lite games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUHZ lite win."

!duhzwin

!lg ${*:-.} won gid=$(=allhellrunes $*) gid=$(=helluniques $*) gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|depths|hell|geh|coc|tar|dis|zot|icecv|volcano|lab|gauntlet|bailey|sewer|bazaar|ossuary|wizlab|gauntlet|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUHZ games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUHZ win."

!dumb

.echo <$(replace neil |amethyst $(replace sgrunt Grunt $(car $(sub 0 1 $(sub $(rand $(length $(nick-aliases devteamnp))) $(nick-aliases devteamnp))))))> that's dumb

!dump

&dump

!dumpplease

!learn q dump

!dupzwin

!lg ${*:-.} won gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter!=temple|pan|depths|zot|icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"DUPZ games won for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) as a DUPZ win."

!earlygod

.echo $(let (x (!lm ${1:-.} $* god.worship place=(d:1|d:2|d:3) xl<9 won x=cdist(gid) fmt:"${x}" stub:"0") y (!lm ${1:-.} $* god.worship place=(d:1|d:2|d:3) xl<9 x=cdist(gid) fmt:"${x}" stub:"0") player (name_fixup ${1:-.})) "${player}$(argst $*) has won after using a pre-d:4 altar $x out of $y times: $(int (/ (* 100 $x) $y))%.")

!echo

.echo $*

!elfendkills

!echo Elf end vault kills$(argst $*): $(vaultallkills kmap~~elf_hall|nooodl_elf_gasket map~~elf_hall|nooodl_elf_gasket $*)

!elywinssincenewely

!lg * won ely rstart>20150103 s=name

!embarrassing

=eval_rand_entry embarrassing_deaths

!embarrassingdeath

!tv $(replace !tv $(replace !lg $(nth 1 $(split "]: " $(ldb "embarrassing_deaths" $(if $* $* $(rand 1 (entrylength "embarrassing_deaths"))))))))

!embrace

.echo $nick $(=rndspellgesture). The bodies of the dead rush to embrace ${*:-$nick}!

!emote

!echo ${1:-👏} $(join " ${1:-👏} " (split " " "$(ignore $1)${*:-REMOVE FELIDS}")) ${1:-👏}

!emoteall

!echo ${1:-👏 } $(join " ${1:-👏} " (split "" "$(ignore $1)${*:-REMOVEFELIDS}")) ${1:-👏}

!emotemotto

!emotewords $1 $(!motto $(ignore $1)$*)

!ev.wrong

.echo Race: $1 str: $2 dex: $3 ER: $4 dodging: $5 armour: $6 => EV: $(int (evscale (+ 10 (+ (=evbonus.sizefactor $(lower $1)) (- (max (- (=dodgebonus $1 $3 $5) (=armourdodgepenalty $1 $4 $2)) 0) (=aevp $4 $2 $6))))))

!evilgodwinner

!lg * won evilgod s=god / @${1:-.} title:"$(name_fixup ${1:-.})'s unwon evil gods: " stub:"$(name_fixup ${1:-.}) has won all evil gods." fmt:"${.}" ?:%=0.0

!evilvictory

!won ${1:-.} evilgod

!evilwinner

.echo $(let (player $(name_fixup ${1:-.})) (let (egod $(!lg * !buggygods won evilgod !experimental s=god / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) erace $(!lg * !buggygods won evilrace !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $egod "") (= $erace "")) "$player has won all evil gods and races" "Unwon evil gods and races $player: $egod, $erace")))

!extendedfinished

!lg ${*:-.} gid=$(!lm ${*:-.} br.enter=pan|geh|coc|dis|tar|tomb s=gid fmt:"${.}" join:"|") / won15 title:"% games won with 15 runes after going extended for $name:"

!fahrenheit

.echo $(sprintf "$* degrees C is %1.1f degrees F" $(+ (* $1 1.8) 32))

!fanatic

.echo $(let (player $(name_fixup ${2:-.})) (let (frace $(!lg * $1 playable !fanaticbuggygods won !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) fclass $(!lg * $1 playable !fanaticbuggygods won !experimental s=class / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $frace "") (= $fclass "")) "$player has won all races and classes for $1" "Unwon races and classes for $player with $1: $frace, $fclass")))

!fanaticclass

!lg * $1 playable !fanaticbuggygods won !experimental s=class / @${2:-.} title:"Unwon $1 classes for $(name_fixup $2)" fmt:"${.}" stub:"$(name_fixup $2) has won all classes for $1" ?: %=0.0

!fanaticrace

!lg * $1 playable !fanaticbuggygods won !experimental s=crace / @${2:-.} title:"Unwon $1 races for $(name_fixup $2)" fmt:"${.}" stub:"$(name_fixup $2) has won all races for $1" ?: %=0.0

!fanaticrole

!fanaticclass

!fast10

.echo Fastest 10$(if $* " for $*"): $(!lg * won !@bot !@hybridbot $* s=gid x=max(name),-min(dur),max(char) fmt:'${x[0]} ${x[2]} ${x[1]}' dur<=$(!lg * $* won !@bot !@hybridbot min=dur x=dur -10 fmt:"${x[0]}"))

!fastestspecieswins

!lg ${1:-*} $* !@bot won playable !experimentalrace s=crace x=min(dur) o=min(dur) title:'Fastest species wins' fmt:'$(replace ?? (!ftw ${.})) ($x[0])'

!fastplayer

!lg ${*:-.} won dur<$(!lg * urune=15 won min=dur x=dur fmt:"${x[0]}") fmt:"$(name_fixup $*) is a fast player." stub:"$(name_fixup $*) is not a fast player."

!fastplayers

.echo $(!lg * !@bot !@hybridbot won s=name x=min(dur) o=-min(dur) dur<$(!lg * urune=15 won min=dur fmt:"$dur") join:" " fmt:"${.}")

!feliddeath

.echo $(+ 1 (int $(!lm ${1:-.} fe-- death $* gid=$(!lg ${1:-.} fe-- $* x=gid fmt:"${x[0]}") fmt:"$n" stub:"0")))

!file

!source

!findcmd

!cmdsearch

!finddoppleganger

!lm * xl=$(!lm ${*:-.} x=xl alive fmt:"${x[0]}") char=$(!lm ${*:-.} x=char alive fmt:"${x[0]}") gid!=$(!lm ${*:-.} x=gid alive fmt:"${x[0]}") alive

!findtitle

!title $*

!firestorm

.echo $nick $(=rndspelltarget $*). A raging storm of fire appears! The great blast of fire engulfs ${*:-something}!

!firework

.echo http://kramin.herokuapp.com/fireworktext?text=$(replace ' ' + $*)

!firstwins

!lg ${1:-.} won 1 $* x=char -count:10 fmt:'$x[0]' join:"|" title:"First 10 wins for $name$(argst $*)" stub:"$name doesn't have any wins yet!"

!flip

.echo (╯°□°)╯︵ $(map (fn (w) (apply concat (map (fn (c) (if (< $c T) (lookup $c (flipcharhash1)) (lookup $c (flipcharhash2)))) (reverse (split "" $w))))) (join " " (reverse (split " " ${*:-┻━┻}))))

!flipdang

!flip $(!zap $(!blame3 $(!dang)))

!func

!function

!gamecost

.echo $(/ $(* $(+ 0.0 ${2:-99}) $(- $(months $(=time)) $(months $(!lg * src=$1 1 fmt:'$rstart')))) $(!lg * src=$1 x=count(gid) fmt:'${x[0]}'))

!gamegraph

.echo $(let (gid $(!lm $* x=gid fmt:"${x[0]}")) $(!lm * gid=$gid fmt:"${name}, ${char}: ")" "$(nth -1 (split " " (!lm * gid=$gid s=turn x=max(AC),max(EV),max(SH),max(mhp/10),max(absdepth) -graph:area))))

!gameinfo

!lm ${1:-.} $* x=str,int,dex,gid fmt:'${name} the L${xl} ${char}^$(=godshortname ${god}) in ${place} ($src $(if $tiles tiles console)), ${dur}, T:$turn$(if ${urune} ", runes: ${urune} ($(=lastrunes * gid=${x[3]})$(if (> ${urune} 3) ...))"), defenses: ${ac}/${ev}/${sh}, stats: ${x[0]}/${x[1]}/$x[2]$(if ${fifteenskills} ", >15 skills: ${fifteenskills}")$(if ${maxskills} ", Max skills: ${maxskills}")'

!gamepath

.echo $(let (path (gamepath_query $*)) (if (= (length $path) 0) "No milestones found." (format_autocompress $path (list gamepath_format_normal gamepath_format_compressed1 gamepath_format_compressed2 gamepath_format_compressed3 gamepath_format_compressed4))))

!gamepath.query

.echo $(let (gid (!lg $* fmt:'$game_key')) (!lm * gid=$gid type=br.enter|rune|orb !portal s=id,turn,type,noun pfmt:'${.}:${child}' join:'/' stub:''))

!gamerank

!lg * $(ignore $1) $* score>=$(!lg ${1:-.} $* x=score fmt:'$x[0]') x=score,src,cv -count fmt:'$n, Score: $x[0], Server: $x[1], Ver: $x[2]' title:"Game rank for $(name_fixup $1)"

!games

!lm ${1:-.} $* alive s=name,gid x=max(name),max(xl),max(char),max(god) o=max(xl) title:"Current games for $(name_fixup ${1:-.})$(if $* " ("$*")")" join:" | " pfmt:"${.}: ${child}" fmt:'L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'

!gamesbyversion

!lg ${1:-.} s=regexp_replace(cv, "-a", "") o=-. x=count(gid) -graph

!gamessincelastwin

!gamestriedsincelastwin

!gamessincelastwon

!gamestriedsincelastwin

!gamestowin

!gamesuntilwin $*

!gamestriedsincelastwin

.echo $(let (player (name_fixup $*)) (try (!lg ${*:-$user} rstart>$(!lg ${*:-$user} won -1 fmt:"$end") s=char title:"$n games since last win for $player" fmt:"${n_x}${.}" stub:"No games played since last win for $player.") (!lg ${*:-$user} s=char title:"$n games since last win for $player" fmt:"${n_x}${.}" stub:"No games played since last win for $player.")))

!gamesuntillair

!lg ${*:-.} rstart<=$(!lm ${*:-.} br.enter=lair 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games before reaching lair.' stub:"$(name_fixup $*) has never reached lair."

!gamesuntilrune

!lg ${*:-.} rstart<=$(!lg ${*:-.} urune>0 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games before their first rune.' stub:"No games with a rune for $(name-fix $*)."

!gamesuntilwin

!lg ${1:-.} $* rstart<=$(!lg ${1:-.} $* won 1 fmt:"$start" stub:"0") fmt:"$(name_fixup $1) had \$(- \$n 1) games before their first win$(argst $*)." stub:"No wins for $(name_fixup $1)."

!gamesuntilwon

!gamesuntilwin $*

!gameswonsince

!lg ${1:-.} won rend>$(!lg ${1:-.} $* fmt:"$end" stub:"error") fmt:"$n" stub:"0"

!gdeaths

!lg ${1:-.} $* killer~~'s_ghost s=killer title:"$n deaths to player ghosts for $(name_fixup ${1:-.})" stub:"No deaths to player ghosts for $(name_fixup ${1:-.})"

!getcasualclass

!rng $(replace "," " " $(replace " " "_" $(!lg * playable s=class class!=$(replace " " "_" $(!lg * playable s=class casualchar fmt:"${.}" join:"|")) fmt:"${.}")))

!getcasualrace

!rng $(replace "," " " $(replace " " "_" $(!lg * playable s=crace crace!=$(replace " " "_" $(!lg * playable s=crace casualchar fmt:"${.}" join:"|")) fmt:"${.}")))

!ghostkills

!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup ${1:-.}))))$(=apostrophe)s?_ghost $* s=ikiller,name title:"${n} kills by $(name_fixup ${1:-.})'s ghost$(if "${*}" " (${*})" "")"

!ghostratio

.echo $(let (d (=gdeathcount ${1:-.} $*) k (=gkillcount ${1:-.} $*) player (name_fixup $1)) "The ghost of ${player} has killed ${k} players, but ${player} has died to ${d} ghosts: $(if (= (int ${d}) 0) NaN (int (+ 0.5 (/ (* 100.0 ${k}) ${d})))%)")

!ghostvaultkills

!echo Ghost vault kills$(argst $*): $(vaultallkills ghostkmap ghostmap "$*")

!git

.echo %git $*

!gitgrep

.echo $(ignore $1)$(let (n $1 s $*) (concat "%git HEAD^{/" $s "}" (repeat (concat "^^{/" $s "}") (- (int $n) 1))))

!givepot

.echo $(if (/= $1 $nick) (mvmoney (ldb-entry "~holdem:pot" 0) "~holdem:pot" "~"$1":money") "Can't take it yourself")

!gkiller

!lm . type=ghost s=noun

!gkillratio

=gkillratio2.helper2 $(name_fixup $1) $(=target ${2:-*}) $*

!gkills

!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup_long ${1:-.}))))$(=apostrophe)s?_ghost $* s=name title:"${n} kills by $(name_fixup ${1:-.})'s ghost$(argst $*)"

!glaciate

.echo $nick $(=rndspelltarget $*). $nick conjures a mighty blast of ice! The great icy blast engulfs ${*:-something}!

!glasses

.echo ( •_•) ( •_•)>⌐■-■ (⌐■_■)

!glyph

.echo http://dev.host/~shmup/crawl/dcss-glyphs.html#$1

!gnollchallenge

!lg * gn chei win vlong>=0.21-a0-133-gf55ed5b !gnollsredux s=name $*

!godwinner

!lg * playable:god s=god fmt:"${.}" title:"$(name_fixup ${1:-.})'s unwon gods" stub:"$(name_fixup ${1:-.}) has already won with all gods." / @${1:-.} won ?: N=0

!godwins

!lg ${1:-.} title:"" fmt:'${n_x}$(lookup ${.} (godshortnamehash))' god s=god $* / won

!godwononfirsttry

!lg ${*:-.} rstart=$(!lg ${*:-.} s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won first try for $(name_fixup $*)" stub:"No gods won on the first try for $(name_fixup $*)"

!goodcompass

!won $(name_fixup ${1:-.}) goodgod

!goodgodwinner

!lg * won goodgod s=god / @${1:-.} title:"$(name_fixup ${1:-.})'s unwon good gods: " stub:"$(name_fixup ${1:-.}) has won all good gods." fmt:"${.}" ?:%=0.0

!goodgodwon

!lg * won goodgod s=god / @${1:-.}

!goodplayer

.echo $(let (wins $(nwins ${1:-.}) player $(name_fixup $1)) $(if (>= $wins 10) "$player is a goodplayer: $wins wins." "$player is not a goodplayer yet: $wins $(plural win $wins) ($(- 10 $wins) to go)."))

!goodvictory

!won ${1:-.} goodgod

!goodwhichgod

!lg * won !chei $1 recent $* s=god title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."

!goodwinner

!lg * !buggygods won goodgod !experimental s=god / @${1:-.} title:"Unwon good gods for $(name_fixup ${1:-.})" stub:"$(name_fixup ${1:-.}) has won all the good gods." fmt:"${.}" ?:%=0.0

!google

.echo www.google.com/webhp?#q=$(replace ' ' + $*)

!gotrune

.echo $(let (rc (!lm ${2:-*} recent rune=$1 fmt:"$n" stub:"0") rbr (!lm ${2:-*} recent rune=$1 x=br fmt:"$x[0]")) (let (brc (if (= $rbr "Abyss") $(!lm ${2:-*} recent abyss.enter x=cdist(gid) fmt:"$x[0]" stub:"0") (!lm ${2:-*} recent br.enter=$rbr x=cdist(gid) fmt:"$x[0]" stub:"0"))) "$rbr entered $brc times. $1 rune found $rc times ($(=percentcalc $rc $brc) %)."))

!gotslimy

!lm ${*:-.} br.enter=slime fmt:"You entered Slime $n times"

!greaterchar

!rg comborobin playable won crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})' stub:"") class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})' stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} is already a great(er)player!"

!greaterlairer

.echo $(do ${1:-.} "")$(!lm * playable:role br.enter=lair $* s=role o=-role / @${1:-.} format:"${.}" title:"Unlaired backgrounds for $name$(if $* " ("$*")")" stub:"$name$(if $* " ("$*")") is a greaterlairer!" ?:N=0)

!greaterorbrun

.echo $(!lm $(name_fixup ${1:-.}) greaterorbrun fmt:"$name has completed a greater orb run!" stub:"$name has not completed a greater orb run")

!greaterplayer

.echo $(do ${1:-.} "")$(greathelper2 cls ${1:-.} backgrounds "greaterplayer (or at least has won every background)" playable:job $*)

!greaterplayer_old

.echo $(greathelper cls ${1:-.} backgrounds greaterplayer playable:job)

!greaterprogress

!greatprogress

!greatlairer

.echo $(do ${1:-.} "")$(!lm * playable:sp $* br.enter=lair s=crace o=-crace / @${1:-.} format:"${.}" title:"Unlaired species for $name$(if $* " ("$*")")" stub:"$name$(if $* " ("$*")") is a greatlairer!" ?:N=0)

!greatplayer

.echo $(do ${1:-.} "")$(greathelper2 crace ${1:-.} species greatplayer playable:sp $*)

!greatplayer_old

.echo $(greathelper crace ${1:-.} species greatplayer playable:sp)

!greatrace

.echo $(let (a (lower (canonicalise crace $1))) (if (= $a xx) "$1 is not a race, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable crace=$(replace ' ' '_' $a)")))

!greatracesnipe

.echo $(!lg * playable won s=crace,name x=+count(role) pfmt:"${.}:${child[0]}" fmt:"$x")

!greatrole

.echo $(let (a (lower (canonicalise role $1))) (if (= $a xx) "$1 is not a role, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable cls=$(replace ' ' '_' $a)")))

!greatrole2

.echo $(let (a (lower (canonicalise role $1))) (if (= $a xx) "$1 is not a role, sorry." $(greathelper char ${2:-.} "${a}s" "great$(replace ' ' $a)" "playable:sp playable cls=$(replace ' ' '_' $a)")))

!greatroles

.echo $(ldb-lookup greatrole[1])

!greatrolesnipe

.echo $(!lg * playable won s=role,name x=+count(crace) pfmt:"${.}:${child[0]}" fmt:"$x")

!greatsnipe

!lg * playable crace!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_race ${.})') class!=$(!lg ${1:-.} won s=char join:"|" fmt:'$(combo_to_class ${.})') $* s=char x=-max(sc) title:"The lowest high scores are" fmt:"${.} [${x}]" stub:"${1:-.} is already a great(er)player!"

!grektd

!lm * type=ghost noun=$nick s=name

!gt

.echo Go team ${*}!

!guruplayer

.echo $(if (> (!lg ${1:-.} $* won fmt:"$n" stub:"0") 0) "Listen to $(name_fixup $*), as they are a guru who has won the game." "No wins for $(name_fixup $*)")

!hands

.echo (∩ ͡° ͜ʖ ͡°)⊃━☆゚.✋🤙✌️👌🤚 $*

!haunt

.echo $nick $(=rndspelltarget $*). Insubstantial figures form in the air. The $(=randwraith) hits ${*:-something}! x$(rand 2 4) The $(=randwraith) hits ${*:-something}! x$(rand 3 6)

!helldeathrate

!lm ${1:-.} br.enter=tar|geh|coc|dis s=br o=% title:"Death rates in hell branches for $(name_fixup ${1:-.})$(argst $*)" stub:"Death rates in hell branches for $(name_fixup ${1:-.})$(argst $*)" / lg:br=$noun

!hellfire

.echo /me ends ${*:-it} in hellfire! You hear a strangely unpleasant explosion.

!hellsuccess

.echo Hell success rate for $(name_fixup $*). $(join ", " (map (fn (x) (!lm ${*:-.} !alive br.enter=$x / lg:place!=$x title:"$x" pfmt:"${.}${%}" )) (list hell geh coc tar dis)))

!highscores

!lg * ${2:-*} s=char o=-char x=max(sc) / @${1:-.} fmt:"${.}" join:" " title:"${name}'s high scores" stub:"$name has no high scores." ?:%.max(sc)=1

!hilariousdeath

!tv $(replace !tv $(replace !lg $(nth 1 $(split "]: " $(ldb "hilarious_deaths" $(if $* $* $(rand 1 (entrylength "hilarious_deaths"))))))))

!hitme

.echo $(let* (deck (cdr (split ' ' (ldb ~deck))) card (car $deck) remain (cdr $deck)) (do (ldb-set! ~deck 0 (join ' ' $remain)) $card))

!hittemtest

.echo $(let (l (length (split , (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"$l chars won first try for $name" stub:"No chars won on first try for $name"))

!hm

.echo <$(replace neil |amethyst $(replace sgrunt Grunt $(car $(sub 0 1 $(sub $(rand $(length $(nick-aliases devteamnp))) $(nick-aliases devteamnp))))))> hm

!holdeminit

.echo $(do (ldb-add "~"$nick":cards" 0 "xx xx") (ldb-add "~"$nick":money" 0 "1000"))

!hostileservant

.echo ~ $(int (* 400.0 (/ 1 (+ 20 (* $1 3.0))))) % chance of hostile {lesser, greater} servant

!hs

!lg $* max=sc

!ignominyratio

!lg ${1:-.} $* / ignominy title:"The amount of time $(name_fixup ${1:-.}) died stupidly"

!implement

!commit Implement ${*}

!infiniteloop

.echo !infiniteloop

!iood

.echo $nick $(=rndioodgesture). The orb of destruction hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!!

!ironshot

.echo $nick $(=rndspelltarget ${*:-something}). The iron shot hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!

!issue

!echo https://github.com/crawl/crawl/issues/$*

!jim

.echo I`m a Healer, not $(re-replace '^a ([AEIOU])' 'an $1' (re-replace '.*: (.*).$' 'a $1' (!rng @role)))!

!killration

!killratio

!killsby

!lg * ikiller=${*} s=name

!klownpie

!echo $(let* (n ${*:-$nick} p (elt (rand (length (hash-keys (klownpie)))) (hash-keys (klownpie))) m (replace %n $n (replace %N "$n's" (replace %s (elt (rand 3) (list "a bat" "an insubstantial wisp" "a filthy swine")) (elt $p (klownpie)))))) (!echo The Killer Klown throws a pie at $n. The Klown pie hits ${n}! ${p}! $m))

!klownpies

!lg ${1:-*} $* klownpied byklownpie title:"Klown pies for $(name_fixup ${1:-*})$(argst $*)" stub:"No klown pies for $(name_fixup ${1:-*}$(argst $*)"

!koboldina

!lg * kaux~~tornado

!lairbranches

!lm ${1:-.} br.enter=snake|swamp|shoals|spider -count:20 x=br fmt:'$noun' title:"last 20 lair branches for $(name_fixup $1)" stub:"$(name_fixup $1) has never entered a lair branch"

!lairendkills

!echo Lair end kills$(argst $*): $(vaultallkills lairendkmap lairendmapcertain "$*")

!lairgamesuntilwin

!lm ${*:-.} br.enter=lair rstart<=$(!lg ${*:-.} won 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games that reached lair before their first win.' stub:"No wins for $(name_fixup $*)."

!lairratio

.echo $(let (x (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached Lair in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")

!lairration

!lairratio

!lairrunes

!lm ${1:-.} rune=serpentine|decaying|barnacled|gossamer -count:20 x=rune fmt:'$noun' title:"last 20 lair runes for $(name_fixup $1)" stub:"$(name_fixup $1) has never found a lair rune"

!lairskills

!lm ${1:-.} $* br.end=lair !gn s=sk title:"Skills at Lair end by $(name_fixup ${1:-.}) $(argst $*)"

!lairsuccess

.echo Lair success rate for $(name_fixup $*). $(join ", " (map (fn (x) (!lm ${*:-.} !alive br.enter=$x / lg:place!=$x title:"$x" pfmt:"${.}${%}" )) (list lair spider swamp snake shoals slime)))

!lairtowins

.echo $(let (y (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") x (!lg ${1:-.} $* fmt:"${n}" stub:"0" won) player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has won after reaching Lair in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")

!lairvaultkills

!echo Lair vault kills$(argst $*): $(vaultallkills "!lairendkmap kmap!~~layout|uniq|entry" "!lairendmap map!~~layout|uniq|entry" "br=lair $*")

!last100

!won ${1:-.} $* rend>=$(!lg ${1:-.} $* fmt:"${rend}" -100)

!lasty_monkills

!lg * ikiller=(caustic_shrike|caustic_bee|caustic_wasp|entropy_weaver|salamander_stormcaller|firecaller) s=ikiller

!lcs

.echo $nick $(=rndspelltarget ${*:-something}). The crystal spear hits ${*:-something}$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!

!learntv

.echo $(exec $(re-replace ".*!(tv|lg|lm)" '!$1' $(ldb-smart-lookup $1)))

!lettest

!echo $(let (hc (lghashcounts 's=vault(kmap)' "$1")) $hc)

!lgn

!lg ${*:-.} nostalgia

!lgpath

!gamepath

!lgr

!lg $(recursive_expand_nick (name_fixup ${1:-.}) 2) $* title:"$n games"

!list_casual_races_to_do

.echo $(replace "," " " $(replace " " "_" $(!lg * playable s=crace crace!=$(replace " " "_" $(!lg * playable s=crace casualchar_tmp fmt:"${.}" join:"|")) fmt:"${.}")))

!listgoodplayers

!lg * s=name won ?: N>9

!listgreaterplayers

!lg * playable:job won s=name x=count(cls) title:"" fmt:"${.}" ?: count(cls)=$(!lg * playable:job won x=count(cls) fmt:"${x}")

!listgreatplayers

!lg * playable:sp won s=name x=count(crace) title:"" fmt:"${.}" ?: count(crace)=$(!lg * playable:sp won x=count(crace) fmt:"${x}")

!live

!lm ${1:-*} alive name!=$nick x=src title:"" fmt:'$(=time_since_milestone @${1:-*} alive name!=$nick)'

!lldrc

.echo http://lazy-life.ddo.jp:8080/rcfiles/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} lld x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

!lmpath

.echo $(let (path (lmpath_query $*)) (if (= (length $path) 0) "No milestones found." (format_autocompress $path (list gamepath_format_normal gamepath_format_compressed1 gamepath_format_compressed2 gamepath_format_compressed3 gamepath_format_compressed4))))

!lmpath.query

.echo $(let (gid (!lm $* fmt:'$game_key')) (!lm * gid=$gid type=br.enter|rune|orb !portal s=id,turn,type,noun pfmt:'${.}:${child}' join:'/' stub:''))

!lmr

!lm $(recursive_expand_nick (name_fixup ${1:-.}) 2) $* title:"$n milestones"

!locate

!lm ${*:-.} alive fmt:"${*:-${user}} was last seen on \$(upper $src) ($name, L$xl $char of ${god:-No God})." stub:"Failed to locate ${*:-${user}}."

!locateall

.echo $(or $(join " || " $(split " | ^" $(sub 1 $(=locateall.raw $*)))) "Failed to locate $(name_fixup "$*").")

!locateallall

.echo $(or $(join " || " $(split " | ^" $(sub 1 $(=locateall.rawall $*)))) "Failed to locate $(name_fixup "$*").")

!location

!locate

!lodjgames

!lm * lo|dj alive_all !cszo !ckr !rhf $* x=cdist(gid) fmt:"${.}: ${x[0]}" pfmt:"${.}: ($child)" title:"Ongoing LO & Dj games" s=crace,src

!log

!lg ${*:-.} -log

!log10

!lg xyz x=log($*) fmt:"${x[0]}"

!lol

!echo lol

!losingstreak

!won zermako

!lossorder

.echo $(let (player (name_fixup ${1:-.})) (!lg ${1:-.} $* !won s=end,char title:"Losses by $player $(argst $*) in order" pfmt:"${child}" stub:"No losses for $player $(argst $*)."))

!lowturns

!lg * playable $* won s=char o=min(turn) x=min(turn) title:"Go win these quickly!" fmt:"${.} [${x}]"

!lst

.echo $(replace .txt .lst $(!log ${*:-.}))

!magicd

.echo $nick $(=rndspelltarget $*). The magic dart hits ${*:-something}!

!magicschoolswon

.echo Magic schools at >15 skill won for $(name_fixup $*). $(join ", " (map (fn (x) (!lg ${*:-.} won / fifteenskills~~$x title:"$x")) (list air_magic charms conjurations earth_magic fire_magic hexes ice_magic necromancy poison_magic summonings translocations transmutations)))

!makewords

.echo $(map (fn (p) (.echo ${1}${p})) (sort (map (fn (c) (replace "??" (!ftw $c))) (split "|" (!lg * playable current trunk s=cls join:"|" fmt:"${.}")))))

!mantis

!bug

!map

.echo $(replace .txt .map $(!log $*))

!mapkills

!lg ${2:-*} !boring !won (( map=~$(replace . $nick ${1:-${nick}}) || kmap=~$(replace . $nick ${1:-${nick}}))) $*

!mapmakerkills

!lg ${1:-*} kmapmaker $* bykmapmaker title:"Kills of $(name_fixup ${1:-*})$(argst $*) by map maker" stub:"No kills of $(name_fixup ${1:-*})$(argst $*) for known map makers"

!massages

.echo Sorry, but I don't know you that well, $user.

!megacats

!lg ${1:-.} won fe-- $* s=char join:"|" fmt:"${n_x}😼" stub:"😿" title:"Cats won for $(name_fixup $1)"

!meleeweaponswon

.echo Melee weapons at >15 skill won for $(name_fixup $1). $(join ", " (map (fn (x) (!lg ${1:-.} won $* / fifsk=$x title:"$x")) (list long_blades short_blades axes maces polearms staves unarmed)))

!mesages

!messages

!message

.echo You probably meant $(if $* "!tell, or possibly !messages" "!messages, or possibly !tell").$(ignore $*)

!mfcwc

!kw mfcwcall ${1}|$(=kw mfcwcall)

!mfcwcnext

.echo $(replace char= '' (!rg * playable !mfcwcall x=char title:"" fmt:"${x}"))

!miekminimalwin

!lg ${*:-.} won gid!=$(!lm ${*:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"")|$(!lm ${*:-.} br.enter=vaults|elf won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to abyss, elf and vaults for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to the abyss, elf, or vaults."

!miscaster

.echo $(!lg ${1:-.} kaux~~miscasting s=kaux title:"Miscasts that have killed ${name}" pfmt:"${child}" stub:"${name} has never been killed by a miscast.")

!money

.echo $(nth 1 (split "]:" (ldb "~"$nick":money")))

!motto

.echo $(apply concat (map (fn (w) (upper (sub 0 1 $w))) $*))! $(map (fn (w) (concat (capitalise (sub 0 1 $w)) - (capitalise $w) !)) $*) $(map capitalise $*)! $(map upper $*)!

!motto.first

.echo $(apply concat (map (fn (w) (upper (sub 0 1 $w))) $*))

!mr

.echo $(let* (a (hash sp 7 fe 6 dd 6 na 5 mu 5 vs 5 he 4 vp 4 de 4 fo 4 og 4 dg 4) b $(elt $1 $a)) $(if $2 "$(* $(with-nvl 3 $b) $2) MR at level $2" "$(with-nvl 3 $b) MR per level"))

!murdertv

!lg * !boring !win !Pan !Dis:7 !Geh:7 !Tar:7 ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn (( killer!=tentacled_monstrosity|greater_naga|naga_warrior || ktyp!=mon )) vault(kmap)|vault(map)~~evilmike|_mu$|_due|dpeg|minmay|hangedman|lemuel|^st_|_st$|^grunt xl>=15 x=map,kmap $* stub:"No murders found." min=ntv -tv

!mute

.echo Muting ${1:-everyone} for ${2:-forever}.

!nameapply

.echo $(let (y (fn (p x) (map (fn (n) (exec (replace "@n" "$n" "$x"))) (split "|" (replace "@" $p))))) (y $1 "${*}"))

!nametest

.echo $(name_fixup $*)

!nchoice

.echo $(let (combo (if (is_int ${1:--1}) (nth (int ${1:--1}) $(split | (replace " => " | (!kw nchoice)))) $1)) (let (wins (!lg * t-games won char=$combo fmt:"$n" stub:"0")) (if (and (> (int $wins) 0) (= ${1:-x} x)) (=nchoice.new) (concat (canonicalise char $combo) ": $wins $(plural win (int $wins)) || " (or (=lastnchoice.combostatus $combo) "No $combo games in progress.")))))

!nchoice-credit

.echo $(map (fn (x) (concat (nth 1 $x) "(" (nth 0 $x) "),")) (transpose (list (sub 0 -1 (split | (=kw nchoice))) (split " " (!nchoice-credit.helper)))))

!nchoice-credit.helper

.echo $(map (fn (c) (!lg * t won $c 1 fmt:"$name" stub:"")) (split | (=kw nchoice)))

!nchoice-times

.echo $(map (fn (x) (concat (nth 0 $x) " " (nth 1 $x) ",")) (transpose (list (sub 0 -1 (split | (=kw ${2:-nchoice}))) (split " " (!nchoice-times.helper $1 $2))))) $(nth -1 (split | (=kw ${2:-nchoice}))) $(fduration (* 86400 (- (time) (stamptime (!lg * ${1:-t} won $(nth -2 (split | (=kw ${2:-nchoice}))) 1 fmt:"$rend")))))(+)

!nchoice-times.helper

.echo $(map (fn (d) (fduration (* 86400 (- (stamptime (nth 1 $d)) (stamptime (nth 0 $d)))))) (pairs (cons (!lg * ${1:-t} 1 fmt:"$rend") (map (fn (c) (!lg * ${1:-t} won $c 1 fmt:"$rend" stub:"")) (sub 0 -1 (split | (=kw ${2:-nchoice})))))))

!nchoice.likely

!lg * won playable race!=$(nchoice_norep_by combo_to_race) class!=$(nchoice_norep_by combo_to_class) char!=$(!lg * won t s=char fmt:"${.}" join:"|" stub:"xxxx") s=char o=-char format:"${.}" join:" " title:"Likely next Nemelex' Choices" stub:"none" ?:N<=19

!nchoice.possible

!lg * won playable char!=$(!lg * won t s=char fmt:"${.}" join:"|" stub:"xxxx") s=char o=-char format:"${.}" join:" " title:"Possible next Nemelex' Choices" stub:"none" ?:N<=10

!nchoiceclasscounts

!lg * t nchoice $* s=regexp_replace(char, "^..", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Nemelex Choice class combo counts$(argst $*)"

!nchoiceleft

!lg * nchoice t s=char o=-N fmt:'${.} ($(- 9 (if (= "" $n_x) 0 (replace x $n_x))) left)' title:"Available Nemelex Choice combos$(argst $*)" stub:"No available Nemelex Choice combos$(argst $*)" / won ?: N<9

!nchoices

!lg * nchoice t s=char / won fmt:"${n_x}${.}" ?:N<8

!nchoicesclasscounts

!lg * recent nem-eligible s=cls x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible class combo counts for Nemelex Choice"

!nchoicespeciescounts

!lg * t nchoice $* s=regexp_replace(char, "..$", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Nemelex Choice species combo counts$(argst $*)"

!nem-avoid-prob

.echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) fnr (apply nem-remaining-filtered || (split " " $*)) ids (subset-ids $nr $fnr)) (.echo Chance that next nchoice is not$(argst $*) is $(percent (apply + (map (fn (j) (elt $j $nw)) $ids)) $tw): $(map (fn (i) (sprintf "$(elt $i $nr)(%s)" (percent (elt $i $nw) $tw))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) $ids)))))

!nem-avoid-prob-old

.echo $(let* (cl (nem-remaining) fcl (apply nem-remaining-filtered || (split " " $*)) tw (nem-total-weight $cl) mw (nem-max-weight $cl) tw2 (nem-total-weight $fcl) mw2 (nem-max-weight $fcl)) (.echo Chance that next nchoice is not$(argst $*): $(sprintf "%2.2f%%" (* 100 (/ (float $tw2) $tw) (/ (float $mw) $mw2)))))

!nem-chances

!echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) num (length $nr)) (.echo Remaining eligible Nemelex Choices (chance): $(map (fn (i) (sprintf "$(elt $i $nr)(%2.2f%%)" (* 100 (/ (float (elt $i $nw)) $tw)))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) (range 0 (- $num 1)))))))

!nem-chances-filtered

.echo $(let* (nc (nem-chosen) nr (nem-remaining) nw (nem-weights $nc $nr) tw (apply ${+} $nw) fnr (apply nem-remaining-filtered || (split " " $*)) ids (subset-ids $nr $fnr)) (.echo possible nchoices$(argst $*): $(map (fn (i) (sprintf "$(elt $i $nr)(%2.2f%%)" (* 100 (/ (float (elt $i $nw)) $tw)))) (reverse (sort (fn (x y) (<=> (elt $x $nw) (elt $y $nw))) $ids)))))

!nem-eligible-remaining

!echo $(nem-remaining)

!nemeligibleclasscounts

!lg * recent nem-eligible $* s=regexp_replace(char, "^..", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible Nemelex Choice class combo counts$(argst $*)"

!nemeligiblespeciescounts

!lg * recent nem-eligible $* s=regexp_replace(char, "..$", "") x=+cdist(char) fmt:"${.}: $x[0]" title:"Eligible Nemelex Choice species combo counts$(argst $*)"

!nerf

.echo /me nerfs ${*}!!!

!neutralwinner

.echo $(let (player $(name_fixup ${1:-.})) (let (egod $(!lg * !buggygods won god!= !goodgod !evilgod !experimental s=god / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0) erace $(!lg * !buggygods won playable !evilrace !experimental s=crace / @$player title:"" fmt:"${.}" stub:"" ?:%=0.0)) (if (and (= $egod "") (= $erace "")) "$player has won all neutral gods and races" "Unwon neutral gods and races $player: $egod, $erace")))

!newac

.echo You get $(/ (int (/ (* 100.0 $1) 22.0)) 100.0) extra AC for each level of Armour skill if you have $1 base AC.

!newelywon

!lg * won ely rstart>20150103 s=name

!newestwon

!lg * won playable s=char x=max(end) o=max(end) fmt:"${.}" join:" " title:"Most recently won combos"

!newhell

!lg ${1:-*} newhell $* tar|coc|dis|geh title:"New hell deaths for $(name_fixup ${1:-*})$(argst $*)" stub:"No new hell deaths for $(name_fixup ${1:-*})$(argst $*)"

!newhellratio

!lm ${1:-*} newhell br.enter=tar|coc|dis|geh urune>=5 s=br o=% title:"Death rates in new hells for $(name_fixup ${1:-*})$(argst $*)" stub:"Death rates in new hells for $(name_fixup ${1:-*})$(argst $*)" / lg:br=$noun

!newmiscastdeath

!lg * newmiscasts ((ktype="wild magic" || killer="nameless horror")) $*

!newnext

.echo $(let* (p ${1:-${user}} c (last_win $p) needcombo (or (= 0 (entrylength ~${p}_next)) (= $c (entry ~${p}_next 1)))) (if (= $c XXXX) "Get your first win first, ${p}!" (if (and (= $channel msg) $needcombo) "Run this command in a public IRC channel to choose your next combo." "The RNG declares that $p shall win $(if $needcombo (=newnext $p) $c) next.")))

!newplayers

.echo $(- (!lg * end>$(- (time) ${1:-1}) x=cdist(name) fmt:"$x" stub:"0") (!lg * name=$(!lg * end>$(- (time) ${1:-1}) s=name fmt:"${.}" join:"|") end<$(- (time) ${1:-1}) x=cdist(name) fmt:"$x" stub:"0"))

!newplayerstoday

!newplayers 1

!newwon

=oldwon.nodefs ${1:-$(=oldwon.v)} ${2:-28}

!next-pref-append

.echo $(no_pm (do (if (= 0 (entrylength ~${user}_pref)) (ldb-add ~${user}_pref 1 "$*") (ldb-set! ~${user}_pref 1 "$(entry ~${user}_pref 1) $*")) "New !next preferences for ${user}: $(entry ~${user}_pref 1)."))$(ignore (concat $*))

!next2

.echo Another satisfied customer, next!

!nextcsdc

!echo The next combo for CSDC will be $(!a-char)

!nickel

.echo Here's a nickel, kid. Get yourself a better ${*:-computer}.

!nodiff

!lg . won / nodiff

!nonviolentwinning

!lg * nonviolentgod / won

!notthebees

!lg $* !won recentish notitle / thebees o=% ?: N>0

!nuke

!lg * -tv:nuke:channel=${1:-FooTV}

!numbersessions

!echo $(length (split (re-replace '.*http.+/' (!lg ${1:-.} $* -ttyrec))))

!nwhere

.echo $(let (combo (if (is_int ${1:--1}) (nth (int ${1:--1}) $(split | (replace " => " | (!kw nchoice)))) $1)) (let (wins (!lg * t won char=$combo fmt:"$n" stub:"0")) (if (and (> (int $wins) 0) (= ${1:-x} x)) (=nchoice.new) (concat (canonicalise char $combo) ": $wins $(plural win (int $wins)) || " (or (=lastnchoice.combostatus2 $combo) "No $combo games in progress.")))))

!nwon

=nwon.nodefs ${1:-$(=nwon.n)} ${2:-12} $*

!octaneratio

!lg ${1:-.} $* defstats won / octane title:"Times $(name_fixup ${1:-.}) has won octane" stub:"No octane wins for $(name_fixup ${1:-.})"

!oldest

.echo $(sub 0 4 $(!lg * $* won playableme char!=$(!lm * alive time>${now()-interval('7d')} playableme s=char fmt:"${.}" join:"|") s=char x=max(rend) o=-max(rend) fmt:"${.}" join:" " notitle))

!oldestwon

!lg * won playable s=char x=max(end) o=-max(end) fmt:"${.}" join:" " title:"Least recently won combos"

!oldplayer

.echo $(if (> (!lg ${1:-.} $* won x=count(cv) fmt:"${x}" stub:"0") (* (!lg * won x=count(cv) fmt:"${x}") 0.35)) (name_fixup $1)" is ancient!" (name_fixup $1)" is a newbie!")

!oldtile

.echo $(replace master "stone_soup-$1" (replace github.com raw.githubusercontent.com (replace blob/ (!source $(replace ' ' _ "$(ignore $1)$*").png))))

!oldtilegit

.echo $(replace master "stone_soup-$1" (!source $(replace ' ' _ "$(ignore $1)$*").png))

!oldunwon

.echo $(let (x (=currentgames $(=0won.list) ${1:-12})) $(if (= $x x) "All combos have been won at least once!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) won zero times: $x"))

!oldwon

!nwon

!oneandsplat

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") splat s=char title:"Chars splat first try for $name" stub:"No chars splat on first try for $name"

!oneandwonchar

!rg * playable won char!=$(!lg ${1:-.} s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has played every char."

!oneandwonclass

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=class x=min(rstart) fmt:"${x[0]}" join:"|") won s=class title:"classes won first try for $name" stub:"No classes won on first try for $name"

!oneandwongods

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won first try for $name" stub:"No gods won on first try for $name"

!oneandwonold

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"Chars won first try for $name" stub:"No chars won on first try for $name"

!oneandwonrace

!oneandwonspecies $*

!oneandwonrole

!oneandwonclass $*

!oneandwonspecies

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* s=crace x=min(rstart) fmt:"${x[0]}" join:"|") won s=crace title:"Races won first try for $name" stub:"No species won on first try for $name"

!ood

!iood $*

!ootcdeathrate

!lg ootc !won s=name / $1 o=% ?: N>0

!ootcw

!locateall ootc 0.28 t

!ootcwins

!lg ootc t 0.28 won s=god,char

!optimalchar

.echo The RNG chooses: MiBe

!orbdeath

!lg * $(!lm ${1:-.} $* orb died x=game_key fmt:"${x}" stub:"0")

!orbdeathtv

!lg * $(!lm ${1:-.} $* orb died x=game_key fmt:"${x}" stub:"0") -tv

!orbmilestone

!lm ${*:-.} (($(!lm ${1:-.} $2 orb s=gid x=max(rtime) fmt:'((gid=${.} rtime>${x[0]}))' join:' || ' title:'')))

!orbruntomb

=orbruntomb.helper $(name_fixup "${1:-.}") $*

!orbrunzig

.echo $(!lm ${1:-.} $* orb lg:zigscompleted>${zigscompleted} s=char stub:"$(name_fixup ${1:-.}) has not done an orbrunzig, boo!" title:"$(name_fixup ${1:-.}) has completed an orbrunzig! Characters")

!orbrunzigtest

.echo $(!lm ${1:-.} $* orb lg:zigscompleted>${zigscompleted} s=name,char stub:"${name} has not done an orbrunzig, boo!" title:"${name} has completed an orbrunzig! Characters")

!orbsplattv

!lm * orb ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) !won !blacklist $* recent min=lg:ntv -game -tv

!orbstarve

!lg ${*:-.} gid=$(!lm ${*:-.} orb gid=$(!lg ${*:-.} ktyp=starvation s=gid fmt:"${.}" join:"|" stub:"") s=gid fmt:"${.}" join:"|" stub:"") stub:"No orb starvation deaths found for $*"

!orbtv

!lg * gid=$(!lm * orb died src!=cwz title:'' fmt:'$game_key' $*) -tv:<4

!orcendkills

!lg * orc-end $* s=regexp_replace(kmap, "grunt.*community.*", "grunt_orc_community_town_hall")% title:"Orc End kills ($*)"

!outtest

.echo $(map (fn (n) (* $n $n)) $(range 1 5))

!pacify

.echo ${1:-Everyone} turns neutral. $nick feels somewhat more hungry.

!parse

.echo $(if (str-find? mopl $*) "$nick sends deaths yaks. mopl waves the hand and enslaves them. The deaths yaks turn and trample on $nick" "$nick sends death yaks to $*")

!perfect

!lg ${1:-.} s=char / won fmt:"${.}" title:"$name has a 100% winrate with" join:" " stub:"Hi $name." o=-char ?:%=1

!petrify

.echo $nick $(=rndspelltarget ${*:-something}). ${*:-Something} stops moving altogether!

!pie

.echo /me throws a pie. The pie blinds ${*:-it}!

!pietytracker

!lg ${1:-.} x=avg(piety)

!ping

.echo pong

!pizza

.echo /me cooks up a $(sub 0 1 $(sub $(rand $(length $(split & (=pizzaquantity)))) $(split & $(=pizzaquantity)))) of $(sub 0 1 $(sub $(rand $(length $(split & $(=pizzalist)))) $(split & $(=pizzalist)))) pizza for ${*:-${nick}}$(if $* ", courtesy of $nick").

!place

.echo VETO : $channel: Had 1 zone, now has $(+ 2 (rand 3)); broken by ${*:-$nick}.

!playing

.echo $(!lm * $* alive s=name o=-name fmt:"${.}")

!pmtest

.echo $(no_pm xxx)$(ignore (concat $*))

!poly6test

.echo $(let (x $(rand 7 8)) $(let (y $(length $(split & $(=hd($x)polylist))))) $nick zaps a wand. $* evaporates and reforms as a $(nth $(rand ($y)) $(split & $(=hd($x)polylist))

!polymorph

.echo $nick zaps a wand. $1 evaporates and reforms $(re-replace '^as a ([AEIOUaeiou])' 'as an $1' "as a ${*:-$(nth (rand 34) (split '|' (if (rand 2) (=poly1) (=poly2))))}!")

!polymorph2

.echo $nick zaps a wand. $1 evaporates and reforms $(re-replace '^as a ([AEIOUaeiou])' 'as an $1' "as a ${*:-$(nth (rand 34) (split '|' (if (rand 2) (=poly1) (=poly2))))} !")

!polytheist

.echo $(greathelper god ${1:-.} gods polytheist "won !experimental !pakellas")

!polythiest

!polytheist $*

!popular

!lg * ${*:-recent} playable s=char x=-${max((now()-end))/sum(dur)} fmt:"${.}" join:" " title:""

!portalsuccess

.echo Portal success rate for $(name_fixup $*). $(join ", " (map (fn (x) (!lm ${*:-.} !alive br.enter=$x / lg:place!=$x title:"$x" pfmt:"${.}${%}" )) (list icecv volcano lab bailey sewer ossuary wizlab desolation)))

!pot

.echo $(ldb-entry ~holdem:pot 0)

!power

.echo $(if (< $(length $*) 10) $(nth $(length $*) $(split , 0,10,15,25,35,50,70,100,150,200)) impossible)

!pr

.echo https://github.com/crawl/crawl/pull/$1

!praise

.echo Did you mean: !blame $*

!progress

.echo $(name_fixup ${1:-.}) progress: $(let (num (!lg ${1:-.} $* playable won x=count(char) fmt:"${x[0]}") den (!lg * playable won x=count(char) fmt:"${x[0]}")) $num"/"$den" ("$(/ (* 100 $num) $den)"%)")

!pullrequest

.echo https://github.com/crawl/crawl/pull/$*

!punch

.echo $nick $(nth $(rand 4) $(split '|' "pounds $* into fine dust|pulverises $*|squashes $* like a bug|pummels $* like a punching bag"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!

!punished

.echo $1 pun-ishes $nick, causing immense pain!!!

!pvp

.echo $(let* (a (name_fixup ${1:-.}) b (name_fixup ${2:-.}) bkills (!lg $a ikiller~~"$b\'s ghost" fmt:"$n" stub:"0") akills (!lg $b ikiller~~"$a\'s ghost" fmt:"$n" stub:"0")) "$a vs $b: "$(if (> $akills $bkills) "$a wins! (${akills}-${bkills})" (if (> $bkills $akills) "$b wins! (${bkills}-${akills})" (if (= ${akills} "0") "$a and $b never fought." "Tie! (${akills} all)"))))

!pyrrhictv

!lm * unique|rune|orb|ghost ((tiles || !@hugeterm)) !won ${lg:turn-turn}<=3 -game -tv $* min=${lg:ntv} xl>8

!racecannchoice

!lg * current nem-eligible $1 s=char o=-. fmt:"${.}" title:"Available combos for Nemelex Choice with $1"

!racecanoneandwon

!speciescanoneandwon $*

!racehs

!specieshs

!raceoneandwoncounts

!lg ${1:-.} $* char=$(join '|' (split ', ' (re-replace '^[^:]+: ' '' (!oneandwon ${1:-.} $*)))) s=crace won title:"Race oneandwon counts for $(name_fixup $1)$(argst $*)" stub:"No oneandwons for $(name_fixup $1)$(argst $*)"

!racesnipe

!lg * playable $* s=crace x=-max(sc) title:"The lowest race high scores are" fmt:"${.} [${x}]"

!raceweapon%

!lg greaterplayers cv>0.16 urune>0 urune<4 crace=$1 / fifsk~~$2

!raceworth

.echo $(let (T (!lg * ${2:-t} won fmt:"${n}") S (!lg * crace=$1 ${2:-t} won fmt:"${n}")) (/ (* 2 (+ 52 $T)) (+ 2 $S)))

!randchar

!rng $(join ' ' (split '|' $(=kw playable)))

!randgod

!echo $(randelem (split | (!lg * won god!= god!=wudzu|iashol|wulndraste|pakellas|igni_ipthes s=god $(ignore $1)$* fmt:"${.}" join:"|" title:"" / @${1:-.} ?: N=0)))

!randhat

.echo $(replace _ ' ' (ldb (randnth (split & (=randhat.list)))))

!randnwon

.echo $(randnth (split ' ' (=currentgames.unplayed $(=nwon.list ${1:-$(=nwon.n)}) ${2:-12})))

!randoldwon

.echo $(randnth (split ' ' (=currentgames.unplayed $(=oldwon.list ${1:-$(=oldwon.v)}) ${2:-12})))

!random2

.echo $(rand (!calc $*))

!randomgame

!lm * alive !cdo -random $* time>${now()-interval('10minute')} x=src fmt:'$(lookup ${x[0]} (watchhash))${name}'

!randomnewbie

!echo $(let* (pl (apply hash (split | (!lm * alive !cdo $* time>${now()-interval('10minute')} x=max(src) s=name join:'|' fmt:'${.}|$x[0]'))) npl (split | (!lg $(join | (hash-keys $pl)) fmt:'${.}' join:'|' s=name won ?: N<4)) sel (elt (rand (length $npl)) $npl)) (lookup (elt $sel $pl) (watchhash))$sel)

!randomrip

.echo $(let* (b $(nick-aliases irc)) $(!rip $(randelem $(filter $(fn (x) (= -1 $(str-find "Failed to locate" $(!locateall $x)))) $b))))

!randomriptest

.echo $(let* (a $(nick-aliases xom)) $(!rip $(randelem $a)))

!randomunwon

.echo $(let (charlist (split (!lg * playable s=char char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") stub:""))) (if (= 0 (length $charlist)) "All combos have been won." (replace "," (elt (rand (length $charlist)) $charlist))))

!randomwinrateplayer

!randomgame name=$(!lg * fmt:'${.}' join:"|" s=name / win ?: den.N >5 %>0.1) tiles

!randskill

.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))

!randskillname

.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))

!randskillrange

.echo $(elt $(rand 3) $(split | "sklev>=15 sklev<21|sklev>=21 sklev<27|sklev=27"))

!randskilltest

.echo $(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth"))

!randskilltest2

.echo $(!lg * fmt:'$title' sklev>=$(+ (rand 13) 15) sk=$(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth")))

!randtitlehelp

.echo $(!lg * fmt:'$title' $(elt $(rand 3) $(split | "sklev>=15 sklev<21|sklev>=21 sklev<27|sklev=27")) sk=$(elt $(rand 32) $(split | "fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth")))

!rangedweaponswon

.echo Ranged weapons at >15 skill won for $(name_fixup $*). $(join ", " (map (fn (x) (!lg ${*:-.} won / fifteenskills~~$x title:"$x")) (list bows crossbows throwing slings)))

!rank

!lg * id=$(if (= $(length $*) 0) $(!lg . x=id fmt:'$x[0]') $*) x=score,src,cv,race,cls,char fmt:'$(!testfoo2) $(!testfoo3)'

!rc

.echo http://crawl.akrasiac.org/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cao x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

!read

!readall

!readall

.echo $(let (x (ldb-canonical-term $*)) (join " / " $(map (fn (n) $(entry $x $n)) $(range 1 $(entrylength $x)))))

!readall-l

.echo $(let (x (ldb-canonical-term $*)) (join " / " $(map (fn (n) $(concat "[" $n "] " $(entry $x $n))) $(range 1 $(entrylength $x)))))

!readend

.echo $(trunc_end 400 $(join $(concat " " ${*:-/} " ") $(map (fn (n) $(entry $1 $n)) $(reverse $(range 1 $(entrylength $1))))))

!readmess

.echo $(join " / " (filter (fn (z) (> (length $z) 0)) (map (fn (x) (let (m $(!messages)) (if (= $m "No messages for ${nick}.") "" (join ") " (cdr (split ") " $m)))))) (range 1 ${1:-27}))))

!reallygoodchar

.echo MiBe

!realtimevaults5

.echo $(name_fixup ${1:-.})'s fastest realtime Vaults:5 enter to silver rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=silver s=gid o=gid x=max(dur) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=silver s=gid o=gid x=max(dur) join:"|" fmt:"gid=${.} dur<=${x[0]}"))"))") br.end=vaults s=gid o=gid

!rebase

.echo $nick rebases ${*}. $(capitalise ${*}) is banished to the reflog!

!recentfirstwinspecies

!lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg * name=$(!lg * won s=name fmt:"${.}" join:"|" / !recent ?: N=0) won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"Recent first win species"

!recentlywon

!recent

!recentwon

.echo $(let (name ${1:-.} num ${2:-1}) $(!won $name $(- (!lg $name won fmt:"$n") $num)))

!recur

.echo $(let* (y (fn (c n x) (if (<= $n 0) $x (y $c (- $n 1) (exec "$c $x"))))) (y $1 $2 "${*}"))

!reeces

.echo Ru <:plogchamp:823530252075794433>

!refactor

.echo $nick refactors ${1:-$nick} right out of existence!

!remove

!commit Remove ${*}

!revert

!commit Revert "${*}"

!rhalf

!rng $(randelem (list @race @role))

!rip

.echo $(lg_name ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl=$lm[2] br=$lm[4] lvl>=$lm[5] fmt:"$vmsg|$place|$sc|$turn|$dur"))) (ripformat $lm[0] $lm[1] $lm[2] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))

!ripinpieces

.echo $(name_fixup ${1:-.}) $(let* (char (=rip.char $1 $*) title (=rip.title $1 $*) xl (=rip.xl $1 $*) god (=rip.god $1 $*) vmsg (=rip.vmsg $xl $*) place (=rip.place $xl $*) points (=rip.points $xl $*) turns (=rip.turns $xl $*) time (=rip.time $xl $*)) "the $title (L$xl $char), worshipper of $god, $vmsg on $place, with $points points after $turns turns and $time.")

!ripmix

.echo $(name_fixup ${1:-.}) $(let* (char (=rip.char $1 $*) title (=rip.title $1 $*) xl (=rip.xl $1 $*) god (=rip.god $1 $*) vmsg (=rip.vmsg $xl $*) place (=rip.place $xl $*) points (=rip.points $xl $*) turns (=rip.turns $xl $*) time (=rip.time $xl $*)) (ripformat $char $title $xl $god $vmsg $place $points $turns $time))

!ripsane

.echo $(name_fixup ${1:-.}) $(let* (lm (split | (=rip.lm $1 $*)) game (split | (!rg * $(=rip.opts) xl=$lm[2] br=$lm[4] lvl>=$lm[5] fmt:"$vmsg|$place|$sc|$turn|$dur"))) (ripformat $lm[0] $lm[1] $lm[2] $lm[3] $game[0] $game[1] $game[2] $game[3] $game[4]))

!rlol

!send $1 lol

!rng+

.echo The RNG chooses: Xom.

!rnggod

!rng @god

!rofl_testcmd

.echo $(apply rofl_testfn $1 $*)

!rolecanoneandwon

!classcanoneandwon $*

!rolesnipe

!lg * playable $* s=role x=-max(sc) title:"The lowest role high scores are" fmt:"${.} [${x}]"

!roleworth

.echo $(let (T (!lg * ${2:-t} won fmt:"${n}") B (!lg * role=$1 ${2:-t} won fmt:"${n}")) (/ (+ 48 $T) (+ 2 $B)))

!rrtest2

.echo $(let (b $(randelem $(nick-aliases xom))) $(let (a $(!locateall $b)) $(if (= 0 $(str-find "Failed to locate" $a)) "$b can't be found" "performing !rip on $b")))

!ru

.echo Reeces <:plogchamp:823530252075794433>

!runedeathrate

.echo $(let* (toHash (fn (lg) (foldr xldeath-helper4 (hash) (split ", " $lg))) rL (toHash (!lg ${1:-.} !won s=urune notitle fmt:"${.} ${n_x}" $*)) rW (toHash (!lg ${1:-.} won s=urune notitle fmt:"${.} ${n_x}" $*)) total (runedeath-helper3 16 $rW $rL) result (fn (r) (sprintf "%s: %2.2f%%" $r (* 100 (/ (float (xldeath-helper $r $rL)) (- $total (runedeath-helper3 $r $rW $rL))))))) (map result (range 0 15)))

!runeorder

!order rune $*

!runes

.echo $(let (gid (!lm ${1:-.} $* alive x=gid fmt:"${x[0]}")) (!lm ${1:-.} gid=$gid rune s=noun x=+max(turns) fmt:"${.}"))

!runetowin

.echo $(try "$(name_fixup $*) had $(- (!lg ${*:-.} rstart<$(!lg ${*:-.} won 1 fmt:"$end") fmt:"$n") (!lg ${*:-.} rstart<$(!lg ${*:-.} gid=$(!lm ${*:-.} urune>0 1 x=gid fmt:"$x[0]") fmt:"$end") fmt:"$n")) games between their first rune and first win." "No wins for $(name_fixup $*).")

!rypotest

.echo $(!lg * cv=${1}|${1}-a s=cv,regexp_replace(rend, "^(\d\d\d\d\d\d).*", "\1") o=-. x=sum(dur) fmt:'${.} $(/ (pduration ${x}) 86400)' ?: sum(dur)>86400)

!sacprop

.echo $(let (n (!lm * ru sacrifice=$1 $* x=count(gid) fmt:"${x[0]}") d (!lg * ru $* fmt:"$n")) "$(/ (* 100 $n) $d)% ($n/$d) sacrificed $1$(if $* " ($*)")")

!sacrifice

.echo $(if (str-find? mopl $*) "$nick raises a huge knife to sacrifice mopl... $nick slips on a banana peel and bleed himself white" "/me sacrifices ${*:-$nick}!")

!sacrifices

.echo $(let (player (name_fixup ${1:-.}) gid (!lm ${1:-.} $* sacrifice x=gid fmt:"${x[0]}" stub:"")) (!lm ${1:-.} gid=$gid sacrifice s=turns,noun x=-max(turns) title:"Last sacrifices made by $player" pfmt:"${child}" stub:"$player has never made a Ru sacrifice."))

!saltv

!tv * salt

!sbranchratio

!lm ${1:-*} $(argst $*) br.enter=shoals|snake|spider|swamp s=br o=% title:"Death rates in 1st rune S branches for $(name_fixup ${1:-*})$(argst $*)" stub:"Current death rates in S branches for $(name_fixup ${1:-*})$(argst $*)" / lg:br=$noun lg:urune<=1

!scorepage

!scoringlink

!scoringlink

.echo http://crawl.akrasiac.org/scoring/players/$(lower (nth 0 (split ' ' (nick-aliases (name_fixup ${1:-.})))))

!secrip

!rip $(replace ' ' '' $*)

!sent

!send

!sequelhelp

!help $*

!sequellhelp

!help $*

!serverstats

!lg * s=src x=cdist(name) o=cdist(name)

!sh

.echo $(/ (int (+ 0.5 (* 100 (/ 20.0 $1)))) 100.0) Shield skill per 1 SH for $1 base SH

!shafttv

!lm * shaft ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) !won $* ${lg:turn-turn}<=12 min=${lg:ntv} xl>8 -game -tv

!shatter

.echo $nick $(=rndspellgesture). $channel rumbles around ${nick}! ${*:-Everyone} shudders from the earth-shattering force.

!shatterdamage

!lg ${1:-*} ckaux=by_shatter ((status=statue-form || status!=statue-form)) s=regexp_replace(status, '^.*(statue-form).*|.*', '\1') x=avg(sdam) title:"Average damage taken from shatter" fmt:'$(if (= (length ${.}) 0) "not statue-form" "statue-form"): ${x}' $*

!shoalsendkills

!lg ${1:-*} $* shoalsendkmap s=regexp_replace(regexp_replace(vault(kmap), "_rune", ""), "_decoy", "")% title:"Shoals End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Shoals End kills for $(name_fixup ${1:-*})$(argst $*)"

!shrikedeath

!lg * killer=~caustic

!shrikekills

!lg * killer=~caustic

!shriketv

!lg * killer=~caustic -tv:<2:channel=shriketv

!shrug

.echo ¯\_(ツ)_/¯

!shuffle

.echo $(do $(ldb-set! ~deck 0 (join ' ' (shuffle (list as 2s 3s 4s 5s 6s 7s 8s 9s 10s Js Qs Ks Ac 2c 3c 4c 5c 6c 7c 8c 9c 10c Jc Qc Kc Ah 2h 3h 4h 5h 6h 7h 8h 9h 10h Jh Qh Kh Ad 2d 3d 4d 5d 6d 7d 8d 9d 10d Jd Qd Kd)))) "deck shuffled")

!silence

.echo $nick $(=rndspellgesture). A profound silence engulfs ${*:-$nick}.

!singularity

.echo $nick $(=rndspellgesture). Space collapses on itself with a satisfying crunch. The singularity violently warps ${*:-something}!

!skills

!lairskills

!slash

.echo $nick $(nth $(rand 6) $(split '|' "opens $* like a pillowcase|carves $* like a ham|slices $* like a ripe choko|chops $* into pieces|cuts $* into ribbons|dices $* like an onion"))$(nth $(rand 3) $(split '|' '!|!!|!!!'))!!

!slice

!slash $*

!slimeendkills

!echo Slime end kills$(argst $*): $(vaultallkills slimeendkmap slimeendmap "$*")

!slimy

.echo $(let (runecount $(!lm * rune=slimy fmt:"$n") branchcount $(!lm * br.enter=slime fmt:"$n")) "Of the $branchcount times Slime was entered, Rune was obtained $runecount"

!slowabyss

.echo $(name_fixup ${1:-.})'s slowest abyss rune retrieval$(if $* " ("$*")"): $(foldr max -1 (listsubtract (split | (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

!smite

.echo $nick gestures. Something smites ${*}!

!snakeendkills

!lg ${1:-*} snakeendkmap $* s=kmap% title:"Snake End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Snake End kills for $(name_fixup ${1:-*})$(argst $*)"

!snipe

!lg * playable $* s=char x=-max(sc) title:"The lowest high scores are" fmt:"${.} [${x}]"

!sort

.echo ${*}: $(sort (split ' ' $*))

!spd

.echo $(/ (int (+ 0.5 (* 100 (/ 10.0 $1)))) 100.0) move delay for $1 spd.

!speciescanoneandwon

.echo $(let (r (fullrace $1)) (!lg * playable crace="$r" $(ignore $1)$(ignore $2)$* cls!=$(!lg ${2:-.} crace="$r" $* s=regexp_replace(char, "^..", "") fmt:"${.}" join:'|' title:'') s=char o=-. fmt:"${.}" title:"Available combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)" stub:"No vailable combos for $(name_fixup ${2:-.}) to oneandwon with $1$(argst $*)"))

!speciesgodgames

!lg ${1:-.} $* s=regexp_replace(char, "..$", ""),god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Games for $(name_fixup ${1:-.})$(argst $*)" stub:"No games for $(name_fixup ${1:-.}$(argst $*)"

!speciesgodwins

!lg ${1:-.} won $* s=regexp_replace(char, "..$", ""),god pfmt:'${.}^$(join "" (sort (split ", " $child)))' fmt:'$(godletter ${.})' o=-. title:"Wins for $(name_fixup ${1:-.})$(argst $*)" stub:"No wins for $(name_fixup ${1:-.}$(argst $*)"

!specieshs

!lg * playable sc<1000000000 s=crace x=max(char),+max(score) fmt:'$(combo_to_race ${x[0]}): $(short_num ${x[1]})' title:"Species high scores"

!specieswords

.echo $(map (fn (p) (.echo $1${p})) (sort (split "|" (!lg * playable current alpha s=regexp_replace(char, "^..", "") join:"|" fmt:"${.}"))))

!speedabyss

.echo $(name_fixup ${1:-.})'s fastest abyss rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join "||" $(split "|" (!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}")))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}"))))

!speedabyss2

.echo $(listsubtract (split | $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | $(!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* abyss rune s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") abyss.enter s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))

!speedabyss3

.echo $(let* (runes (speedabyss3runes ${1:-.} $*) enters (speedabyss3enters ${1:-.} $*) times (sort (speedabyss3helper $runes $enters)) min (car $times) max (last $times) med (listmid $times) avg (listavg $times)) (sprintf "Abyss rune retrievals for $(name_fixup ${1:-.})$(argst $*): Min: $min Max: $max Median: $med Average: %.2f" $avg))

!speedlairenter

!lm $(name_fixup ${1:-.}) br.enter=Lair min=turns x=turns fmt:"$(name_fixup ${1:-.})'s fastest Lair enter: ${x[0]}" stub:"$(name_fixup ${1:-.}) has never reached Lair."

!speedorb2

.echo $(let* (raw (speedorb2lm ${1:-.} $*) ints (map (fn (xs) (map (fn (n) (int $n)) (split " " $xs))) $raw) turns (sort (foldr $speedorb2diffs (list) $ints)) min (car $turns) max (last $turns) med (listmid $turns) avg (sprintf "%.2f" (listavg $turns))) "Turns from entering zot to orb retrieval for $(name_fixup ${1:-.})$(argst $*): Min:$min Max:$max Median:$med Average:$avg")

!speedorbend

.echo $(name_fixup ${1:-.})'s fastest orb retrieval from zot:5$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* orb s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=zot s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

!speedpan

.echo $*'s fastest pan rune: $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=demonic s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=demonic s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.enter=pan s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

!speedsplits

.echo Milestone deltas for $(name_fixup ${1:-.}) (vs PB, WR): $(=speedsplits ${1:-.} $*)

!speedtomb3

.echo $(name_fixup ${1:-.})'s fastest Tomb:3 enter to rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=golden s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=golden s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=tomb s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

!speedturnsatplace

!lm * $* won lg:turns<30000 x=avg(turns),avg(XL) fmt:"$x" title:"Average turn count and XL at $* during speedruns" stub:"Supply a valid milestone."

!speedvaults5

.echo $(name_fixup ${1:-.})'s fastest Vaults:5 enter to silver rune retrieval$(if $* " ("$*")"): $(foldr min 1000000 (listsubtract (split | (!lm ${1:-.} $* rune=silver s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")) (split | (!lm ${1:-.} $* $(id "(("$(join || $(!lm ${1:-.} $* rune=silver s=gid o=gid x=max(turns) join:"|" fmt:"gid=${.} turns<=${x[0]}"))"))") br.end=vaults s=gid o=gid x=max(turns) join:"|" fmt:"${x[0]}")))) turns

!spiderendkills

!lg ${1:-*} spiderendkmap $* s=kmap% title:"Spider End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Spider End kills for $(name_fixup ${1:-*})$(argst $*)"

!splatratio

!lg ${1:-.} recentish xl>=17 $* s=name o=-% title:"Percent of recentish chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No recentish chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won

!splatratio-discord

!lg ${1:-.} recentish xl>=17 $* hittemnames o=-% title:"Percent of recentish chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No recentish chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won

!splatratioall

!lg ${1:-.} xl>=17 $* s=name o=-% title:"Percent of chars with XL>=17 killed for $(name_fixup $1)$(argst $*)" stub:"No chars with XL>=17 for $(name_fixup $1)$(argst $*)" / !won

!sprinter

.echo $(let (nick (name_fixup ${1:-.})) (let (unwon_sprints (filter (fn (sprint) (= "" (!lg $nick $sprint won stub:""))) (sprints))) (if (> (length $unwon_sprints) 0) "Unwon sprints for $nick: $(join ', ' (map (fn (s) (let (x (!kw $s)) (replace _ ' ' (sub (str-find 'Sprint_' $x) $x)))) $unwon_sprints))" "$nick has won all sprints!")))

!stalk

!gameinfo

!statustv

!lg * recent !blacklist ((tiles || !@hugeterm)) !won ((status=confused|paralysed|marked|starving|overloaded|petrified|mesmerised || badform || ktyp=weakness|clumsiness|stupidity)) min=ntv xl>20 -tv:<T-50

!straek

!cheatstreak

!strike

!lg ${1:-.} s=char o=N,-. / won fmt:'$(if (/= (car (split / ${n_x})) "1") (car (split / ${n_x}))"x " "")${.}' title:"Strikes for $name" stub:"No striked combos for $name" ?: %=1

!strikegods

!lg ${1:-.} $* !boring s=god o=-. / won pfmt:"${child} ${n_x}" fmt:"${.}" title:"Gods with 100% winrate for $name" stub:"No gods with 100% winrate for $name" ?:%=1

!suggest

!rg * playable char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has won every char."

!swampendkills

!lg ${1:-*} swampendkmap $* s=kmap% title:"Swamp End kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No Swamp End kills for $(name_fixup ${1:-*})$(argst $*)"

!swampvaultkills

!lg * swamp kmap!= kmap!=swamp kmap!~~uniq|rune|old_school|alternative|swamp_basic|swamp_vile|swamp_icy|swamp_fiery|swamp_pestilence s=vault(kmap) $* title:"Swamp non-end vault kills ($*)"

!tag

.echo git tag $* # you're it!

!taste

.echo $nick devours ${1:-everyone} whole! $nick feels better.

!tc

!echo http://crawl.develz.org/tournament/${2:-0.24}/clans/${1:-${user}}.html

!tea

.echo /me hands ${1:-${user}} a cup of $(sub 0 1 $(sub $(rand $(length $(split & $(=tea.tealist)))) $(split & $(=tea.tealist)))), brewed by $(=tea.brewer).

!tellnc

!tell $(replace : $1) ${*}

!temp

!lm ${1:-.} $* x=str,int,dex,gid fmt:'${name} the L${xl} ${char}^$(=godshortname ${god}) in ${place} ($src $(if $tiles tiles console)), T:$turn$(if ${urune} ", runes: ${urune} ($(=lastrunes * gid=${x[3]})$(if (> ${urune} 3) ...))"), defenses: ${ac}/${ev}/${sh}, stats: ${x[0]}/${x[1]}/$x[2]$(if ${fifteenskills} ", >15 skills: ${fifteenskills}")$(if ${maxskills} ", Max skills: ${maxskills}")'

!temperature

.echo $(!fahrenheit $*), and $(!celcius $*)

!templeratio

.echo $(let (x (!lm ${1:-.} $* br.enter=temple|lair|orc ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached temple in $x of $y attempts: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")

!test2

.echo $(!lg ${1:-.} $(id "(("${1:-.}"))"))

!test3

.echo $(let (z $1) $(.echo ${z:-a} ${z:-b} (${z:-c}) ((${z:-d}))))

!test4

.echo $(let (z $1) $(.echo ${z:-a} ${z:-b} $(id "(("${z:-c}"))") ((${z:-d}))))

!test400

.echo $(!calc ${1:-.} / ${2:-.})

!test_arg

!echo Args: $(arg_subtitle $*)

!testfoo

!lg * id=$(if (= $(length $*) 0) $(!lg . x=id fmt:'$x[0]') $*) x=score,src,cv,race,cls,char fmt:'$(!testfoo2) $(!testfoo3)'

!testfoo2

.echo Global: $(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) -count)) Race:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) crace=$(!lg . x=crace fmt:'$x[0]' notitle) -count))

!testfoo3

.echo Class:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) cls=$(!lg . x=cls fmt:'$x[0]' notitle) -count)) Combo:$(re-replace '1/(\d+) .*' '$1' $(!lg * score>=$(!lg . x=score fmt:'$x[0]' notitle) cv=$(!lg . x=cv fmt:'$x[0]' notitle) char=$(!lg . x=char fmt:'$x[0]' notitle) -count))

!testplayer

.echo $(let (l (length (split , (!lg $(name_fixup $*) rstart=$(!lg $(name_fixup $*) s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char stub:"")))) (if (> $l 9) "$(name_fixup $*) is a decent player. $l wins." "$(name_fixup $*) is not a decent player. $l wins ($(- 10 l) to go)."))

!testrev

.echo $(reverse ${*})

!testsh

.echo $(/ 20.0 $1)

!testwinner

!lg * !buggygods won goodgod !experimental s=god / @${1:-.} title:"Unwon good gods for $(name_fixup ${1:-.})" stub:"$(name_fixup ${1:-.}) has won all the good gods." fmt:"${.}" ?:%=0.0

!thirdrune

!lg * recent !won !boring br=(vaults|slime|abyss) xl=$(!lg * recent br=$1 urune>=2 urune<=4 x=median(xl) $* fmt:"$x[0]") x=cdist(gid) fmt:"$x[0]" / br=$1 $* title:"Lethality of $1 $(argst $*) as 3–5 rune"

!tiamat

.echo $(let (player (name_fixup $1)) (if (>= $(!lg ${1:-.} won dr race!=mottled_draconian x=cdist(race) title:"" fmt:"$x[0]" stub:"0") 8) "$player is a tiamat player" $(!lg * dr race!=mottled_draconian won s=race / @$player title:"$player is not a tiamat player. Unwon draconians" fmt:'$(replace " Draconian" "" "${.}")' ?:%=0)))

!tile

.echo $(replace github.com raw.githubusercontent.com (replace blob/ (!source $(replace ' ' _ "$*").png)))

!tilesratio

!lg ${*:-.} / tiles title:"% games tiles for $(name_fixup $*)"

!tim

!echo There are those who call me ... $user

!timewasters

!lg ${1:-.} s=ckiller x=+sum(dur) title:"Time wasters" $*

!title

.echo ${*}: $(or $(=title.title recent $*) $(=title.skill.noinv recent $*) $(=title.skill.inv recent $*) $(=title.title !recent $*) $(=title.skill.noinv !recent $*) $(.echo cannot understand ${*}.))

!tkillers

.echo $(join ", " $(map $(fn (n) $(car $(split "|" $(!lg * t !boring place=${1:-D}:$n s=ckiller join:"|" stub:"cang")))) $(listrange 1 ${2:-27})))

!top10

.echo Top 10$(if $* " for $*"): $(!lg * $* realscore s=gid x=max(name),+max(sc),max(char) fmt:'${x[0]} ${x[2]} $(short_num ${x[1]})' sc>=$(!lg * $* realscore max=sc x=sc -10 fmt:"${x[0]}"))

!torment

.echo $nick gestures. $nick is wracked with pain!$(ignore $*)

!tornado

.echo $nick $(=rndspellgesture). A great vortex of air appears and lifts $nick up! ${*:-$channel} is engulfed in raging winds.

!totaldur

.echo $(formattime $(+ $(=totaldur.lg $*) $(=totaldur.lm $*)))

!tournament

!time

!tournamentwins

!lg ${1:-.} $* tall s=regexp_replace(cv, "-a", "") title:"Tournament wins for ${1:-$nick}$(argst $*)" stub:"No tournament wins for ${1:-$nick}$(argst $*)" o=. / won

!tp

!echo http://crawl.develz.org/tournament/${2:-0.24}/players/${1:-${user}}.html

!transportervaultkills

!echo Transporter vault kills$(argst $*): $(vaultallkills trkmap trmap "$*")

!trogchallenge

!lg ${1:-.} $* gid=$(!lm ${1:-.} $* god.abandon=trog turns=0 lg:god!=trog won s=gid fmt:"${.}" join:"|" stub:"") s=name,char title:"trog challenge wins for $name" stub:"No trog challenge wins for $name"

!ttyrec

!lg ${*:-.} -ttyrec

!ttyrecbygame

!lm $1 $2 gid=$(!lg $1 $(ignore $2)$* x=gid fmt:'$x[0]') -ttyrec

!tuniqs

!lm * t-milestones uniq s=noun / @${1:-.} title:"Uniques remaining for $(name_fixup $1)" fmt:"${.}" ?:N=0 den.N>=$(car (split x $(!lm * t-milestones uniq=murray|ignacio s=-uniq fmt:"${n_x}")))

!turnsperwin

.echo $(let (x $(!lg ${*:-.} won fmt:"$n" stub:"0") y $(!lg ${*:-.} x=sum(turns) fmt:"$x" stub:"0")) $(.echo $(if (> $y 0) (if (> $x 0) "$(name_fixup $*) has $(/ $y $x) turns per win." "No wins for $(name_fixup $*).") "No games for $(name_fixup $*).")))

!tv

!lg ${*:-.} -tv

!twoandwon

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* rstart!=$(!lg ${1:-.} $* s=char x=min(rstart) fmt:"${x[0]}" join:"|") s=char x=min(rstart) fmt:"${x[0]}" join:"|") won s=char title:"Chars won on second try for $name" stub:"No games won on second try for $name"

!twoandwongods

!lg ${1:-.} $* rstart=$(!lg ${1:-.} $* rstart!=$(!lg ${1:-.} $* s=god x=min(rstart) fmt:"${x[0]}" join:"|") s=god x=min(rstart) fmt:"${x[0]}" join:"|") won s=god title:"Gods won on second try for $name" stub:"No gods won on second try for $name"

!ultrazigenter

!lm ${*:-*} vlong>0.16-a0-650-g275c35f zigscompleted>0 zig.enter x=vlong,zigscompleted

!unflip

.echo ${*:-┬─┬} ノ( ゜-゜ノ)

!uniqs

!lm * uniq s=noun / @${1:-.} title:"Uniques remaining for $(name_fixup $1)" stub:"$(name_fixup $1) has slain all uniques!" fmt:"${.}" ?:N=0 den.N>=$(car (split x $(!lm * uniq=ignacio s=-uniq fmt:"${n_x}")))

!unoneandwonchar

!rg ${1:-.} $* playable char!=$(!lg ${1:-.} $* won s=char join:"|" fmt:"${.}" stub:"") fmt:"The RNG chooses: $char" stub:"${1:-.} has no unwon chars that they've played."

!unplayed

.echo $(let (text "combos for $(name_fixup ${1:-.})$(if (> (length $*) 0) " (${*})" "")") $(!lg * playable s=char $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) o=-. title:"Unplayed $text" stub:"No unplayed $text" fmt:'${.}' ?: N=0))

!unpopular

!lg * ${*:-recent} playable s=char x=+${max((now()-end))/sum(dur)} fmt:"${.}" join:" " title:""

!unravel

.echo $nick gestures. $*'s magical effects unravel! The enchantments explode! $* twists and deforms. The unravelling engulfs $*.

!unstreak

!gamestriedsincelastwin

!untell

.echo Okay, message deleted.

!unwon

!lg * !experimental playable $(ignore $1)$* s=char o=-char title:"Unwon playable chars$(argst $*)" stub:"All playable chars have been won$(argst $*)" join:' ' fmt:"${.}" / won $(if $1 @$1) ?: N=0

!unwonchar

.echo $(let (charlist (split (!lg * $* playable s=char char!=$(!lg ${1:-.} $* won s=char join:"|" fmt:"${.}" stub:"") stub:""))) (if (= 0 (length $charlist)) "All combos have been won." (replace "," (elt (rand (length $charlist)) $charlist))))

!unwonchars

!lg * playable s=char won $(ignore $1)$* title:"Unwon chars for $(name_fixup ${1:-$nick})$(argst $*)" fmt:"${.}" o=-. / @${1:-$nick} ?: N=0

!unwoncharweighted

!rg * playable won char!=$(!lg ${1:-.} won s=char join:"|" fmt:"${.}" stub:"") $* fmt:"The RNG chooses: $char" stub:"${1:-.} has won every char."

!unwongoodchar

!rg * recent playable won char!=$(!lg . s=char won notitle join:'|' fmtsimple) $* fmt:"The RNG chooses: $char"

!unwonrace

.echo $(let (text "races for $(name_fixup ${1:-.})$(argst $*)") $(!lg * playable:sp s=crace $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) won o=-. title:"Unwon $text" stub:"No unwon $text" fmt:'${.}' ?: N=0))

!unwonrole

.echo $(let (text "roles for $(name_fixup ${1:-.})$(if (> (length $*) 0) " (${*})" "")") $(!lg * playable s=cls $(do $1 "") $(nth 0 (split "/" $*)) / @${1:-.} $(nth 1 (split "/" $*)) won o=-. title:"Unwon $text" stub:"No unwon $text" fmt:'${.}' ?: N=0))

!unwonsh

!lg * $* --sh s=char o=-char title:"Unwon shapeshifters" join:' ' fmt:"${.}" / won ?:N=0

!update-centuryplayers

!nick centuryplayers $(!lg * won s=name o=-name title:"" join:" " format:"${.}" ?:N>=100)

!update-goodplayers

!nick goodplayers $(!lg * won s=name fmt:"${.}" join:" " ?:N>9)

!update-greaterorbrunners

!nick greaterorbrunners $(!lm * cv>0.10 orb urune=3 lg:urune=15 s=name title:"" join:" " fmt:"${.}")

!update-greaterplayers

!nick greaterplayers $(!lg greatplayers playable:job won s=name x=count(cls) title:"" fmt:"${.}" join:" " ?: count(cls)=$(!lg * playable:job won x=count(cls) fmt:"${x}"))

!update-greatorbrunners

!nick greatorbrunners $(!lm * cv>=0.10 orb ${lg:urune>urune} s=name title:"" join:" " fmt:"${.}")

!update-greatplayers

!nick greatplayers $(!lg * playable:sp won s=name x=count(crace) title:"" fmt:"${.}" join:" " ?: count(crace)=$(!lg * playable:sp won x=count(crace) fmt:"${x}"))

!update-starting-stats-job

!learn set starting_stats[3] $(!lm * begin recent playable hu-- s=char x=avg(str),avg(int),avg(dex) fmt:'$(sub 2 4 ${.}) $(fmt_mostly_int (- $x[0] 8)),$(fmt_mostly_int (- $x[1] 8)),$(fmt_mostly_int (- $x[2] 8))' join:' | ' notitle o=-.)

!update-starting-stats-sp

!learn set starting_stats[2] $(!lm * begin recent playable --fi s=char x=avg(str),avg(int),avg(dex) fmt:'$(sub 0 2 ${.}) $(- $x[0] 8),$x[1],$(- $x[2] 4)' join:' | ' notitle o=-.)

!update-winners

!nick winners $(!lg * won s=name fmt:"${.}" join:" ")

!update-winrateplayers

!nick winrateplayers $(join " " (map (fn (x) (elt 0 (split ":" $x))) (filter (fn (p) (let (l (split ":" $p)) (< 33 (float (replace "%" (elt 1 $l)))))) (split "|" (!lg * recent !dd fmt:'${.}:${n_ratio}' join:'|' urune<5 s=name o=% / won ?: N>=10)))))

!v5success

!lm ${*:-.} !alive br.end=vaults / lg:place!=vaults:5

!varietytv

!lg * ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn $* ktyp!=mon|beam|quitting|leaving|pois|winning|acid (( ktyp!=cloud || map= )) (( xl>=19 || ktyp!=cloud|trap|wild_magic|disintegration|starvation|draining|targeting|spore|burning|rotting|stupidity|water|curare|lava )) min=ntv -tv

!vaultkills

!echo $(let (hc (combinehashcounts (lghashcounts 's=vault(kmap)' $1 current) (lghashcounts 'kmap= s=vault(map)' $2 current))) (hashcountsummary $hc))

!vaultsratio

.echo $(let (x (!lm ${1:-.} $* br.enter=vaults ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") y (!lg ${1:-.} $* fmt:"${n}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has reached Vaults in $x of $y attempts: $(/ (* 100.0 $x) $y) %")

!vercel

.echo https://dcss-stats.vercel.app/players/${1:-$nick}

!violentwinning

!lg * violentgod / won

!volunteer

.echo I volunteer... ${nick}!$(ignore $*)

!watch

&watch $*

!whendie

!lg ${1:-.} s=lvl -graph

!wheretodie

!lg ${1:-.} s=lvl -graph

!whichbg

!whichrole

!whichchar

!combowinrates !t-all $*

!whichclass

!whichrole

!whichcombo

!lg * won $1 recent $* s=char title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."

!whichcombo2

!lg * won $1 recent $* s=char x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"${n} recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."

!whichgod2

!lg * won $1 recent $* s=god x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins for $1$(argst $*)" stub:"No recent wins for $1$(argst $*)."

!whichrace2

!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* class=$*) s=crace x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins" stub:"No recent wins for $*."

!whichrole2

!lg * won recent $(if (or (re-find ru|Ru $*) (> $(length $*) 2)) $* race=$*) s=role x=cdist(name) o=cdist(name) fmt:"${x}x ${.}" title:"Recent wins" stub:"No recent wins for $*."

!whichskill

!lg * won recent $* s=sk title:"${n} recent wins" stub:"No recent wins for $*."

!whichskills

!lg greaterplayers won $1 recent urune=3 $* x=fifsk fmt:"$name's 15+ skills for $1$(argst $*): $x[0]" stub:"No recent wins for $1$(argst $*)."

!whichweapon

!lg ${1:-*} won recent $* fifsk~~long_blades|ranged|unarmed|axe|mace|pole|stave s=regexp_replace(fifsk, ".*((long|ranged|unarmed|axes|maces|pole|stave)[^,]*).*", "\1")% title:"Recent win weapons skills for $(name_fixup ${1:-*})$(argst $*)" stub:"No recent wins for $(name_fixup ${1:-*})$(argst $*)."

!whorecentlywon

!recent

!wiki

!echo http://crawl.chaosforge.org/$(replace " " _ $*)

!will

.echo $(let* (a (hash sp 7 fe 6 dd 6 na 5 mu 5 vs 5 vp 4 de 4 fo 4 og 4 dg 4 dj 4) b $(elt $1 $a)) $(if $2 "$(* $(with-nvl 3 $b) $2) Will at level $2" "$(with-nvl 3 $b) Will per level"))

!win

!won

!winrategame

!lg $(join "|" (map (fn (x) (elt 0 (split ":" $x))) (filter (fn (p) (let (l (split ":" $p)) (< 33 (float (replace "%" (elt 1 $l)))))) (split "|" (!lg * recent !dd fmt:'${.}:${n_ratio}' join:'|' urune<5 s=name o=% / won ?: N>=10))))) $* title:"Recent high winrate players$(argst $*):"

!winratewhichgod

!lg * recentish !boring $* s=god urune<6 / win o=% ?: den.N>4

!winsperday

.echo $(name_fixup ${1:-.}) wins approximately $(let (age $(int $(let (first $(ptime $(!lg $(name_fixup ${1:-.}) x=min(end) fmt:"${x[0]}" stub:'$(ftime $(utc $(time)) "%Y-%m-%d %H:%M:%S")') "%Y-%m-%d %H:%M:%S") now $(utc $(time))) (- $now $first)))) (/ $(!lg $(name_fixup ${1:-.}) won $* fmt:"${n}") (float $age))) times per day

!winssinceclasswon

.echo Wins since class won for ${1:-$nick}: $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:job cls=$x won)))) (map (fn (r) (replace "??" (!ftw $r))) (split ", " (!lg ${1:-.} $* playable:job won s=cls x=max(end) o=-max(end) fmt:"${.}" stub:"")))))

!winssincegodwon

.echo Wins since god won for ${1:-$nick}: $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:god god=$x won)))) (map (fn (g) (replace " " _ $g)) (split ", " (!lg ${1:-.} $* playable:god won s=god x=max(end) o=-max(end) fmt:"${.}" stub:"")))))

!winssinceracewon

.echo Wins since species won for ${1:-$nick}: $(join ", " (map (fn (x) (join ": " (list $x (!gameswonsince ${1:-.} $* playable:sp crace=$x won)))) (map (fn (r) (replace "??" (!ftw $r))) (split ", " (!lg ${1:-.} $* playable:sp won s=crace x=max(end) o=-max(end) fmt:"${.}" stub:"")))))

!winssincespecieswon

!winssinceracewon $*

!wizlabkills

!lm * $* br.enter=wizlab s=regexp_replace(milestone, "entered ((the_hall_of_|the_chambers_of_)([_a-z]+(?=the_)))?(.*)\.", "\2\4") milestone!~~ering?ya|cekugob|mortuary|a_wizard|upun's_lair|cloud_mage's_chambers title:"WizLab deaths ($*)" / lg:br=wizlab o=%

!wizlabs

!lm ${1:-.} $* br.enter=wizlab s=regexp_replace(milestone, "entered ((the_hall_of_|the_chambers_of_)([_a-z]+(?=the_)))?(.*)\.", "\2\4") milestone!~~ering?ya|cekugob|mortuary|a_wizard|upun's_lair|cloud_mage's_chambers title:"WizLabs seen by ${1:-$nick}$(argst $*)"

!wizstr

.echo in $1 encumberance with $2 str and $3 armour, next str is worth $(* (/ (* 3.8 (* $1 $1)) (* (+ 3 $2) (+ 4 $2))) (/ (- 45.0 $3) 45.0)) int for spell success

!wonfirstgo

!charwononfirsttry

!wonifextended

!lg ${*:-.} gid=$(!lm ${*:-.} br.enter=pan|geh|coc|dis|tar|tomb s=gid fmt:"${.}" join:"|") / won title:"% games won after going extended for $name:"

!woniflair

.echo $(let (x (!lg ${1:-.} $* won fmt:"${n}" stub:"0") y (!lm ${1:-.} $* br.enter=lair ktyp!= x=cdist(gid) fmt:"${x}" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has won after reaching lair $x out of $y times: $(int (+ 0.5 (/ (* 100.0 $x) $y)))%")

!woniflairratio

.echo $(let (x (!lg ${1:-.} $* won fmt:"$n" stub:"0") y (!lm ${1:-.} $* br.enter=lair ktype!= x=cdist(gid) fmt:"$x" stub:"0") z (!lg ${1:-.} $* fmt:"$n" stub:"0") player (name_fixup $1)) "${player}$(if "${*}" " (${*})" "") has a win to lair ratio of $(/ (float (* $z $x)) (* $y $y)) (lairratio: $y / $z = $(int (+ 0.5 (/ (* 100.0 $y) $z)))%, woniflair: $x / $y = $(int (+ 0.5 (/ (* 100.0 $x) $y)))%)")

!wonifrune

!won $* urune>0

!wonnoabyss

!lg ${1:-.} $* won gid!=$(!lm ${1:-.} $* abyss.enter won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"$(!lg ${1:-.} won $* gid!=$(!lm ${1:-.} abyss.enter won s=gid fmt:"${.}" join:"|" stub:"") x=cdist(gid) fmt:"$x[0]" stub:"0") games won without going to abyss for $(name_fixup ${1:-.})" stub:"No games won for $(name_fixup ${1:-.}) without going to the abyss."

!wonnobranch

!lg ${2:-.} won gid=$(=wonnobranchgid $1 ${2:-.}) s=char title:"$(!lg ${2:-.} won x=cdist(gid) gid=$(=wonnobranchgid $1 ${2:-.}) fmt:"${x[0]}" stub:"0") games won without going to $1 for $(name_fixup ${2:-.})" stub:"No games won for $(name_fixup ${2:-.}) without going to $1"

!wonnocrypt

!lg ${*:-.} won gid!=$(!lm ${*:-.} br.enter=crypt won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to crypt for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to crypt."

!wonnoelf

!wonnobranch elf $*

!wonnolair

!lg ${*:-.} won gid!=$(!lm ${*:-.} br.enter=lair won s=gid fmt:"${.}" join:"|" stub:"") s=char title:"Games won without going to lair for $(name_fixup $*)" stub:"No games won for $(name_fixup $*) without going to lair."

!wonnovaults

!wonnobranch vaults $*

!wonorder

.echo $(let (player (name_fixup ${1:-.})) (!lg ${1:-.} $* won s=end,char title:"Wins by $player $(argst $*) in order" pfmt:"${child}" stub:"No wins for $player $(argst $*)."))

!wordnerd

.echo $(do ${1:-.} "")$(greathelper2 char ${1:-.} words wordnerd char=$(!lg * playable s=char words notitle join:"|" fmt:"${.}") $*)

!worstunwonchar

!lg * !boring char=$(!lg * $(ignore $1)$* playable won s=char notitle fmt:'${.}' join:'|' / @${1:-.} ?: N=0) s=char title:"Worst unwon chars for $(name_fixup ${1:-.})$(argst $*)" o=-% / won

!worthyraces

.echo $(let (T (!lg * t won fmt:"${n}")) (join " | " (map (fn (x) (nth 1 (split "x " $x))": "(/ (* 2 (+ 52 $T)) (+ 2 (nth 0 (split "/" $x))))) (sub 0 ${1:-10} (split "|" (!lg * t s=crace / won o=-n join:"|" fmt:"${n_x}${.}"))))))

!worthyroles

.echo $(let (T (!lg * t won fmt:"${n}")) (join " | " (map (fn (x) (nth 1 (split "x " $x))": "(/ (+ 48 $T) (+ 2 (nth 0 (split "/" $x))))) (sub 0 ${1:-10} (split "|" (!lg * t s=role / won o=-n join:"|" fmt:"${n_x}${.}"))))))

!xxom

.echo $(let* (a $(nick-aliases xom)) $(randelem $a)) $(randelem "thinks this is hilarious!"|"roars with laughter!!!")

!zap

.echo (∩ ͡° ͜ʖ ͡°)⊃━☆゚. o ・ 。゚ $*

!zermako

.echo $(let (entry (nth (rand 2) (list "zermako" "~zermako_log"))) (nth 1 $(split ']: ' $(ldb $entry $(rand 1 (entrylength $entry))))))

!zermakorobin

!lg zermakorobin gid=$(replace ", " "|" $(!lm zermakorobin br.end noun=lair s=gid))

!zermakorobintv

!zermakorobin min=ntv -tv

!zigzaggers

!lm * $* newzig (( zigscompleted>0 || zig )) alive s=gid x=max(name),max(char),max(god),max(zigscompleted) o=max(zigscompleted) title:"Current Ziggurat Clearers$(if $* " ("$*")")" fmt:'${x[0]} (${x[1]}^$(=godshortname ${x[2]}, zigs:${x[3]}))'

!zotgamesuntilwin

!lm ${*:-.} br.enter=zot rstart<=$(!lg ${*:-.} won 1 fmt:"$start" stub:"0") fmt:'$target had $(- $n 1) games that reached zot before their first win.' stub:"No wins for $(name_fixup $*)."

!|rc

.echo https://CRAWL.XTAHUA.COM/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cxc x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

#rc

.echo https://crawl.project357.org/rc-files/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cpo x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

#watch

.echo https://crawl.project357.org/watch/$(if $1 $1 $nick)

$rc

.echo https://underhound.eu/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cue x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

%rc

.echo https://cbro.berotato.org/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cbr2 x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

&locate

!locate $*

&macro

.echo $(replace .rc .macro (&rc $*))

&spectate

&watch

&trunk.versions

.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) $(list CAO CDO CPO CSZO CUE CWZ CXC LLD))) $(join ", " (map (fn (src) (concat $src ": " (=version.query.trunk $src $*))) $(list CBRO)))

&version

.echo ${*:-*}: $(=version.query $*)

&versions

.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) (serverlist)))

&watch

!lm ${1:-.} fmt:"\$(lookup ${2:-${src}} (watchhash))${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."

&watchlink

!lm ${1:-.} fmt:"\$(=watch_link ${2:-${src}} \$(if \$(match -a ${3:-${cv}}) trunk ${3:-${cv}}))${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."

&whereis

.echo $(no_pm $(=whereis.helper $*))

.27

!lg * xl=27 recent !won !boring ntv=0 -tv

.27dec

.echo $(ldb-set! ~tvcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~tvcounter))) -1))

.27inc

.echo $(ldb-set! ~tvcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~tvcounter))) 1))

.27next

!lg * xl=27 recent !won !boring $(do $(.27inc) -$(nth 1 $(split '=' $(ldb ~tvcounter)))) -tv

.27replay

!lg * xl=27 recent !won !boring -$(nth 1 $(split '=' $(ldb ~tvcounter))) -tv

.27reset

!learn set ~tvcounter n=0

.acceptable_species

!rng HO Mf Gr Dr Ha Gh Hu Ko Ds Te DE Og Gn VS Dg Fo Na Op Mu

.almostowned

!lg ${1:-.} $(if (or (str-find? s= $*) (str-find? o= $*)) $(.echo $*) $(.echo x=tdam,mhp $*)) tdam>=${mhp*0.75} tdam<${mhp} tdam>70 !((ak place=abyss xl<5)) stub:"$name hasn't been almost owned by Crawl yet. $name should play some more ;)"

.banisheddd

!lm * abyss.enter br=Abyss lvl>=3 x=place

.boris

!lg * killer=boris ((tiles || !@hugeterm)) ntv=0 -tv:x2.0

.cobbed

!lg * hungrycobs place=zot|crypt ((ktype=starvation || ikiller=death_cob)) $*

.crushed

!lg * cv>0.14 ikiller=octopode_crusher

.csdcnuke

!lg csdc -tv:channel=csdc:nuke

.deadselrobin

!lg dieselrobin !won ((br!=D||lvl>12)) s=name

.dj

!lm !neil $* ktyp= crace=djinni s=name,char x=max(xl) o=max(xl) title:"Djinn" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Djustice is done."

.donald

!lg * killer=donald ((tiles || !@hugeterm)) ntv=0 -tv

.doomed

!lg * ikiller=doom_hound $*

.doydevkills

!lg @devteam (( (( cikiller=the_serpent_of_hell newserpent )) || (( cikiller=~lich randliches )) )) s=name,ckiller

.doynext

.echo $(let (chars $(split " " $(replace "greaterplayer: " $(ldbent-text $(ldb doy 5))))) $(nth $(rand $(length $chars)) $chars))

.dr

!tv dieselrobin !won start>=2015-01-24 xl>8 max=rend ntv=$(!lg dieselrobin !won start>=2015-01-24 xl>8 min=ntv fmt:"$ntv")

.e

.s place=elf

.earthzig

!lg * vlong>=0.17-a0-2003-gd348506 br=zig ikiller=caustic_shrike|juggernaut|octopode_crusher|entropy_weaver|iron_giant $*

.f

!lg * ((tiles || !@hugeterm)) ntv=0 max=tdam -tv hp=$(mhp-tdam)

.g

!lg * !boring !won (( map=~grunt || kmap=~grunt )) $*

.gfbg

!winssinceclasswon gammafunk !ck !be

.gfdevkills

.gfkill @devteamnp $* s=name,cikiller,vault(kmap) title:'gammafunk dev kills' stub:'No gammafunk dev kills'

.gfgk

!lg ${1:-.} gf-good-mons|gf-good-branch|gf-good-dungeon|gf-good-abyss|moonbase|gf-wizard-prison|gf-cloud-mage-hellbinder|gf-elemental-lab $* title:"gammafunk good kills for $(name_fixup ${1:-.})$(argst $*)" stub:"No gammafunk good kills for $(name_fixup ${1:-.})$(argst $*)"

.gfkill

!lg ${1:-.} $* gfmap|gf-mons-kill|thrown|harpooned title:"Kills by gammafunk maps/monsters for $(name_fixup $1)$(argst $*)" stub:"No kills by gammafunk maps/monsters for $(name_fixup $1)$(argst $*)"

.gfmap

!lg ${1:-.} $* gfmap title:"gammafunk map kills for $(name_fixup $1)$(argst $*)" stub:"No gammafunk map kills for $(name_fixup $1)$(argst $*)"

.gfmapallkills

!echo Gammafunk vault kills$(argst $*): $(vaultallkills gfkmap|newcloudmagehellbinder|kmapnewwizprison gfmapsummonsandtraps|mapnewwizprison "$*")

.gfrace

!winssinceracewon gammafunk !felid !minotaur

.gfwk

!lg ${1:-*} $* gf-watch title:"gammafunk watched kills for $(name_fixup ${1:-*})$(argst $*)" stub:"No gammafunk watched kills for $(name_fixup ${1:-*})$(argst $*)"

.greatsheep

!lg greatplayers killer=sheep $(do $(.sheepinc) -$(nth 1 $(split '=' $(ldb ~sheepcounter)))) -tv

.grid

!tv * ((tiles || nothuge)) kmap~~the_grid src!=cwz ntv=0

.harpoon

!lg * harpoon cikiller=swamp_worm|iron_giant

.hothelled

!newhell $*

.hubristv

!lg * hubris ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) $* recent max=rend ntv=$(!lg * hubris min=ntv fmt:"$ntv") -tv:<2

.iood

!lg * ((tiles || !@hugeterm)) !cln !csn ktyp=disintegration kaux~~orb_of_destruction ntv=0 max=xl -tv

.j

!lm * $* ktyp= class=jester s=name,char x=max(xl) o=max(xl) title:"Jesters" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Jestice is done."

.jory

!tv * ((tiles || !@hugeterm)) ikiller=jory ntv=0

.jsmap

!lg * ((map~~johnstein||kmap~~johnstein)) $*

.jugged

!lg * killer~~juggernaut killer!~~ghost x=dam,tdam $*

.k

!lg * ((tiles || !@hugeterm)) !cln !csn map=minmay_klotski ntv=0 max=xl -tv

.klowned

!lg ${1:-*} cv>=0.23 (( cikiller=killer_klown || zot status~~bat-form|wisp|pig-form|fire_vuln|vertiginous|fragile || !ru status~~no_potions )) x=status $* title:"Deaths from pie-throwing killer klowns$(argst $) for $(name_fixup ${1:-*})" stub:"No deaths from pie-throwing killer klowns$(argst $*) for $(name_fixup ${1:-*})"

.lo

!lm * $* alive crace=lava_orc s=name,char x=max(xl) o=max(xl) title:"Lava Orcs" format:"${.}:${x}" pfmt:"${.} (${child})" stub:"Orcstice is done."

.m

.s status=marked

.mara

!lg * !won ikiller=~mara ((tiles || !@hugeterm)) ntv=0 -tv

.markedtv

!lg * ((tiles || nothuge)) !cwz !cpo !ckr !cjr ((!cdo || cv>=0.14)) xl>17 !won status=marked $* -random -tv

.mdevkills

!lg @devteam kmap=~minmay kmap!~~misc_feat kmap!~~arrival s=name

.mennas

!lg * !won killer=mennas ((tiles || !@hugeterm)) ntv=0 -tv

.mikeecrabs

!lg * kmap|map=gammafunk_mikee_crab_dinner $* title:"Crab vault deaths$(argst $*)" stub:"No crab vault deaths$(argst $*)"

.mikeecrabyss

!lm * cv>=0.21-a abyss.enter~~apocalypse_crab oplace~~lair|swamp|depths $* title:"Possible gammafunk_mikee_crab_dinner banishments"

.n

!lg * !won !boring nostalgia ntv=0 max=xl -tv

.newlich

!lg * cikiller~~lich polypsyche

.o

!lg * ((tiles || !@hugeterm)) kmap=minmay_octagon_city ntv=0 -tv

.ocs

!lg * ikiller=orange_crystal_statue $*

.oneshot

!lg ${1:-.} $* xl>10 sdam>=${mhp} hp=${mhp-sdam} x=sdam,mhp

.orbrunboris

!lg * $(!lm * orb killer=Boris x=gid fmt:"$x" stub:"gid=0") stub:"No orb run kills for Boris yet."

.owned2

!lg ${1:-.} $* x=tdam,mhp tdam>=${mhp} !((ak place=abyss xl<5)) stub:"$name hasn't been owned by Crawl yet. $name should play some more ;)"

.owned2tv

.owned2 ${1:-*} $* ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) -random -tv

.ownedtv

.owned ${1:-*} $* ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) -random -tv

.paralysistv

!lg * ((tiles || nothuge)) !cwz !cpo !ckr !cjr ((!cdo || cv>=0.14)) xl>17 !won status~~(paralysed|petrified) !starved $* -random -tv

.phyte

!lg * (( map~~phyte_club || kmap~~phyte_club )) $*

.polypsyche

!lg * ckiller=Psyche polypsyche

.randomtv

.echo $(let* (tvs (list ".ownedtv *" "!shafttv" "!orbsplattv" ".paralysistv") cur_tv $(elt $(rand $(+ $(length tvs) 1)) $tvs) cmdline $(if $* "$*" "-tv:channel=randomtv")) $(exec "$cur_tv $cmdline"))

.reaved

!lg * cikiller~~reaver polypsyche

.s13

!lg * !won !boring ((tiles || !@hugeterm)) ((cln end>=20130626 || !cln)) !csn cv=0.13-a max=sc ntv=0 -tv ${*:-xl>15}

.shardshriketv

!lg * killer=~shard_shrike max=rend ntv=$(!lg * killer=~shard_shrike min=ntv fmt:"$ntv") -tv:<2:channel=shriketv

.sheepinc

.echo $(ldb-set! ~sheepcounter 1 'n='$(+ $(nth 1 $(split '=' $(ldb ~sheepcounter))) 1))

.shriketv

!lg * killer=~caustic max=rend ntv=$(!lg * killer=~caustic min=ntv fmt:"$ntv") -tv:<2:channel=shriketv

.slime

!lg * oktv ((tiles || !@hugeterm)) slime ntv=0 -tv:x2

.slimetv

!tv * slime ((tiles || nothuge)) !cwz !ckr !cjr ((!cdo || cv>=0.14)) $* ntv=0

.sniped

!tv * kaux=~magic_dart ntv=0

.starcursed

!lg * abyss status=~para ntv=0 -tv

.t

.s t

.td

!lg * oktv ((tiles || !@hugeterm)) map=minmay_three_doors ntv=0 -tv:<0.5:x3

.tree

!lg * status~~tree !won !boring ((tiles || !@hugeterm)) max=xl ntv=0 -tv ${*:-xl>15}

.trogsanc

!lg * kmap=emtedronai_trogs_sanctum $*

.tt

!lg * !won !boring t ((tiles || !@hugeterm)) max=xl ntv=0 -tv ${*:-xl>15}

.versions

.echo $(join ", " (map (fn (src) (concat $src ": " (=version.query $src $*))) $(list CAO CDO CPO CSZO CUE CWZ CXC LLD)) HI)

.wpal

!lg * kmap=gammafunk_depths_water_palace $*

.xom

.echo $(let* (a $(nick-aliases xom)) $(randelem $a)) thinks this is hilarious!

0.27

!lg * xl=27 recent !won !boring ntv=0 -tv

=0won.list

!lg * playable s=char / won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0

=0woncomborobin.list

!lg comborobin playable s=char / won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0

=0woncomborobinold.list

!lg * cv>=0.10 !experimental crace!=LO|Dj|El|MD|Yak cls!=Jr char!=GrDK|GrPr s=char / name=comborobin won o=-char stub:"x" fmt:"${.}" join:"|" ?:N=0

=a-classlist

.echo Fi&Pa&Ra&Th&As&Wz&Pr&Bd&Mo&He&Wp&Ar&Me&Fa&Mi&Ba&Dr&Ne&El&Be&Du&Ck

=a-racelist

.echo Hu&Tr&He&Ge&De&Dw&Gn&Ht&Or&Dr&Ra&Me

=a-signlist

.echo Raven&Book&Wand&Unicorn&Salamander&Dragon&Sword&Falcon&Cup&Candle&Wolf&Tree

=abyssturns.deaths

.echo $(!lg $* abyss !ak s=end,rstart o=end join:" " title:"" pfmt:"${child}" stub:"-1")

=abyssturns.entertimes

.echo $(!lm $* abyss.enter !ak ktype!= s=time,rstart o=time join:" " title:"" pfmt:"${child}")

=abyssturns.enterturns

.echo $(!lm $* abyss.enter !ak ktype!= s=time,turn o=time join:" " title:"" pfmt:"${child}")

=abyssturns.exitturns

.echo $(!lm $* abyss.exit !ak ktype!= s=time,turn o=time join:" " title:"" pfmt:"${child}")

=abyssturns.tripturns

.echo $(let (d (split ' ' (=abyssturns.deaths $*)) entm (split ' ' (=abyssturns.entertimes $*)) entn (split ' ' (=abyssturns.enterturns $*)) extn (split ' ' (=abyssturns.exitturns $*))) (do (if (/= -1 (int (car $d))) (set! entn (abyssturnsremover $d $entm $entn))) (listsubtract $extn $entn)))

=addtest

!cmd =test $(=cmd =test) \$($*)

=aevp

.echo $(/ (* (/ (* (/ 2 5.0) (** $1 2)) (+ $2 3)) (- 45 $3)) 45.0)

=allhellrunes

!lm ${*:-.} s=gid rune place=geh|coc|dis|tar x=cdist(place) fmt:"${.}" join:"|" stub:"" ?:cdist(place)=4

=apostrophe

.echo '

=armourdodgepenalty

.echo $(let (size (- 1 (/ (=evbonus.sizefactor $(lower $1)) -8.0)) er $2 str $3) $(max 0 (* (- (* $er $size) 3) (/ 10.0 $str))))

=badchar

!rg * $* playable badchar fmt:"The RNG chooses: $char" stub:"Couldn't find a bad enough char for $*"

=badplace

.echo $(replace "_" " " $(weighted-rand 100:the_Abyss Hell beam.cc 1:ray.cc 1:stuff.cc 5:#crawl 5:4chan 5:4.1 1:the_Tower_of_Lemuel))

=beerlist

.echo lager&ale&bitter&stout&India pale ale&cask ale&imperial stout&pilsner&Schwarzbier&root beer&ginger beer

=beervessel

.echo pint&stein&mug&pitcher&bottle&can

=bot_prefix

.echo $(if (= $1 cbr2) % (if (= $1 cao) ! (if (= $1 cdo) @ (if (= $1 cdi) !cdi (if (= $1 cue) \$ (if (= $1 cxc) !| (if (= $1 cpo) # (if (= $1 lld) !lld (if (= $1 cwz) !cwz (if (= $1 cjr) = (if (= $1 cko) !cko ?)))))))))))

=branchletter

.echo $(let (name (elt $* (branchletterhash))) (if (bound? name) $name $*))

=cardpower

.echo $(+ (* $1 9) (/ (* (+ $1 25) $2) 27))

=charsum

!lm * id=${1} x=name,xl,char,god fmt:'${x[0]}: L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'

=cheers.containers

.echo glass&pint&flagon&stein&shot glass&cask&boot full&briefcase full

=cheers.drinklist

.echo whiskey&beer&mead&lager&vodka&cider&tequila&gin&bourbon&scotch&rum&brandy&cognac&vermouth&saké&sangria&goldschläger&absinthe&cabernet sauvignon&moonshine&Romulan ale

=cmd

.echo $(join ' => ' $(sub 1 $(split ' => ' $(!cmd $1))))

=coffee.coffeelist

.echo black coffee&cappuccino&Irish coffee&café au lait&soy latte&caffè macchiato&latte macchiato&caffè breve&café mocha

=coffee.containers

.echo cup&mug&pot

=commitby.counter

.echo $(if (= $channel ##crawl-dev) (ldb-set ~commitby 1 (+ 1 (int (ldb-entry ~commitby 1)))) (ldb-entry ~commitby 1))

=cp

!cmd $2 $(=cmd $1)

=csdcgid

.echo $(let (lggid (nth 1 (split '=' (!lg ${1:-.} xl>4 $* 1 x=gid fmt:"${x}"))) lmgid (nth 1 (split '=' (!lm ${1:-.} $* alive x=gid 1 fmt:"${x}")))) (if (bound? lggid) $lggid $lmgid))

=csdcwk

.echo $(if (re-find 'wk\d' $1) $1 "$(=kw csdcwk)$(if $1 " $1" "")")

=currentgames

.echo $(if (= $1 x) x (foldr annotate_combo (replace '|' ' ' $1) (split ' ' (replace '),' ') ' (=currentgames.inprogress $1 $2 $*)))))

=currentgames.inprogress

!lm * $1 alive rtime>$(=time.monthago) $(ignore $2) $* s=char,name o=-char x=max(xl) format:"${.}" pfmt:"${.}(${child})" join:"," stub:"" title:"" ?: max(xl)>=$2

=currentgames.unplayed

.echo $(if (= $1 x) '' (foldr remove_combo (replace '|' ' ' $1) (split ' ' (replace '),' ') ' (=currentgames.inprogress $1 $2)))))

=dodgebonus

.echo $(let (size (=evbonus.sizefactor $(lower $1)) dex (min $2 (+ 14 (log2 (** (+ 1 (/ (- $2 14) 10.0)) 10)))) dodge $3) $(/ (+ 7 (* $dodge $dex)) (- 20.0 $size)))

=dur

.echo $(!lm ${1:-.} $* x=dur stub:"0" fmt:"${x[0]}")

=empty

.echo $(replace a '' a)

=enterturn

.echo $(nth 1 (split '=' (!lm ${1:-.} br.enter=$2 $* x=turn fmt:"${x}" stub:"")))

=eval

.echo $(try (exec $*) $*)

=eval_rand_entry

.echo $(let (n (rand ${2:-1} (entrylength $1))) (concat "($n) " (apply evalf $(entry $1 $n))))

=evbonus.sizefactor

.echo $(let (x (car (split | (nth 1 (split $1: tr:-2|og:-2|ce:-2|na:-2|ha:2|ko:2|sp:4|fe:4|dragon:-6|spider:4|ice:-2))))) (nvl ${x:-0}))

=faze.greatbarricade

!lg * playable:sp s=crace o=-crace / won @${1:-.} sk=shields sklev=27 format:"${.}" title:"Unbarricaded species for $name" stub:"$name is very crazy!" ?:N=0

=fn

.echo $(join ' ' $(sub 2 $(split ' ' $(!fn $1))))

=games

!lm ${1:-.} $* alive s=gid x=max(id),max(xl) o=max(xl) title:"" stub:"No current games" join:" | " fmt:'$(=charsum ${x[0]})'

=gdeathcount

!lg ${1:-.} $* ikiller~~$(=apostrophe)s_ghost fmt:"$n" stub:"0"

=gkillcount

!lg * ikiller~~^($(join '|' (nick-aliases (name_fixup ${1:-.}))))$(=apostrophe)s?_ghost $* fmt:"$n" stub:"0"

=gkillratio.helper

.echo $(=killratio.calc $(!lg $2 $* ikiller~~^$1.[s]?_ghost fmt:"${n}" stub:"0") $(!lm $2 $* ghost=$1 fmt:"${n}" stub:"0"))

=gkillratio.helper2

.echo $(let (x $1 target ${2}$(replace " ()" '' " ($*)") ratio $(=gkillratio.helper $1 $2 $*)) $(if $(= $ratio NaN) "No battles for $x's ghost"$(if $(/= $target *) " and $target"). "$x's ghost wins $ratio% of battles"$(if $(/= $target *) " against $target").))

=gkillratio2.helper2

.echo $(let (x $1 target ${2}$(replace " ()" '' " ($*)") ratio $(=gkillratio.helper $(join '|' (nick-aliases $1)) $(join '|' (nick-aliases $2)) $*)) $(if $(= $ratio NaN) "No battles for $x's ghost"$(if $(/= $target *) " and $target"). "$x's ghost wins $ratio% of battles"$(if $(/= $target *) " against $target").))

=godshortname

.echo $(let (name (elt $* (godshortnamehash))) (if (bound? name) $name $*))

=godshortname.list

.echo None|Trog:Trog|Okawaru:Oka|Lugonu:Lucy|Vehumet:Veh|Xom:Xom|Sif Muna:Sif|Makhleb:Makh|Yredelemnul:Yred|The Shining One:TSO|Nemelex Xobeh:Nem|Kikubaaqudgha:Kiku|Beogh:Beogh|Ashenzari:Ash|Elyvilon:Ely|Cheibriados:Chei|Zin:Zin|Dithmenos:Dith|Fedhas:Fedhas|Qazlal:Qaz|Jiyva:Jiyva|Gozag:Gozag|:None|

=godshortname3

.echo $(lookup $* (godshortnamehash))

=greatprogress.role

.echo $(sort $(fn (a b) $(<=> $(list $(int $(sub 3 $a)) $(sub 0 2 $a)) $(list $(int $(sub 3 $b)) $(sub 0 2 $b)))) $(map $(fn (x) $(let (y $(split / $(car $(split " (" $x)))) $(role_abbrev (nth 0 $y)):$(- $(nth 2 $y) $(nth 1 $y)))) $(split ", " $(!lg * playable2 won s=cls x=cdist(crace) / @${*:-.} fmt:"${.}/${x}" o=-cls))))

=greatprogress.species

.echo $(sort $(fn (a b) $(<=> $(list $(int $(sub 3 $a)) $(sub 0 2 $a)) $(list $(int $(sub 3 $b)) $(sub 0 2 $b)))) $(map $(fn (x) $(let (y $(split / $(car $(split " (" $x)))) $(species_abbrev (nth 0 $y)):$(- $(nth 2 $y) $(nth 1 $y)))) $(split ", " $(!lg * playable2 won s=crace x=cdist(char) / @${*:-.} fmt:"${.}/${x}" o=-crace))))

=hd6polylist

.echo basilisk&black bear&blink frog&bog body&chaos spawn&deep elf fighter&deep elf mage&demonspawn&fire drake&&formicid&golden eye&hog&human&kobold demonologist&neqoxec&raven&soldier ant&spatial vortex&two-headed ogre&&ynoxinul

=hd7polylist

.echo baby alligator&black mamba&blue devil&deep elf priest&efreet&eye of draining&flying skull&guardian mummy&harpy&hellion&hellwing&hell beast&hippogriff&naga mage&orb spider&phantom&polar bear&queen bee&raiju&red devil&shapeshifter&sixfirhy&smoke demon&spiny frog&spriggan&tengu conjurer&tormentor&troll&unseen horror&yak

=hd8polylist

.echo apocalypse crab&boring beetle&draconian&dryad&elf&fire crab&fungus&guardian serpent&jumping spider&komodo dragon&naga ritualist&octopode&orange demon&red wasp&rust devil&salamander&tarantella&trapdoor spider&vault sentinel&vine stalker&wandering mushroom&wind drake&yaktaur

=helluniques

!lm ${*:-.} s=gid unique~~asmodeus|antaeus|ereshkigal|dispater|serpent_of_hell fmt:"${.}" join:"|" stub:"" ?:N=5

=hours_since_milestone

.echo $(hourssince (stamptime (!lm * x=time $* fmt:"$x[0]")))

=ioodgesture

.echo conjures a glowing orb&conjures an orb of pure magic&launches a ball of destructive magic

=killratio.calc

.echo $(sub 0 5 $(* 100.0 $1 $(/ 1.0 $(+ $1 $2))))

=kw

.echo $(join ' => ' $(sub 1 $(split ' => ' $(!kw $1))))

=lastnchoice.combostatus

!lm * alive t-milestones $* s=gid x=max(xl) o=max(xl) join:" || " fmt:"\$(!lm * gid=${.} fmt:'$name: $(upper $src), L$xl $title of ${god:-No God}')" title:"" stub:""

=lastnchoice.combostatus2

!lm * alive t $* s=gid x=max(nrune),max(xl),max(time) o=max(nrune),max(xl),max(time) join:" || " fmt:"\$(!lm * gid=${.} fmt:'$name: $(upper $src), L$xl $title of ${god:-No God} ($place$(runeformat $nrune))')" title:"" stub:""

=lastrunes

.echo $(join ', ' (sub 0 3 (split | (!lm ${1:-.} $* rune s=noun x=+max(time) join:"|" fmt:"${.}"))))

=legendary.card.lvl1

.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 300) 500) 1 $(- 1 (* (/ (- 700 (+ $c 300) ) 700.0) (/ (- 500 (+ $c 300) ) 700.0)))))

=legendary.card.lvl2

.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 300) 700) 1 $(* (/ (+ $c 300) 700.0) (/ (+ $c 300) 700.0))))

=lmtimediff

.echo $(sprintf "%014d" (- (ftime (utc (time)) "%Y%m%d%H%M%S") (+ 100000000 (replace S $(!lm * $* x=time fmt:"$x[0]")))))

=locateall.raw

!lm ${*:-.} alive s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"

=locateall.rawall

!lm ${*:-.} alive_all s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"

=locateallall.raw

!lm ${*:-.} ktyp= type!=crash s=name,gid o=-name join:" | " pfmt:"^${.}: ${child}" fmt:"\$(!lm ${*:-.} gid=${.} fmt:'$(upper $src) $explbr $cv, L$xl $char of ${god:-No God}')" stub:"^"

=makefn

!fn $*

=maxdam

.echo $(- (* 18.0 (** 2 (- $* 1))) 1)

=mfcwc.chars

.echo MfSk|HuWn|VpIE|NaWz|FoEE|GrAr|DDBe|HEWr|OpVM|TeCj|VSMo|CeHu|VpNe|OgSk|HODK|FeSu|OgWz|SpEn|OpBe|HEAE|DsMo|MfTm|KoAs|DeWz|MiFi|HuWn|GhEE

=morgue_link

.echo $(let (base (car (split | (nth 1 (split ${1}> (=morgue_link.list ${2:-trunk})))))) (if (bound? base) $base unknown))

=morgue_link.list

.echo >unknown|cao>http://crawl.akrasiac.org/rawdata|cdo>http://crawl.develz.org/morgues/${1:-trunk}|clan>http://www.underhound.eu:81/crawl/morgue|cpo>https://crawl.project357.org/morgue|cdi>https://crawl.dcss.io/crawl/morgue|cue>http://www.underhound.eu:81/crawl/morgue|cwz>http://webzook.net/soup/morgue/trunk|cxc>http://CRAWL.XTAHUA.COM/crawl/morgue|cko>https://crawl.kelbi.org/crawl/morgue|cbr2>https://cbro.berotato.org/morgue|lld>http://lazy-life.ddo.jp:8000/morgue

=morgue_link_old

.echo $(if (= $1 cao) http://crawl.akrasiac.org/rawdata (if (= $1 cszo) http://dobrazupa.org/morgue (if (= $1 clan) http://crawl.lantea.net/crawl/morgue (if (= $1 rhf) http://rl.heh.fi/morgue (if (= $1 cdo) http://crawl.develz.org/morgues/${2:-trunk} (if (= $1 cbro) http://crawl.berotato.org/crawl/morgue (if (= $1 ckr) http://kr.dobrazupa.org/morgue/${2:-trunk} unknown)))))))

=mute

.echo $(if (= $channel ##crawl-sequell) $(let (x $1) $(!learn add :beh: \{\{nick:${x}\}\} \$*text :::::: last)))

=mv

.echo $(=cp $1 $2), $(=rm $1)

=nchoice

=nemelex

=nchoice.new

.echo Time for a new nchoice! It will appear shortly on the tournament website (if it hasn't yet). Type "=nemelex XXXX" to update !nchoice with the new combo, where XXXX should be replaced by the new combo.

=nemelex

!kw nchoice $(if (= XXXX (=kw nchoice)) $1 (=kw nchoice)(if (not (= "0" (!lg * t won char=$(nth -1 (split | (=kw nchoice))) fmt:"$n" stub:"0"))) (concat | $1) (ignore $1)))

=newnext

.echo $(let* (p ${1:-${user}} c (rand_unwon $p (try (entry ~${p}_pref 1)))) (do (ldb-set ~${p}_next 1 $c) $c))

=next

.echo $(let (p ${1:-${user}}) (concat (if (has_won $p (entry ~${p}_next 1)) $(ignore $(ldb-set! ~${p}_next 1 $(rand_unwon $p (try (entry ~${p}_pref 1) "")))) "") "The RNG decrees that $p shall win $(entry ~${p}_next 1) next."))

=nwon.list

!lg * won playable !experimental !dj !lo $(ignore $1) $* s=char o=-char format:"${.}" join:"|" stub:"x" ?:N<=${1:-$(=nwon.n)}

=nwon.n

.echo 9

=nwon.nodefs

.echo $(ignore $1)$(ignore $2)$(let (x (=currentgames $(=nwon.list $1 $*) $2 $*)) $(if (= $x x) "All combos $(if $* '('$*') ')have been won at least $(int (+ 1 $1)) $(plural time (int (+ 1 $1)))!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) $(if $* '('$*') ')won at most $1 times: $x"))

=oldgames

!lm ${1:-.} $* alive s=gid x=max(name),max(xl),max(char),max(god) o=max(xl) title:"" stub:"No current games" join:" | " fmt:'${x[0]}: L${x[1]} ${x[2]}^$(=godshortname ${x[3]})'

=oldwon.list

!lg * playable s=char o=-char / won cv>=${1:-$(=oldwon.v)} format:"${.}" join:"|" stub:"x" ?:N=0

=oldwon.nodefs

.echo $(let (x (=currentgames $(=oldwon.list $1) $2)) $(if (= $x x) "All combos have been won in v>=${1}!" "$(length (split ' ' $x)) $(plural combo (length (split ' ' $x))) not won in v>=$1: $x"))

=oldwon.v

.echo 0.12

=oneandwongids

!lg ${*:-.} rstart=$(!lg ${*:-.} s=char x=min(rstart) fmt:"${x[0]}" join:"|" stub:"") won s=gid fmt:"${.}" join:"|" stub:""

=orbruntomb.helper

.echo $(let (name $1 tomb_array $(orb_run_tombs_array_for $1 $2)) $(let (chars (map $(fn (x) $(nth 3 $x)) $tomb_array)) $(if $(> (length $tomb_array) 0) $(if $(= (length $tomb_array) 1) "$name orb-ran tomb once with a ${chars}! Fantastic!" "$name orb-ran tomb $(length $tomb_array) times (${chars})! Amazing!") "$name hasn't orb-run tomb yet... :(")))

=ornate.card.lvl1

.echo $(let (c (=cardpower $1 $2)) $(if (>= (+ $c 150) 700) 1 $(/ (+ $c 150) 700.0)))

=percentcalc

!calc (100.0 * $(float $1) / $(float $2))

=pizzalist

.echo Hawaiian&pepperoni&cheese&anchovy&margherita&Neapolitan&olive&falafel&mushroom&deep-dish&pepper&onion&Pandemonium&stuffed crust&Sicilian&Capricciosa&Bolognese&New York-style&thin crust

=pizzaquantity

.echo slice&pie&platter&box&stack&personal pan

=poly1

.echo adder|alligator|basilisk|bat|big kobold|blink frog|black mamba|boggart|boring beetle|boulder beetle|catoblepas|centaur|centaur warrior|death drake|death yak|deep elf annihilator|deep troll|dire elephant|draconian|emperor scorpion|ettin|faun|fire crab|fire dragon|fire giant|frost giant|giant eyeball|ghost moth|gnoll|golden dragon|goliath beetle|harpy|hobgoblin|ice dragon

=poly2

.echo jackal|killer bee|kraken|lindwurm|manticore|minotaur|naga|naga sharpshooter|ogre|orb spider|orc priest|quokka|rat|red wasp|salamander|sea snake|sheep|siren|snapping turtle|spiny frog|sphinx|spriggan air mage|stone giant|tarantella|tengu reaver|titan|torpor snail|troll|vault sentinel|warg|wind drake|wolf spider|yak|yaktaur

=qw

.echo $(=qw0 $*) $(=qw1 $*) $(=qw2 $*) $(=qw3 $*) $(=qw4 $*) $(=qw5 $*) $(=qw6 $*) $(=qw7 $*) $(=qw8 $*) $(=qw9 $*)

=qw0

.echo $(!lg $* fmt:"$n" stub:"0")

=qw1

.echo $(!lm $* br.enter=lair fmt:"$n" stub:"0")

=qw2

.echo $(!lm $* br.exit=lair fmt:"$n" stub:"0")

=qw3

.echo $(!lm $* rune urune=1 fmt:"$n" stub:"0")

=qw4

.echo $(!lm $* br.enter=depths fmt:"$n" stub:"0")

=qw5

.echo $(!lm $* br.exit=depths fmt:"$n" stub:"0")

=qw6

.echo $(!lm $* br.enter=zot fmt:"$n" stub:"0")

=qw7

.echo $(!lm $* br.end=zot fmt:"$n" stub:"0")

=qw8

.echo $(!lm $* orb fmt:"$n" stub:"0")

=qw9

.echo $(!lg $* won fmt:"$n" stub:"0")

=racialmr

.echo Will: Sp: 7!, Dr[purple]: 6, Fe: 6, Mu: 5, Na: 5, VS: 5, DE: 4, Dg: 4, Dj: 4, Fo: 4, MD: 4, On: 4, Vp: 4, everyone else: 3*

=racialwill

.echo Will: Sp: 7!, DD: 6, Dr[purple]: 6, Fe: 6, Mu: 5, Na: 5, VS: 5, Dg: 4, DE: 4, Dj: 4, Fo: 4, Og: 4, Vp: 4, Ba: 3*, Dr: 3*, Ds: 3*, Gh: 3*, Gr: 3*, Ha: 3*, HO: 3*, Hu: 3*, Ko: 3*, Mi: 3*, Mf: 3*, Op: 3*, Pa: 3*, Te: 3*, Tr: 3*

=randhat.list

.echo hat of the alchemist&hat of the bear spirit&hat of the high council&hat of pondering&crown of dyrovepreva&mask of the dragon&maxwell's etheric cage

=randomuniq

!lm * uniq week xl>$(rand 27) fmt:"$noun" -random

=randwraith

.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=wraith)))) $(split & $(=wraith))))

=rc

.echo http://crawl.jorgrun.rocks/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cjr x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

=rc.helper

!lm ${1:-.} fmt:"\$(concat (ignore ${2}) (=bot_prefix ${*:-${src}}))rc ${name} \$(version_fixup ${2:-${v}})" stub:"No milestones for $(name_fixup ${1:-${user}})."

=replacecmd

!cmd $1 $(replace $2 $3 $(=cmd $1))

=replacecmd2

!cmd $1 $(replace $2 $* $(=cmd $1))

=replacefn

!fn $1 $(replace $2 $3 $(=fn $1))

=replacekw

!kw $1 $(replace $2 $3 $(=kw $1))

=resist_message

.echo resists with almost no effort&easily resists&resists&resists with significant effort&struggles to resist&barely resists

=rip.br

.echo $(!lm ${1:-.} $* fmt:"${br}")

=rip.char

.echo $(!lm ${1:-.} $* fmt:"${char}")

=rip.format

.echo the $2 (L$3 $1)$(if $4 ", worshipper of $4"), $5 on $6, with $7 points after $8 turns and $9.

=rip.god

.echo $(!lm ${1:-.} $* fmt:"${god}")

=rip.lm

.echo $(!lm ${1:-.} alive $* fmt:"$char|$title|$xl|$god|$br|$lvl|$absdepth")

=rip.opts

.echo recent !won !boring

=rip.place

.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${place}")

=rip.points

.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${sc}")

=rip.time

.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${dur}")

=rip.title

.echo $(!lm ${1:-.} $* fmt:"${title}")

=rip.turns

.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${turn}")

=rip.vmsg

.echo $(!rg * $(=rip.opts) xl=$1 $* fmt:"${vmsg}")

=rip.xl

.echo $(!lm ${1:-.} $* fmt:"${xl}")

=rm

!cmd -$(.echo rm) $1

=rndioodgesture

.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=ioodgesture)))) $(split & $(=ioodgesture))))

=rndspellgesture

.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=spellgesture)))) $(split & $(=spellgesture))))

=rndspelltarget

.echo $(sub 0 1 $(sub $(rand $(length $(split & $(=spelltarget $*)))) $(split & $(=spelltarget $*))))

=runeturn

.echo $(nth 1 (split '=' (!lm ${1:-.} $* rune x=turn fmt:"${x}" stub:"")))

=runtest

.echo $(length $(=test))

=speedsplits

.echo $(let (cur (=speedsplits.curgid ${1:-.}) pr (=speedsplits.prgid ${1:-.} $*) wr (=speedsplits.wrgid $(ignore $1)$*)) (join ', ' (map (fn (x) "$x[0]($(car $x[1]),$(nth 1 $x[1]))") (zip (=speedsplits.labels) (zip (=speedsplits.diffgid $cur $pr) (=speedsplits.diffgid $cur $wr))))))

=speedsplits.curgid

.echo $(!lm ${1:-.} alive x=gid stub:"None" fmt:"${x[0]}")

=speedsplits.diffgid

.echo $(let (a (=speedsplits.splitgid $1) b (=speedsplits.splitgid $2)) (map sec2minsec (listsubtract (=speedsplits.splittimes $a) (=speedsplits.splittimes $b))))

=speedsplits.labels

.echo L R1 R2 R3 Z O

=speedsplits.prgid

.echo $(!lg ${1:-.} $* won min=dur x=gid fmt:"${x[0]}")

=speedsplits.splitgid

.echo $(join | (map (fn (x) "$x[0]="(=dur * gid=$1 $x[1])) (map (fn (x) (split : $x)) (split | $(=speedsplits.stones)))))

=speedsplits.splittimes

.echo $(map pduration (map (fn (x) (nth 1 (split = $x))) (split | $*)))

=speedsplits.stones

.echo L:br.enter=lair|R1:rune urune=1|R2:rune urune=2|R3:rune urune=3|Z:br.enter=zot|O:orb

=speedsplits.wrgid

.echo $(!lg * $* !@bot !@hybridbot won min=dur x=gid fmt:"${x[0]}")

=spellgesture

.echo gestures wildly while chanting&mumbles some strange words&casts a spell

=spelltarget

.echo gestures at ${*:-something} while chanting&points at ${*:-something} and mumbles some strange words&casts a spell at ${*:-something}

=suspensetv.lgopt

.echo * race!=felid recent !ckr urune>0 !won !@hugeterm

=suspensetv.lmopt

.echo * race!=felid recent !ckr urune>0 hp<30 (( !lugonu || type!=abyss.enter)) status!~~"death's door" !@hugeterm

=target

!lg $* fmt:"\${target}"

=tea.brewer

!lm * week type=god.worship \${1=$(rand 2)} stub:'$(=randomuniq)' fmt:"$noun" -random

=tea.tealist

.echo Earl Grey&English breakfast tea&lapsang souchong&Assam&Russian Caravan&chai&sencha&Darjeeling&oolong tea&Jasmine tea&Moroccan mint&chamomile

=test

.echo $(!bug) $(!calc 2*2)

=time

!lm * x=rtime fmt:"${x[0]}"

=time.day

.echo $(sub 0 8 (.echo $(=time)))

=time.monthago

.echo $(- (=time.day) 100)

=time_since_milestone

.echo $(let (lmstring (!lm * x=time $* fmt:"$x[0]" stub:"")) (if (= $lmstring "") "literally forever" (let* (t (stamptime $lmstring) d (dayssince $t) H (mod (hourssince $t) 24) M (mod (minutessince $t) 60) S (mod (secondssince $t) 60)) (if (> $d 0) $d" days, ")(if (> $H 0) $H" hours, ")(if (> $M 0) $M" minutes, ")$S" seconds")))

=title.range

.echo $(if $(= $1 $2) $1 ${1}-${2})

=title.skill.inv

!lm * $1 sk=invocations sk~~"${2:-blah}" $* s=title fmt:"${.}" stub:""

=title.skill.noinv

!lm * $1 sk~~"$*" sk!=invocations s=title x=min(sklev),max(sklev) o=-min(sklev) fmt:"${.} (\$(=title.range ${x[0]} ${x[1]}))" stub:""

=title.title

.echo $(join ', ' (concat (split ', ' (=title.title.noinv $*)) (split ', ' (=title.title.inv $*))))

=title.title.inv

!lm * $1 title~~"$*" sk=invocations s=god fmt:"Invocations (${.})" stub:""

=title.title.noinv

!lm * $1 title~~"$*" sk!=invocations s=sk x=min(sklev),max(sklev) fmt:"${.} \$(=title.range ${x[0]} ${x[1]})" stub:""

=totaldur.lg

!lg $* x=${1.0*sum(dur)} fmt:"${x[0]}" stub:"0"

=totaldur.lm

.echo $(apply ${+} (split " " $(!lm $* alive s=gid x=${1.0*max(dur)} fmt:"$x" join:" " stub:"0")))

=tourneychar.topraces

.echo $(join | (sub 0 10 (split | (!lg * $* t won s=crace x=max(char) o=-n join:"|" fmt:'$(combo_to_race ${x[0]})'))))

=tourneychar.toproles

.echo $(join | (sub 0 10 (split | (!lg * $* t won s=role x=max(char) o=-n join:"|" fmt:'$(combo_to_class ${x[0]})'))))

=tstats.games

.echo $(!lg * $* !boring fmt:"$n" stub: "0") games

=tstats.players

.echo $(!lg * $* !boring x=cdist(name) fmt:"$x" stub: "0") players

=tstats.playertime

.echo total player time $(!lg * $* !boring x=sum(dur) fmt:"$x" stub: "0")

=tstats.runers

.echo $(!lg * $* urune>0 x=cdist(name) fmt:"$x" stub: "0") runers

=tstats.winners

.echo $(!lg * $* won x=cdist(name) fmt:"$x" stub: "0") winners

=tstats.winrate

.echo winrate $(!lg * $* !boring s=year(end) / won fmt:"$n_ratio" stub: "NaN")

=tstats.wins

.echo $(!lg * $* won fmt:"$n" stub:"0") wins

=turns_to_rune

.echo $(listsubtract (split | (=turns_to_rune.rune ${1:-.} $2 $*)) (split | (=turns_to_rune.enter ${1:-.} $2 $*)))

=turns_to_rune.branches

.echo coc|geh|tar|dis|spider|snake|shoals|swamp|slime|vaults|tomb

=turns_to_rune.enter

!lm ${1:-.} br.enter=$2 $(replace "recent" "" $*) gid=$(!lm ${1:-.} $2 $* rune s=gid o=gid title:"" join:"|" fmt:"${.}") s=gid,turn o=gid title:"" join:"|" pfmt:"${child}"

=turns_to_rune.format

.echo $(let (t (map int (split ' ' (=turns_to_rune $1 $2 $*)))) $(name_fixup $1)"'s fastest "$2" rune retrieval"$(if $* " ("$*")")": "(foldr min (car $t) (cdr $t))" turns")

=turns_to_rune.rune

!lm ${1:-.} $2 $* rune s=gid x=min(turn) o=gid title:"" join:"|" fmt:"${x}"

=updatebadchar

!kw badchar $(!lg greatplayers char=$(!lg * playable won s=char join:"|" fmt:"${.}" ?: N<15) playable s=char !boring / won title:"" join:"|" fmt:"${.}" ?: %<0.07)

=version

.echo $(sprintf "%1.2f" (+ 0.01 (re-replace ".+cv>=" "" (!kw current))))

=version.query

!lm * thisweek current $* max=vlong fmt:"$vlong" stub:"none"

=version.query.trunk

!lm * trunk explbr= $* max=vlong fmt:"$vlong" stub:"none"

=watch.helper

!lm ${1:-.} fmt:"\$(replace !| | (=bot_prefix ${2:-${src}}))watch ${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."

=watch_link

.echo $(if (= $1 cao) http://crawl.akrasiac.org:8080/#watch- (if (= $1 cszo) https://crawl.s-z.org/#watch- (if (= $1 clan) https://crawl.s-z.org/#watch- (if (= $1 rhf) http://rl.heh.fi:8080/#watch- (if (= $1 cdo) http://crawl.develz.org/#watch- (if (= $1 cbro) http://crawl.berotato.org:8080/#watch- (if (= $1 ckr) http://kr.dobrazupa.org:8080/#watch- (if (= $1 cxc) http://crawl.xtahua.com:8080/#watch- unknown))))))))

=whereis.helper

!lm ${1:-.} fmt:"\$(=bot_prefix ${2:-${src}})whereis ${name}" stub:"No milestones for $(name_fixup ${1:-${user}})."

=winpercentagejoin

!lg * junk:"$1 $2" $* join:"|" fmt:'${.}' / won s=name ?:%$1 N>=${2:-0}

=wins

!lg $* won s=name title:"${n} wins for $*" fmt:"${.}" stub:"No wins for $*"

=wonnobranchgid

!lg ${2:-.} $(cdr (cdr (split " " $*))) won gid!=$(!lm ${2:-.} br.enter=$1 won s=gid fmt:"${.}" join:"|" stub:"") s=gid join:"|" fmt:"${.}" stub:"" title:""

=wonraces

!lg ${1:-.} $* won s=crace x=max(char) fmt:'$(combo_to_race ${x[0]})' join:"|"

=wonroles

!lg ${1:-.} $* won s=role x=max(char) fmt:'$(combo_to_class ${x[0]})' join:"|"

=wraith

.echo phantom&hungry ghost&shadow wraith&wraith&wraith&wraith&wraith&wraith&freezing wraith&freezing wraith&phantasmal warrior&phantasmal warrior

?.

!learn q $user$(if (= $1 "") "" "["$1"]")

@rc

.echo http://crawl.develz.org/configs/$(replace git trunk ${2:-trunk})/$(!lm ${1:-.} cdo x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

^rc

.echo http://crawl.berotato.org/crawl/rcfiles/crawl-$(replace trunk git ${2:-git})/$(!lm ${1:-.} cbro x=name fmt:"${x[0]}" stub:"$(name_fixup $1)").rc

Keywords

Keyword Definition
--he cls=Healer
-del oldogres
-trm testtime
abyssesc vlong>=0.25-a0-322-g3677130cb1
abyssrun explbr=abyssrun
acceptable_species (HO|Mf|Gr|Dr|Ha|Gh|Hu--|Ko|Ds|Te|DE|Og|Gn|VS|Dg|Fo|Na|Op|Mu)
acrobatstreak @acrobat start>=2022-01-10_10:10:37
advanced VS|Vp|Dg|Fo|Na|Op|Fe--|Ba|Mu
adventurer Ar|--De|Sh|Wn
agilediesel olddiesel status~~agile ev>=36
agileoctane oldoctane status~~agile ev>=56
alive recent ktyp= type!=crash
alive_all ktyp= type!=crash
aliveall ktyp= type!=crash
all tall
allcaps race=DE|DD|GE|HD|HE|HO|LO|MD|OM|SE|VS job=AE|AK|AM|CK|DK|EE|FE|IE|VM
alldam x=dam,sdam,tdam
allt tall
ancestor verb=ancestor.class|ancestor.special
ancestor.class verb=ancestor.class
annihilated ktyp=mon hp<=-22
ant fo
aoop vlong>=0.29-a0-259-gd469af4
arenasprint sprint6
arm cls=arcane_marksman
ass cls=Brigand
atheist god=
authorkmap kmap~~'cheibrodos|gammafunk|hellmonk|lemuel|minmay|nicolae|nzn'
badchar DjEn|DjAK|DjHu|GnCA|PaEn|OgCA|OpCA|SpCA|DECA|VpCA
badcrace crace=basajaun|barachian
badform status~~(tree|porcupine|fungus|pig|wisp)-form
banished abyss.enter noun!="entered the Abyss!" noun!="escaped (hah) into the Abyss!"
banished2 abyss.enter noun!="entered the Abyss!" noun!="escaped (hah) into the Abyss!" noun!="unwielding a weapon of distortion" noun!="was cast into the Abyss!"
banishment banished
barachian race=barachian
basajaun crace=basajaun
bat killer=bat
be-- crace=bearkin
bird ke|te
blacklist gid=Fleurka:cdo:20130009183001S
blah boring
blorked ckiller=Blork
bog god=Beogh
boggle sk=fighting
book AE|AM|Cj|EE|En|--FE|IE|Ne|Su|Tm|VM|Wr|Wz
boring quitting|leaving|wizmode|exploremode
bot @bot
brainless int<=0
branch br
branch.enter verb=br.enter
bu crace=Bultungin
buggygods goodgodevilrace|undemigod
bvcadded vlong>=0.21-a0-593-g3088ccc
bybackground bybg
bybg s=regexp_replace(char, '^..(..)$', '\1')
bybgpercent s=regexp_replace(char, '^..(..)$', '\1')%
byclassgroup byrolegroup
bycls bybg
byform s=regexp_replace(regexp_replace(regexp_replace(status, ".*(,|^)(.*-form).*", "\2") , ".*(,|^)blade (hand|tentacle|paw|claw)s?.*", "blade-form"), "^((?!-form).)*$", "no form")
byformpercent s=regexp_replace(regexp_replace(regexp_replace(status, ".*(,|^)(.*-form).*", "\2") , ".*(,|^)blade (hand|tentacle|paw|claw)s?.*", "blade-form"), "^((?!-form).)*$", "no form")%
byg s=regexp_replace(regexp_replace(regexp_replace(god, "The Shining One", "1"), "^(.).*", "\1"), "^$", "-")
bygod s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(god, "^(Ash|Chei|Dith|Ely|Fed|Goz|Hep|Kiku|Mak|Nem|Oka|Pak|Qaz|Sif|Usk|Veh|Wuln|Yred).+", "\1"), "^$", "-None"), "Lugonu", "Lucy"), "The Shining One", "TSO"), "Wu Jian", "WJC"), "Iashol", "Ru"), "Igni Ipthes", "Igni")
bygodpercent s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(god, "^(Ash|Chei|Dith|Ely|Fed|Goz|Hep|Kiku|Mak|Nem|Oka|Pak|Qaz|Sif|Usk|Veh|Wuln|Yred).+", "\1"), "^$", "-None"), "Lugonu", "Lucy"), "The Shining One", "TSO"), "Wu Jian", "WJC"), "Iashol", "Ru"), "Igni Ipthes", "Igni")%
bygpercent s=regexp_replace(regexp_replace(regexp_replace(god, "The Shining One", "1"), "^(.).*", "\1"), "^$", "-")%
byicecavedifficulty s=regexp_replace(regexp_replace(oplace, "(D:11|D:12|D:13|Lair|Orc).+", "easy"), "(D:|^S|Elf).+", "hard")
byklownpie s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(status, "bat-form|wisp|pig-form", "moon"), "fire_vulnerable", "cherry"), "lost strength|lost intelligence|lost dexterity", "raspberry"), "vertigo", "plum"), "no potions", "lemon"), "silenced((expiring)?)", "blueberry")
bykmapmaker s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(kmap, '.+;.*(cheibrodos|gammafunk|hellmonk|[Ll]emuel|minmay|nicolae|nzn|evilmike|grunt|hangedman|regret_index).*', '\1'), '.*(cheibrodos|gammafunk|hellmonk|[Ll]emuel|minmay|nicolae|nzn|evilmike|grunt|hangedman|regret_index).*', '\1'), "Lemuel", "lemuel"), "hangedman", "regret_index")
bymapmaker s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(map, '.+;.*(cheibrodos|gammafunk|hellmonk|[Ll]emuel|minmay|nicolae|nzn|evilmike|grunt|hangedman|regret_index).*', '\1'), '.*(cheibrodos|gammafunk|hellmonk|[Ll]emuel|minmay|nicolae|nzn|evilmike|grunt|hangedman|regret_index).*', '\1'), "Lemuel", "lemuel"), "hangedman", "regret_index")
bymonth s=regexp_replace(rend, '^(\d\d\d\d\d\d).*', '\1') o=-.
byoldicecavedifficulty s=regexp_replace(regexp_replace(oplace, "(^D|Lair|Orc).+", "easy"), "(D:|^S|Elf).+", "hard")
byracegroup byspeciesgroup
byrolegroup s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(cls, "^(Br|Fi|Gl|Hu|Mo|Th).*", "Warrior"), "^(Art|Wan|Del).*", "Adventurer"), "^(Ab|Be|Ch|Ci|De|Hea|Je|Pa|Pr).*", "Zealot"), "^(Arc|Cr|En|Re|Sk|St|Tr|Warp).*", "WarriorMage"), "^(Ai|Co|Ea|Fi|He|Ic|Ne|Re|Su|Ve|Wi).*", "Mage")
bysp s=regexp_replace(char, '^(..).*', '\1')
byspecies bysp
byspeciesgroup s=regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(crace, "^(Bas|Lac|Im|Sa|Fr|Ch|Be|Pl).*", "Experimental"), "^(Ce|Deep_D|El|Gr|Gnom|Ha|High|La|May|Mo|Pa|Sl).*", "Removed"), "^(Ar|Dr|Ga|Gh|Gn|Hi|Mer|Mi|Tr).*", "Simple"), "^(Hu|Ko|Demo|Dj|Sp|Te|Dee|Og|Ba).*", "Intermediate"), "^(De|Fe|Fo|Oc|Me|Mu|Na|Va|Vi).*", "Advanced")
bysppercent s=regexp_replace(char, '^(..).*', '\1')%
byversion s=regexp_replace(cv, "-a", "")
byversionpercent s=regexp_replace(cv, "-a", "")%
byyear s=regexp_replace(rend, '^(\d\d\d\d).*', '\1') o=-.
casualchar KoAs|OgAr|FoCK|GrNe|VpTm|SpFe|VSAE|NaWz|DrGl|HESu|DsIE|MuBe|DDWr|MfEn|CeWn|TeMo|HuSk|FeCj|DEEE|GhHu|HOVM|TrAM|HaFi|OpAK|MiBe|DgWn|VpEn|DrSu|DsSk|CeTm|GhNe|HuChei|HEYred|TeSif|FeXom|OgTSO|HOZin|VSNem|KoFed|DERNG|DDGozag|CeRu|MfOka|HaKiku|MiTrog|TrDith|DrVeh|DsMakh|SpAsh|OpUsk|MuHep|GrQaz
casualchar_tmp HuChei|HEYred|TeSif|FeXom|OgTSO|HOZin|VSNem|KoFed|DERNG|DDGozag|CeRu|MfOka|HaKiku|MiTrog|TrDith|DrVeh|DsMakh|SpAsh
cat fe--
cehe char=cehe
ceru ce-- ru
ch-- crace=cherufe
champion god.maxpiety
charmitems vlong>=0.26-a0-335-g0fb1eaa16f
chunkless vlong>=0.26-a0-215-g1b87330
cloudringpanlord vlong>0.26-a0-516-gfc961c2 kaux=cloud
clumsy dex<=0
cobbed hungrycobs place=zot|crypt ((ktype=starvation || ikiller=death_cob))
collapse str<=0
color killer~~(^|_)(red|orange|yellow|green|blue|purple|cyan|brown|black|grey|white|pale|mottled|golden|silver)_
colour color
console !tiles
corpseless vlong>=0.29-a0-442-g5dfcd41d59
countsheep vlong>=0.20-a0-242-gffcfc1b
crate urune=2 ktype=leaving
crazy ((sh>=50 || sh>=25 newsh)) crace!=og|tr|na|ce|fo|gn
cryptencompass ((map=cryptofortress_bobbens||map=quadcrypt_mu||map=evilmike_haunted_forest||map=grunt_crypt_end_deaths_head||kmap=cryptofortress_bobbens||kmap=quadcrypt_mu||kmap=evilmike_haunted_forest||kmap=grunt_crypt_end_deaths_head))
cryptfloat ((map=church_of_pain_bobbens||kmap=church_of_pain_bobbens||map=david_glass_crypt||kmap=david_glass_crypt||map=due_elkab||kmap=due_elkab||map=lightli_unholy_cathedral||kmap=lightli_unholy_cathedral))
csdc csdc-0.24
csdc-0.22 @csdc22 0.22|0.22-a ((HuWn start>=2018-10-04 start<2018-10-11 || TrCj start>=2018-10-11 start<2018-10-18 || BaHu start>=2018-10-18 start<2018-10-25 || DgSk start>=2018-10-25 start<2018-11-01 || OpMo start>=2018-11-01 start<2018-11-08 || SpNe start>=2018-11-08 start<2018-11-15 || GhWr start>=2018-11-15 start<2018-11-22 ))
csdc-0.22-combos HuWn|TrCj
csdc-0.23 @csdc23 0.23|0.23-a wks
csdc-0.24 @csdc24 0.24|0.24-a wks
csdcwk wk5
current cv>=0.31
currentroles playable:cls
dang god=dithmenos
day end>${now()-interval('1d')}
ddgozag dd-- gozag
ddhe char=ddhe
dead !won !boring
deadlycig vlong>=0.18-a0-1606-gb0fe834
deadlyminos vlong>=0.22-a0-204-g464ede7
decaying rune noun=decaying
decrepit !recent ktyp= type!=crash
deepabyss vlong>=0.18-a0-289-g35c3a75 !experimental
deepbanish deepabyss
defstats cv>=0.12
dehe char=dehe
delpal explbr=delpal
delver cls=delver
demolished ktyp=mon hp<=-14 hp>-22
demon tier1|tier2|tier3|tier4|tier5
depthsencompasskmap kmap~~pleasuredromes|spin_cycle|slaughterboxes|box_level|crystal_crosses|spriggan_forest|river_lethe|profane_halls|grunt_runaround|sea_of_fire|radiant_caverns|the_grid_ultimate
depthsencompassmap map~~pleasuredromes|spin_cycle|slaughterboxes|box_level|crystal_crosses|spriggan_forest|river_lethe|profane_halls|grunt_runaround|sea_of_fire|radiant_caverns|the_grid_ultimate
depthsvault depths (( kmap!= || map!= )) kmap!~~entry|uniq|vestibule map!~~entry|uniq|vestibule !depths-encompass
depthsvaultkmap depths kmap!= kmap!~~entry|uniq|vestibule !depthsencompasskmap
depthsvaultmap depths map!= map!~~entry|uniq|vestibule !depthsencompassmap
derng de--
devtools wizmode
dghe char=dghe
diabolical vlong>=0.16-a0-3534-g5c12db1
died !won !boring
diesel ac>45 ev>30
dieselstatus diesel status!~~might|agil|phas|vit|berserk|stone|statue|form|hero|divine|corpse
doc --he
dog race=gnoll
donger race=Palentonga
double hehe|huhu|fefe
doublechunkless vlong>=0.26-a0-250-g75e6479
dreamshard verb=dreamshard
drhe char=drhe
drowning ckiller=water|lava
drunk name~~drunk
drveh Dr-- Veh
dsclasskill (( ikiller=~warmonger || ikiller=~black_sun || ikiller=~blood_saint || ikiller=~corrupter || ikiller=~chaos_champion ))
dshe char=dshe
dsmakh Ds-- Makh
duhz place=depths xl<18
dwant race=fo
dying !won !boring
dynamic_monsters explbr=dpegs_dynamic_monsters
ears HE-- DE-- GE-- El--
easyicecave br.enter=icecv oplace~~d:11|d:12|d:13|lair|orc
ecualtars vlong>=0.27-a0-847
ecumenical verb=god.ecumenical
eighthours end>${now()-interval('8h')}
element ckaux~~(fire|flam|ignite|ice|freez|cold|refridg|air|lightning|electro|stone|metal|iron|crystal|rock)
eligiblecoolplayer won words console
enchforestboggart cikiller=boggart map=minmay_lair_end_enchanted_forest
enlightenedgod god='Ru'
equivochars ((vpee dith || mune gozag || koak lugonu || fefe veh))
eternalnaga gid=MarvinPA:cdo:20130118213330S
evil Makhleb|lugonu|kiku|yred|beogh
evilgod kiku|yred|makh|beogh|lugonu
evilrace vp|ds|mu|gh
evoker-god-rebase explbr=evoker-god-rebase
ex-word unword
exactkill ${dam-mhp}=0
executed ckiller=executioner
experimental explbr!=||file~~(smithgod|jump|combo_god)
experimental2 file!~~0\. file!~~git
experimentalrace Basajaun|Be--|Ch--|Im--|Fr--|La--|Pl--|Sa--
explore exploremode
exploremode ktype=exploremode
extended place=hell|coc|geh|tar|dis|pan|tomb
fanaticbuggygods buggygods|gryred
farmer turn>200000
farming farmer
fast Sp|Ce|Fe--
fehe char=fehe
fexom fe-- xom
fire --fe
fmtsimple fmt:'${.} ${%} ${n_ratio} [$x]'
fmtxdays fmt:'${.} $(sprintf "%.2fd" (/ (float (pduration $x)) 86400))'
fmtxhours fmt:'${.} $(sprintf "%.2fh" (/ (float (pduration $x)) 3600))'
fmtxyears fmt:'${.} $(sprintf "%.2fy" (/ (float (pduration $x)) 31536000))'
fohe char=fohe
forestboggart cikiller=boggart map=minmay_lair_end_enchanted_forest
forestdisp cv>=0.14-a start>=20140128
fortnight end>${now()-interval('14d')}
fortnite fortnight
fourhours end>${now()-interval('4h')}
fr crace=frog
fr-- crace=Frog
frog race=barachian|barachi|frog
froge vlong>=0.31-a0-506-g3d79149578
fullgame -tv:
funform badform status!=pig
g gozag
gauntlets vlong>=0.23-a0-536-g5e0f5a2
gecko ckiller=giant_gecko
gf-air-elementals vlong>=0.21-a0-413-g4a39e9c vlong<0.27-a0-1262-g1b1a975c3d
gf-boulder-beetles vlong>=0.26-a0-655-g3d26443778
gf-cloud-mage-hellbinder kmap|map=wizlab_demon|wizlab_cloud vlong>=0.21-a0-413-g4a39e9c
gf-elemental-lab map|kmap=mu_elemental_laboratory gf-master-elementalist
gf-good-abyss (( kmap=~gammafunk || kmap= map=~gammafunk )) abyss splat
gf-good-branch gfmap br!=D|Lair|Abyss|Gauntlet
gf-good-dungeon (( kmap!~~depths_entry|enter_depths|runelock kmap=~gammafunk || kmap= map!~~depths_entry|enter_depths|runelock map=~gammafunk )) D lvl>=12
gf-good-mons gf-master-elementalist cikiller=master_elementalist
gf-klowns vlong>=0.23-a0-653-gca735f5
gf-master-elementalist vlong>=0.27-a0-1532-gca18f49f40
gf-mons-kill (( cikiller=asterion|octopode_crusher || gf-ocs cikiller=orange_crystal_statue || gf-air-elementals killer=air_elemental || gf-klowns cikiller=killer_klown || gf-boulder-beetles killer=boulder_beetle || gf-master-elementalist cikiller=master_elementalist ))
gf-ocs vlong>=0.17-a0-2223-gffb5b29
gf-watch (( kmap|map~~indiana_jones|elemental_lab || cikiller=master_elementalist )) cv>=0.27-a
gf-wizard-prison map|kmap=evilmike_wizard_prison vlong>=0.19-a0-1871-gf468e8a
gfcasual gid=gammafunk:cszo:20151012005803S|gammafunk:cszo:20151012034623S|gammafunk:cszo:20151012034937S|gammafunk:cszo:20160229014823S|gammafunk:cszo:20160304025005S|gammafunk:cszo:20130010123000S
gfchallenge name=gammafunk char=ddfi|deie|desu|grgl|heie|hesu|hogl|mffi|mfgl|mfbe|mibe|migl|musu|miwr|trck|vsie|vsfi|vssu !gfcasual
gfgoodabyss (( kmap=~gammafunk || kmap= map=~gammafunk )) abyss xl>=20
gfgoodbr (( kmap=~gammafunk || kmap= map=~gammafunk )) br!=D|Lair|Abyss|Gauntlet
gfgooddgn (( kmap!~~depths_entry|enter_depths|runelock kmap=~gammafunk || kmap= map!~~depths_entry|enter_depths|runelock map=~gammafunk )) D lvl>=12
gfgoodslinger (( kmap=gammafunk_wand_slinger || kmap= map=gammafunk_wand_slinger )) lvl>=9
gfmap (( kmap~~gammafunk || kmap= map!=~overflow map~~gammafunk || moonbase|gf-cloud-mage-hellbinder|gf-wizard-prison|gf-elemental-lab ))
gfmapat cikiller=merfolk_avatar map=gammafunk_lair_ancient_temple
gfmonskill cikiller~~asterion|octopode_crusher
ghhe char=ghhe
ghostkmap kmap~~ghost|potion_laboratory kmap!=weyrava_ghost_lake|spiders_nest_ghost_moth_duel|nicolae_snake_ghostly_warrior_ritual
ghostly !boring !won ktyp!= lg:place!=D:1 lg:place!=D:2 lg:place!=Temple lg:place!=abyss !mu !gh !vp lg:status!~~lich
ghostmap map~~ghost|potion_laboratory map!=weyrava_ghost_lake|spiders_nest_ghost_moth_duel|nicolae_snake_ghostly_warrior_ritual
ghostvaults vlong>=0.22-a0-512-g0943f25
gkill killer~~'s_ghost
gkmapgoodlair br=lair map=gammafunk_mikee_crab_dinner|gammafunk_cloud_chamber
god_no_god god=
goodchar mupr
goodgod tso|elyvilon|zin
goodgodevilrace goodgod evilrace
goodrace race='he|ha'
gormless ckiller=worm_zombie xl>1
greaterorbrun cv>0.10 orb won urune=3 lg:urune=15
grhe char=grhe
grqaz gr-- qaz
gryred gr yred
hahe char=hahe
hakiku Ha-- kiku
halfdiesel !diesel ((ac>=46 || ev>=31))
hardicecave br.enter=icecv oplace~~d:14|d:15|elf|^s
harpoon vlong>=0.22-a0-311-g83361d3
harpooned kaux=harpoon_shot
healpage vlong>=0.31-a0-1067-gb2354
hehe char=hehe
helf HE--
hellcano vlong>=0.27-a0-1153-g9a643b30eb
hells place=tar|dis|geh|coc
hep god=Hepliaklqana
hepl god=Hepliaklqana
hepliaklqana god=hepliaklqana
heyred he-- yred
high HE--
highmagicskills fifsk~~magic|summoning|necromancy|conjurations
hittemnames s=regexp_replace(name, 'v+(20)?vhard', 'vvvhard') notitle
hittemwon (habe|vpbe|ceck|mife|ddne|hotm)
hohe char=hohe
hot --fe
hotspot vlong>=0.19-a0-1829-g8a8ed2c
hotspot2 vlong>=0.20-a0-976-g035ce40
hour end>${now()-interval('1h')}
hozin HO-- Zin
hs max=score
hubris !won !boring nrune>=3 place!=d|depths|zot
hubrisboredom recent !won boring nrune>=3 place!=dungeon|depths|zot
huchei hu-- chei
huge (og|tr)
huhe char=huhe
hungrycobs vlong>=0.17-a0-1659-gf62aa6c vlong<0.18-a0-1264-g90af9db
hwz hw|wz
hybrid (!be)
hydratm vlong>=0.27-a0-823-g0efe349
hyper name~~^hyper !@hyperimposters
icecave place=icecv
idemon itier1|itier2|itier3|itier4|itier5
ieoh wu_jian
ignominy ckiller=worm|ribbon_worm
ijc wu_jian
im-- crace=imp
intermediate Hu--|Ko|Ds|Ce|Sp|Te|DE|Og|DD
itemstats rstart>=20140722000537 cv>=0.16-a src!=lld
itier1 ikiller=ice_fiend|brimstone_fiend|hell_sentinel|shadow_fiend|tzitzimitl|executioner
itier2 ikiller=balrug|blizzard_demon|shadow_deamon|cacodemon|green_death|hell_beast|hellion|lorocyproca|reaper|tormentor
itier3 ikiller=sun_demon|smoke_demon|soul_eater|neqoxec|ynoxinul|sixfirhy
itier4 ikiller=red_devil|rust_devil|ice_devil|hellwing|orange_demon|chaos_spawn
itier5 ikiller=crimson_imp|white_imp|shadow_imp|iron_imp|quasit|ufetubus
juicy te|ke mhp<100
junglebookdire cikiller=dire_elephant map=due_jungle_book
junglebooknecro cikiller=necromancer map=due_jungle_book
kilozig zigscompleted>2 cv>=0.16-a rstart>2014081810
klownpied zot newklowns (( status~~bat-form|wisp|pig-form|fire_vuln|silence|vertigo|lost_strength|lost_intelligence|lost_dexterity || !ru status~~no_potions ))
kmapauthor vault(kmap)~~(^|_)(amethyst|argonaut|biasface|cheibrodos|chequers|dpeg|due|ebering|elwin|emtedronai|erik|evilmike|gammafunk|grunt|guppfry|hangedman|infiniplex|kb|kennysheep|lemuel|lightli|maelrawn|minmay|mu|nicolae|nooodl|nzn|onia|palyth|ragdoll|regret_index|skrybe|st|zaba)(_|$)
kmapbyauthor vault(kmap)~~^(minmay|evilmike|lemuel|gammafunk|chequers|eberering|st|kennysheep|grunt|hangedman|infiniplex|amethyst|cheibrodos|nzn|regret_index|nicolae|guppfry|ebering) s=regexp_replace(vault(kmap), "^(minmay|evilmike|lemuel|gammafunk|chequers|eberering|st|kennysheep|grunt|hangedman|infiniplex|amethyst|cheibrodos|nzn|regret_index|nicolae|guppfry|ebering).*", "\1")
kmapmaker kmap~~'cheibrodos|gammafunk|hellmonk|lemuel|minmay|nicolae|nzn|evilmike|grunt|hangedman|regret_index'
kmapmoonbase kmap=wizlab_lehudib
kmapnewwizprison kmap=evilmike_wizard_prison vlong>=0.19-a0-1871-gf468e8a
kofed ko-- fedhas
kohe char=kohe
la crace=lacertilian
la-- crace=lacertilian
laae char=laae
laak char=laak
laam char=laam
laar char=laar
laas char=laas
labe char=labe
lacertilian crace=lacertilian
lacj char=lacj
lack char=lack
laee char=laee
laen char=laen
lafe char=lafe
lafi char=lafi
lagl char=lagl
lahe char=lahe
lahu char=lahu
laie char=laie
lairbranch br=shoals|swamp|snake|spider
lairendkmap kmap~~evil_forest|wormcave|jungle_book|caniforms_friends|catoblepas_cave|lair_end|in_review|tendril_chambers|ancient_temple|hotspot|abyssal_woods
lairendmap map~~evil_forest|wormcave|jungle_book|caniforms_friends|catoblepas_cave|lair_end|in_review|tendril_chambers|ancient_temple|hotspot
lairendmapcertain gfmapat|oldjunglebookdire|junglebooknecro|forestboggart
lairendmapst kmap= map~~evil_forest|wormcave|jungle_book|caniforms_friends|catoblepas_cave|lair_end|in_review|tendril_chambers|ancient_temple|hotspot
lairs place=slime|swamp|shoals|spider|snake
lairtemple vlong>=0.19-a0-1012-g919fee8
lairtemple2 vlong>=0.20-a0-226-gc242636
lamo char=lamo
lane char=lane
large (ce|na)
lask char=lask
lastmonth end>${month(month(now()) - interval('1d'))} end<${month(now())}
lastturn ${lg:turn-turn}=0
lastweek end>${day(now()) - ndayofweek(now()) * interval('1d') - interval('7d')} end<${day(now()) - ndayofweek(now()) * interval('1d')}
lastyear end>=${year(now()-interval('365d'))} end<${year(now())}
lasu char=lasu
latm char=latm
lavm char=lavm
lawn char=lawn
lawr char=lawr
lawz char=lawz
linesprint sprint9
liquid ktyp=water|lava
listnames s=name fmt:'${.}' join:'|' notitle
little (sp|fe--)
lmao splat
log -log
lucy god=lucy|lugonu
lugafu god=lugafu|trog
mage AE|Al|Cj|EE|--FE|IE|Ne|Su|VM|HW
man hu--
mangled ktyp=mon hp<=-6 hp>-14
mapauthor vault(map)~~(^|_)(amethyst|argonaut|biasface|cheibrodos|chequers|dpeg|due|ebering|elwin|emtedronai|erik|evilmike|gammafunk|grunt|guppfry|hangedman|infiniplex|kb|kennysheep|lemuel|lightli|maelrawn|minmay|mu|nicolae|nooodl|nzn|onia|palyth|ragdoll|regret_index|skrybe|st|zaba)(_|$)
mapmoonbase map=wizlab_lehudib
mapnewwizprison map=evilmike_wizard_prison vlong>=0.19-a0-1871-gf468e8a
maxpiety god.maxpiety
meat meatsprint
meatsplat sprint map=meatsprint turn>199
meatsprint sprint8
meaty mhp>=400
megazig zigscompleted>6 cv>=0.16-a rstart>2014081810
melee fifsk~~blade|axe|mace|pole|stave|unarm
meleebug meleebug016|meleebugtrunk
meleebug016 vlong>=0.16-b1-18-g9590bb8 vlong<0.16.0-18-g484a79e
meleebug2 vlong>=0.18-a0-72-g2733cf4 vlong<0.18-a0-323-gfe90d9b
meleebugtrunk vlong>=0.17-a0-22-ge0bdd66 vlong<0.17-a0-124-gc3c9679
mfcwc DrCK start>=20141020 ((end<=20141202||!ktyp)) cv=0.15
mfcwcall DrCK|MfSk|HuWn|VpIE|NaWz|FoEE|GrAr|DDBe|HEWr|OpVM|TeCj|VSMo|CeHu|VpNe|OgSk|HODK|FeSu|OgWz|SpEn|OpBe|HEAE|DsMo|MfTm|KoAs|DeWz|MiFi|HuWn|GhEE
mfhe char=mfhe
mfoka mf-- oka
mihe char=mihe
minute end>${now()-interval('1m')}
mitrog mi-- trog
monsterwands vlong>=0.24-a0-260-g7384745
month end>${now()-interval('31d')}
months end>${now()-interval('1 month')}
moonbase map|kmap=wizlab_lehudib
moonland vlong>=0.17-a0-488-g0a147b9
muhe char=muhe
muhep Mu-- Hepl
nahe char=nahe
nastykobolds vlong>=0.22-a0-782-g038298e604
nchoice FoCA|HORe|AtHs|OnHs|BaSh|TeDe|DsAl|SpAl|VSNe|MfEE|VpFE|KoRe|DjMo|TrEn|DjHu|NaSh|DEGl|MfAE|FoDe|FeCA|OnSu|GhSu|MuAl|AtHW|DjCK|GrRe|HuDe|AtCj|DgSh|GhFE|DEMo|KoCA|OnBr|OnAr|OpRe|GnCA|mfcj|SpSu|FoAl|GhEn|BaCA|DgDe|DrAl|AtIE|VSAl
nchoice-0.10 t0.10 char=MiSt|HuPr|FeSk|DDAM|VpCj|DrWr|DgBr|HaEE|MfNe|CeHe|HOAE|KoWn|SEDK
nchoice-0.11 t0.11 char=OpHu|TeDK|MiNe|GhAE|DDSu|KoCj|VpAK|HuAM|FeCK|MuWn|HEBr|CeWz
nchoice-0.12 t0.12 char=TeAr|DESk|VpWn|SEAM|GhEn|HaCj|HEMo|OpDK|MiAE|HOBr|FeFi|DEGl|SpHe|NaPr|MuAM|KoSu|DDWz|MfEE|TrFE|TeCK|HuAK|HaIE|FeWn|VpWr|NaHu|HOTm|DDVM|TrSk
nchoice-0.13 t0.13 char=MiAM|NaHe|MiCj|OpBr|HaWn|HEAK|DEFi|GrEn|SpNe|TeSk|FeIE|GhAE|HaMo|SpSu|MfSu|MuAM|KoTm|VpCK|DDBr|CeAE|DgHu|MfFE
nchoice-0.14 t0.14 char=CeSu|HaIE|TrEn|VSWn|MiWz|FoGl|MuSk|FeAE|OpNe|SpSk|GrHu|GhVM|DDCj|HETm|DDMo|DEHe|VpWr|NaAM|KoAK|FeDK|FoEE|MfAM|HOEn|DrBr|CeFE|HEAr|DECK|VpFi
nchoice-0.15 t0.15 char=VSGl|FeAK|MiIE|OpSu|FoEn|VpFE|TeIE|GrHe|HaWz|DEWr|HOAE|OpSk|GhCj|DDSu|MuBr|MfAM|HECK|VSAr|VpHu|OgEn|KoFi|DEBr|FoWn|CeVM|DrAM|DDTm|FeAr|HENe|TeEE
nchoice-0.16 t0.16 char=VSVM|TrCj|DEWr|HaEE|HOAM|DDAK|FoBr|KoSk|MiEE|HOTm|MfEn|HENe|DrHu|GrAE|CeEn|NaSu|GhWz|OpSu|FoMo|SpIE|TeAK|DEFi|MuAE|MiFE|VpVM|VSHu|DDFE|HaVM|GhCj|OpWr|OpAM|FeNe|HuEn|FoSu|DEAr|CeIE
nchoice-0.17 t0.17 char=MuWr|KoSu|MiAE|FeSk|HOIE|DEAK|DDTm|MiEn|HEBr|MfNe|HaCj|TeAM|FoFE|DgHu|GhAM|VSFE|HEEE|OgEn|CeWz|DEMo|DDVM|SpNe|GrSu|GhSk|FoAE|FeAr|CeSk|VpFE|OpAK
nchoice-0.18 t0.18 char=OgAE|GhEE|HuEn|FoIE|DDSu|DEAM|VpVM|KoMo|OpSk|MfFE|HEEn|MuEE|SpHu|TeTm|HaWz|CeNe|FeWr|CeAr|VSCj|FoVM|OgSu|GhAK|GrAM|KoCj|VpTm|MiCj|HaNe|SpFE|DEWn|TeEn|HOAE|TrSk|OpHu|DrAM|DEGl|HESu|MuAK
nchoice-0.19 t0.19 char=OpWr|HEAr|KoIE|DDAE|CeVM|HOWz|GrEn|GhCj|FeAK|VSSu|DEHu|VpAK|HaSu|TeAM|SpMo|FoCj|MfEE|TrVM|DDSk|HaFE|VSAM|HOTm|GhBe|SpAE|DECK|DDIE|TeAK|VpEE|FoNe|KoTm
nchoice-0.20 t0.20 char=DEAM|DDAK|HOCj|BaEn|FoEn|MiVM|HaIE|VSEE|FeNe|GhWz|CeFE|SpTm|MuAM|TeWr|VpSk|KoAE|GrSu|OgEE|BaHu|MfCj|VpFE|DEBr|HOSu|BaAr|HaAE|FoWz|TeIE|VSVM|MuAK|SpNe|CeTm|DEFi
nchoice-0.21 t0.21 char=TeEn|KoNe|GnAM|DDIE|DEAr|BaWz|DgBr|VSAM|BaVM|OpAK|MfAE|HaFE|VSCj|VpHu|CeWz|FoSu|DEWr|GhVM|FeAK|MuEn|GrNe|HOIE|BaTm|SpAE|KoSk|HaEE|FoCj|VpAr|GhSu|TeEE|CeAE
nchoice-0.22 t0.22 char=VpFE|BaEn|CeIE|DDCj|HaAE|KoVM|CeEE|BaFE|DrAM|TeWr|SpSu|DEAK|BaNe|DgEn|MuWr|FoTM|GnAK|MfEE|HuAE|DEHu|GnCK|VSSu|HaCj|OpAM|OgVM|FoWz|HOEn|SpIE|GhEn|DESk|VSFE|OgCj|DDWz|GnBr|GhAM|SpNe|TeAK|MfNe|HaSu|VSEE|DDVM|OpAE
nchoice-0.23 t0.23 char=GhVM|TeEn|VpCj|VpAE|CeAE|DDIE|DEMo|FeWr|HaEE|GnHu|KoAK|FoSk|DDFE|OpAK|SpSk|MfAM|BaBr|TeEE|MfWz|VsNe|OpWr|DETm|KoNe|TrFE|HuEn|DEAr|DgAM
nchoice-0.24 t0.24 char=MfEn|BaEE|HaVM|HaFE|CeIE|CeWz|TeSk|OpAE|FoNe|GhCj|BaAK|DDAM|HuTm|SpAK|DEBr|OgCj|VpWr|KoIE|VSEE|DgEn|OpHu|GnAE|VSHu|KoSk|GhSu|TeTm|DEGl|SpFE|MuAK|VpAM|MfNe|KoWz|FoWr|GrEn|BaCK|HOCj|VSVM|FeAK
nchoice-0.25 t0.25 char=BaEn|BaAM|FoFE|VSWz|HaAE|KoTm|DDVM|HOEE|CeTm|DEAr|GhSk|DgWr|SpSu|VpCj|TeIE|TeNe|MfFE|DECK|KoAK|VpAE|MuEn|FoCj|OpAM|FeAK|HaWz|CeEE|GhEE|NaAM|MuSk|DDIE|DgHu|OgEn|SpSk|TeBr|HOAE|DDCj|CeSu|TeWr|HaIE|KoNe|VpHu|KoVM|VSAE|HuAM|FoTm
nchoice-0.26 t0.26 char=HaEn|FoSu|PaWn|GhDe|BaAE|MfDe|DEAr|PaGl|MuAM|VSCj|TeAK|VpVM|HaEE|BaNe|KoTm|HuEn|SpIE|GnDe|DgAM|DDAE|DEWr|MfWz|DETm|FoFE|VpFE|HaNe|TeEE|GhWz|BaBr|DDSu|PaHu|TeIE|FeDe|GhFE|VSAM|VpAr|BaWr|DDAK|FoCj|NaDe|KoAE|GhVM|HaTm|MfEE|DDEn|FoIE|DrDe|DEHu|MfCj|BaWz|TeAM|KoFE|VpAK|PaNe|HaSu|GhAE|DgDe|PaIE|DEAK|PaEE|TeEn
nchoice-0.27 t0.27 char=PaCj|MfEn|FoDe|HuAM|DjAE|SpFE|MuAK|VSWz|DgSu|BaCK|DjWn|DDTm|FoWr|TrIE|FeNe|DEGl|VpHu|BaEE|GrNe|KoDe|GhAM|PaCK|DjFi|HOEn|DDWz|TeWr|OgDe|SpTm|NaAE|DrAM|MfNe|DEBr|VSVM|GhCj|HuDe|TrFE|PaMo|NaSu|FeAK|HOIE|MuWr|OpAM|VpWz|FoBe|OgEn|DjAr|DDFE|MfAE|KoWz|SpAK|VpCj|GrEn|BaTm|PaSu
nchoice-0.28 t0.28 char=DDAM|DjCA|BaAK|TeEn|FoIE|PaAr|GhDe|HODe|DjSu|MfFE|VpVM|KoWR|DETm|GrCA|FoAE|PaWz|HuEn|TeEE|SpIE|DjGl|VpFE|MuCA|MfAM|SpSu|BaCj|KoAE|MuDe|BaNe|GhWz|VpWr|DDAK|PaEE|VSDe|DEAr|DEWr|PaHu|DgEn|DrCA|PaBr|DDAE|FoNe|FeCA|DjBe|MfCj
nchoice-0.28-query char=DDAM|DjCA|BaAK|TeEn|FoIE|PaAr|GhDe|HODe|DjSu|MfFE|VpVM|KoWR|DETm|GrCA|FoAE|PaWz|HuEn|TeEE|SpIE|DjGl|VpFE|MuCA|MfAM|SpSu|BaCj|KoAE|MuDe|BaNe|GhWz|VpWr|DDAK|PaEE|VSDe|DEAr|DEWr|PaHu|DgEn|DrCA|PaBr|DDAE|FoNe|FeCA|DjBe|MfCj
nchoice-0.29 t0.29 DEGl|PaSu|FeDe|DjAM|BaTm|TeWr|MeDe|MfAE|GhFE|FoCA|MeHW|TrCA|DjCK|KoNe|PaVM|FeAK|OgEn|DgDe|VpAK|FoCj|MfEE|PaIE|BaCK|SpTm|GhEn|DjAr|MeBe|VpAE|DgAM|DgAM|FoFE|KoHW|OpCA|HuDe|DEAK|DjMo|BaWr|MeBr|DsCA|GhSu|PaTm|DjHu|GrDe|TeAK|KoFE|NaCA|TeAM|PaNe
nchoice-0.30 t0.30 DrCA|AtDe|BaNe|TeRe|GhCj|MeHs|DjBr|MfRe|KoAE|DETm|AtWr|VSFE|TeEn|VpHW|FoIE|DjBe|OgDe|FoEn|HuCA|FeNe|DEAr|MeMo|HOAE|VpCj|VSVM|BaEE|DgRe|KoTm|AtSu|OgCA|MfFE|MfAr|DECK|NaRe|SpDe|MeFi|GhHW|GrCA|DjFi|MuRe|AtHu|VpWr|DgEn|AtEE|FoAE|TeHs|DjHs|MeSu|BaEn|DrDe|SpCA|TeIE|MeCK|DEWr|MfHW|GhAE|AtBr|VSAE
nchoice-0.31 t0.31 FoCA|HORe|AtHs|OnHs|BaSh|TeDe|DsAl|SpAl|VSNe|MfEE|VpFE|KoRe|DjMo|TrEn|DjHu|NaSh|DEGl|MfAE|FoDe|FeCA|OnSu|GhSu|MuAl|AtHW|DjCK|GrRe|HuDe|AtCj|DgSh|GhFE|DEMo|KoCA|OnBr|OnAr|OpRe|GnCA|mfcj|SpSu|FoAl|GhEn|BaCA|DgDe|DrAl|AtIE|VSAl
nchoice-0.5 t0.5 char=OgFE|HaNe|TrIE|MfTh|TeCK
nchoice-0.7 t0.7 char=GhFE|HaTm|SEBr|MDEn|NaPr
nchoice-0.9 t0.9 char=HaVM|TrBr|VpAE|OgCj|KoSk|HOAr|DEHu|CeWz|SpDK|DDEn|SEGl|HuAK|HENe|TePr
nchoice-all nchoice-0.5|nchoice-0.7|nchoice-0.9|nchoice-0.10|nchoice-0.11|nchoice-0.12|nchoice-0.13|nchoice-0.14|nchoice-0.15|nchoice-0.16|nchoice-0.17|nchoice-0.18|nchoice-0.19|nchoice-0.20|nchoice-0.21|nchoice-0.22|nchoice-0.23|nchoice-0.24|nchoice-0.25|nchoice-0.26|nchoice-0.27|nchoice-0.28|nchoice-0.29|nchoice-0.30|nchoice-0.31
nchoice0.16 VSVM|TrCj|DEWr|HaEE|HOAM|DDAK|FoAs|KoSk|MiEE|HOTm|MfEn|HENe|DrHu|GrAE|CeEn|NaSu|GhWz|OpSu|FoMo|SpIE|TeAK|DEFi|MuAE|MiFE|VpVM|VSHu|DDFE|HaVM|GhCj|OpWr|OpAM|FeNe|HuEn|FoSu|DEAr|CeIE
nchoiceall nchoice-all
nem-eligible AtAE|AtAl|AtAr|AtCA|AtCj|AtCK|AtEn|AtFE|AtGl|AtHs|AtHW|AtIE|AtMo|AtNe|AtRe|AtSh|AtWn|BaAl|BaCA|BaDe|BaHW|BaRe|BaSh|DEAl|DECA|DEDe|DEGl|DEMo|DERe|DESh|DgAl|DgDe|DgSh|DjAl|DjAr|DjCK|DjEn|DjHu|DjMo|DjRe|DjSh|DrAl|DrRe|DsAl|DsSh|FeAl|FeCA|FeRe|FoAl|FoCA|FoDe|FoFE|FoNe|FoRe|FoSh|FoSu|GhAl|GhCA|GhEn|GhFE|GhRe|GhSu|GnAl|GnCA|GnRe|GnSh|GrAl|GrRe|GrSh|HOAl|HOCA|HORe|HOSh|HuAl|HuDe|HuRe|HuSh|KoAl|KoCA|KoFE|KoNe|KoRe|KoSh|KoWr|MfAE|MfAl|MfCA|MfCj|MfDe|MfEE|MfNe|MfSh|MiAl|MiRe|MiSh|MuAl|MuCA|MuDe|NaAl|NaCA|NaSh|OnAE|OnAl|OnAr|OnBe|OnBr|OnCA|OnCj|OnCK|OnDe|OnEE|OnEn|OnFE|OnFi|OnGl|OnHs|OnHu|OnHW|OnIE|OnMo|OnNe|OnRe|OnSh|OnSu|OnWn|OnWr|OpAl|OpCA|OpRe|SpAl|SpRe|SpSh|SpSu|TeAl|TeCA|TeDe|TeEE|TeSh|TrAl|TrEn|TrRe|TrSu|VpAl|VpCA|VpDe|VpFE|VpRe|VpSh|VSAl|VSCA|VSNe|VSRe|VSSh
nem-eligible-n51 char=AtAE|AtAr|AtBe|AtBr|AtCA|AtCj|AtCK|AtDe|AtEE|AtEn|AtFE|AtGl|AtHs|AtHu|AtHW|AtIE|AtMo|AtNe|AtRe|AtSu|AtTm|AtVM|AtWn|AtWr|BaCA|BaDe|BaEE|BaEn|BaNe|BaRe|DECA|DEDe|DERe|DETm|DEWr|DgRe|DjBr|DjEn|DjHs|DjRe|DjTm|DrCA|DrRe|FeCA|FeRe|FoAE|FoDe|FoIE|FoNe|FoRe|FoTm|GhAE|GhCA|GhRe|GnCA|GnRe|GrCA|GrRe|HOCA|HORe|HuCA|HuRe|KoAE|KoCA|KoRe|MeAE|MeAr|MeCA|MeCj|MeCK|MeEE|MeEn|MeFE|MeFi|MeGl|MeHs|MeHu|MeIE|MeMo|MeNe|MeRe|MeSu|MeTm|MeVM|MeWn|MeWr|MfCA|MfCj|MfDe|MfRe|MiRe|MuCA|MuDe|MuRe|NaRe|OgCA|OgDe|OgRe|OpRe|SpCA|SpRe|TeCA|TeDe|TeEn|TeRe|TrRe|VpCA|VpDe|VpRe|VSCA|VSRe
nem-eligible1 char=BaAE|BaAK|BaAM|BaAr|BaAs|BaCj|BaCK|BaEE|BaEn|BaFE|BaMo|BaNe|BaWn|BaWr|CeCj|CeEE|CeEn|CeFE|CeIE|CeNe|CeSu|CeTm|CeVM|DDAE|DDAK|DDAM|DDCj|DDEn|DDVM|DDWz|DEAK|DEFi|DEGl|DEHu|DESk|DETm|DgEn|DrAM|FoAE|FoEn|FoFE|FoIE|FoNe|FoTm|FoWz|GhAE|GhAM|GhEn|GhSk|GnAE|GnAK|GnAr|GnAs|GnCj|GnCK|GnEE|GnEn|GnFE
nem-eligible2 char=GnHu|GnIE|HaAE|HaCj|HaEn|HaNe|HaSu|HaVM|HaWz|HOEn|HuAE|HuEn|KoAE|KoAK|KoIE|KoTm|KoVM|MfAM|MfCj|MfEE|MfEn|MfFE|MfNe|MuAK|MuWr|OgAE|OgCj|OgEn|OgVM|OpAE|OpAM|OpWr|SpAK|SpIE|SpNe|SpSk|SpSu|TeAK|TeIE|TeSk|TeWn|TeWr|TrFE|VpAE|VpAM|VpCj|VpFE|VpVM|VpWr|VSEE|VSFE|VSHu|VSIE|VSSu|VSVM|VSWz|
neoyred newbeogh
new-nemelex vlong>=0.23-a0-607-g760965b
newairelekill killer=air_elemental vlong>=0.21-a0-413-g4a39e9c
newash vlong>=0.27-a0-428-g0b9efa7
newasterion vlong>=0.19-a0-526-gbe2e51c
newbeogh vlong>=0.32-a0-285-g900342706a
newcloudmagehellbinder kmap|map=wizlab_demon|wizlab_cloud vlong>=0.21-a0-413-g4a39e9c
newdith vlong>=0.22-a0-603-gfc1114d
newdrain vlong>=0.26-a0-1094-gdb0aba6efe
newelf vlong>=0.18-a0-779-gf9919a2
newely rstart>20150103
newfedhas vlong>=0.24-a0-758-gbab67b8a05
newfelid vlong>=0.31-a0-1138-g406407be85
newfrederick vlong>=0.16-a0-2999-gb69e976
newgnoll newgnolls
newgnolls vlong>=0.21-a0-287-gd2df3b7
newgolubria vlong>=0.31-a0-970-gd09d022031
newharold vlong>=0.22-a0-811-gbf23809
newhell vlong>=0.28-a0-364-gb16ebcc8e8
newhuman vlong>=0.31-a0-1240-gf11e229afd
newicecv vlong>=0.27-a0-1455-g331ba6fa66
newijc ijc vlong>=0.20-a0-667-g350a136
newirongiant vlong>=0.19-a0-1467-g77de427
newjorgrun vlong>=0.23-a0-147-g7935be9
newjungle vlong>=0.27-a0-1091-g986d5f5
newklownkill newklowns cikiller=killer_klown
newklowns vlong>=0.23-a0-653-gca735f5
newmasterelementalist gf-master-elementalist
newmiscasts vlong>=0.25-a0-768-g6f2fc6e
newmonk vlong>0.19-a0-679-gc8dcfc9 monk
newnemelex new-nemelex
newnewgnolls gnollsredux
newnewijc ijc vlong>=0.20-a0-694-ga0108bb
newnewjungle vlong>=0.27-a0-1557-g57f10a385c
newnewogres vlong>=0.21-a0-265-gb353147
newocs vlong>=0.17-a0-2223-gffb5b29
newocskill newocs cikiller=orange_crystal_statue
newogres vlong>=0.20-a0-294-g8e39459
newoka newokawaru
newokawaru vlong>=0.28-a0-169-g5b07bef5ff
neworbrun vlong>=0.23-a0-325-g792c6d1
neworc vlong>=0.18-a0-752-ga64f057
newpakellas pakellas explbr=evoker-god-rebase
newpanlords vlong>=0.26-a0-178-g76ffd63272 killer~~pandemonium_lord
newprison vlong>=0.19-a0-1871-gf468e8a
newserpent vlong>=0.16-a0-423-g28a7641
newsh vlong>=0.15-a0-1254-g0c40c51
newsif vlong>=0.24-a0-457-gaec7895
newslime vlong>=0.27-a0-619-ge6a60533fa
newslimeends vlong>=0.31-a0-220-gc2f4f3cf83
newsnake vlong>=0.27-a0-720
newspider vlong>=0.28-a0-1258-gbe32123071
newswamp vlong>=0.26-a0-735-g747a3e5df7
newthrowing vlong>=0.24-a0-413-g536fa38985
newtomb vlong>=0.20-a0-1012-gadd7f62 tomb
newtombtraps vlong>=0.23-a0-773-ge8b0c57
newtraps vlong>=0.23-a0-495
newuniques cikiller=amaemon|zenata|parghit|josephina|vv|lodul
newvampires vlong>=0.24-a0-395-g301a641
newwizprison map|kmap=evilmike_wizard_prison vlong>=0.19-a0-1871-gf468e8a
newwjc vlong>=0.21-a0-450-gd87a9b2
newzig vlong>0.16-a0-650-g275c35f zigscompleted>0 start>2014-09-19
newzonguldrok vlong>=0.31-a0-1000-gd5ff2fe127
no_god god=
noagilediesel olddiesel status!~agile
noagileoctane oldoctane status!~agile
nochunkeating vlong>=0.26-a0-215-g1b87330
nodiff char=DDBe|DDNe|DDEE|DDFi|DDGl|DDAr|DDAs|MiBe|MiFi|MiGl|MiAs|MiAK|GrBe|GrIE|HOBe|MfBe|MfIE|SpEn|OgBe|CeBe|CeHu|CeAM|CeAs|CeAK|VSBe
nohittem name!~~hittemv.*hard
nohittemnames nohittem
nomaxmp mmp=0 rend>20140814174523R
nonviolentgod god='sif|ash|ely|jiyva'
normal race!=(ha|ko|sp|fe--|ce|na|tr|og)
nospawn vlong>=0.21-a0-257-gbb444f2
nothuge !@hugeterm
notitle title:""
nskobold explbr=kobold-nightstalker
nwon29-1 char=BaAE|BaAK|BaAM|BaAr|BaAs|BaCj|BaCK|BaEE|BaEn|BaFE|BaMo|BaNe|BaTm|BaVM|BaWn|BaWr|BaWz|CeAE|CeCj|CeEE|CeEn|CeIE|CeNe|CeSu|CeTm|CeVM|DDAE|DDAK|DDAM|DDCj|DDEn|DDWz|DEAK|DEAr|DEFi|DEGl|DEHu|DESk|DETm|DEWr|DgEn|DrAM|FoAE|FoCj|FoFE|FoIE|FoNe|FoTm|FoWz|GhAE|GhAM|GhEn|GhSk|GhSu|GnAE|GnAK|GnAr|GnAs|GnCj|GnCK|GnEE|GnEn|GnFE|GnHu|GnIE|HaAE|HaCj|HaEE|HaEn|HaFE|HaNe|HaSu|HaVM|HaWz
nwon29-2 char=HuAE|HuEn|KoAE|KoAK|KoSk|KoTm|KoVM|MfCj|MfEn|MfNe|MuAK|OgCj|OgEn|OgVM|OpAE|OpAM|OpWr|SpAK|SpIE|SpNe|SpSk|SpSu|TeAK|TeEE|TeEn|TeIE|TeSk|TeWr|TrFE|VpAE|VpAM|VpCj|VpFE|VpVM|VpWr|VSEE|VSFE|VSHu|VSIE|VSSu|VSVM|VSWz
octane agileoctane|noagileoctane
off !on
oghe char=oghe
ogtso og-- tso
okacapstone vlong>=0.31-a0-800-gbc85d14992
oktv !cwz !lld ((!cao || !tiles || month(start)<20230301)) !cdi !cszo
old !recent
olddj dj cv<0.27-a
oldjunglebookdire cikiller=dire_elephant map=due_jungle_book vlong<0.27-a0-1091-g986d5f5
oldoctane ac>=23 ev>=51
oldogres vlong<0.20-a0-294-g8e39459
oldpakellas pakellas !newpakellas
oldwon char=
omegafunk name=omegafunk
oneshot dam>${mhp} hp=${mhp-dam}
oni on
ophe char=ophe
opusk Op-- Usk
orc-end orc kmap~~st_orc|orc_garden|orc_community|tribal_feast|orc_cross|orc_diabolic|mage_school|orc_utopia
orcs_and_elves explbr=orcs_and_elves
originalgnolls vlong>=0.20-a0-961-g171cb2e vlong<0.21-a0-130-gf0fb5d9
over end
overkill ${tdam-mhp}>-1
p pakellas
pa crace=palentonga
pak god=Pakellas
pakellas god=pakellas
palentonga crace=palentonga
paralysed status~~paralysed
penancetitle title~~(honourless|blasphemer|traitor|coward|puny|sinner|apostate|scum|walking_fertiliser|unwound|ignorant)
pitsprint sprint7
playable-0.31 !vm !og (( playable || on playable:job|al || al playable:sp|on ))
playable-as char=OpAs|SpAs|KoAs|VpAs|VSAs|DsAs|GnAs|HaAs|TrAs|HuAs|DrAs|TeAs|NaAs|GhAs|GrAs|MiAs|FoAs|OgAs|DgAs|HOAs|MfAs|BaAs|MuAs|DDAs|DEAs
playable031 playable-0.31
playable2 playable crace!=basajaun
playable:god oka|lucy|veh|sif|makh|yred|tso|nem|kiku|ash|ely|chei|dith|qaz|hep|usk|fedhas|trog|jiyva|gozag|ru|zin|beogh|xom|wu
playable:role playable:job
playableme playable !me
playableme:sp crace='Human|Deep Elf|Hill Orc|Kobold|Mummy|Naga|Ogre|Troll|Draconian|Demigod|Spriggan|Minotaur|Demonspawn|Ghoul|Tengu|Merfolk|Vampire|Felid|Octopode|Djinni|Gargoyle|Formicid|Vine Stalker|Barachi|Gnoll|Armataur'
playablenotme playableme
pmagic positional-magic
polypsyche vlong>=0.27-a0-191-gfb5ce4e607
portal place=icecv|volcano|lab|bailey|sewer|bazaar|ossuary|wizlab|trove|desolation|gauntlet
positional-magic vlong>=0.25-a0-237-g0889b22
pyro --fe
q qazlal
ragequit xl>10 ktyp=quitting
randliches vlong>=0.16-a0-2796-g1f429ea
rangedignominy ckiller=dart_slug ktyp=beam
realdiesel agilediesel|noagilediesel
realmauris !SpAK !FoAr !FoWr !FoFi
realpatashu @patashu !ckr
realscore sc<1000000000
recent cv>=0.30
recentish cv>=0.29
recentishish cv>=0.28
removedrace Dj--|El--|GE--|Gn--|HE--|LO--|MD--|SE--
rip died
rlock start>=20131101 cv>=0.14-a
robotfindskitten boggle
runelock cv>=0.14
s sbranch
sa crace=salamander
sa-- crace=salamander
saae char=saae
saak char=saak
saam char=saam
saar char=saar
saas char=saas
sabe char=sabe
sac type=sacrifice
sacj char=sacj
sack char=sack
sadk char=sadk
saee char=saee
saen char=saen
safe char=safe
safi char=safi
sagl char=sagl
sahe char=sahe
sahu char=sahu
saie char=saie
salamander race=salamander
salt desolation
samo char=samo
sane char=sane
santa ckiller=satan_claus
sask char=sask
sasu char=sasu
satm char=satm
savm char=savm
sawn char=sawn
sawr char=sawr
sawz char=sawz
sbranch (shoals|swamp|spider|snake)
selfown ((cikiller=you|the_player_character || ktype=self_aimed || ckaux=ignited_by_their_inner_flame ))
shoalsendkmap shoals kmap!~~ilsuiw kmap~~shoals_iceberg|shoals_garden|shoalhut|rune_alternative|shoals_end
shooty --hu
short dur=0
sigmund ckiller=sigmund
simple HO|Mi|Mf|Gr|At|Dr|Tr|Gh|Gn
sixhours end>${now()-interval('6h')}
sixmonths end>${now()-interval('6 months')}
skysharks vlong>=0.30-a0-759-g0b89b74ca8
slimeendkmap newslimeends kmap~~^slime_pit
slimeendmap newslimeends map~~^slime_pit
slimeicecave vlong>=0.27-a0-1125-g131cd56ac5
small (ha|ko)
snakeendkmap snake kmap~~snake_hunt|snake_pit|snake_rune|snake_end
snek race=na
spash sp-- ash
sphe char=sphe
spiderendkmap spider kmap~~spider_rune
splat xl>=17 !won
sprint1 sprint mapdesc=Sprint_I:_"Red_Sonja"
sprint2 sprint mapdesc=Sprint_II:_"The_Violet_Keep_of_Menkaure"
sprint3 sprint mapdesc=Sprint_III:_"The_Ten_Rune_Challenge"
sprint4 sprint mapdesc=Sprint_IV:_"Fedhas'_Mad_Dash"
sprint5 sprint mapdesc=Sprint_V:_"Ziggurat_Sprint"
sprint6 sprint mapdesc=Sprint_VI:_"Thunderdome"
sprint7 sprint mapdesc=Sprint_VII:_"The_Pits"
sprint8 sprint mapdesc=Sprint_VIII:_"Arena_of_Blood"
sprint9 sprint mapdesc~~^Sprint_IX:
squarelos vlong>=0.17-a0-944-g52a14e0
squarelostest explbr=squarelos-0.17
squid op
squidward opjr
stable !alpha
starve ktyp=starvation
starved ktyp=starvation
starving ktyp=starvation
statdeath (( str<0 || int<0 || dex<0 ))
statlockedgnolls vlong>=0.21-a0-130-gf0fb5d9 vlong<0.21-a0-287-gd2df3b7
stats x=mhp,ac,ev,sh,str,int,dex
statue status=statue-form
statzero str<1 || int<1 || dex<1
stronk str>=18
sub1hr dur<1:00:00
sub20 dur<00:20:00
superzig zigscompleted>12 cv>=0.16-a rstart>2014081810
swampendkmap swamp kmap~~^swamp$|_alternative|old_school|swamp_fiery|swamp_icy|swamp_pestilence|swamp_vile|_rune|swamp_basic|death_and_undeath|witches_coven
t-all tall
t-fast t0.27-fast
t-games t0.31-games
t-milestones t0.31-milestones
t0.15a t0.15 !t0.15b
t0.15b t0.15 start>='2014-09-06 20:00:00'
t0.16a t0.16 meleebug
t0.16b t0.16 !meleebug
t0.21fixed start>='2018-01-05 20:00:00' end<'2018-01-21 20:00:00' ((cv=0.21|0.21-a))
t0.22-fast start>='2018-08-10 20:00:00' time<'2018-08-26 20:00:00' ((cv=0.22|0.22-a))
t0.23-fast start>='2019-02-08 20:00:00' end<'2019-02-24 20:00:00' ((cv=0.23|0.23-a))
t0.24-fast start>='2019-10-25 20:00:00' end<'2019-11-10 20:00:00' ((cv=0.24|0.24-a))
t0.25-fast start>='2020-06-12 20:00:00' end<'2020-06-28 20:00:00' ((cv=0.25|0.25-a)) file!='cwz/soup/trunk/milestones' file!='cwz/soup/trunk/logfile'
t0.25fixed t0.25 file!="cwz/soup/trunk/milestones"
t0.26-fast start>='2021-01-08 20:00:00' end<'2021-01-24 20:00:00' vlong~~0.26-b|0.26\.
t0.26-games start>='2021-01-08 20:00:00' end<'2021-01-24 20:00:00' cv=0.26|0.26-a
t0.27-fast start>='2021-07-30 20:00:00' end<'2021-08-15 20:00:00' vlong~~0.27-b|0.27\.
t0.28-fast start>='2022-02-04 20:00:00' time<'2022-02-20 20:00:00' vlong~~0.28-b|0.28
t0.28-games start>='2022-02-04 20:00:00' end<'2022-02-20 20:00:00' cv=0.28|0.28-a
t0.28-milestones start>='2022-02-04 20:00:00' time<'2022-02-20 20:00:00' cv=0.28|0.28-a
t0.28-tstats start>='2022-02-04 20:00:00' end<'2022-02-20 20:00:00' cv=0.28|0.28-a
t0.29-games start>='2022-08-26 20:00:00' end<'2022-09-11 20:00:00' cv=0.29
t0.29-milestones start>='2022-08-26 20:00:00' time<'2022-09-11 20:00:00' cv=0.29
t0.29-tstats start>='2022-08-26 20:00:00' end<'2022-09-11 20:00:00' cv=0.29
t0.30-games start>='2023-05-05 20:00:00' end<'2023-05-21 20:00:00' cv=0.30|0.30-a
t0.30-milestones start>='2023-05-05 20:00:00' time<'2023-05-21 20:00:00' cv=0.30|0.30-a
t0.31-games start>='2024-01-19 20:00:00' end<'2024-02-04 20:00:00' cv=0.31|0.31-a
t0.31-milestones start>='2024-01-19 20:00:00' time<'2024-02-04 20:00:00' cv=0.31|0.31-a
t1boring boring turns<=1
tall t*
tall-games !ha
tehe char=tehe
tenminutes time>${now()-interval('10minute')}
tesif te-- sif
testdiesel agilediesel|noagilediesel
tfixed t0.25fixed
thebees ckiller~~killer_bee|meliai|queen_bee|hornet|spark_wasp
therealpatashu @patashu !ckr
thisfortnight fortnight
thishour hour
thisminute minute
thismonth end>${month(now())}
thisweek week
thisyear end>${year(now())}
threedays end>${now()-interval('3d')}
threemonths end>${now()-interval('3 months')}
threeyears end>${now()-interval('1095d')}
thrown ktype=being_thrown
thunderdome sprint6
tie orb turn=${lg:turn}
tier1 killer=ice_fiend|brimstone_fiend|hell_sentinel|shadow_fiend|tzitzimitl|executioner
tier2 killer=balrug|blizzard_demon|shadow_deamon|cacodemon|green_death|hell_beast|hellion|lorocyproca|reaper|tormentor
tier3 killer=sun_demon|smoke_demon|soul_eater|neqoxec|ynoxinul|sixfirhy
tier4 killer=red_devil|rust_devil|ice_devil|hellwing|orange_demon|chaos_spawn
tier5 killer=crimson_imp|white_imp|shadow_imp|iron_imp|quasit|ufetubus
tmons killer=tentacled monstrosity
today day
trdith Tr-- Dith
trhe char=trhe
trkmap kmap~~overflow_arena|sealed_arena|steamed_eel|wand_slinger|sealed_library|the_bubble|jiyva_shrine|beogh_shrine|corrupted_shrine|x_factor|reverse_zot|dig_for_victory|its_a_trap|trogs_sanctum|cloud_chamber|mask_of_the_dragon|ghost_arena|ghost_mausoleum|stat_death|ghost_smash|ghost_hive|gnarly_gnolls|berserking_beasts|wrathful_warriors|abyssal_escape|worm_tunnel
trmap map~~overflow_arena|sealed_arena|steamed_eel|wand_slinger|sealed_library|the_bubble|jiyva_shrine|beogh_shrine|corrupted_shrine|x_factor|reverse_zot|dig_for_victory|its_a_trap|trogs_sanctum|cloud_chamber|mask_of_the_dragon|ghost_arena|ghost_mausoleum|stat_death|ghost_smash|ghost_hive|gnarly_gnolls|berserking_beasts|wrathful_warriors|abyssal_escape|worm_tunnel
trmapsummonsandtraps map~~overflow_arena|sealed_arena|wand_slinger|sealed_library|the_bubble|jiyva_shrine|beogh_shrine|corrupted_shrine|x_factor|reverse_zot|dig_for_victory|its_a_trap|trogs_sanctum|cloud_chamber
true id>0
truemage fifsk~~earth|air|fire|ice|necr|conj|summo fifsk!~~armor|shields
trunk alpha !experimental
ttest cv=~0.15 rstart>=20140722 rstart<=20140901
twelvehours end>${now()-interval('12h')}
twodays end>${now()-interval('2d')}
twohours end>${now()-interval('2h')}
twomonths end>${now()-interval('2 months')}
twoweeks fortnight
twoyears end>${now()-interval('730d')}
u god=ukayaw
ugly killer~~ugly_thing
uka usk
ukayaw uskayaw
ultrazig vlong>0.16-a0-650-g275c35f zigscompleted>0 zig
undead vp|gh|mu
undemigod dg god!=
uniques uniques1|uniques2|uniques3|uniques4
uniques1 cikiller=agnes|aizul|amaemon|antaeus|arachne|asmodeus|asterion|azrael|bai_suzhen|blork|boris|cerebov|chuck|cigotuvi's_monster|cloud_mage|crazy_yiuf|dispater|dissolution|donald|dowan|duvessa|edmund|the_enchantress|ereshkigal|erica|erolcha|eustachio|fannar|frances|frederick|gastronok|geryon|gloorx_vloq|grinder|grum|grunn
uniques2 cikiller=harold|head_instructor|hellbinder|ignacio|ijyb|ilsuiw|jeremiah|jessica|jorgrun|jory|joseph|josephina|josephine|khufu|kirke|the_lernaean_hydra|lodul|lom_lobon|louise|mara|maggie|margery|maud|maurice|menkaure|mennas|mlioglotl|mnoleg|murray
uniques3 cikiller=natasha|nellie|nergalle|nessos|nikola|norris|pargi|parghit|pikel|polyphemus|prince_ribbit|psyche|purgy|robin|roxanne|rupert|saint_roka|the_serpent_of_hell|sigmund|snorg|sojobo|sonja|terence|tiamat
uniques4 cikiller=urug|vashnia|vv|wiglaf|xtahua|zenata
unplayable char=DgAK|DgBe|DgCK|FeAM|FeAs|FeGl|FeHu|GhTm|MuTm
unwatched ${lg:ntv}=0 ntv=0
unword fest|gear|gene|gest|gnar|hare|hast|hath|here|hest|heth|host|keen|loam|lobe|lock|lore|lost|mist|must|omen|seam|sear|seas|seen|sere|sewn|test
unwords word !playable
usk uskayaw
uskayaw god=uskayaw|ukayaw
validskill sk=fighting|sblades|lblades|axes|maces|polearms|staves|unarmed|bows|crossbows|throwing|slings|armour|dodging|shields|spellcasting|conjurations|hexes|charms|summonings|necromancy|translocations|transmutations|fire|ice|air|earth|poison|invocations|evocations|stealth
vest place=hell
vestibule place=hell
violentgod god='Kikubaaqudgha|Makhleb|Beogh|Lugonu|Trog|Okawaru|Qazlal|Vehumet'
virtuousgod god='The Shining One|Elyvilon|Zin|Fedhas Madash'
vphe char=vphe
vshe char=vshe
vsnem vs-- nem
wandijyb vlong>=0.20-a0-918-g7688923
wandremoval vlong>=0.20-a0-318-g2007a24
warrior Fi|Gl|Mo|--Hu|Br|Th
warrior-mage warriormage
warriormage --Sk|--Tm|--Wr|--AM|--En
week end>${now()-interval('7d')}
whale @whale
wjc god=Wu_Jian
wk1 start>=2020-01-31 start<2020-02-07 VpAs
wk1gods Ru|Dith|Yred|Ely
wk2 start>=2020-02-07 start<2020-02-15 TeTm
wk3 start>=2020-02-14 start<2020-02-21 MiSu
wk4 start>=2020-02-21 start<2020-02-28 GnCK
wk4gods Veh|Xom|Sif
wk5 start>=2020-02-28 start<2020-03-06 VSAr
wk6 SpNe start>=2018-11-08 start<2018-11-15
wk7 GhWr start>=2018-11-15 start<2018-11-22
wks wk1|wk2|wk3|wk4|wk5
won15 won urune=15
word words1|words2|words3
words word
words1 char=BaAl|BaAs|BaBe|BaCK|BaDe|BaNe|BaRe|BaSh|BaSk|BaSt|BaTh|BeAK|BeAM|BeAr|BeCK|BeDe|BeEn|BeSt|BeTh|CeDe|ChAr|CoAl|CoCA|CoCK|CoDe|CoMo|CoNe|CoSh|CoRe|CoSt|DEAl|DEAr|DECK|DEMo|DESk|DrAM|ElAM|ElBe|ElMo|FeAr|FeSt|FoAM|FoAl|FoRe|FrEE|GEAr|GENe|GERe
words2 char=GrAM|HEAl|HEAr|HECK|HERe|HEWn|HOCK|HOMo|HONe|HOSt|HaAs|HaCK|HaRe|HaSh|HaTh|HuCK|HuSh|HuSk|ImAM|KeCK|KeEn|KoBe|LOAM|LOBe|LOCK|LODe|LONe|LORe|LOSt|LOTh|LaCK|LaDe|LaNe|LaSh|LaSt|LaTh|LaWn|MeAl|MeMo|MeRe|MeSh|MiAs|MiCA|MiEn|MiNe|MiRe|MiSt
words3 char=MuCK|MuSh|MuSk|MuSt|MySt|MyTh|NaPa|NaSh|OMAr|OMEn|OMSk|OgRe|OpAl|OpEn|PaAr|PaCK|PaNe|PaPa|PaRe|PaSt|PaTh|PaWn|SEAM|SEAl|SEAr|SEAs|SEEn|SERe|SETh|SEWn|SaAr|SaCK|SaDe|SaFE|SaNe|SaSh|SaWn|SpAM|SpAr|SpAs|TeAK|TeAM|TeAl|TeAr|TeAs|TeEn|TeSt|TrAM|TrEE
wu_jian god=ieoh_jian|wu_jian
wudzu god=Wudzu
xpinfo vlong>=0.21-a0-218-g8aba26b
year end>${now()-interval('365d')}
yesterday end>${now()-interval('2d')} end<${now()-interval('1d')}
zag gozag
zealot AK|Be|CA|CK|DK|Pr|--He|--Pa|Jr
zigsprint sprint5
zombiebrains vlong>=0.31-a0-1066
zs gid>=zzxc:cpo:20150027172425S

Functions

Function Definition
abs (x) (if (< $x 0) (- 0 $x) $x)
abyssturnsremover (d entm entn) $(if (= (car $d) (car $entm)) (if (= (length $d) 1) (cdr $entn) (abyssturnsremover (cdr $d) (cdr $entm) (cdr $entn))) (cons (car $entn) (abyssturnsremover $d (cdr $entm) (cdr $entn))))
add_days (t n) $(inversestamptime (+ (stamptime $t) $n))
adjust_raw_yyyymmdd (t) $(let (m (int (sub 5 6 $t))) $(if (< $m 9) (concat (sub 0 5 $t) (+ $m 1) (sub 6 $t)) (concat (sub 0 4 $t) '10' (sub 6 $t))))
allgods () $(list Tr Ok Lu Ve Ma Go Ch Si Xo As Th Wu Di Qa Ki Ru He Ne Us Yr Zi El Fe Ji)
allplayeruniquewins (. args) $(map (fn (kv) (sprintf "%s(%d): %s" (nth 0 $kv) (length (nth 1 $kv)) (nth 1 $kv))) (sort (fn (a b) (<=> (length (nth 1 $b)) (length (nth 1 $a)))) (apply playeruniquewinhash $args)))
allplayeruniquewinsscore (. args) $(map (fn (kv) (sprintf "%s(%d)" (nth 0 $kv) (length (nth 1 $kv)))) (sort (fn (a b) (<=> (length (nth 1 $b)) (length (nth 1 $a)))) (apply playeruniquewinhash $args)))
annotate_combo (combo text) $(replace (sub 0 4 $combo) $combo $text)
apthash (a) (apply hash (flatten (map (fn (x) (split ':' $x)) (split ', ' (re-replace '^[^:]+: ' '' (re-replace '( |^)[^ :]+: N/A(,|$)' '$1' (re-replace '[!*](,|$)' '$1' (!apt $a))))))))
arg_subtitle (a) (if $a " ($a)" '')
argst (a) (if $a " ($(if (> (length (str $a)) 23) (concat (sub 0 20 (str $a)) ...) $a))" '')
atom? (x) $(/= (typeof $x) (typeof (cons)))
branchletterhash () $(hash D D Temple T Orc O Elf E Dwarf K Lair L Swamp S Shoals A Snake P Spider N Slime M Vaults V Blade B Crypt C Tomb W Hell H Dis I Geh G Coc X Tar Y Zot Z Forest F Abyss J Pan R Zig Q Lab 0 Bazaar 1 Trove 2 Sewer 3 Ossuary 4 Bailey 5 IceCv 6 Volcano 7 WizLab 8 Depths U)
canonicalise (type val) $(!lg * $type=$val x=$type fmt:"$x[0]" stub:"XX")
capitalise (s) $(concat $(upper $(sub 0 1 $s)) $(sub 1 $s))
cat (x y) $x$y
chargodall (. args) $(flatten (let (chars $(!lg * !experimental playable playable:god $args s= char fmt:"${.}" join:" ")) (map $(fn (god) (map $(fn (char) (concat $char $god)) $chars)) $(allgods))))
chargodall_test () $(flatten (let (gods $(!lg * playable:god recent s=god fmt:'$(sub 0 2 ${.})' join:" ") chars $(!lg * playable:god recent s= char fmt:"${.}" join:" ")) (map $(fn (god) (map $(fn (char) (concat $char $god)) $chars)) $gods)))
chargodstats (. args) $(let (cgw (apply chargodwinshash $args)) (filter (fn (s) (let (c (nth 0 $s) a (nth 1 $s) w (nth 2 $s)) (= (int $w) 0))) (map (fn (c) (let (stats (elt $c $cgw)) (if (bound? stats) (let* (s (split "|" $stats) a (car $s) w (nth 1 $s)) (list $c $a $w)) (list $c 0 0)))) (apply chargodall $args))))
chargodwins (. args) $(!lg * $args !experimental playable playable:god s=char,god god!= pfmt:"^${.}:${child}" fmt:'$(sub 0 2 ${.});$(sub (+ 1 (str-find / ${n_x})) (- (length ${n_x}) 2) ${n_x});$(sub 0 (str-find / ${n_x}) ${n_x})' join:"|"/ won)
chargodwins_test () $(!lg * !experimental month playable playable:god s=char,god god!= pfmt:"^${.}:${child}" fmt:'$(sub 0 2 ${.});$(sub (+ 1 (str-find / ${n_x})) (- (length ${n_x}) 2) ${n_x});$(sub 0 (str-find / ${n_x}) ${n_x})' join:"|"/ won)
chargodwinshash (. args) $(apply hash (flatten (map (fn (c) (let* (cs (split ":" $c) char (car $cs) gods (split "|" (nth 1 $cs))) (map (fn (god) (let (d (split ";" $god)) (list (concat $char (nth 0 $d)) (join "|" (cdr $d))))) $gods))) (split "^" (apply chargodwins $args)))))
chargodwinshash_test () $(apply hash (flatten (map (fn (c) (let* (cs (split ":" $c) char (car $cs) gods (split "|" (nth 1 $cs))) (map (fn (god) (let (d (split ";" $god)) (list (concat $char (nth 0 $d)) (join "|" (cdr $d))))) $gods))) (split "^" (chargodwins_test)))))
colon () :
combinehashcounts (a b) (apply hash (flatten (concat (map (fn (k) (list $k (+ (elt $k $a) (if (elt $k $b) (elt $k $b) 0)))) (hash-keys $a)) (map (fn (k) (if (elt $k $a) (list) (list $k (+ (if (elt $k $a) (elt $k $a) 0) (elt $k $b))))) (hash-keys $b)))))
combo_to_class (combo) $(sub 2 4 $combo)
combo_to_race (combo) $(sub 0 2 $combo)
convolve (a b) $(let* (la (length $a) lb (length $b) lc (- (+ $la $lb) 1)) (map (fn (n) (apply ${+} (map (fn (x) (if (and (< $x $lb) (>= $x (max 0 (- $n $la)))) (* (nth (+ $x (- $la $n)) $a) (nth $x $b)) 0)) (range 0 (- $n 1))))) (range 1 $lc)))
crashfile (crash) (let (match (re-find "'(.*)'" $crash)) (nvl (if $match (nth 1 (match-groups $match)) "")))
dayssince (t) $(int (- (time) $t))
deal (names) (if (= (length $names) 1) (ldb-set! '~'$names':cards' 0 "$(!hitme) $(!hitme)") (do (deal (list (car $names))) (deal (cdr $names))))
debug (x) $(apply debug_$(replace : _ (typeof $x)) (list $x))
debug_array (xs) $(concat '(' (join ' ' (map debug $xs)) ')')
debug_array_helper (space xs) $(if (= (length $xs) 0) ')' (concat $space (debug (car $xs)) (debug_Array_helper ' ' (cdr $xs))))
debug_bignum (n) $(str $n)
debug_enumerator (e) $(concat enum[ (join ' ' (map debug $e)) ])
debug_falseclass (_) false
debug_fixnum (n) $(str $n)
debug_string (s) $(concat “ $s ”)
debug_tpl__function (f) $(str $f)
debug_tpl__functionvalue (f) $(str $f)
debug_trueclass (_) true
elliptic_unwon () $(randnth $(split ' ' $(!lg * playable crace!=dj|lo|fo s=char / won @elliptic fmt:"${.}" join:" " ?:N=0)))
entry (x n) (ldbent-text (ldb $x $n))
entrylength (entry) (ldb-size $entry)
escape_quotes (x) $(replace '"' '\"' $x)
evalf (x) $(=eval $(escape_quotes $x))
evscale (ev) $(if (> $ev 30) (+ 10 (log2 (** (+ 1 (/ (- $ev 10) 20.0)) 20))) $ev)
expand_nick (nicklist) (join | (map (fn (nick) (nick-aliases $nick)) (split | $nicklist)))
factorial (n) $(if (= $n 0) 1 (* $n (factorial (- $n 1))))
fakefilter (f l) $(if (null? $l) $l (let (x (car $l) xs (cdr $l)) $(if (call $f $x) (cons $x (fakefilter $f $xs)) (fakefilter $f $xs))))
fliipcharhash2 () $(hash "T" "┴" "U" "∩" "V" "Λ" "W" "M" "Y" "⅄" "[" "]" "]" "[" "_" "‾" "`" "," "a" "ɐ" "b" "q" "c" "ɔ" "d" "p" "e" "ǝ" "f" "ɟ" "g" "ƃ" "h" "ɥ" "i" "ᴉ" "j" "ɾ" "k" "ʞ" "l" "l" "m" "ɯ" "n" "u" "o" "°" "p" "d" "q" "b" "r" "ɹ" "t" "ʇ" "u" "n" "v" "ʌ" "w" "ʍ" "y" "ʎ" "z" "z" "{" "}" "}" "{" "°" "o" "╯" "╭" "╭" "╯")
flipchar (c) $(lookup $c (flipcharhash))
flipcharhash () $(apply hash (split '' "!¡',&⅋().˙1Ɩ2ᄅ3Ɛ4ㄣ5ϛ697ㄥ96<>?¿A∀BqCƆDpEƎFℲGפJſL˥MWPԀRɹT┴U∩VΛWMY⅄[]_‾`,aɐbqcɔdpeǝfɟgƃhɥiᴉjɾkʞmɯnupdqbrɹtʇunvʌwʍyʎ{}╯╭︵︶"))
flipcharhash1 () $(hash "!" "¡" '"' ",," "&" "⅋" "'" "," "(" ")" ")" "(" "," "'" "." "˙" "1" "Ɩ" "2" "ᄅ" "3" "Ɛ" "4" "ㄣ" "5" "ϛ" "6" "9" "7" "ㄥ" "8" "8" "9" "6" "<" ">" ">" "<" "?" "¿" "A" "∀" "B" "q" "C" "Ɔ" "D" "p" "E" "Ǝ" "F" "Ⅎ" "G" "פ" "J" "ſ" "L" "˥" "M" "W" "P" "Ԁ" "R" "ɹ")
flipcharhash2 () $(hash "T" "┴" "U" "∩" "V" "Λ" "W" "M" "Y" "⅄" "[" "]" "]" "[" "_" "‾" "`" "," "a" "ɐ" "b" "q" "c" "ɔ" "d" "p" "e" "ǝ" "f" "ɟ" "g" "ƃ" "h" "ɥ" "i" "ᴉ" "j" "ɾ" "k" "ʞ" "l" "l" "m" "ɯ" "n" "u" "o" "°" "p" "d" "q" "b" "r" "ɹ" "t" "ʇ" "u" "n" "v" "ʌ" "w" "ʍ" "y" "ʎ" "z" "z" "{" "}" "}" "{" "°" "o" "╯" "╭" "╭" "╯" "︵" "︶" "︶" "︵")
flipcharhash3 () $(hash ! ¡ \' , & ⅋ \( \) \) \( , \' . ˙ 1 Ɩ 2 ᄅ 3 Ɛ 4 ㄣ 5 ϛ 6 9 7 ㄥ 8 8 9 6 < > > < ? ¿ A ∀ B q C Ɔ D p E Ǝ F Ⅎ G פ J ſ L ˥ M W P Ԁ R ɹ)
flog2 (x n) (/ (log2 (** $x $n)) (* 1.0 $n))
fmt_mostly_int (x) (replace ".00" "" (sprintf "%.2f" $x))
foldr (f z xs) $(if (null? $xs) $z (call $f (car $xs) (foldr $f $z (cdr $xs))))
format_autocompress (data formats) (let* (format (car $formats) output (call $format $data)) (if (>= (length $output) (if (= $channel msg) 3000 400)) (if (> (length $formats) 1) (format_autocompress $data (cdr $formats)) $output) $output))
format_timeline_array (start ta fa) $(if (null? $ta) (simple_reverse $fa (cons)) $(format_timeline_array (car (car $ta)) (cdr $ta) $(let (x (car $ta)) $(cons (cons (- (car $x) $start) (cdr $x)) $fa))))
formattime (t) $(let (s (mod $t 60) m (mod (/ (- $t $s) 60) 60) h (mod (/ (- $t $s (* 60 $m)) 3600) 24) d (/ (- $t $s (* 60 $m) (* 3600 $h)) 86400)) ${d}d+$h:$(sub 1 (+ 100 $m)):$(sub 1 (+ 100 $s)))
fullclass (n) (replace "Unperson " (!wtf xx${n}))
fullrace (n) (replace "Unemployed " (!wtf ${n}xx))
game_milestones_array (lg_args lm_args) $(map $(fn (x) $(split , $x)) (split ; $(!lm * $(!lg $lg_args x=gid fmt:"${x}") $lm_args pfmt:"${.},${child}" join:";" o=-turn)))
gamepath_format_compressed1 (path) (join ', ' (map (fn (stone) (sprintf '%s:%s' $stone[0] $stone[2])) $path))
gamepath_format_compressed2 (path) (join ', ' (map (fn (stone) (sprintf '%s:%s' $stone[0] (=branchletter $stone[2]))) $path))
gamepath_format_compressed3 (path) (join ', ' (map (fn (stone) (sprintf '%s:%s' $stone[0] (sub 0 4 (=branchletter $stone[2])))) $path))
gamepath_format_compressed4 (path) (join ', ' (map (fn (stone) (sprintf '%s:%s' (short_num $stone[0]) (sub 0 4 (=branchletter $stone[2])))) $path))
gamepath_format_normal (path) (join ', ' (map (fn (stone) (sprintf 'T%s: %s' $stone[0] $stone[2])) $path))
gamepath_query (args) (sort (fn (a b) $(<=> (int (car $a)) (int (car $b)))) (map (fn (stone) (cdr (split ':' $stone))) (split '/' (!gamepath.query $args))))
getldbsid (race) $(nth 0 (split | (re-replace "(?i).*$race" "" (re-replace ".*?]: " "" (ldb sid)))))
god_abbrev (x) $(if (= $x "The Shining One") '1' $(sub 0 1 $x))
godletter (god) (if (= $god "The Shining One") 1 (if (= $god "") 0 (sub 0 1 $god)))
godshortnamehash () $(hash "Okawaru" "Oka" "Lugonu" "Lucy" "Vehumet" "Veh" "Sif Muna" "Sif" "Makhleb" "Makh" "Yredelemnul" "Yred" "The Shining One" "TSO" "Nemelex Xobeh" "Nem" "Kikubaaqudgha" "Kiku" "Ashenzari" "Ash" "Elyvilon" "Ely" "Cheibriados" "Chei" "Dithmenos" "Dith" "Qazlal" "Qaz" "Pakellas" "Pak" "Hepliaklqana" "Hep" "Uskayaw" "Uska" "Wu Jian" "Wu")
greathelper (a b c d e) $(!lg * $e s=$a o=-$a / won @$b format:"${.}" title:"Unwon $c for $name" stub:"$name is a ${d}!" ?:N=0)
greathelper2 (a b c d e f) $(!lg * $e $f s=$a o=-$a / won @$b format:"${.}" title:"Unwon $c for $name$(if $f " ("$f")")" stub:"$name$(if $f " ("$f")") is a ${d}!" ?:N=0)
groupcount (x) (if (= $x '') 1 (re-replace "x " $x))
groups (names size) (if (<= (length $names) $size) (list (join ', ' $names)) (concat (list (join ', ' (sub 0 $size $names))) (groups (sub $size $names) $size)))
has_won (n c) $(= x $(!lg $n char=$c won fmt:"x"))
hash-remove (key-list hash-in) $(let (result (hash) kh (list-to-hash $key-list)) (map (fn (x) (if (= (elt $x $kh) (void)) (set! result (hash-put $x (elt $x $hash-in) $result)))) (hash-keys $hash-in)) $result)
hash_apt (aptname) $(let (apthash (hash) aptlist (map (fn (foo) (split ": " (re-replace '[*!]$' '' $foo))) (split ", " (re-replace '^.+?: ' '' (!apt $aptname))))) (do (map (fn (apt) (set! apthash (hash-put (car $apt) (car (cdr $apt)) $apthash))) $aptlist)) $apthash)
hash_game_data (game_args) $(hash_game_data_helper $game_args $(hash) $(raw_game_data $game_args))
hash_game_data_helper (game_args h l) $(if (null? $l) $h $(hash_game_data_helper $game_args $(hash-put $(car $(car $l)) $(cdr $(car $l)) $h) $(cdr $l)))
hashcountsummary (hc) (let (tot (apply ${+} (map (fn (k) (elt $k $hc)) (hash-keys $hc)))) (join ", " (map (fn (k) (!echo ${k}: $(elt $k $hc) \($(sprintf %1.1f $(* (/ (elt $k $hc) (float $tot)) 100))%\))) (reverse (sorthashcounts $hc)))))
hashlist (l) (apply hash (flatten (map (fn (x) (list $x true)) $l)))
hourssince (t) $(int (* 24 (- (time) $t)))
hs (x) $(!hs * $x fmt:"$name")
id (x) $x
ignore (. args) (apply do (concat $args (list "")))
imatch (x y) $(match $(lower $x) $(lower $y))
intactgems (player args) $(let* (gems $(!lm $player $args gem.found|gem.lost / gem.found notitle stub:'N=0/0') found $(re-replace "^N=(\d+).*" '$1' $gems) total $(re-replace "^N=\d+\/(\d+).*" '$1' $gems) lost $(- $total $found) intact $(- $found $lost)) "$intact $found $lost")
inversestamptime (t) (concat (- (str (ftime (utc $t) "%Y%m%d%H%M%S")) 100000000) "S")
is_int (x) (re-match "^-?\d+$" (str $x))
is_standard_ldb_query (x) (or (not (match [ $x)) (re-match "\[\s*([+-]?\d+|\$)(?:\s*\/\s*\d+)?\s*\]? *$" $x))
isone (x) $(= $x 1)
klownpie () $(hash Cherry "Cherry-coloured flames burn away %N fire resistence!" "Moon pie" "%n turns into %s." Lemon "%n is unable to drink." Plum "%n feels light-headed." Raspberry "%n feels weakened. %n feels dopey. %n feels clumsy." Blueberry "An unnatural silence engulfs %n.")
kmapdeaths (. args) (apply hash (flatten (map (fn (x) (let (s (split ':' $x)) (list (car $s) (int (car (cdr $s)))))) (split '|' (!lg * $args kmap!= s=vault(kmap) fmt:'${.}:$(if $n_x (replace x $n_x) 1)' join:'|')))))
last (ls) (nth (- (length $ls) 1) $ls)
last_win (n) $(!lg $n won fmt:"$char" stub:"XXXX")
lat? (xs) $(if (null? $xs) (= 1 1) (if (not (atom? (car $xs))) (= 0 1) (lat? (cdr $xs))))
ldb-entry (term index) (join "]:" (cdr (split "]:" (ldb $term $index))))
ldb-find (after) (if (match [ $after) (let (result (let (a (nth 0 (split '[' $after)) b (match-n (re-find \[\(.*?\)\]?$ $after) 1)) (sub 0 1 (filter (fn (x) (re-imatch $b $x)) (map (fn (n) (ldb $a $n)) (range 1 (entrylength (ldb-canonical-term $a)))))))) (if (length $result) (car $result) "I don't have a page labeled $after in my learndb.")) (ldb $after 1))
ldb-set (term index definition) (if (= (ldb-size $term) 0) (replace "1" $definition (ldb-add $term $index $definition)) (ldb-set! $term $index $definition))
ldb-smart-lookup (after) (if (is_standard_ldb_query $after) (ldb-lookup $after) (ldb-find $after))
lg_name (name) $(!lm $name fmt:'$name' stub:"$name")
lg_rm_article (field) (.echo $(concat 'regexp_replace(' $field ', "^(an?|the) ", "")'))
lghashcounts (args) (apply hash (flatten (map (fn (x) (let (s (split ':' $x)) (list (car $s) (int (car (cdr $s)))))) (split '|' (!lg * $args fmt:'${.}:$(if $n_x (replace x $n_x) 1)' stub:'' join:'|')))))
list-to-hash (l) $(let (h (hash)) (map (fn (x) (set! h (hash-put $x $x $h))) $l) $h)
listavg (ls) (if (= (length $ls) 0) "" (/ (float (apply ${+} $ls)) (length $ls)))
listmax (ls) (if (= 0 (length $ls)) "" (foldr (fn (n max) (if (> $n $max) $n $max)) (car $ls) (cdr $ls)))
listmedian (ls) (listmid (sort $ls))
listmid (ls) (let (size (length $ls)) (if (= $size 0) "" (nth (/ $size 2) $ls)))
listmin (ls) (if (= 0 (length $ls)) "" (foldr (fn (n min) (if (< $n $min) $n $min)) (car $ls) (cdr $ls)))
listrange (. args) $(map ${id} (apply range $args))
listsubtract (a b) $(if (= (length $a) 1) (- (car $a) (car $b)) (cons (- (car $a) (car $b)) (listsubtract (cdr $a) (cdr $b))))
listsum (lst) $(map (fn (n) (apply ${+} (sub $n (length $lst) $lst))) (range 1 (length $lst)))
listsums (lst) $(map (fn (n) (apply ${+} (sub (- $n 1) (length $lst) $lst))) (split (range 1 (length $lst))))
lm_as_array (args) $(map $(fn (s) $(split "&" $s)) $(split "`" (!lm $args pfmt:"${.}&${child}" join:"`")))
lmgameturnshash (nn vb . args) $(apply hash (flatten (map (fn (gt) (split ';' $gt)) (split '|' (!lm ${args:-.} $nn=$vb s=gid x=min(turns) fmt:'${.};$x[0]' join:'|')))))
lmpath_query (args) (sort (fn (a b) $(<=> (int (car $a)) (int (car $b)))) (map (fn (stone) (cdr (split ':' $stone))) (split '/' (!lmpath.query $args))))
log10 (x) (if (< $x 10) 0 (+ 1 (log10 (/ $x 10))))
log2 (x) (if (< $x 2) 0 (+ 1 (log2 (/ $x 2))))
lookup (x h) (let (z (elt $x $h)) (with-nvl $x $z))
lookupelse (x h else) $(let (z (elt $x $h)) (with-nvl $else $z))
mapdeathsnokmap (. args) (apply hash (flatten (map (fn (x) (split ':' $x)) (split '|' (!lg * $args kmap= map!= s=vault(map) fmt:'${.}:$(if $n_x (replace x $n_x) 1)' join:'|')))))
match (x y) $(> (length $y) (length (replace $x $y)))
max (a b) $(if (> $a $b) $a $b)
member? (a xs) $(if (null? $xs) (= 0 1) (or (= (car $xs) $a) (member? $a (cdr $xs))))
min (a b) $(if (< $a $b) $a $b)
minutessince (t) $(int (* 1440 (- (time) $t)))
months (d) $(+ $(* 12 $(sub 0 4 $d)) $(sub 4 6 $d))
mult (. args) $(apply ${$(.echo *)} $args)
mvmoney (x a b) (do (ldb-set! $a 0 (- (ldb-entry $a 0) $x)) (ldb-set! $b 0 (+ (ldb-entry $b 0) $x)))
name_fixup (name) (let (n (replace : '' (replace @ '' (replace . '' $name)))) (or (if (> (length (str $n)) 23) (concat (sub 0 20 (str $n)) ...) $n) $user))
name_fixup2 (name) (let (n (replace : '' (replace @ '' (replace . '' $name)))) (or (if (> (length (str $n)) 23) (concat (sub 0 20 (str $n)) ...) $n) $user))
name_fixup_long (name) (or (replace : '' (replace @ '' (replace . '' $name))) $user)
nchoice_norep_by (feature) $(let (combos (split | (=kw nchoice))) $(join | $(map $feature $combos)))
nem-chosen () (split | (replace "Keyword: nchoice => " (!kw nchoice)))
nem-max-weight (combolist) (nem-max-weight-compute (nem-chosen) $combolist)
nem-max-weight-compute (nemchosen nemremain) (let* (weights (map (fn (rc) (apply * (map (fn (cc) (if (or (= (sub 0 2 $rc) (sub 0 2 $cc)) (= (sub 2 $rc) (sub 2 $cc))) 10 1)) $nemchosen))) $nemremain)) $(car (reverse (sort $weights))))
nem-remaining () (split | (!lg * nem-eligible notitle fmt:'${.}' join:'|' s=char o=-. / (( nchoice || t won )) ?: N=0))
nem-remaining-filtered (. args) (split | (!lg * nem-eligible notitle fmt:'${.}' join:'|' s=char o=-. / $(id "(( nchoice || t won "$args"))") ?:N=0))
nem-total-weight (combolist) (apply + (nem-weights (nem-chosen) $combolist))
nem-weights (nemchosen nemremain) (let* (weights (map (fn (rc) (apply * (map (fn (cc) (if (or (= (sub 0 2 $rc) (sub 0 2 $cc)) (= (sub 2 $rc) (sub 2 $cc))) 10 1)) $nemchosen))) $nemremain) maxw (car (reverse (sort $weights)))) (map (fn (w) (/ $maxw $w)) $weights))
nevertried (. args) $(map (fn (s) (sprintf "%s" (nth 0 $s) )) (filter (fn (s) (= 0 (nth 1 $s))) (apply chargodstats $args)))
neverwon (. args) $(map (fn (s) (sprintf "%s(%d)" (nth 0 $s) (nth 1 $s))) (filter (fn (s) (not (= 0 (nth 1 $s)))) (apply chargodstats $args)))
neverwonsorted (. args) $(map (fn (s) (sprintf "%s(%d)" (nth 0 $s) (nth 1 $s))) (filter (fn (s) (not (= 0 (nth 1 $s)))) (sort sortchargodstats (apply chargodstats $args))))
no_pm (x) (if (= $channel msg) "This command does not work in PM." $x)
null? (xs) $(= (length $xs) 0)
nwins (player) $(int (!lg $player won fmt:"$n" stub:"0"))
optional_test (x . y) $(cons $x $y)
orb_run_tombs_array_for (name . lm_args) $(fakefilter (fn (x) $(/= $x '')) $(map $(fn (ogr) $(if $(> $(int $(nth 0 $ogr)) 0) $(if $(< $(int $(nth 0 $ogr)) $(int $(nth 2 $ogr))) $ogr))) $(map $(fn (gr_a) $(cons (!lm $name orb cv>=0.9 gid=$(car $gr_a) s=turn) $gr_a)) (lm_as_array "${name} $(str $lm_args) nrune>=3 rune=golden stub:'' s=gid,turn,char"))))
pairs (l) (if (> 2 (length $l)) (cons) (cons (sub 0 2 $l) (pairs (cdr $l))))
per (x y) $(if (= (int $y) 0) "NaN" (/ (* 100 $x) $y))
percent (num denom) (sprintf "%2.2f%%" (* 100 (/ (float $num) $denom)))
playeruniquewinhash (. args) $(let (pgm (apply hash "")) (do (map (fn (kv) (set! pgm (hash-put (car $kv) (cons (nth 1 $kv) (lookupelse (car $kv) $pgm (list))) $pgm))) (apply playeruniquewinlist $args)) $pgm))
playeruniquewinlist (. args) $(flatten 1 (map (fn (c) (let* (cs (split ":" $c) char (car $cs) godplayers (split "|" (nth 1 $cs))) (map (fn (godplayer) (let (d (split ";" $godplayer)) (list (nth 1 $d) (concat $char (nth 0 $d))))) $godplayers))) (split "^" (apply wononcechargod $args))))
plural (str n) $str$(if (= $n 1) '' s)
rand_unwon (player params) (randnth (split ' ' $(!lg * playable $params s=char / won @$player fmt:"${.}" join:" " ?:N=0)))
randelem (x) $(nth (rand (length $x)) $x)
randelt (l) (elt (rand (- (length $l) 1)) $l)
randhex (n) (if (> $n 0) (concat (randnth (list 0 1 2 3 4 5 6 7 8 9 a b c d e f)) (randhex (- $n 1))) "")
randnevertried (. args) $(let (nw (apply nevertried $args)) (nth (rand (length $nw)) $nw))
randneverwon (. args) $(let (nw (apply neverwon $args)) (nth (rand (length $nw)) $nw))
randnth (xs) $(nth (rand (length $xs)) $xs)
randstr (xs) $(if (not (lat? $xs)) (cons) (nth (rand (length $xs)) $xs))
raw_game_data (args) $(map (fn (x) $(split = (replace & : $x))) (split : (replace :: & (if (= (sub 0 2 $args) 'lm') $(!lm $(sub 2 $args)) $(!lg $(sub 2 $args))))))
re-gmatch (r s) (let (m (re-find $r $s)) (if (bound? m) (concat (list $m) (re-gmatch $r (sub (match-end $m) $s))) (list)))
re-imatch (x y) (re-match (lower (str $x)) (lower (str $y)))
re-match (x y) (> (length (re-find (str $x) (str $y))) 0)
recursive_expand_nick (nicklist n) (if (= (int $n) 0) $nicklist (recursive_expand_nick (expand_nick $nicklist) (- $n 1)))
remove (xs a) $(if (= (car $xs) $a) (cdr $xs) (cons (car $xs) (remove (cdr $xs) $a)))
remove_combo (combo text) $(replace (sub 0 4 $combo) '' $text)
remove_index (i xs) $(cons (sub 0 $i $xs) (sub (+ 1 $i) $xs))
repeat (str n) (if (> $n 0) $str(repeat $str (- $n 1)))
ripformat (char title xl god vmsg place points turns time) "the $title (L$xl $char)$(if $god ", worshipper of $god"), $vmsg on $place, with $points points after $turns turns and $time."
rofl_testfn (first . rest) $(sprintf "first: %s rest: %s" $first $rest)
role_abbrev (bg) $(if (not (ldb "~role_abbrev $bg")) (ignore (ldb-add "~role_abbrev $bg" (sub 2 4 $(!lg * cls="$bg" fmt:"$char" stub:"XXXX")))))(entry "~role_abbrev $bg" 1)
roll-dice (n d) (apply + (map (fn (x) (rand 1 $d)) (range 1 $n)))
runedeath-helper2 (limit ha) (foldr (fn (n sum) (+ $n $sum)) 0 (map (fn (xl) (xldeath-helper $xl $ha)) (range 0 (- $limit 1))))
runedeath-helper3 (limit wins deaths) (+ (runedeath-helper2 $limit $wins) (runedeath-helper2 $limit $deaths))
runeformat (n) (if (> $n 1) ", $n runes" (if (> $n 0) ", $n rune" ""))
sec2minsec (x) (join : (list (sprintf %02d (/ $x 60.0)) (sprintf %02d (mod (abs $x) 60))))
secondssince (t) $(int (* 86400 (- (time) $t)))
serverlist () (list CAO CBR2 CDI CDO CPO CUE CWZ CXC LLD)
set (xs) $(if (null? $xs) (cons) (if (member? (car $xs) (cdr $xs)) (set (cdr $xs)) (cons (car $xs) (set (cdr $xs)))))
set? (xs) $(if (null? $xs) (= 1 1) (if (member? (car $xs) (cdr $xs)) (= 0 1) (set? (cdr $xs))))
short_num (x) (if (>= $x 1000000000) (/ $x 1000000)M (if (>= $x 1000000) (sub 0 4 (replace . M (/ $x 1000000.0))) (if (>= $x 1000) (sub 0 4 (replace . K (/ $x 1000.0))) $x)))
shuffle (xs) (if (<= (length $xs) 1) $xs (let (a (randnth $xs)) (concat (list $a) (shuffle (remove $xs $a)))))
simple_reverse (l r) $(if (null? $l) $r $(simple_reverse (cdr $l) (cons (car $l) $r)))
smaller (x y) $(if (< $x $y) $x $y)
smallest (xs) $(if (null? (cdr $xs)) (car $xs) (smaller (car $xs) (smallest (cdr $xs))))
sortchargodstats (statsa statsb) $(let (sac (nth 0 $statsa) saa (int (nth 1 $statsa)) sbc (nth 0 $statsb) sba (int (nth 1 $statsb))) (if (= $saa $sba) (if (= $sac $sbc) 0 (if (< $sac $sbc) 1 -1)) (if (< $saa $sba) 1 -1)))
sorthashcounts (h) (sort (fn (a b) (if (< (elt $a $h) (elt $b $h)) -1 (if (= (elt $a $h) (elt $b $h)) 0 1))) (hash-keys $h))
species_abbrev (sp) $(if (not (ldb "~species_abbrev $sp")) (ignore (ldb-add "~species_abbrev $sp" (sub 0 2 $(!lg * crace="$sp" fmt:"$char" stub:"XXXX")))))(entry "~species_abbrev $sp" 1)
speedabyss3enters (player args) (apply hash (split | $(!lm $player $args abyss.enter lg:urune>0 s=gid,turn join:" " fmt:"${.}" pfmt:"${.}|${child}|")))
speedabyss3helper (runes enters) (map (fn (gid) (let* (rune (int (elt $gid $runes)) enter (map int (split " " (elt $gid $enters))) smallenough (filter (fn (n) (<= $n $rune)) $enter) turn (nth (- (length $smallenough) 1) $smallenough)) (- $rune $turn))) (hash-keys $runes))
speedabyss3runes (player args) (apply hash (split " " $(!lm $player $args rune=abyssal lg:urune>0 s=gid x=max(turns) join:" " fmt:"${.} ${x[0]}")))
speedorb2diffs (xs accum) (if (= (length $xs) 2) (cons (abs (- (nth 0 $xs) (nth 1 $xs))) $accum) $accum)
speedorb2lm (player args) (split | (!lm $player $args ((br.enter=zot || orb)) s=gid,turns notitle fmt:"${.}" pfmt:"${child}|" join:" " stub:"N/A"))
sprints () (list sprint1 sprint2 sprint3 sprint4 sprint5 sprint6 sprint7 sprint8 sprint9)
stamptime (stamp) $(ptime (str (+ 100000000 (sub 0 -1 $stamp))) "%Y%m%d%H%M%S")
stepdown (n step) (log2 (** (+ 1.0 (/ (* 1.0 $n) $step)) $step))
strip-weight (x) (and $x (re-replace ^\d+: $x))
subset-ids (X S) (filter (fn (i) (apply or (map (fn (x) (= $x (elt $i $X))) $S))) (range 0 (- (length $X) 1)))
sum-weights (xs) (apply + (map weight $xs))
test (a) (if (> (length $a) 13) (concat (sub 0 10 $a) ...) $a)
thismonth () start>=$(adjust_raw_yyyymmdd (sub 11 19 (!lg * x=month(end) fmt:"$x")))
today () start>=$(adjust_raw_yyyymmdd (sub 0 8 (!lg * fmt:"$end")))
transpose (a) (if (null? $a) $a (cons (map car $a) (transpose (filter (fn (l) (not (null? $l))) (map cdr $a)))))
trunc_end (n x) $(if (> (length $x) $n) $(sub -$n $x) $x)
uniquewinsplayer (p . args) $(let (d (elt $p (apply playeruniquewinhash $args))) (if (bound? d) (sprintf "Combos only won by %s(%d): %s" $p (length $d) $d) (concat "No unique combos won for " $p ". Find one to play with !neverwon.")))
unwon (a) $(!lg * won playable s=char / @$a fmt:"${.}" join:"|" ?:N=0)
vaultallkills (kf mf args) (hashcountsummary (combinehashcounts (lghashcounts "kmap!= $kf $args s=vault(kmap)") (lghashcounts "kmap= map!= $mf $args s=vault(map)")))
vaulttest (kf . args) $args
version_fixup (v) (if (match a $v) git (if (= $v 0.2) "0.20" (join . (sub 0 2 (split . $v)))))
watchhash () $(hash cao http://crawl.akrasiac.org:8080/#watch- cbr2 https://cbro.berotato.org:8443/#watch- cdi https://crawl.dcss.io/#watch- cko https://crawl.kelbi.org:8081/#watch- cpo https://crawl.project357.org/#watch- cue http://underhound.eu:8080/#watch- cwz http://webzook.net:8080/#watch- cxc http://crawl.xtahua.com:8080/#watch- lld http://lazy-life.ddo.jp:8080/#watch-)
weight (x) (nvl (if $x (let (m (re-find '^(\d+):' $x)) (if $m (elt 1 $m) 10)) 10))
weighted-rand (. xs) (nvl (let (total (sum-weights $xs) next (fn (t xs) (let* (x (car $xs) wt (weight $x)) (if (or (not $x) (< $t $wt)) $x (next (- $t $wt) (cdr $xs)))))) (strip-weight (next (rand $total) $xs))))
winpercentage (p n . args) name=$(=winpercentagejoin $p $n $args) title:"" stub:"No results using winpercentage found."
wononcechargod (. args) $(!lg * won !experimental playable playable:god $args s=char,god god!='' x=max(name) pfmt:"^${.}:${child}" fmt:'$(sub 0 2 ${.});${x[0]}' join:"|" ?: N=1)
wononcechargodstats (. args) $(let (cgw (apply chargodwinshash $args)) (filter (fn (s) (let (c (nth 0 $s) a (nth 1 $s) w (nth 2 $s)) (= (int $w) 1))) (map (fn (c) (let (stats (elt $c $cgw)) (if (bound? stats) (let* (s (split "|" $stats) a (car $s) w (nth 1 $s)) (list $c $a $w)) (list $c 0 0)))) (apply chargodall $args))))
xldeath-helper (xl ha) (let (x (elt (str $xl) $ha)) (if (= (typeof $x) "String") $x "0"))
xldeath-helper2 (limit ha) (foldr (fn (n sum) (+ $n $sum)) 0 (map (fn (xl) (xldeath-helper $xl $ha)) (range 1 (- $limit 1))))
xldeath-helper3 (limit wins deaths) (+ (xldeath-helper2 $limit $wins) (xldeath-helper2 $limit $deaths))
xldeath-helper4 (xlN ha) (let (list (split " " $xlN)) (hash-put (elt 0 $list) (sub 0 -1 (if (= (length $list) 1) "1x" (elt 1 $list))) $ha))
year (n) start>=$n end<$(+ $n 1)
zip (a b) (if (= (length $a) 1) (list (list (car $a) (car $b))) (cons (list (car $a) (car $b)) (zip (cdr $a) (cdr $b))))

Behaviours

Defined in the :beh: key in the LearnDB
  Pattern Behaviour Next Step
1 $bot: help $(ldb help)
2 cang cang
3 <<<([^!]|^)\bgong\b>>> $(weighted-rand 40:GONNNNG BOUMMMMG PTOANNNG PANG SHROANNG)! continue
4 /me >>> $(if (not (rand 100)) (if (match Sequell $after) "/me $(replace Sequell $user $after)" "/me also $after")) continue
5 r\?\? $(randnth $(ldb-search-entries .)) last
6 r\?\?>>> $(ldb $after $(rand 1 (entrylength $after))) continue
7 \?\?>>> $(if (not (is_standard_ldb_query $after)) (ldb-find $after))
8 You die... $(if (rand 5) $(quote "Save macros?") $(quote "Xom revives you!"))
9 !rng \d+d0* /me can't find the dice!
10 !rng >>> $(if (or (rand 100) (imatch xom $after)) '' (let (L (split ' ' $after)) (let (n (length $L)) (if (> $n 1) (let (k1 (rand 1 (- $n 1))) (let (k2 (rand $k1)) (concat "The RNG chooses: both " (nth $k2 $L) " and " (nth $k1 $L) "."))) ""))))
11 !rng 0+d(?P<dice>\d+) /me rolls 0d$dice for, shockingly, 0
12 !learn add advice $*text last
13 ^¡learn add $word >>> Okay, not adding $word => $after
14 q\?\?>>> $(!learn q $after)
15 rip\b>>> $(if (not (rand 20)) rip)
16 \?\?\?*   last
17 !rng 0*(?P<n>[1-9]\d*)?d0*(?P<d>[1-9]\d*) /me rolls $(nvl $n)d${d} for $(let (n (with-nvl 1 $n)) (roll-dice $n $d))
18 ^\?\?!{2,} $(ldb-lookup ![2])
19 [^?]*is (?P<server>(cao|cdo|cszo|ckr|clan|cbro|rhf|csn|lld|cxc|cpo|cwz)) (offline|online|down|dead)>>> $(!isonline $server)
20 \?\?l+[ae]+r+n+[ae]+n+( hydra)? $(ldb-lookup lernaean_hydra)
21 \!apt mr $(=racialmr)
22 !wtf [dD][rR][kK][eE] Doctor Kenku
23 .echo echochamber $(ignore (!learn add :beh: .echo echochamber $(colon)$(colon)$(colon) echochamber $(colon)$(colon)$(colon) continue)) continue
24 (broken) .echo echochamber (colon)(colon)(colon) echochamber (colon)(colon)(colon) continue

ACLs

See the ACL documentation
ACL Definition
:acl:db:cone_rule @admin
:acl:db::group:* see {:acl:db::acl:*}
:acl:nick:kramin Kramin
:acl:db::acl:* @admin
:acl:db::beh: @admin
:acl:nick:* see {:acl:db:*}
:acl:cmd:* see {:acl:db:*}
:acl:proxy Kramell DIESELBOT Cerebot TestSpawner
:acl:db:* #crawl #crawl-dev #crawl-sequell
:acl:kw:* see {:acl:db:*}

Groups

See the ACL documentation
Group Members
:group:admin |amethyst greensnark elliptic Kramin wheals read gammafunk advil