Freeciv 3.0 comes with a utility called freeciv-ruleup. It can be used to update a ruleset from the format of the previous freeciv version to the current one. The output is not pretty, but if you're lucky, it may be loadable to the freeciv server. You should see it in the same bin directory which contains freeciv-ruledit and freeciv-server.


Freeciv-ruleup loads a ruleset given with the --ruleset commandline option, or the default ruleset name of the version ruleup itself is from (not the version it updates from). You should set environment variable FREECIV_DATA_PATH to point to old version rulesets directory prior to running freeciv-ruleup, so it finds those old rulesets instead of the ones matching its own version. Once ruleset has been loaded and converted to match current freeciv version, it's saved to a directory named '<ruleset>.ruleup'. You can also run it without setting that environment variable - if the path to freeciv-ruleup is pathA/bin/freeciv-ruleup, and the path to your ruleset directory (example name "mine") is pathB/mine, then do this -

cd pathB
pathA/bin/freeciv-ruleup -r mine

and the "mine.ruleup" directory will be in directory pathB.


The version in Freeciv version 3.0.0-beta2 has some known issues. Tickets have been filed.

- in units.ruleset, the line


gets replaced with


And the case sensitive change causes it to not work.

- all extra resources in terrain.ruleset get the line


mistakenly added. This causes all the extra resources to not be displayed, and that line must be removed.

- also in terrain.ruleset, the graphics tag for ruins needs to be updated from




in order to match the change made in the default tilespec files.

- freeciv-ruleup does not update any *.spec files, they need to have the options line updated

options = "+Freeciv-3.0-spec"

- if your ruleset has its own .tilespec file, that will also need to be updated. It needs new entries

; offset of the selected unit sprites
select_offset_x = 0
select_offset_y = 0

; offset the city size number by this amount
; This is relative to full sprite origin.
city_size_offset_x = 0
city_size_offset_y = 0

Also, resources now need to have styles defined in the [extras] styles =... section. See

How to update a tileset from 2.6 to 3.0

Community content is available under CC-BY-SA unless otherwise noted.