This is the official FAQ for the Junethack tournament.

Feel free to add questions and answers to this document.

General

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 Freenode IRC network is a #junethack channel.

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

What's new in 2020?

SLASH'EM on the hardfought public servers is a variant that is featured for the first time in the tournament.

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 - it's a SLEX game in one these modes: lostsoul, uberlostsoul, gmmode, supergmmode, or wonderland - it's an elven Anachrononaut

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.

Clans

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 Freenode 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 unambigously 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 encodeachieveX() in Slashem Extended, or the various extended fields in UnNetHack.

There are colored blank templates of the right size for the achievement images are in the repository. The achievement images don't need to be artistically fancy or even great (just look how the existing ones look like).

For an example which makes adding new achievements very easy, look at this CSV for notdNetHack specific achievements which contains everything needed. Adding support the last 2 trophies was just this commit.

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