Jump to Main Content

Git - Index

Crossfire Git Repository

On 2021-May-11, Crossfire migrated from SVN to Git

Git Information

General Commands:

The entire Crossfire project is ~900M as of 2022-Jul-8.

The general commands clone (download) an individual module (archetypes,GTKv2 client, JXClient, maps, server, metaserver, sounds, et al) is the following:

  • Archetypes (at 82M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/crossfire-arch crossfire-crossfire-arch
  • GTKv2 Client (at 18M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/crossfire-client crossfire-crossfire-client
  • JX Client (at 355M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/jxclient crossfire-jxclient
  • Maps (at 382M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/crossfire-maps crossfire-crossfire-maps
  • Metaserver (at 360K as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/metaserver crossfire-metaserver
  • Server (at 61M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/crossfire-server crossfire-crossfire-server
  • Sounds (at 2.4M as of 2022-Jul-8)
    • git clone https://git.code.sf.net/p/crossfire/crossfire-sounds crossfire-crossfire-sounds


Sending in Patches:

  1. Send patches on a bug fix or feature enhancement basis individually, and do not make mega-patches. A diff that changes 10 things is more difficult for developers to review and understand as unrelated changes might be going on. It is also harder to reject part of a patch (feature X is nice, but Y doesn't work).
  2. Please state in the message included with the patch what it fixes/changes. Too often, patches are just a bunch of source code, with no indication why it should be incorporated. Without such commentary, it may be difficult to even determine if the bug it fixes is still there in the source it patches. Please also state what version of crossfire the diff is for.
  3. When posting a patch on the patch tracker at SourceForge, please explicitly state whether or not you want that patch incorporated into the master source. Many times, a patch may be made available on an experimental basis which is not ready for widespread distribution.
  4. When making patches, please make context diffs. Please also include the directory that the file is in (run the diff in the top level directory). Please make 5 line context diffs - larger line context diffs are fine if you think that may make it easier.
    diff -c5 (oldfile) (newfile)

    You can also do diffs of entire directories. To do this, type:

    diff -c5 -r (old_directory) (new_directory)

    An example:

    diff -c5 -r crossfire-0.90.1 crossfire-0.90.2
  5. Gnu diff will include files that did not exist before. Other diff programs may not do this.
  6. If your diff looks excessively long and you made a lot of formatting changes, you can add -w to the diff options to have it ignore whitespace. Note that this will then mean that those formatting changes will then be lost.
  7. There is no need to make a separate diff file for each file that is different (ie, treasure.diff, player.diff, etc). Assuming you follow steps 1-6, all the diffs can be contained in one file, and patch will deal with it just fine.
  8. If you need to send a map, new archetypes, or other new files where a diff doesn't make sense, a uuencoded tar file will suffice.

Submit all patches to the Sourceforge patch tracker on http://sourceforge.net/tracker/?group_id=13833&atid=313833, and mail an announcement to crossfire@metalforge.org.




Projects or code repositories for Crossfire that are using Git include:


Crossfire Git Mirror


  • A 24x24 tileset intended for use with Crossfire RPG Game servers. Many images were pulled from old versions of the game (0.92.0 was a specific baseline). Crossfire's trunk GTK2 client appears to handle the different-sized tileset, but the same cannot be said for released versions. Thus, this image set is largely experimental.


  • A patch for the Crossfire RPG Game server, map set (bigworld, specifically), and archetypes that re-implements the short-lived weather code that made it's way into the game in the mid-2000s.
  • The patches in this repository re-add the weather functionality, with a few adjustments to make the code cleaner and/or more sensible, as well as prevent breakage from use of the same arches for non-weather cases.


Crossfire Theme Updates

Arch2JSON code with testsuite



  • Tools in Lua for rearranging tilesets. Right now, they are specifically suited for manipulating Crossfire's smoothing maps. In addition, they assume that the tiles are 32x32.

Flathub: Crossfire rpg

Crossfire Server Docker Images