NetHack 5.0.0: Building the Official Roguelike from Source
Official NetHack Git Repository
At a glance
- What is it?
- NetHack 5.0.0 is the current official release of the dungeon exploration game, and the repository README is written for people who compile it themselves. Here is what the build actually involves, what changed in 5.0, and where the documentation stops.
- Who is it for?
- NetHack 5.0.0 suits players and developers who want the official source and are willing to read sys/*/Install.* files and run make. It is not the right choice for someone who wants a one-command install, since the repository ships no packaged binary.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What NetHack 5.0.0 Is and Who Compiles It
NetHack is a dungeon exploration game descended from Rogue and Hack, and 5.0 is a direct descendant of NetHack 3.6. The repository README describes NetHack 5.0.0 as a release, and warns that as a .0 version "there may be some bugs encountered." That sentence sets the tone for the whole project: the maintainers expect bug reports and pull requests rather than passive users.
The audience for this repository is narrower than the audience for the game. The README opens by telling you to unpack the code in a dedicated directory, check the file list in 'Files', and read the license in the dat subdirectory before doing anything else. Someone who only wants to play NetHack is not the primary reader of these instructions. Someone who wants a specific version, a patch, or a build for an unusual platform is.
That distinction matters when you evaluate the project. The game is famous and widely played; the build system is a 1990s-style C project with per-platform install documents. The README points to sys/*/Install.* and sys/*/NewInstall.* for configuration guidance, and to win/*/Install.* for windowing environments. If you are comfortable in that kind of tree, the repository is straightforward. If you are not, the repository is not going to meet you halfway.
How the 5.0 Build Differs: Lua Replaces yacc, lex and makedefs
The most consequential architectural change in 5.0 is not a gameplay feature. The README states that the build-time yacc and lex based level compiler, the yacc and lex based dungeon compiler, and the quest text file processing previously done by NetHack's makedefs utility have been replaced with Lua text alternatives that are loaded and processed by the game during play.
That is a real shift in where work happens. Level and dungeon definitions that used to be compiled into the binary at build time are now interpreted from Lua text while the game runs. For a developer, this means the build no longer needs those parser generators, and content changes can happen without a full rebuild. For a player, it means the running game carries a Lua interpreter and reads those files at startup or on demand.
The second change is cross-compiling. The README says 5.0 removes barriers to building on one platform for execution on another, and points to a file called 'Cross-compiling' in the top-level folder. The repository layout confirms that file exists alongside Porting and Files. Cross-compilation is why the README can claim builds for MS-DOS via djgpp and for AmigaOS from a Linux or macOS host.
The third is source compliance. The README states the source is compliant with the C99 standard. If your compiler predates C99, that is your problem, not the project's.
A smaller change listed as not a spoiler: the vibrating square level gets an automatic annotation reading "gateway to Moloch's Sanctum" once the square's location is known, and the annotation goes away once the sanctum temple is found. It is a quality-of-life addition, not a mechanic.
Installing NetHack from the Official Source Tree
The repository has no install script and no package manifest. The README's procedure is manual: unpack into a dedicated directory it calls 'Top', confirm your files against the 'Files' list, read dat/license, then follow the platform install document. Start by getting the source.
git clone https://github.com/NetHack/NetHack.git
cd NetHack
git checkout NetHack-5.0The README names the default branch NetHack-5.0, and the release tag for this version is NetHack-5.0.0_Released. After cloning, check the tree against the 'Files' file at the top level. The README is explicit that this file lists what you should have in each directory and what gets created during the build, and that directory names should not be changed unless you are prepared to edit the makefiles and makedefs references.
Next, pick your platform document. The README directs macOS users specifically to sys/unix/NewInstall.unx. Linux and other Unix-like systems fall under the same sys/unix family of instructions. Windows users are pointed to the win/*/Install.* files for windowing environments. The README does not provide a single unified command sequence, because there is not one.
cd sys/unix
sh setup.sh hints/linuxThe exact hints file name is not given in the README, so confirm it by listing the hints directory before running setup. After setup, the usual make targets apply from the Top directory. The README says the default configuration is SysV/Sun/Solaris2.x, which is a historical artifact of where the code was housed, not a recommendation.
When it runs, the README notes you can get version information from the in-game #version command or the command line option --version. Use one of those when filing a bug report, because the README asks for version information in the appropriate field of the contact form.
Platform Support: What Is Tested and What Is Merely Attempted
The README separates platforms into two tiers, and the distinction is worth reading carefully. Tested to run and/or compile at the time of the 5.0 release: Intel Pentium or better on Linux and BSDI; Intel Pentium or better on Windows 10 or 11; Intel-based or Apple M1 through M5 Macs running macOS 10.11 (El Capitan) through macOS 26 (Tahoe); Intel 80386 or greater on MS-DOS with DPMI, cross-compiled on Linux and run under an emulator or dosbox, built with the djgpp compiler; and AmigaOS 3.0 or later, cross-compiled on Linux or macOS, requiring Kickstart 39+ and 6 MB of free RAM with 8 MB recommended, plus roughly 5 MB of hard drive space.
Below that is a softer category: "some success" on OpenVMS V8.4 on Alpha and Integrity/Itanium/IA64, and OpenVMS V9.2-3 on x86-64. That phrasing is doing real work. It means the maintainers are not claiming those platforms are supported.
The Amiga numbers are the most concrete resource figures in the README, and they are a useful sanity check on how modest the game's footprint is. The absence of any equivalent figure for modern Linux or macOS is a gap. If you are sizing a container or a VM, the README will not tell you what you need.
One more constraint: the README says the default configuration is SysV/Sun/Solaris2.x. A default aimed at a system from that era is a hint that the build assumes a traditional Unix layout rather than a modern container image. Expect to override hints rather than accept the default.
Where the Documentation Stops
The README's most unusual paragraph is about doc/fixes5-0-0.txt. It contains the full list of fixes and changes as they were committed, and the README says the text was written for the development team's own use and is provided "as is", with an explicit request not to ask for further explanation of the entries. It also warns that some entries, particularly in the new features section, might be considered spoilers.
That is a deliberate refusal to produce changelog prose for users. It is defensible for a game where discovery is the point, but it means you cannot learn what changed in 5.0 from the README alone. You either read a commit log written for insiders or you find out by playing.
The README also declines to give gameplay hints: "We don't give hints for playing the game." And it declines scheduling questions, saying that asking when the next version will be out earns a stock answer. Both policies are consistent with a project that treats the game as something to be figured out.
What is genuinely missing is a rollback path. The README does not document how to revert a build or downgrade a save. For a game with save files and bones files, that is a real gap, and the README's request that you never send binary save or bones files by email reinforces how much the project depends on textual bug descriptions rather than reproducible artifacts.
Finally, the README states that freelanced patches are welcome but that the team cannot provide support for them. Applying a third-party patch takes you off the supported path entirely.
NetHack and DCSS: Two Different Answers to the Same Problem
The obvious alternative in this genre is Dungeon Crawl Stone Soup, and the difference is not difficulty or theme. It is the build and content pipeline. NetHack 5.0 moved its level and dungeon compilers from yacc and lex into Lua text processed at play time, which keeps content in text files the game reads. DCSS has historically kept its content pipeline in its own build-time tooling. The practical consequence is that NetHack 5.0 lets you change a dungeon or level definition without recompiling the binary, while a build-time pipeline ties content changes to a rebuild.
The second difference is documentation posture. NetHack's README tells you the changelog was written for the team and not to ask for explanations. A project that publishes user-facing release notes gives a newcomer a shorter path to understanding a version. NetHack trades that away, partly because the changelog would spoil the game.
The third is distribution. NetHack's repository is source, and the README is a build guide. If you want a packaged binary, you are relying on someone else's packaging, not this repository. That is a legitimate reason to choose a different roguelike even if you prefer NetHack's design.
Licence, Maintenance and Upgrade Cost
The repository metadata does not declare a licence, but the README does. It instructs you to read the file called "license" in the dat subdirectory before doing anything else, and says the project expects you to comply with its terms and is "very serious about it". The licence identifier is not stated in the README text, so read dat/license directly rather than assuming. Nothing here is legal advice; the operative document is that file.
The maintenance picture is mixed in an interesting way. The last push to the repository was on 2026-09-23, so the tree is being touched. But the release cadence is slow: NetHack 3.6.6 in March 2020, 3.6.7 in February 2023, and 5.0.0 in May 2026. Between releases there is a long development tail, and the README's own framing of a .0 release as potentially buggy tells you what to expect if you adopt it early.
Upgrade cost is where NetHack 5.0 asks the most. The move to Lua-based level and dungeon processing changes the content pipeline, so anyone carrying local patches to level definitions faces a rewrite rather than a merge. The C99 requirement can also force a toolchain change on older systems. The README does not document a migration path from 3.6 to 5.0, and it does not document rollback. If you maintain a patched build, budget for reworking those patches against the Lua files, and test before you replace a working 3.6.7 install.
Editorial conclusion
NetHack 5.0.0 suits players and developers who want the official source and are willing to read sys/*/Install.* files and run make. It is not the right choice for someone who wants a one-command install, since the repository ships no packaged binary. Before committing, verify that your platform appears in the tested list in the README, that your toolchain supports C99, and that you have read dat/license, because the project states plainly that it expects compliance with that file.
Frequently asked questions
Is NetHack still being developed?
The repository's last push was on 2026-09-23, and NetHack 5.0.0 was released in May 2026 after 3.6.7 in February 2023. Releases are infrequent but the source tree continues to receive commits.
What is NetHack 5.0?
NetHack 5.0 is an enhancement to the dungeon exploration game NetHack and a direct descendant of NetHack 3.6. The README states it is a .0 release and that some bugs may be encountered.
How do I install NetHack on Linux?
The README does not give a single install command. It tells you to unpack the source, verify it against the 'Files' list, read dat/license, and then follow the platform instructions in sys/*/Install.* or sys/*/NewInstall.*.
How do I install NetHack on macOS?
The README lists Intel-based and Apple M1 through M5 Macs running macOS 10.11 (El Capitan) through macOS 26 (Tahoe) as tested, and directs macOS users to follow the instructions in sys/unix/NewInstall.unx.
Can you still play NetHack?
Yes. NetHack 5.0.0 was released in May 2026, and the README lists tested builds on Linux, Windows 10 or 11, macOS, MS-DOS via djgpp, and AmigaOS 3.0 or later.
What is NetHack?
NetHack is a dungeon exploration game descended from Rogue and Hack, and a direct descendant of NetHack 3.6. The README describes it as an enhancement to that lineage rather than a new game.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/nethack-nethack)