FREECIV(6)

๐Ÿ’… FREECIV(6) โ€” Games Manual, but make it group chat ๐Ÿ’…

okay so this is FREECIV(6) from the Games Manual, and it's literally the manual page for freeciv-server โ€” the server side of Freeciv, bestie. Buckle up, because there are so many flags and we're keeping every single one. No cap. ๐Ÿ’–


โœจ NAME โœจ

freeciv-server โ€” the server for the Freeciv game. That's it, that's the vibe. She runs the game so everyone else can join. ๐Ÿ‘‘


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

freeciv-server [ -A|--Announce protocol ] [ -b|--bind address ] [
-B|--Bind-meta address ] [ -d|--debug level ] [ -e|--exit-on-end ] [
-F|--Fatal [ signal_number ] ] [ -f|--file filename ] [ -h|--help ] [
-i|--identity address ] [ -k|--keep ] [ -l|--log filename ] [
-M|--Metaserver address ] [ -m|--meta ] [ -p|--port port ] [
-q|--quitidle time ] [ -R|--Ranklog filename ] [ -r|--read filename ] [
-S|--Serverid id ] [ -s|--saves directory ] [ --scenarios directory ] [
-v|--version ]

Auth aware servers have additional parameters: [ -a|--auth ] [
-D|--Database file ] [ -G|--Guests ] [ -N|--Newusers ]

Servers with AI module support have an additional parameter: [
-L|--LoadAI module ]

๐ŸŒธ DESCRIPTION ๐ŸŒธ

Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal: To become the greatest civilization. ๐Ÿ†

Players of Civilization IIยฎ by Microproseยฎ should feel at home, since one aim of Freeciv is to have compatible rules. So if you're coming from that era, you're lowkey gonna recognize the vibe. ๐Ÿ‘€

Freeciv is maintained by an international team of coders and enthusiasts, and is easily one of the most fun and addictive network games out there! Fr fr. ๐Ÿ’œ

This is the server program used to establish a Freeciv server โ€” see also freeciv-client(6). Yes, bestie, the server is the main character here; the client is in another manpage. โœจ

This manual page only lists the command line arguments. For details of the directives necessary to configure freeciv-server, see the Server Manual which can be found at the Freeciv website as well as the documentation which is part of the Freeciv distribution. So don't come for this page for everything โ€” she's just the command-line girlie. ๐ŸŽ€


๐Ÿ’… OPTIONS ๐Ÿ’…

