Introduction:

This is a proposal for a comprehensive rework of the alignment record and divine attitude (anger) systems in NetHack. The proposal also touches in some places on luck, in order to ensure that luck is clearly distinguished from alignment record and divine attitude.

This is version 0.3 of the proposal and is probably incomplete and will presumably need changes before being implemented.

Rationale:

In the first place, it is clear that the NetHack developers intended for the character's alignment record to be a significant aspect of the game. It is equally clear that most players in 3.4, _especially_ most well-informed players, pay little or no attention to alignment record in ordinary play. It is of some concern in certain kinds of conduct play (notably: pacifists), but otherwise it is essentially a non-issue. Even if the player does something horrifically egregious, such as going on a rampage and killing half a dozen quest friendlies, a few thousand turns of normal play, without direct regard for the issue of alignment record, will generally restore it to its maximum value. Minor penalties, such as being a caitiff or a glutton, are routinely ignored entirely.

Note that I am not suggesting these things should be impossible or should make the game unwinnable. I am only saying that the fact that players routinely do them flippantly without even thinking about the issue of alignment record is an indicator that alignment record is not doing what it's supposed to do in the game. This harms the game in a number of ways, not least in reducing the amount of differentiation between the three alignments (and also some of the roles), which makes the game more uniform, less varied, and ultimately more boring. A knight who chooses to scare monsters so he can shoot them in the back while they flee, or a lawful samurai who chooses to poison his arrows, should have to take into account what implications that will have for his alignment record and what impact that will have on him and what he might have to do subsequently in order to repair his alignment.

Additionally, there are places in which the alignment record gets conflated with divine attitude (your character's diety's anger or lack thereof) and/or luck. We propose to clear up the distinctions between these properties so that each one fulfills its own clearly-defined purpose in the game.

With that in mind, I present here the beginnings of a preliminary tentative proposal. It is understood that these changes will need to be tested for play balance and that some adjustments may need to be made, but here is a starting point.

General Principles:

Definitions

Alignment record (the main focus of this document) is intended to represent your character's own devotion to his cause, insofar as this devotion has manifested itself in your character's behavior in the game. Your alignment record is visible at all times to your diety, probably to other dieties as well, and may also impact your character's reputation in the dungeon (and thus how he is treated by other monsters).

Divine attitude (traditionally, anger) is intended to represent your character's diety's attitude toward your character and, consequently, the diety's willingness to intervene supernaturally. This is distinct from your alignment record but may at times be somewhat interdependent with it. (To put this another way, asking favors from your diety when you have transgressed your moral bounds too much may cause divine anger; and, conversely, some actions that might be considered morally valid under normal circumstances may be considered improper when your diety is upset with you, because an annoyed diety is less willing to cut you some slack on the gray areas.)

That leaves luck. Philosophically, at a superficial level, luck might seem unrelated, but actually in theological terms it is extremely similar to divine attitude. The difference is, luck manifests in non-supernatural ways as ordinary events shape themselves more (or more often) for your character's benefit (what theologians would call providence, which is distinguished from miraculous intervention). Of course, NetHack draws heavily on folk lore, so your character's luck is often influenced by actions and events with no real moral significance, including old wive's tales (e.g., the breaking of mirrors) and in some cases puns. There is a strong relationship between luck and unicorns, which I do not intend to change significantly. Your diety may also change your luck, most obviously by granting you four-leafed clovers. Events that are influenced by luck are too many and too diverse to list here.

Alignment Record

In the first place, a distinction is to be made between actions that change your character's alignment record outright versus ones that only exercise or abuse it. Exercise and abuse will work much like with attributes such as strength or intelligence, but for alignment the check may be made with less frequency and/or yield a lower chance of actually changing the alignment record when it is checked. (The precise details will need balance testing.)

