1. Isn't this CHEATING?
  2. Doesn't that make you feel bad?
  3. How does it work?
  4. Why would I want to use Interhack?
  5. How do I get it to work on Windows?
  6. What is this with all the versions?
  7. Will it work in the devnull tournament?
  8. Why the name 'Interhack'?
  9. DEC graphics seem to not work
  10. Interhack should automatically do X

1. Isn't this CHEATING?

Yes. It is.


2. Doesn't that make you feel bad?

Not particularly. We're in this to have fun.

Interhack just lets us play quicker. We don't need to consult spoilers, review ttyrecs, or slowly punch in keys to make sure we don't fatfinger.

Besides, we really like hacking on it.

If you feel uncomfortable using it, then don't use it. :)


3. How does it work?

It's just a very specialized telnet client. It connects to nethack.alt.org (or your server of choice) and waits for keypresses from you and input from the server. It just does a little Perl-style processing before forwarding that text to where it needs to go.

If you want a more detailed response, visit the development page.


4. Why would I want to use Interhack?

Does anything on the plugins page interest you?

If so, then you're probably a (future) Interhack addict.


5. How do I get it to work on Windows?

Though Interhack was developed on and for UNIX systems, it can still work on Windows. It's a lot more annoying to install, requiring some sort of UNIX emulation layer. We recommend Portable Ubuntu. Here are full installation instructions, provided by Lukano.

  1. Download and install Portable Ubuntu.
  2. Run Synaptic to get your installation up to date.
  3. Fire up a terminal.
  4. sudo apt-get install git
  5. sudo cpan -i Bundle::CPAN
  6. git clone git://github.com/TAEB/Interhack.git
  7. cd interhack
  8. less README and follow the regular Interhack instructions.

If you're having trouble getting CPAN to connect to the internet, you may need to run sudo cpan then in that new shell, o conf init connect_to_internet_ok answer yes, then type o conf commit (thanks PoopBridge)

More fool-proof instructions including Interhack setup would be appreciated. :)


6. What is this with all the versions?

This one has its own page.


7. Will it work in the devnull tournament?

Yes! Put the following line into your config file:

server 'ih_server';

Then when you start Interhack you should see something like the following:

Waiting for a connection on port 9999. at ih-server.pl line 32.
A client has connected. at ih-server.pl line 34.

.. and then your usual shell prompt. What Interhack did was start a new shell. All the features of Interhack are available in this shell.

If you want to play with Interhack offline on a local copy of NetHack, just type nethack and off you go.

To play in devnull, you can connect to a server almost as usual: ssh -t yourname@nethack1.devnull.net

NOTE: The -t option to ssh is necessary due to there being several layers of indirection.

We're not sure if the devnull admins will be upset with us for this program. If they say 'no Interhack' then please listen to them. The developers will. So far they have said nothing.

(Interhack is perfectly fine in the June tourney! It better be, considering the admin of the June tourney is the primary Interhack developer :))


8. Why the name 'Interhack'?

Interhack got its name from how it works -- by sitting between you and NetHack.

I was unaware of the (defunct) Interhack project for multiplayer when I came up with the name.

I did try to come up with a new name (especially because interhack.org was taken) but not only was I overruled by the other two developers, but I couldn't come up with anything better. :)

As anyone who knows me would attest, I'm a stickler for capitalization. Please don't call it InterHack. (interhack is quite acceptable though). On that note, it's never spelled Nethack!


9. DEC graphics seem to not work

Interhack doesn't officially support DEC graphics, due to how they work. Interhack just assumes that the only magical characters in the output are the escape codes (which tell the cursor to move around, and change text color, etc). You can still play with DEC on and it will mostly work, but every now and then you'll get a (usually nasty) display error. Just hit ctrl-R to redraw the screen and all should be well again.

IBM graphics should work fine, because they work differently.


10. Interhack should automatically do X

My philosophy for Interhack is it should not do things automatically for you. This means things like automatically applying potions to test for oil, or automatically engraving with new wands to identify them.

This is mostly because I don't trust my code. What if Interhack is wrong about what it thinks of the world? It wouldn't be difficult to find some case that Interhack handles poorly, especially if you play differently.

Furthermore, Interhack will never be able to judge whether one action is more important than another. Say you're evading a master mind flayer. Do you really think that engrave-IDing a wand is more important than taking another step? Interhack wouldn't know any better.