You can catch any play-testing posts that you might have missed here! Windows builds will be updated shortly.

If you’ve played an ASCII build of Dungeon Crawl Stone Soup recently, you might’ve noticed that some monsters have had a makeover recently. If you play tiles, then you might also have noticed a new addition to the tiles of imps, devils and other demons. We’re going to take a short moment to discuss some of the changes.

Insects and spiders

The most noticeable change is that the two large insect families of bees and ants have been standardised. Instead of using multiple glyphs, one for larvae, one for normal monsters, and one for “queen” monsters, we now use the same glyph and scale colour instead.

For bees:

Name Old glyph New glyph
killer bee k k
queen bee Q k
killer bee larva w k

For ants:

Name Old glyph New glyph
giant ant a a
queen ant Q a
soldier ant a a
ant larva w a

In order to remove confusion with ants and cockroaches, we’ve also moved giant cockroaches from the a glyph, onto the s glyph, where they join spiders, giant centipedes, scorpions, and giant mites. This means that ants are purely on a, and bees purely on k. To compensate for the fact that this move (without a colour change for giant cockroaches) would result in three “brown” s monsters, the following changes have been made:

Name Old glyph New glyph
giant cockroach a s
trapdoor spider s s
wolf spider s s
scorpion s s

Minotaurs and demonic creatures

Part of our glyph changes have been aimed towards consolidating monsters that are alone on a glyph onto another, more suitable glyph. This means that we have space for expansion, the creation of new types of monsters, etc, without having to pout them on a glyph that doesn’t necessary suit them. As such, we’ve moved minotaurs off t and onto H, to reflect their hybrid state, and efreets from E and onto R, with Rakshasas, another type of demonic creature.

Another part of our glyph changes are to resolve confusion with some demonic creatures. These mostly inhabit the glyphs 5, 4, 3, 2, and 1, the difficulty increasing as the number in question decreases. Part of a recent set of changes have been to give demonic creatures in tiles a numerical overlay, reflecting the tier that they belong to. This isn’t a permanent change, but it should hopefully give tiles players access to the same instantaneous threat indicator as ASCII players.

Name Old glyph New glyph
minotaur t H
smoke demon 4 3
hellion 3* 2*
ynoxinul 3 3
efreet E R
Azrael E R
Mara R R


With the new pack changes to slime creatures (the subject of a future post), and the fact that merged slime creatures are now a considerably bigger threat than normal slime creatures, their colour has been upgraded; as this would clash with acid blobs, these have also had a colour change:

Name Old glyph New glyph
(merged) slime creature J J
acid blob J J

Insubstantial monsters, etc