The following options are accepted on the command line of the server. They may not be combined; that is, freeciv-server -fp savegame.sav 5557 will not work, instead you would need to enter freeciv-server -f savegame.sav -p 5557. The way that combining flags is not the move here โ€” one flag at a time, please. Most options have a short form (single hyphen and single letter) and a long form (double hyphen and a complete word); their effects are identical. Slay. ๐Ÿซถ

  • -A protocol, --Announce protocol โ€” Uses protocol when announcing game in LAN. Possible values for protocol are:
    • IPv4
    • IPv6
    • none
  • -a, --auth โ€” Enables server authentication and allows access to registered players only. Requires the --Database option to be specified. So yes, -a needs her database bestie. ๐Ÿ”
  • -b address, --bind address โ€” Sets the address on which the server will listen for clients. This is where she sits and waits for her people. ๐Ÿช‘
  • -B address, --Bind-meta address โ€” Sets the address which request to metaserver are sent from. Defaults to address given by -b option. So if you don't specify this one, she borrows the -b address. ๐Ÿ’Œ
  • -d level, --debug level โ€” Sets the amount of debugging information to be logged in the file named by the -l option. Acceptable values for the level are:
    • fatal for fatal messages only.
    • error for fatal and error messages.
    • warning for fatal, error and warning messages
    • normal for fatal, error, warning and normal messages (default).
    • verbose for fatal, error, warning, normal, and verbose messages.
  • -D filename, --Database filename โ€” Specifies a database configuration file for authentication. This file specifies the details of the database. See README.fcdb in the Freeciv distribution for details of its format. Authentication girlies, this one's for you. ๐Ÿ—‚๏ธ
  • -e, --exit-on-end โ€” When a game ends, exit instead of restarting. She said "one game and I'm out," iconic behavior. ๐Ÿšช
  • -F [ signal_number ], --Fatal [ signal_number ] โ€” Raise a custom signal on failed assertion. If signal_number is not specified, then the ABRT signal will be used. Dramatic? Maybe. But that's what it does. ๐Ÿ’€
  • -f filename, --file filename โ€” Loads a saved game (filename) into the server before initialization, instead of starting a new game. This is for reloading saved games, or for loading scenarios. See ENVIRONMENT for where the server looks for these files. The distribution comes with several scenarios, typically stored in /usr/local/share/freeciv/scenarios, for example:
    • british-isles-85x80-v2.80.sav
    • earth-160x90-v2.sav
    • earth-80x50-v3.sav
    • europe-200x100-v2.sav
    • hagworld-120x60-v1.2.sav
    • iberian-peninsula-136x100-v1.0.sav
  • -G, --Guests โ€” Allow guests to login as 'guest' when authentication is enabled. Guests can slide in, no account required. ๐ŸŽŸ๏ธ
  • -h, --help โ€” Prints out a description of the command line options and exits. The classic "help me help you" moment. ๐Ÿ†˜
  • -i address, --identity address โ€” Reports the address to the metaserver. Then, the metaserver will use this address to redirect the users. She's telling the metaserver where to send everyone. ๐Ÿ“
  • -L module, --LoadAI module โ€” Loads AI module. This option can appear multiple times to load different modules. AI besties can stack, no cap. ๐Ÿค–
  • -l filename, --log filename โ€” Defines a log file, filename, to be produced during processing. Use the -d option to set how much is logged. By default, fatal, error, warning, and normal messages are printed to standard output. With a log file, such messages go to the log instead. If filename already exists, it is appended to. So she's not overwriting your receipts, she's adding to them. ๐Ÿงพ
  • -M address, --Metaserver address โ€” Specifies the address of the metaserver to send your server's information to. By default, the standard metaserver run by the Freeciv maintainers will be used. Custom metaserver? She can do that. ๐ŸŒ
  • -m, --meta โ€” Directs the server to communicate with a metaserver, a place where Freeciv servers can publish their presence. Freeciv clients consult the metaserver to offer users a selection of games to join. By default the standard Freeciv metaserver is used. You may specify an alternate metaserver with the -M option. It's giving "server directory energy." ๐Ÿ“ฃ
  • -k, --keep โ€” Usually freeciv server stops sending updates to the metaserver, when there's problems on the connection once. With this option it keeps on trying to send further updates even after it has failed to send updated status once. This option implies -m option. She's persistent, okay? ๐Ÿ’ช
  • -N, --Newusers โ€” Allow new users to login and be registered in the players base if authentication is enabled. New besties welcome. ๐ŸŒˆ
  • -p port, --port port โ€” Specifies the TCP port number to which clients will connect; players must know this number to be able to connect if they are not to use the default of 5556 decimal. You may need to use this if 5556 is not available for your use on your system, or if you would like to run multiple servers on the same system. Port drama is real. ๐Ÿšช
  • -q time, --quitidle time โ€” Quits if no players are present for the specified time, in seconds, and restarts a new server. Empty lobby? She's leaving and coming back fresh. ๐Ÿ’…
  • -R filename, --Ranklog filename โ€” Defines a log file, filename, to be produced during processing. This log contains information for player ranking. Ranking girlies, this is your file. ๐Ÿ…
  • -r filename, --read filename โ€” Specifies a file, filename, of server commands which the server will automatically read and process, as if you had typed them in at the server's prompt. The distribution comes with a few examples, including files that set options to be similar to Civilization Iยฎ and Civilization IIยฎ. The files are named civ1.serv and civ2.serv, and are typically found at /usr/local/share/freeciv/. Autopilot commands, slay. ๐ŸŽ€
  • -S id, --Serverid id โ€” Sets the server id. This is used to identify a particular running game. So you can tell your games apart. ๐Ÿ‘‘
  • -s directory, --saves directory โ€” Specifies the directory to place save game files created by the server. This is especially useful when you're running more than one server on the same system, as it inhibits your servers from clobbering other's save game files.