Actions that change the alignment record outright (especially ones that improve it) will generally be limited by game circumstances. You will not be able to easily set up a situation where you can repeatedly increase your alignment record unconditionally. Your character may occasionally encounter opportunities to increase his alignment, but he may also play through a dozen levels without seeing such a chance, and so a character who has repeatedly abused his alignment, or who has transgressed in a manner that unilaterally docked it, or a character who wants to raise his alignment record to pious so he can gain admittance to the quest1, may have to exercise his alignment many times.

Events that change, exercise, or abuse your alignment record include your behavior toward other monsters, your personal moral code (some of which is role-dependent), your role-specific quest, and your overall mission to retrieve the Amulet.

Because increasing alignment will be harder than in 3.4, all roles will start the game positively aligned. I don't know if they will all start at the same alignment number (this will need to be worked out in role balance testing), but all roles will start with a positive alignment. (In 3.4, some roles start at 0, and most players never notice.)

The maximum/cap on alignment can be left as it is for now, at least until we see how the first round of changes works. The major difference from 3.4 will be that characters won't necessarily be constantly at their maximum alignment all the time.

In general, any time your alignment record is changed outright, exercised, or abused, some kind of message should be printed. In some cases this may be a message that was already being printed anyway in 3.4, and in other cases it will be new. As with many things in NetHack, the message may not always be entirely clear about exactly what is happening, and in some cases it may even be ambiguous, and in some situations it may be printed even if there is no change to your alignment. So the near-mythical unspoiled player will be kept guessing somewhat, but at least a message was printed that clues them in that something may have happened that may be significant.

Note that once the basic system is reasonably balanced, tweaking or augmenting the role-specific stuff will be feasible, providing an additional way to differentiate roles (so that they naturally play best in different styles) in a manner that is actually meaningful. Some role-specific details are included below (near the bottom), but more work in that regard can be done later, once the basics are in place.

Divine Attitude

I propose a signed value for divine attitude, where positive numbers represent divine favor and negative ones represent anger. This involves a sign change (multiply by -1 or subtract from 0) compared to version 3.4.

Events that change divine attitude should all involve interaction of some kind with your diety (e.g., prayer, sacrifice) or with the accoutrements of the religious system (altars, priests, etc.), but these changes may also be influenced by other factors, such as alignment record and even luck. For example, when you pray, your diety's decision on whether to have a more positive or a more negative or the same attitute toward you may depend partly on these other factors. If you pray when your alignment record is terrible, for instance, your diety may be angered; sacrifice may be less effective at improving your diety's attitude if your luck is terrible, or that sort of thing. Nonetheless, divine attitude should only be changed in situations where you are interacting with your diety or with the accoutrements of religion.

Likewise, the results of divine attitude will generally manifest in your diety's willingness (or lack thereof) to help you out when you interact with your diety through such means as prayer or sacrifice.

Benefits of having a positive value here (other than being able to lose some favor later without going negative into anger) have not yet been determined but would presumably involve improved chances of gaining favors from your diety. This would need to be play-tested for balance.

Luck

For the most part, I do not propose to change luck very much; but it is included in this document because there are some places where luck in 3.4 is more mixed up with alignment record and morality than it really should be. I propose a few changes in order to make the boundaries between them more clear and more consistent.

Things that influence luck should do so in the same way for all characters, regardless of role or alignment (Law/Neu/Cha) and should NOT be related to the character's devoutness in following his moral code or pursuing the service of his diety. For the most part, this is already the case. There are a handful of exceptions, however, which I propose to eliminate by converting luck changes to alignment record changes or potential changes, such as in the following cases:

Of note, there is also a luck penalty for praying too soon, which I do not propose to change. My current thinking is that this luck penalty represents the fact that your diety is cheesed with you, not in a major enough way to do anything supernatural like a wide-angle disintegration beam or anything, but annoyed enough to refrain from tilting the odds in your favor in ordinary, non-supernatural situations. My reasoning for not making this an alignment penalty is, you haven't done anything wrong, in the sense of violating your moral code. Your diety was simply not wanting to hear from you at the time when you prayed and so is annoyed. (NetHack dieties are impatient and inattentive, rather like the ones in Greek mythology.) An argument could be made for making this a divine attitude penalty (anger), but that seems unnecessarily harsh. Bad luck is more easily repaired.

