NetHack

Hardfought now hosts an online NetHack server, which offers a couple different versions of the original, or ‘vanilla’ game, as well as a handful of variants. At this page, you can find everything you need to know to successfully connect to and play on our server. You’ll also find useful information covering a wide variety of subjects, from where to go if you need assistance with a game, to specific how-to links, and other meaningful data.

How to connect

First things first – register an account. Game account registration can *only* be done via SSH (see below paragraph on how to connect). Regardless of which server you want to regularly play on, ssh to nethack@hardfought.org and register your account there. Within a couple minutes, your registered account will sync with the other two servers (Europe and Australia) and you’ll then be able to play on every Hardfought NetHack server.

Start up the terminal of your choice (for Windows users, a very popular choice is PuTTY), and connect (ssh) to nethack@hardfought.org (US server, east coast), nethack@eu.hardfought.org (EU server, London), or to nethack@au.hardfought.org (AU server, Sydney) via port 22 (SSH). Be sure to check the various SSH public key fingerprints when connecting to ensure you’re where you’re supposed to be:

Hardfought US Server

3072 RSA:
yya7aO81a5GlS4WN1D2xcQiAOh0EbnoEWsABy1NLkjw (SHA256)
fd:e6:e6:8c:25:4b:38:4c:b5:ac:1f:90:4c:de:53:35 (md5)

256 ECDSA:
UmaLhglcKwjcrwtKC3gC0KhF99wj3ABJ+/2WH9n5MMk (SHA256)
03:bf:f5:29:b8:e6:ac:15:94:72:27:94:b8:06:2c:7b (md5)

256 ED25519:
6I4FoeQJSX90yDFeWb7XTuq/AeuOFo2F2QEDSwgLWmY (SHA256)
30:3c:1e:bc:f1:33:bc:b1:a5:cc:49:e8:f0:4a:d8:24 (md5)

Hardfought EU Server

3072 RSA:
8NO9E2ZRd89qEcnIRGlui2ghi/CCPWpcgmAjBmFxPSI (SHA256)
72:5a:f9:fc:ef:d6:3d:09:34:09:dc:ed:7b:e7:5c:ea (md5)

256 ECDSA:
dvFd57DrsekivUeY7MIiq3k8EsOlvrJbnLa3c21OkuQ (SHA256)
b7:eb:3d:32:29:c2:cc:8e:b9:a3:e1:8c:13:9e:93:2e (md5)

256 ED25519:
9Rud4+DZ+7oh4CCL3d1j9DPt+lSY7w9izISx0k509jk (SHA256)
16:2e:94:cf:ce:b2:8d:3c:86:f6:9f:45:18:55:7f:b2 (md5)

Hardfought AU Server

2048 RSA:
HsA6t2n4CJWvykszU/ICDM3VD44X0vfTrcZ0btD0K2c (SHA256)
b2:28:60:f7:09:dd:05:f8:1c:11:78:d1:e7:20:eb:5c (md5)

256 ECDSA:
i3mOvo28VORw6Jh7mA2guqiEcNBoKEE3c+z2+idz8Yk (SHA256)
31:27:a2:b8:11:ae:f2:a4:6c:79:04:fd:e4:4c:77:13 (md5)

256 ED25519:
txyepUIh66WAljPAcu70PER24AqlL0Lzd9LGssKDclc (SHA256)
33:dc:82:39:56:79:79:a4:d9:2f:5a:cc:04:b1:27:60 (md5)

Connecting from a *nix terminal is straightforward, you just type ‘ssh nethack@hardfought.org’ or ‘ssh nethack@eu.hardfought.org’ at the prompt. If you’re on Windows and are using PuTTY, there’s great how-to up on the NetHack Wiki – https://nethackwiki.com/wiki/PuTTY

You can also connect via hterm, which is a web interface that connects directly to whichever server you want to play on. Nice option to have if work err I mean your home network blocks port 22 for some reason. Links to our hterm instances can be found up above under the ‘NetHack’ menu.

Configuration

Each variant has it’s own configuration settings which can be accessed in-game, or in the case of NetHack 3-based variants, it’s configuration file, or ‘rc file’, can be edited directly. This can be accomplished one of two ways – either via the dgamelaunch menu before you start your game (options include using rnano or virus) or via the website here using the RC Editor page. Using the editors included via the dgl menu is great for a quick edit; the web-based RC Editor is ideal for making large edits, such as importing an entire rc configuration file from another server to here.

Currently the RC Editor only works on the US-based server. If you play on either the EU or AU server, you can sync your rc file over from the US server – you’ll see an option to do so when you first login to the EU or AU servers.

If you’re unsure of what type of configuration you should have, browse the configuration files of other players here to get an idea of what settings you’d like to use. Configurations files are somewhat of an art form, and you can always find something useful that you may not have thought about using previously by digging through what other players have available.

Account Password Reset

Should you require a password reset for your dgamelaunch (dgl) account, use the automatic password reset utility – you’ll need your username as well as the email account you used to register your account. If there are any issues using the password reset function, please send an email to admin@hardfought.org with your request, or find an admin in #hardfought on Libera IRC or #nethack-hardfought on Discord. For security purposes, please submit or have on hand the email address you registered with for verification purposes.

My game crashed, now what?