Insubstantial monsters have been spread out across a variety of glyphs. Insubstantial monsters include insubstantial wisps (out of place on p due to the fact that all other p are undead), vapours (on #, which clashes with walls), and shadows (on _, which is bad for a variety of reasons, including accessibility).

Therefore, the following changes have been made:

Name Old glyph New glyph
insubstantial wisp p v
shadow _ p
vapour # v
shadow wraith W W
giant spore G *


Finally, we come to elementals. These monsters were spread across a variety of glyphs, including three which matched up with features. This is confusing from an accessibility standpoint, but also from a visual standpoint: it’s difficult to work out if that brown # is actually a wall, or an earth elemental.

Therefore, the following changes have been made:

Name Old glyph New glyph
earth elemental # E*
fire elemental # E*
air elemental v E*
water elemental { E*

* denotes that the colour in question is actually an elemental one, which can’t be indicated via static colouring. Please check them out in-game to see what the colours actually are.

And that’s our summary of glyph changes done! It turned out a bit longer than I had expected. We’ll start the Big List Summary where we left off last week, at commit 629a7ff!

Bugs fixed

  1. “Triggerable already removed” messages should be gone from the Trog burning book altar vault.
  2. Vampiric draining no longer aborts when there are no monsters on the screen. This allowed for easy identification of present but invisible threats.
  3. “of Pain” no longer generates as a randart name.
  4. Tiles: Flying creatures (including the player) no longer appear submerged.
  5. Fix a bad pluralisation on database lookup.
  6. Tiles: won’t attempt to unpack a non-existent doll file.
  7. flush_prev_message is no longer called when fetching a character from the keyboard in tiles and Windows builds, hopefully fixing random crashes in Windows.
  8. Messages are cleared before the tutorial begins to tweak options.
  9. Explosions will be drawn properly when messages_at_top option has been enabled.
  10. Some instances of calls to sqrt() have been cast into double to prevent compile errors on Microsoft Visual C++ platforms; also provided an implementation of round() for these platforms.
  11. “Stairs” are now being pluralised properly in exclusion messages.
  12. Armour/shield penalty is never negative, therefore never turning into an actual bonus.
  13. Tiles: some issues with the player minibar for health and mana points have been fixed.
  14. Long message will be line-broken properly in message history.
  15. Monsters no longer auto-target “firewood” creatures, meaning that allies will no longer automatically attack plants, over other monsters.
  16. Glowing ammunition that stacked with non-glowing ammunition should no longer happen, meaning that brands are neither lost nor suddenly gained; this was caused by the stacking code not checking item brands.
  17. Poisoned poison arrow of flame of flame, and other permutations of this error, should now be completely resolved.
  18. Your wielded weapon is no longer auto-quivered if it is similar to the currently quivered weapon.
  19. Vampires’ cold resistances at near bloodless state are now reported correctly.
  20. Item pickup Triggerables now function properly, meaning that picking up Runes or the Orb of Zot will adjust the branch flags as per normal; these runes and the Orb have also been masked as no_item_gen so that nothing will generate on top of them and cause issues (“too many items for Triggerable”, etc).
  21. player::equip now uses a signed char instead of assuming that char is signed. char is unsigned on some platforms, including PowerPC.
  22. Volcano exits are now “rocky tunnel(s) leading out of here”, which should hopefully clear up confusion.
  23. Monsters that are sleeping no longer attempt to gain a foe; this should help with some performance issues.
  24. Spirit shield (such as Guardian Spirit) should now function properly on shields.
  25. Friendly monsters that sense invisible can sense adjacent invisible monsters, instead of not being able to see them at all; in reverse, hostile monsters that sense invisible can only sense the player if they are within radius 4.
  26. Cause Fear no longer generates a large number of “is unaffected” messages for toadstools, etc.
  27. AUTOMATIC_HIT (needles, some spells) will work properly even with deflect missiles.
  28. Missing down-stairs in the Iron City of Dis have been fixed.
  29. Large rocks shattering in sight will generate a message properly instead of nothing.
  30. Fulsome distillation no longer prompts if there is only one corpse available.
  31. Zin’s gold donation has been fixed.
  32. Actor line of sight should be initialised properly, preventing monsters from smiting targets they cannot see, giant eyeballs paralysing you even while out of sight, and so on.
  33. Pacification of monsters obeys MF_NO_REWARD, and half of these monsters’ base EXP will no longer be granted to the player. This fixes Pikel’s EXP being inflated by 325, and removes any incitement to keep the slaves alive.

Features, new and changed

  1. The direction code has been completely rewritten, reworking the entire interface. There are still some issues with this, so please report any that you might have on the Mantis tracker.
  2. Beam spells no longer affect submerged monsters, targeting never selects them directly, you cannot freeze nor vampiric drain them.
  3. Giant lizards have been renamed to crocodiles; giant iguanas have been renamed to iguanas.
  4. New monsters: alligator and baby alligator. Alligators are normal speed, but can put on bursts of speed to attack you; baby alligators are fast, but do not have the same attacks as their adult forms. Baby alligators “level up” into alligators; these new threats spawn with regularity in the Swamp, where they always generate as patrolling (unless they are part of a band of baby alligators)
  5. Kraken no longer submerge when fleeing, but shoot out clouds of ink (a line of sight blocking cloud that can exist only in water). They will also remove all their tentacles from play, removing the option of attacking the tentacles as they flee with the head.
  6. AC and EV have been changed dramatically, as have 1.5-handed weapons. Please see this commit for a full explanation.
  7. A variety of changes to how Cheibriados works; please see last night’s play-testing post regarding gods for a full explanation of current mechanics.
  8. New tile: burning bush, centaur paladin (currently unused).
  9. Players get a hand-and-a-half bonus even if the player qualifies for an unarmed auxiliary attack.
  10. The Lernaean Hydra can now knock down trees, and is SIZE_HUGE.
  11. Dangling transparent pixels have been removed from the Maurice and Angel tiles.
  12. Xom’s opening and closing of doors is now noisy, and issues involving large gates have been resolved.
  13. Fedhas worshipers now acquire fruit instead of food from scrolls of acquirement.
  14. New tiles: ego and randart tiles for banded and plate mails, penetration brand, adjusted tree tiles, holy scourge doll tile.
  15. The XP cap for hundreds of kills has been removed in favour of the recent changes to out-of-depth monster generation.
  16. Trees in Swamp are 25% brown, 75% dark green.
  17. Monsters given a random colour on generation will never be given BLACK or DARKGREY.
  18. Pikel’s slaves now turn neutral when left behind, if he leaves the level; they will not currently turn neutral if they follow you off the level (still a bug).
  19. You can now stab friendly monsters, as though they were confused.
  20. Donald’s speech has had some contentious lines removed.
  21. Hasting other monsters is now a hasty act for Cheibriados purposes.
  22. Returning from stepping out of time will attempt to move monsters that were at our old position.
  23. Shadows and phantoms, in line with other p glyphs, now levitate.
  24. Liches are no longer resistant to electricity.
  25. ossuary_due_mausoleum is now harder.
  26. Alligator snapping turtles are different to snapping turtles, so the latter no longer level up into them.
  27. Tiles: you can now leave the doll editor screen without actually saving your changes to it.
  28. Stacks of poisoned needles have been increased again; these were not affected by the recent buff to poisoned ammunition, and therefore should be unaffected by the nerf to stack sizes of poisoned ammunition.
  29. slime_altar_2 has been tweaked to longer cause instant death when opening the door.
  30. You are no longer prompted when entering teleport traps if you have a -TELE or amulet of Stasis item worn. This also no longer affects autoexplore (with teleport traps blocking sections of the map). Likewise, known shaft traps no longer block sections of the map.
  31. Leading dashes are now included in the message history, as are repeated messages.
  32. Large WizLab overhauls and clean-ups.
  33. Some –more– prompts are converting to a “+” instead of the full “–more–”, as well as a variety of other changes to the new messagewindow. Please file any bugs found with it on the Mantis tracker.
  34. Poison arrow’s irresistible damage has been reduced from 60% to 30%.
  35. The blue “Invis” status message is greyed out when you aren’t actually invisible; the @ and % screens show “invisible (but backlit and still visible)” when they are.
  36. Stacks of gold now list how much gold is in them in the ‘x’ over screen.
  37. Orbs of destruction are no longer warped during Time Step and Abyss moving, and are immune to some effects.
  38. Apportation now works properly in the Abyss, and other areas that have no map knowledge.
  39. Monster haloes as well as some aspects of monster line of sight have been disabled for performance reasons.
  40. Sunlight auto-targets disturbances in deep and shallow water.
  41. Some instances of “magic resistance” have been converted to “hostile enchantments”.
  42. Giant spores have been moved to * and are no longer native spawns in the Pits of Slime.
  43. Jiyva’s jelly shield has been replaced by jelly paralysis during prayer.
  44. Fedhas’s evolution ability is now a smite-targeted one.
  45. Friendly wandering mushrooms will now follow you as a normal monster would, unless there are other monsters in sight, in which case they will be stationary.
  46. Items which were previously cursed and have been uncursed are marked as “was cursed”. This option can be triggered by “autoinscribe_cursed”.
  47. Monster energy is now randomised slightly; this means that instead of getting 10 energy per turn, there is a chance of only getting 9 energy, or possibly getting 11 energy. This means that monster actions (movement, etc) is randomised slightly, and there is a chance of a monster acting twice on the same turn (when they have a surplus of energy). This is an experiment, and may (and likely will) be adjusted slightly.
  48. Top-tier merfolk are now rarer in the Shoals; all merfolk now speak.
  49. The tide no longer submerges runes, but instead pushes them about; the Shoals huts have been split up again (rune and non-rune); the rune Shoals hut now has a bigger “honour guard”.
  50. Tiles: demons are now overlaid with the relevant tier number.
  51. New tiles: dispersal and exploding brands, icons for armour brands.
  52. Mara has been nerfed (HD 20 reduced to HD 18) and buffed (bolt of fire instead of bolt of lightning, which does more damage), and nerfed again (as bolt of fire no longer bounces, and people who run into Mara are more likely to have fire resistance than electricity resistance).
  53. The overmap has been completely overhauled.
  54. New Xom effect: snakes to sticks, having the reverse effect of sticks to snakes.
  55. Portal vaults can now use tiles for entrances, as well as a tile for when the portal has timed out.
  56. Shoal:X has been replaced with Shoals:X: there are many shoals, not an individual shoal.
  57. Armour and shield are no longer combined when reporting what made the player miss a melee attack.
  58. Mara’s illusion can now clone any monster, not just the player.
  59. Joseph’s placement is now depth seven to twelve, instead of ten to thirteen.

Other changes

  1. godprayer.(cc/h) has been split out of
  2. The clua item library ( has been converted from using the former object) to using a Lua items metatable, meaning that the syntax is now This has caused some issues with autopickup, wielding of reagents for spells, etc. Hopefully they have all been resolved, please file if you come across any.
  3. God is no longer consulted about butchery when picking up knives and other bladed weapons.
  4. The WizMode piety adjustment function (&^) now prompts for a piety level instead of merely increasing it by a set amount; the WixMode god gift function has been cleaned up and documented.
  5. dgn.stash_items now works properly with the new lua items table, as do several other function calls that use items.
  6. Lua wrapper for travel stoppers, and portal vault messages are automatically added to this.
  7. Code readability: EQ_MIN_ARMOUR and EQ_MAX_ARMOUR are aliases for EQ_CLOAK and EQ_BODY_ARMOUR.
  8. Place-population script can now generate unique statistics, as well as combined stats for all levels in a branch.
  9. The manpage has been updated.
  10. There’s a new (dlua) wrapper identification status for the items metatable.

And that brings us up-to-date at the latest commit, 891a5325e8! Tune in next week for more play-testing posts, and please feel free to comment if you spot any issues or have any questions!