Property

A property is one of several traits which the hero or a monster either has or does not have. Properties vary widely; some properties correspond to particular rings while others apply only to a few monsters. The hero can reveal many of his or her properties through enlightenment. A property is "boolean", you either have it or you do not. Thus luck and the prayer timeout are not properties in this sense; there is no hero for whom luck and prayer timeout does not apply. This page only discusses properties of the hero.

In the source code, prop.h lists most of the properties. Each property has a representative integer constant. Particularly in objects.c and artilist.h, the integer constants assign the properties granted by using certain items.

Intrinsic vs. Extrinsic
A property can be gained intrinsically by reaching a certain experience level as a certain starting race, or "from outside": by eating corpses, praying, or sitting on thrones.

A property can be gained extrinsically by wearing an object or polymorphing into a monster.

Intrinsic properties
In the below lists, a flag from monflag.h or artifact.h indicates polymorphing into a form with that flag.