If your game experiences a crash or fatal error, try to record as much information about the event as you can, such as any displayed error messages, whether or not you were using curses display mode, what you were doing in-game that led up to the crash, etc. Even reporting the lack of any error messages can be helpful. Some of the variants we host, such as UnNetHack, have an auto-recover feature. Most of the variants hosted here do not. Try NOT to start a new game or, if given the option, to destroy your old game if you want the chance for it to be recovered. Contact the admins with your crash report along with which server you were playing on, and we’ll attempt to recover your game as best we can. Turnaround time will typically be within 24 hours, and usually much less time than that.

Take heed – variants such as Slash’EM, DynaHack, SpliceHack, and GnollHack have some significant flaws that can make a crashed game very difficult if not impossible to recover. Save often and at key points/milestones during your game. Play at your own risk.

IRC Bot commands

Beholder is linked to the NetHack game server on hardfought.org, and lives in the irc.libera.chat IRC channel #hardfought. Beholder reports on games being played on the server, including ascensions(wins), deaths(losses), and other significant game events.

Additionally, it responds to the following commands:

Utility commands:

!help – provides you a link to this webpage.
!commands – lists all available commands you can pass to the bot.
!ping – check if bot is alive.
!time – displays current time of the server (EST).
!tell [nick] [message] – forward a message when the recipient becomes active.
!hello – receive a greeting from the bot.

Game server commands:

!lastgame [variant] [player] – display link to dumplog of last game ended.
!asc [player] [variant] – listing of all ascended games for a particular player (all variants or specified).
!lastasc [variant] [player] – dumplog for last ascended game.
!scores or !sb – provides you with a link to the Hardfought scoreboard of all variants hosted.
!setmintc [turn count] – prevent bot from reporting your deaths below specified turn count. Cleared by not specifying a turn count.
!whereis [player] – shows variant and location within the game of the specified player.
!players – displays a list of all players currently online and which variant they are playing.
!who – same as !players
!streak [player] – shows how many games a player has won in a row without dying.

Random Number Generator (RNG) commands:

![m]d[n] – roll m dice of n sides. e.g. !2d6, or !d20. Range for number of dice is 50; sides per die is 1000.
!role [variant] – suggest a role for specified variant, or a variant and role.
!race [variant] – as above, for race.
!variant – suggest a variant to play.
!rng elf | orc | gnome – pick random word from | separated list (pipe not required to separate one-word entries).
!rng do dishes | play NetHack | write bot instructions – pick random phrase from | separated list (pipe is required to separate phrases).
!rng m-n – pick random number between m and n.
!rng – provides information on NetHack RNG functionality ;)

Other:

!tea, !coffee, !potion, !booze, ![various liquors] [recipient] – prepare a special unique beverage for you, or recipient.
!beer – similar to above.
!goat [recipient] – send in the goat.
!source – provides a link to the source code of this bot.
!lotg [recipient] – a blessing of sorts…
!pom – displays current phase of the moon (based on EST) [under development].
!8ball [question] – consult the mystic oracle with your questions. You may or may not like the answer…
!rumor [type] [variant] – displays a rumor from whichever variant you choose.

Pinobot:

Pinobot is also active – it reports on monster statistics for a multitude of variants, and can be queried using the following commands:

@?[monster] or @v?[monster]:  NetHack 3.7
@V?[monster]:  NetHack 3.4.3 / 3.6.x
@d?[monster]:  dNetHack
@e?[monster]:  EvilHack
@g?[monster]:  GruntHack
@h?[monster]:  Hack’EM
@b?[monster]:  NetHack Brass
@n?[monster]:  notdNetHack
@l?[monster]:  Slash’EM
@lt?[monster]:  SlashTHEM
@sp?[monster]:  SpliceHack
@s?[monster]:  SporkHack
@u?[monster]:  UnNetHack
@u+?[monster]:  UnNetHackPlus
@x?[monster]:  xNetHack

Aliases:

Where commands take the name of a variant, the following aliases are accepted:

nh343:  nh343 nethack 343
nh363:  nh363 363 363-hdf
nh370:  nh370 370 370-hdf
nh13d:  nh13d 13d
gh:  grunt grunthack
un:  unnethack unh
fh:  fiqhack
4k:  nhfourk nhf fourk
dnh:  dnethack dn
dyn:  dynahack dyn
nh4:  nethack4 n4
sp:  sporkhack spork
xnh:  xnethack xnh
spl:  splicehack spl
slshm:  slashem slshm
ndnh:  notdnethack ndnh
evil:  evilhack evil
slth:  slashthem slth
gnoll:  gnollhack gnoll
hackm:  hackem hackm
ace:  acehack ace

NetHack Home Page
The NetHack Wiki
Official NetHack Git Repository
Reddit NetHack page
rec.games.roguelike.nethack
NetHack Online (NAO)
NetHack Scoreboard
NetHack Patch Database
#NetHack Quote Database
Junethack
NetHack YANI archive

Contact us

Probably the easiest way to get a hold of an admin (K2 or Tangles), would be to use IRC or Discord – hop on channel #hardfought at irc.libera.chat (IRC), or #nethack-hardfought (Discord) – the server admins are parked there 24/7, as are several community members who can field any queries you might have. If you prefer email, send your message to admin@hardfought.org.