# Story
The beginning of a player's story is described in the Introduction: the player must give the Amulet of Yendor to their god or die trying. There are some points in the game that extend or even contradict the plot described in the Introduction. However even with those extra details the story is still simple, perhaps deliberately so.
Instead of an elaborate written plot, NetHack has a series of unique levels that the player must visit to gain certain items or perform certain actions necessary for ascension. The exact layout of NetHack's levels is described in the Mazes of Menace article.

Plot beyond the Introduction
The player must be approved by their quest leader before going on the Quest. Failing to gain this approval may render the game unwinnable, putting some limitations on how players can act prior the Quest.
The player can change their god using a cross-aligned altar or helm of opposite alignment
The player cannot ever serve Marduk, who is never mentioned after the Introduction.
The player cannot ever serve Moloch, in fact he kills players who offer him the Amulet.
The Amulet of Yendor is described in the Introduction as "the most powerful of all the artifacts of the gods"; however, wearing it does not offer much power to the player. It is mainly only useful to the gods.
The player can escape the dungeon without offering the Amulet to their god. This is not considered a win.
The Astral Plane includes the four Horsemen of the Apocalypse.
The "good ending" to the player's story is ascension.
Why the plot is simple
In NetHack, very few actions are mandatory, many features are randomized, and there are many ways to achieve almost anything. This adds to the strategic challenge and makes the game interesting to replay. As a side effect, there is almost no story in the sense of most other games. Indeed, a pre-written plot would hinder the random element of the gameplay. Without a script, the game is free to continue along any line the player wishes, with few actions having dramatic consequences.

See also
User:Tomsod/YANIs_and_patches/Infidel, a patch adding an "Infidel" role with a significantly changed plot
Binder and Anachrononaut, two dNetHack roles that also play with the game's premise
@Play: Purposes for Randomization in Game Design