(This does not influence where the server looks when loading save game files; see FREECIV_SAVE_PATH for that.)

  • --scenarios directory โ€” Specifies the directory to place scenarios saved by the server (for instance, those created with the in-game editor).

(This does not influence where the server looks when loading scenario files; see FREECIV_SCENARIO_PATH for that.)

  • -v, --version โ€” Causes the server to display its version number and exit. Version check, then bye. โœŒ๏ธ

๐ŸŒŸ EXAMPLES ๐ŸŒŸ

๐ŸŽฎ freeciv-server --file oldgame.sav --port 2244

Starts a server on port 2244, loading the save game file oldgame.sav.

๐ŸŽฎ freeciv-server -R ranklog -l logfile -r script -f oldgame.sav.gz -p 2244

Starts a server on port 2244, loading the save game file oldgame.sav.gz. Ranking related events are written to ranklog, other logging information is written to logfile. When the server starts, it immediately executes the commands contained in script.

๐ŸŽฎ freeciv-server -m -a -D fc_auth.conf -q 60 -p 2244 -d normal -l logfile -r script -s ~/saves

Starts a server on port 2244 with authentication enabled and communicates its existence to the standard Freeciv metaserver. Fatal, error, warning, and normal messages are written to logfile. When the server starts it immediately executes the commands contained in script. Save game files are stored in the ~/saves directory. When there are no users on the server for 60 seconds, the server will restart.


๐Ÿซถ COMMANDS ๐Ÿซถ

You may enter commands into the server at any time, either before or during the running of a game.

Type help or help help for starters. Yes, bestie, help help is real and she's helpful. ๐Ÿ˜ญ


๐ŸŽ€ FILES ๐ŸŽ€

The Freeciv server requires the following files in the Freeciv data directory, which is /usr/local/share/freeciv by default:

  • civ2civ3/buildings.ruleset
  • civ2civ3/cities.ruleset
  • civ2civ3/effects.ruleset
  • civ2civ3/game.ruleset
  • civ2civ3/governments.ruleset
  • civ2civ3/nations.ruleset
  • civ2civ3/styles.ruleset
  • civ2civ3/techs.ruleset
  • civ2civ3/terrain.ruleset
  • civ2civ3/units.ruleset
  • civ2civ3/script.lua
  • default/default.lua
  • default/nationlist.ruleset

These are the default rule sets used for the game. Alternate sets of rules can be used by placing them in a separate directory and using the rulesetdir command to change your server's ruleset directory.

Type help rulesetdir for more information.

โœจ ENVIRONMENT โœจ