I do not intend to address the question of luck penalties in Sokoban at this time, as that issue is really not related to the alignment record overhaul.

Summary

Table of Changes

Characters Affected Action or Event Extant Changes in 3.4 Proposed Changes Notes Source citation
AlignmentRole alignment anger luck alignment divine attitude luck
All All killing (most) monsters various, depends on monster alignment none This is the biggest change. mon.c 1903
killing your quest leader -(u.ualign.record +(int)ALIGNLIM/2) unchanged mon.c 1879
killing your quest nemesis (int)(ALIGNLIM/4) (int)(ALIGNLIM/4) once only mon.c 1883
killing a quest guardian -(int)(ALIGNLIM/8) -(int)(ALIGNLIM/8) may need balance testing mon.c 1885
killing a coaligned priest -2 -2 divine protection lost also mon.c 1889
killing a cross-aligned priest +2 +2 maybe less; will need balance testing mon.c 1889
killing a priest of Moloch +2 +(int)(ALIGNLIM / 4) +2 maybe less; will need balance testing mon.c 1889, 1893
killing a peaceful monster -5 abuse mon.c 1900
killing a pet outright -15 -2 if domestic;
-1 otherwise
mon.c 1895
dismounting your steed, thus killing it -1 -2 if domestic
-1 otherwise
steed.c 556, 562, 604
displacing a pet, drowning it -15 +1 -2 if domestic;
-1 otherwise
+0 hack.c 1352
displacing a pet into a trap -3 abuse if trap was known also calls abuse_dog on the pet hack.c 1344
All All angering a co-aligned priest -5 -5 will need balance testing mon.c 2109
angering a non-co-aligned priest 2 2 will need balance testing mon.c 2110
praying on a non-coaligned altar -1 -1 +0 wiki claims a luck penalty; I don't see one, and it doesn't make sense pray.c 803
praying with low alignment when not otherwise in trouble 1 exercise pray.c 805
sacrificing a pet that died tame -3 +0 abuse -1 also grants aggravate monster pray.c 1229
sacrificing a cross-aligned unicorn on a co-aligned altar +5 exercise pray.c 1251
sacrificing a co-aligned unicorn on a cross-aligned altar set to -1 set to -1 comment says your god gets angry and it's a conversion pray.c 1257
sacrificing the Amulet of Yendor on a cross-aligned high altar -99 -99 pray.c 1280
ascending +10 +10 pray.c 1289
All All sacrificing an unidentified fake amulet on the high altar -1 -1 -1 +0 pray.c 1308
sacrificing an identified fake amulet on the high altar -1 +3 -3 -3 -3 +0 value=-3; pray.c 1313
converting your alignment by sacrifice (int)(u.ualignbase[A_ORIGINAL] * (ALIGNLIM / 2)) -3 same as in 3.4 +0 prayer timeout += 300 pray.c 1365
rejected sacrifice on a cross-aligned altar -5 +3 -5 abuse -3 +0 abuses wisdom; calls angrygods if !Inhell pray.c 1368
partially absolving sacrifice when ugod_is_angry() value value pray.c 1442
getting your prayer timeout reduced through sacrifice +1 if < 0 +1 if < 0 pray.c 1454
reconciling (prayer timeout to zero) through sacrifice set to 0 if < 0 set to 0 if < 0 pray.c 1460
donating 0zm to a co-aligned temple -1 abuse priest.c 483
buying clairvoyance from an aligned priest, if your alignment is ALGN_SINNED or worse +1 +1 priest.c 503
donating more than u.ulevel * 600 and more than half your gold, when you have strayed set to 0 divide in half and add 1 can only happen once every 5000 turns priest.c 523
donating more than u.ulevel * 600 and more than half your gold, otherwise +2 exercise priest.c 526
All All freeing a quest prisoner +3 exercise also calls angry_guards() quest.c 339
killing a quest prisoner you freed -3
angering a peaceful monster other than a priest -1 abuse mon.c 2112
Sam attacking a peaceful monster -1 abuse will not take you below -10 uhitm.c 245
Mon eating meat -1 abuse eat.c 992
Arc animating or breaking an historic statue -1 -1 or could be changed to abuse trap.c 498;
zap.c 3807
Hea healing something tame or peaceful +1 exercise note: this makes alignment easy for healers zap.c 282
Law All sacrificing your own race -5 +3 -5 -5 -3 0 also abuses wisdom;
calls angrygods() if !Inhell
pray.c 1214
genociding something M2_HUMAN -1 abuse -sgn(u.ualign.type) read.c 1636
genociding something M2_DEMON +1 exercise sgn(u.ualign.type) read.c 1637
declining to pay for shop damage -1 abuse also calls hot_pursuit() shk.c 3597
successfully untrapping a monster +1 exercise may need additional work trap.c 3177
lying to a vault guard -1 abuse vault.c 273
Law Kni gluttony -1 abuse should probably apply to Cha and Neu also eat.c 234
digging down in a shop -1 abuse should be expanded to include other shop-related infractions that amount to theft shk.c 3351, 3368
being a caitiff -1 abuse will not take you below -10; should probably apply to Neu Kni also, maybe Cha check_caitiff() in uhitm.c
Sam using a poisoned weapon -1 abuse -sgn(u.ualign.type) uhitm.c 915
Arc digging up a grave -3 -1 -sgn(u.ualign.type)*3 dig.c 772
Law non-Arc digging up a grave -1 -1 -sgn(u.ualign.type) dig.c 775, 778
non-Rog escaping a shop without paying -1 -1 -sgn(u.ualign.type) shk.c 495
making the shopkeeper happy again +1 +1 sgn(u.ualign.type) shk.c 985
non-Sam using a poisoned weapon -1 abuse will not take you below -10 uhitm.c 918
non-Hea healing something tame or peaceful +1 +0 this would be unbalancing zap.c 282
Cha All being seduced +1 +0 Too easily recreated. mhitu.c 2277
sacrificing your own race 5 exericise pray.c 1219
genociding something M2_HUMAN +1 +0 -sgn(u.ualign.type) read.c 1636
genociding something M2_DEMON -1 abuse sgn(u.ualign.type) read.c 1637
declining to pay for shop damage +1 +0 also calls hot_pursuit() shk.c 3597
Cha Arc digging up a grave +3 abuse -sgn(u.ualign.type)*3 dig.c 772
Sam digging up a grave +1 abuse -sgn(u.ualign.type) dig.c 775
using a poisoned weapon +1 abuse -sgn(u.ualign.type) uhitm.c 915
Kni digging down in a shop +1 abuse should be expanded to include other shop-related infractions that amount to theft shk.c 3351, 3368
non-Rog escaping a shop without paying +1 +0 -sgn(u.ualign.type) shk.c 495
making the shopkeeper happy again -1 +0 sgn(u.ualign.type) shk.c 985
non-Hea healing something tame or peaceful -1 abuse sgn(u.ualign.type) zap.c 282
Neu All sacrificing your own race -5 +3 -5 -5 -3 0 also abuses wisdom;
calls angrygods() if !Inhell
pray.c 1214
Arc digging up a grave +0 abuse -sgn(u.ualign.type)*3 dig.c 772
Kni digging down in a shop +0 abuse should be expanded to include other shop-related infractions that amount to theft shk.c 3351, 3368
Sam using a poisoned weapon +0 abuse -sgn(u.ualign.type) uhitm.c 915

The above table is believed to contain all the situations in which the player's alignment record gets changed in 3.4. I intend to expand it in the next version of the document by adding all situations wherein anger is modified in 3.4, plus a few more situations where luck is changed.

All source citation line numbers are from plain old 3.4.3.

A subsequent version of this document will add a table of situations where the player's alignment record and/or divine anger are consulted to determine an outcome.

Thanks for reading. Comments are welcome.