From NetHackWiki
< Junethack
Revision as of 14:25, 1 June 2023 by Corwin (talk | contribs) (note that gnollhack games are not filtered by difficulty)
Jump to navigation Jump to search

This is the official FAQ for the Junethack tournament.

Feel free to add questions and answers to this document.



You can reach the organizers and other players in various ways.

On the NetHack subreddit is a Junethack thread throughout the month.

There's a dedicated discord channel #nethack-junethack on the Roguelikes discord channel.

On the Libera IRC network, is a #junethack channel.

Last but not least there's the newsgroup rec.games.roguelike.nethack.

What's new in 2022?

SlashTHEM on the hardfought public servers is a variant that is returning to the tournament, after it has been last featured in the tournament of 2015.

Previous year's news are archived on this page.

I missed the start of the tournament, can I still play?

You can join the tournament right up until it ends; even if you miss the very start, there's still plenty of time to play. In fact, after signing up, any games that you played on a participating server entirely during June will retroactively become eligible for the tournament, so you can start playing now and decide whether or not to join later.

How do I play?

You play your games on one of the participating public servers. You can use your existing accounts if you like, or create a new one. Junethack then captures those games, and checks if you are eligible for trophies.

I'm not a good player

Junethack is informally known as "the tournament for players who suck at NetHack".

Consider joining a clan as all clan trophies are designed such that even a new player of NetHack is never detrimental to the clan and might even be able to contribute towards the clan score.

When does the tournament start and end?

The tournament starts at June 1st 00:00 UTC and ends on June 30th right before midnight UTC.

Registration opens usually on Monday before June 1st.

All dates in Junethack are in UTC.

What games are eligible for the tournament?

Games of NetHack and variants played on the participating public servers during June are eligible.

A game needs to have started and ended in June to be eligible.

A game will be excluded and ignored for the tournament if one of the following conditions apply:

- it's a special game mode like e.g. explore mode, wizard mode, etc. 
- it's a startscummed game (currently defined as escaping or quitting within the first 10 turns)
- it's an elven Anachrononaut

These are the only restrictions. For example, Gnollhack games are not filtered by difficulty.

Why aren't the achievements from my game showing up on the scoreboard or being announced in IRC?

Typically, this is because your game hasn't ended yet, or has ended very recently. Junethack operates by reading games' xlogfiles, which only record a game after it is complete. Additionally, it only checks periodically for new data, rather than constantly, so there may be a lag of several minutes before a completed game is registered.

My login from last year doesn't work

Junethack starts each year with a clean setup. You need to re-register your login every year.

Achievements / Trophies

Medusa kills

Only one kill per game counts towards the "Medusa kill" clan trophy

Most variant/trophy or ascended variant/role/race/alignment/gender combinations

If two clan members both get the same sets of trophies in the same variants, the trophies only count once towards the clan trophies.

But as a clan member can at any time leave and join a different clan, it's not necessarily redundant to have several clan members claiming the same trophies.


How do I join a clan?

You need to be invited by a clan admin. You see clan invitations at the bottom of your administration page after you login.

The clan admin is listed on the Junethack clan page.

Where can I find other players?

You could either check out the NetHack subreddit, the #junethack channel on the Libera IRC network, or the Roguelikes discord channel.

Variant developer information

What is needed for my variant to be included in Junethack?

You need to have a public server on which your variant is installed and can be played online.

The public server needs to have a xlogfile (included and enabled by default in NetHack since 3.6.0) that is accessible from the web.

The user configs needs to be accessible from the web as well for verification purposes.

Not required but nice to have is if the URL of the dumplogs on your public server can be deduced from the xlogfile data so that they can be linked from the Junethack site. Most public servers use a combination of game starting time in unix epoch time and the player name.

New trophies and achievements

A trophy or achievement in Junethack needs a winning condition, a small image (54 by 54 pixels), a name, and a description. Your variant needs to encode the winning condition unambiguously in the xlogfile.

The 12 classic xlogfile conditions (ascended, entered Astral Plane, entered Elemental Planes, obtained the Amulet of Yendor, performed the Invocation Ritual, obtained the Book of the Dead, obtained the Bell of Opening, obtained the Candelabrum of Invocation, entered Gehennom, defeated Medusa, obtained the luckstone from the Mines, obtained the Sokoban Prize) are already encoded in the standard xlogfile and need no extra code.`

Historically, achievements were encoded in bitfields in the xlogfile patch. This is rather cumbersome and errorprone to decode, even more so if you consider the different variants that might use the same bits for different conditions. Look at achieveX or conductX in NetHack 3.7, or the various extended fields in UnNetHack.

There are colored blank templates of the right size for the achievement images in the repository. The achievement images don't need to be artistically fancy or even great (just look how some of the existing ones look like). If your skills fail you completely, you can add a request like "make it a yellow &". Simple images can be done programmatically from the Ruby scripts in the icons directory. The colors can be anything although most images follow the 16 standard terminal colors and the symbol can be almost anything due to Unicode.

For an example which makes adding new achievements very easy, look at this CSV for dNetHack specific achievements which contains everything needed. Adding support for trophies documented this is quite easy, as shown in this commit.

If possible, open up a GitHub issue and attach your files there.

Remember, the easier it is to add your achievements, the more likely they will actually be added.