okay bestie, this is where the server picks up vibes from your shell ๐Ÿ’… the Freeciv server is lowkey listening for these environment variables, and yes, they matter:

  • FREECIV_CAPS โ€” a string holding a list of "capabilities" the server provides ๐ŸŽ€ the compiled-in default is literally correct for almost everything, so don't touch it unless you actually know the capability facility in the source โ€” in which case, go off, use it to enforce constraints between clients and server ๐Ÿ‘‘
  • FREECIV_COMPRESSION_LEVEL โ€” sets the compression level for network traffic ๐Ÿ—œ๏ธโœจ
  • FREECIV_DATA_ENCODING โ€” sets the character encoding used for data files, savegames, and network strings ๐Ÿงš you should not normally change this from the default of UTF-8, because that's the format of the supplied rulesets and the standard network protocol. like, fr fr, leave it ๐Ÿ’€
  • FREECIV_INTERNAL_ENCODING โ€” sets the character encoding used internally by freeciv-server ๐ŸŒ€ this one should never be visible at any interface. defaults to UTF-8.
  • FREECIV_LOCAL_ENCODING โ€” sets the local character encoding, the one used for the command line and terminal output ๐Ÿ–ฅ๏ธ the default is inferred from other aspects of the environment (mysterious, iconic)
  • FREECIV_MULTICAST_GROUP โ€” sets the multicast group, for the LAN tab ๐Ÿ“ก๐Ÿซถ
  • FREECIV_DATA_PATH โ€” a colon separated list of directories pointing to the freeciv data directories ๐ŸŒˆ by default Freeciv looks in the following directories, in order, for any data files: the current directory; the data subdirectory of the current directory; the subdirectory .freeciv/3.2 in the user's home directory; and the directory where the files are placed by running make install.
also there's FREECIV_SAVE_PATH (the original page tucks it right in here, so we're being loyal to it): a colon separated list of directories pointing to the freeciv save directories ๐Ÿ’พ by default Freeciv looks in the following directories, in order, for save files: the current directory; and the subdirectory .freeciv/saves in the user's home directory.
โš ๏ธ heads up: this does not affect where the server creates save game files โ€” see the --saves option for that, iykyk
  • FREECIV_SCENARIO_PATH โ€” a colon separated list of directories pointing to the freeciv scenario directories ๐Ÿ—บ๏ธ by default Freeciv looks in the following directories, in order, for scenario files: the current directory; the data/scenarios subdirectory of the current directory; the subdirectories .freeciv/3.2/scenarios and then .freeciv/scenarios in the user's home directory; and the directory where the files are placed by running make install.
โš ๏ธ and again, this does not affect where the server creates scenario files โ€” see the --scenarios option for that ๐ŸŽ€
  • HOME โ€” specifies the user's home directory ๐Ÿ โœจ
  • http_proxy โ€” set this variable accordingly when using a proxy ๐ŸŒ
  • LANG or LANGUAGE โ€” sets the language and locale on some platforms ๐Ÿ—ฃ๏ธ
  • LC_ALL or LC_CTYPE โ€” similar to LANG (see documentation for your system) ๐Ÿ“š
  • USER โ€” specifies the username of the current user ๐Ÿ™‹โ€โ™€๏ธ

๐Ÿ’€ BUGS ๐Ÿ’€

found a bug? please report it to the Freeciv bug tracker ๐Ÿ›๐Ÿซถ like, they actually want to know. don't suffer in silence bestie.


๐ŸŒˆ MORE INFO ๐ŸŒˆ

see the Freeciv homepage ๐Ÿก

updates and new info are first posted there, so that's the main character of your bookmark folder, periodt ๐Ÿ‘‘


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

The Freeciv Team <freeciv-dev at freelists.org> ๐Ÿ’–

This manpage was originally put together by Florian Ernst <florian_ernst AT gmx.net> using the Server Manual and the comments in the sourcecode ๐Ÿ“ it was updated by Ben Bettin <bwbettin AT gmail.com> to add new features, integrate information from the website's online documentation, and for slight formatting adjustments โœจ

Feel free to use it as you wish โ€” iconic, generous, we love to see it ๐ŸŽ€


๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

freeciv-client(6) and the Server Manual on the Freeciv homepage ๐ŸŒธ


so that's the whole thing, bestie โ€” you're officially a Freeciv server girlie now ๐Ÿงšโ€โ™€๏ธ๐Ÿ’œ this lil' page comes to you from December 10th 2011 and it's the FREECIV(6) page, so go forth and slay your LAN party ๐Ÿ”ฅ๐Ÿ’…

๐Ÿ“ฆ where this page comes from