# Crossfire Server User Guide

Crossfire Development Team
`<crossfire@metalforge.org>`
version 1.71.0, April 2014

Note | This README is written for those who wish to run their own server. It is not necessary to install the server in order to play Crossfire.

## 1. Introduction

### 1.1. What is Crossfire?

Crossfire is a free, open-source, cooperative multi-player RPG and adventure game. Since its initial release, Crossfire has grown to encompass over 150 monsters, 3000 areas to explore, an elaborate magic system, 13 races, 15 character classes, and many powerful artifacts scattered far and wide. Set in a fantastical medieval world, it blends the style of Gauntlet, NetHack, Moria, and Angband.

## 2. Installation

### 2.1. System Requirements

Crossfire should run on any machine with an ANSI C compiler installed. To date, it has been known to work on Linux, BSD, Windows, Solaris, and Mac.

In order to build the server, a copy of the game archetypes must be unpacked or linked in the "lib/arch" directory. This can be deleted once the build is finished, but keeping a copy around won’t hurt. Perl is required to generate the final archetype files, but is not needed after the build is complete.

In order to run the server, a copy of the game maps is also required.

In addition, there are a number of optional dependencies that make the game even more fun. These include:

- Support for dynamically loaded libraries. Most modern operating systems should have it. This is needed for server plugins.

- Python 2.4 or later - this is needed for the Crossfire Python plugin (CFPython) and is highly recommended. Most maps, quests, and NPCs will not work without it.

- SQLite3 - for cflogger and cfnewspaper. These plugins are still under development and aren’t very useful at the moment.

- Check - for unit tests. This is required for plugin developers, but mostly useless to normal users.

### 2.2. Compiling

Important | This section is out of date. Don’t rely on it.

Crossfire has been known to compile on a wide variety of systems. It should compile on most all ANSI C and POSIX compliant systems.

To get directions on compilation under Unix/Linux, read the INSTALL file. For Windows: Someone with Windows: please fill this in.

Step-by-step compilation guide: http://wiki.metalforge.net/doku.php/crossfire_compile_guide

## 3. Running Crossfire

Important | This section is out of date. Don’t rely on it.

Crossfire runs on a client/server model. You will also need the client to play. You can either connect to a server someone else has set up, or run your own server and connect to that. The client package has information for connecting to servers.

To run your own server, you need to make the crossfire binaries and install them, and then run the crossfire-server program. This creates a server that you and other people can connect to. The map files must be downloaded and installed for the server to run properly. They should be unpacked in the $(TARGET)/share/crossfire directory - after unpacking, you should have a $(TARGET)/share/crossfire/maps directory. Alternatively, maps in that location may be a sym-link that points to a different folder.

### 3.1. Hosting a Public Server

If you plan to run a long term server, you should use one of the scripts provided that will re-run crossfire if it dies for some reason.

How to host a public server: http://wiki.metalforge.net/doku.php/serverhosting:hosting_a_crossfire_server

## 4. Getting Help

### 4.1. Website

Official Website: http://crossfire.real-time.com/

Crossfire Wiki: http://wiki.metalforge.net/doku.php

SourceForge Downloads Page: http://sourceforge.net/projects/crossfire/files/

### 4.2. IRC

It’s possible to link up with a small community of Crossfire players and developers on irc.freenode.net in the #crossfire channel. Though activity waxes and wanes, it’s often possible to get live help there.

### 4.3. Mailing Lists

For the latest subscription for crossfire mailing lists, go to: http://crossfire.real-time.com/mailinglists/index.html

There you can subscribe/unsubscribe any of the mailing lists. Links to archives of the mailing lists can be found there, as well as at: http://gmane.org/find.php?list=crossfire

## 5. Contributing

### 5.1. Reporting Bugs

First, check the INSTALL file for common problems, and see if yours is mentioned.

Bugs should be filed in the Crossfire bug tracker on SourceForge: http://sourceforge.net/p/crossfire/bugs/

When reporting bugs, make sure you include the following:

- If you have a sourceforge login, make sure you are logged in. This way, if there are questions about the bug, you will be notified about the request for more information.

- What version of crossfire did you use?

- What type of computer did you use (CPU type)

- What is the version of the OS?

- What compiler (and its version) did you use (ie, gcc, icc, etc)?

- Which flags did you give it?

- If the bug happens when compiling crossfire, send an EXACT copy of the compiler line, as well as the errors it puts out. Sending bugs of the sort it failed with a line like … doesn’t help at all.

- If you are using any of the plugins, what version(s) of Python and SQLite do you have installed?

- If the bug happened while running crossfire:

  - Include any output before to the bug.

  - Give a description of what you did before the bug occurred. The better detailed the description, the better chance we have of figuring out where the bug happened, or how we can recreate the bug.

  - If possible, a stack trace from gdb (or other debugger) is very helpful.

The more information provided, the better chance of the bug being fixed in a timely fashion.

Further debugging information can be found at http://crossfire.real-time.com/debugging_tips.html

### 5.2. Submitting Patches

See the doc/programming_guide file.

Patches should be sent to the Crossfire patch tracker on SourceForge: http://sourceforge.net/p/crossfire/patches/

## 6. Copyright

Don’t get scared by the below, it’s included just for "safety" reasons 8) (Don’t want anyone to start selling the game)

    Copyright (c) 2000, 2006 Mark Wedel
    Copyright (c) 1992 Frank Tore Johansen

    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the Free
    Software Foundation; either version 2 of the License, or (at your option)
    any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    675 Mass Ave, Cambridge, MA 02139, USA.

    The author can be reached via e-mail to crossfire-devel@real-time.com