» Contents
» (0) Quickstart
» (1) Introduction
» (2) Installation & setup
» (2.1c) Linux (custom/compilation)
» (3) Creating a character & starting to play
» (4) The world
» (5) Item and flag details, elements
» (6) Monster details
» (7) Character details
» (8) Tactics & strategy
» (9) Miscellaneous

Search
Previous
(2.1b) Windows (custom/compilation)
Next
(2.1d) Mac OS X (custom/compilation)
(2.1c) Linux (custom/compilation)                                               
---------------------------------

Linux (using pre-compiled client):
----------------------------------
Make sure that ncurses and crypt libraries are installed, package names are
usually libncurses5 and libxcrypt (formerly libgcrypt11). Depending on your
system, there might or might not be numbers appended to the package names
(eg libxcrypt1 instead of libxcrypt), just do a generic search.
Enter the 'tomenet/' folder and type:
        ./tomenet
to start the game.

If you get a font-related error ("Font not found: 9x15") please see PROBLEM 56
in chapter Troubleshooting (9.8).


Linux (compiling from source):
------------------------------
The paragraph immediately below applies to the traditional X11 client built via
'makefile'. For the SDL3 Linux client and the unified SDL3 Linux/Windows
cross-build flow, see the SDL3 paragraph further below.

There are additional distribution-specific information on Mikael's website at:
https://muuttuja.org/tomenet/installation-linux.php
(It's linked on www.tomenet.eu -> "Links".)

You can get the source from www.tomenet.eu, also see (1.1).

How to compile the game binary:
Go into '/tomenet/src' where the file 'makefile' is located.

Dependencies, that you must make sure you have installed:
C-devel, X11-devel, ncurses, ncurses-devel and crypt libraries.
The package names are usually (may vary depending on the build system):
build-essential, xorg-dev, libncurses5, libncurses5-dev, libc6-dev, libxcrypt
(formerly libgcrypt11) and libxcrypt-dev. Depending on your system, there might
or might not be numbers appended to the package names (eg libxcrypt1 instead of
libxcrypt), just do a generic search.

Since version 4.4.5 which supports music and sound via SDL2, you also need
libsdl2-mixer-devel, libsdl2, libsmpeg. Usual package names (SDL2, not SDL!):
libsdl2-mixer2.6, libsdl2-mixer2.6-dev, libsdl2debian, libsdl2-dev,
(preferably libsdl2debian-pulseaudio, eg under Ubuntu), libsmpeg0,
libsmpeg-dev and optionally more formats like libogg/libvorbis.
Sometimes instead of the libsdl2* packages your system might
provide the packages simply named 'sdl2' and 'sdl2_mixer' instead.
If you don't want to use audio, edit the makefile and compare the two
paragraphs titled 'Without SDL' and 'With SDL' and edit the makefile
accordingly, to compile it without SDL audio support.
NOTE: If you are compiling the above packages yourself, make sure that you
install the specific audio format libs (smpeg, ogg/vorbis/..) _before_ you
install libsdl2-mixer, so its configure script will recognize those formats
and enable support for the according file types.
Note that sdl2_mixer must be at least version 2.6!

Enter these two lines:
        make clean
        make tomenet
and the binary 'tomenet' will be created in this folder 'tomenet/src'.
IMPORTANT NOW: You need to move the binary 'tomenet' that was just created one
               level upwards, so it's placed in the 'tomenet/' folder!
After that, go up one level into your 'tomenet/' folder. There type:
        ./tomenet
to start the game.

If you get a font-related error ("Font not found: 9x15") please see PROBLEM 56
in chapter Troubleshooting (9.8).


Linux SDL3 client (compiling from source):
------------------------------------------
The SDL3 Linux client is built via 'src/makefile.sdl3'. This same makefile can
also cross-compile the SDL3 Windows client from Linux.

Go into '/tomenet/src' where the file 'makefile.sdl3' is located.

Required libraries for the SDL3 Linux client are SDL3, SDL3_mixer, SDL3_ttf
and SDL3_net. Optional libraries are SDL3_image (for PNG screenshots),
libarchive (for archive-based audio pack installation), and curl+openssl
(for TomeNET Guide checksum checking and updates).

The exact package names vary by distribution, but they will usually resemble:
build-essential or development-tools, clang or gcc, SDL3-devel, SDL3_net-devel,
SDL3_ttf-devel, SDL3_mixer-devel, SDL3_image-devel, libarchive-devel,
libcurl-devel and openssl-devel.

To build the Linux SDL3 client:
        make -f makefile.sdl3 clean
        make -f makefile.sdl3 tomenet

To cross-compile the SDL3 Windows client from Linux:
        make -f makefile.sdl3 tomenet.exe

If you want both in one go:
        make -f makefile.sdl3 clean
        make -f makefile.sdl3 tomenet tomenet.exe

IMPORTANT NOW: If you built inside the repository tree, move/copy the freshly
               built 'tomenet' binary from 'tomenet/src' one level upwards into
               the repository root 'tomenet/' before running it, or use
               'make -f makefile.sdl3 install'. The SDL3 client expects to run
               from the game root so it can find the game data files.

The SDL3 client stores writable data separately from the game installation
directory. It uses 'tomenet.cfg' in its SDL3 user-data directory instead of
'.tomenetrc'. By default this directory is obtained from SDL_GetPrefPath(),
which on Linux will typically be:
        ~/.local/share/TomenetGame/tomenet/
You can override this location via the environment variable
        TOMENET_SDL3_USER_PATH
This user-data directory contains configuration, screenshots, user scripts,
fonts, graphics overrides, audio packs and other writable files, while the
actual game assets remain in the installation directory.

To simplify local builds for future contributors, the repository contains
GitHub CI workflows plus reusable Docker/Podman+distrobox helper scripts.
Fedora was chosen for this because it provides most dependencies directly from
its repositories. Fedora 41 is the preferred default for release-oriented SDL3
builds, because Fedora 43 produced release archives with runtime libc issues on
older Ubuntu 24.04 LTS systems. Fedora 43 helper files are kept as well for
future use, but Fedora 41 is the recommended baseline.

The helper scripts live in:
        .github/docker/fedora41/
        .github/docker/fedora43/
Their 'install-build-requirements.sh' comments contain example commands for
creating a distrobox/container and compiling inside it, typically in one or
two commands after Docker or Podman plus distrobox are installed.

The SDL3 makefile can optionally include GCU support on Linux by setting
        USE_GCU_LINUX=yes
which enables '-c' command-line mode and GUI fallback to GCU. This is optional
and disabled by default.


Configure TomeNET on Linux by editing config files or setting environment vars:
(This is not really required. Most things can be configured by in-game menus or
by dragging/positioning the game windows with the mouse.)
-------------------------------------------------------------------------------
To configure which windows are visible and what font they use and all sorts of
other options, edit the file ".tomenetrc" which should be in your home folder
(or specify alternative location via -f command-line option, see below).

Note: If the game client's positioning of windows doesn't work on your system,
you can use other means such as KDE's native window positioning (right-click
the windows and modify the "special window settings" or "special application
settings") or the tool Devilspie (should be in your default repository) if
you're on Gnome or Xfce or anything else. 'gdevilspie' may also be available,
which is a graphical version of devilspie.

Alternatively to using the .tomenetrc file for window configuration, you can
also set environment variables. These settings will override .tomenetrc.
Environment Variables:
TOMENET_X11_FONT - global font setting for all windows. If set, this will be
used for any window that doesn't have a specific font variable set:
TOMENET_X11_FONT_TERM_MAIN (height and width of main window cannot be changed)
TOMENET_X11_WID_TERM_1, TOMENET_X11_HGT_TERM_1, TOMENET_X11_FONT_TERM_1
TOMENET_X11_WID_TERM_2, TOMENET_X11_HGT_TERM_2, TOMENET_X11_FONT_TERM_2
TOMENET_X11_WID_TERM_3, TOMENET_X11_HGT_TERM_3, TOMENET_X11_FONT_TERM_3
TOMENET_X11_WID_TERM_4, TOMENET_X11_HGT_TERM_4, TOMENET_X11_FONT_TERM_4
TOMENET_X11_WID_TERM_5, TOMENET_X11_HGT_TERM_5, TOMENET_X11_FONT_TERM_5
TOMENET_X11_WID_TERM_6, TOMENET_X11_HGT_TERM_6, TOMENET_X11_FONT_TERM_6
TOMENET_X11_WID_TERM_7, TOMENET_X11_HGT_TERM_7, TOMENET_X11_FONT_TERM_7
Use the 'export' command to set them, eg:
        export TOMENET_X11_FONT_TERM_MAIN=8x13
        export TOMENET_X11_WID_TERM_4=80
        export TOMENET_X11_HGT_TERM_4=24
TOMENET_X11_FONT sets one font globally for all windows. It's overridden by
the window-specific font variables listed above though.
Depending on your system, some possible fonts are usually:
4x6, 5x7, 5x8, 6x9, 6x10, 6x12, 7x13, 7x14, 8x13, 9x15, 10x20, 12x24.

POSIX command-line options:
-h                      displays this list of command-line parameters
-c                      force command-line interface instead of X11 etc.
                        Use it if you want to run the client within a terminal.
-C                      compatibility mode for ancient servers (deprecated)
-e                      Create file 'tomenet.log' instead of displaying
                        error messages in the terminal
-i                      ignore the ~/.tomenetrc config file
                        This option must come before any -f options!
-f<config file>         source (use) a specified config file. This is actually
                        cumulative and does not cause the standard .tomenetrc
                        to not be loaded. To _only_ load this config file and
                        ignore .tomenetrc, specify -i option together with -f
                        option and make sure that -i comes first!
                        The last file that is read is used as default config
                        file and any changes that are saved will be saved to
                        this file.
-F <fps>                set client internal engine fps (default is 100)
-l<Account> <Password>  for example -lGandalf geheim
-N<character name>      for example -NMagnet
-R <character name>     character name to choose and auto-reincarnate it
-p<Port>                for example -p19348
-P <path to lib dir>    sets the path to TomeNET's 'lib' folder
-m                      skip motd (message of the day) on login
-q                      turns off loading/initializing of audio ('quiet mode')
-u                      disables automatic LUA script updating
                        (You should NOT use this option!)
-w                      disables weather effects
-v                      automatically save chat log on exit
-V                      automatically save complete message log on exit
-x                      don't save chat/message log on exit (don't prompt)
-X                      Don't wait for keypress when client terminates
                        (You can set up a client-autorestart script with this,
                         you can additionally check the return value of the
                         TomeNET executable binary, see (2.3))
-a                      Switch to 'ASCII' mode ie the original visuals mode
-g                      Switch to graphics mode, using a graphical tileset
-G                      Switch to dual-mask graphics mode (fore+background)
<ip address>            for example 37.187.75.24

Full command-line example:
        ./tomenet -p19348 -lGandalf geheim -NGandalf 37.187.75.24

If your name contains spaces, it is neccessary to put a '\' in front of each.
Example:
        ./tomenet -p18348 -lIron\ Man geheimer 37.187.75.24
..if your account name is 'Iron Man'.

(Skip down to (2.4) to continue reading.)
Previous
(2.1b) Windows (custom/compilation)
Next
(2.1d) Mac OS X (custom/compilation)