Energy randomisation

From CrawlWiki
Jump to: navigation, search
Obsolete: This article refers to an aspect of the game which has been removed. It is retained for historical reference only.

Energy randomisation (also called random energy or speed randomisation) is a game mechanic designed to add unpredictability to monster behavior, and to nerf pillar dancing. Monsters normally get to take a number of monster turns per player turn based on their speed: fast monsters act more often, slow act less.

Each enemy movement has a 1/3 chance of being either 0.1 turns quicker, 0.1 turns slower, or having normal speed[1]. Random energy accumulates until there is enough energy for an extra move or until there is not enough energy to move at all, which happens with the same probability. For example, an extremely lucky 10 speed monster can get an extra move each 10 turns of movement.

This can give a pursuer enough energy to move and attack during their turn, or you'll occasionally gain a tile in order to flee upstairs. The aforementioned pillar dancing will eventually create that space, given enough time. A monster can only get energy randomisation while moving; attacking or casting spells requires fixed amounts of energy.

Additionally, friendly monsters' movement speed is intentionally non-random to avoid traffic jams.


The name "energy randomisation" comes from the fact that the manner in which monsters move is described as "energy" in Crawl's code, with DEFAULT_ENERGY referring to moving at the same speed as any other action the monster takes. Hence, energy randomisation is inflicting randomness into this "energy". It can also be referred to as "speed randomisation", although this may falsely imply that the randomisation applies to all actions, not just movement.


  • Energy randomisation was removed in 0.29. Its anti-pillar dancing purpose was replaced with the much stricter attacks of opportunity.
  • In 0.7, enemies can no longer spend a random energy turn in order to attack twice.
  • Energy randomisation was first introduced in 0.6.


  1. (0.28.0)