freeciv21-game-manual
SYNOPSIS
This manual page refers to freeciv21-server(6) setting directives and has no OS command line options.
DESCRIPTION
Freeciv21 is a free open source turn-based empire-building 4x strategy game, in which each player becomes the leader of a civilization. You compete against several opponents to build cities and use them to support a military and an economy. Players strive to complete an empire that survives all encounters with its neighbors to emerge victorious. Play begins at the dawn of history in 4,000 BCE.
Freeciv21 takes its roots in the well-known FOSS game Freeciv and extends it for more fun, with a revived focus on competitive multiplayer environments. Players can choose from over 500 nations and can play against the computer or other people in an active online community.
The code is maintained by the team over at Longturn.net and is based on the QT framework. The game supports both hex and square tiles and is easily modified to create custom rules.
The freeciv21-server(6) program has its own command line interface. This page describes all of the server option directives an administrator can issue to the freeciv21-server. For more information on the server, refer to freeciv21-server(6). For more information on the game, refer to freeciv21-client(6).
OPTIONS
After a server has been started from the command-line, an administrator can issue a set of commands to the server’s own command-line. This server command-line is separate from the OS terminal command-line.
/startThis command starts the game. When starting a new game, it should be used after all human players have connected, and AI players have been created (if required), and any desired changes to initial server options have been made. After
/start, each human player will be able to choose their nation, and then the game will begin. This command is also required after loading a savegame for the game to recommence. Once the game is running this command is no longer available, since it would have no effect./helpWith no arguments gives some introductory help. With argument “commands” or “options” gives respectively a list of all commands or all options. Otherwise the argument is taken as a command name or option name, and help is given for that command or option. For options, the help information includes the current and default values for that option. The argument may be abbreviated where unambiguous.
/list colorsList the player colors.
/list connectionsGives a list of connections to the server.
/list delegationsList of all player delegations.
/list ignored usersList of a player’s ignore list.
/list map image definitionsList of defined map images.
/list playersThe list of the players in the game.
/list rulesetsList of the available rulesets (for
/readcommand)./list scenariosList of the available scenarios.
/list nationsetsList of the available nation sets in this ruleset.
/list teamsList of the teams of players.
/list votesList of the running votes.
/quitQuit the game and shutdown the server.
/cut <connection-name>Cut specified client’s connection to the server, removing that client from the game. If the game has not yet started that client’s player is removed from the game, otherwise there is no effect on the player. Note that this command now takes connection names, not player names. See
/list connections./explain <option-name>The
/explaincommand gives a subset of the functionality of/help, and is included for backward compatibility. With no arguments it gives a list of options (such as/help options), and with an argument it gives help for a particular option (such as/help <option-name>)./show all|vital|situational|rare|changed|locked|rulesetdirWith no arguments, shows vital server options (or available options, when used by clients). With an option name argument, show only the named option, or options with that prefix. With
all, it shows all options. Withvital,situational, orrare, a set of options with this level. Withchanged, it shows only the options which have been modified from the ruleset defaults. While withlockedall settings locked by the ruleset will be listed. Withruleset, it will show the current ruleset directory name./wall <message>For each connected client, pops up a window showing the message entered.
/connectmsg <message>Set message to send to clients when they connect. Empty message means that no message is sent.
/vote yes|no|abstain [vote number]A player with
basiclevel access issuing a control level command starts a new vote for the command. The/votecommand followed by “yes”, “no”, or “abstain”, and optionally a vote number, gives your vote. If you do not add a vote number, your vote applies to the latest vote. You can only suggest one vote at a time. The vote will pass immediately if more than half of the voters who have not abstained vote for it, or fail immediately if at least half of the voters who have not abstained vote against it.
Note
Voting is not a feature that is used very often, but does come in handy.
/cancelvote <vote number>With no arguments this command removes your own vote. If you have an admin access level, you can cancel any vote by vote number, or all votes with the
allargument./debug diplomacy|ferries|tech|city|units|unit|timing|infoPrint AI debug information about given entity and turn continuous debugging output for this entity on or off.
debug diplomacy <player>debug ferriesdebug tech <player>debug city <x> <y>debug units <x> <y>debug unit <id>debug timingdebug info
/set <option-name> <value>Set an option on the server. The syntax and legal values depend on the option. See the help for each option. Some options are “bitwise”, in that they consist of a choice from a set of values. Separate these with
|, for instance,/set topology wrapx|iso. For these options, use syntax like/set topology ""to set no values./team <player> <team>A team is a group of players that start out allied, with shared vision, embassies, and fight together to achieve team victory with averaged individual scores. Each player is always a member of a team (possibly the only member). This command changes which team a player is a member of. Use
""if names contain whitespace./rulesetdir <directory>Choose new ruleset directory or modpack.
/metamessage <meta-line>Set user defined metaserver info line. If parameter is omitted, previously set metamessage will be removed. For most of the time user defined metamessage will be used instead of automatically generated messages, if it is available.
Note
Freeciv21 does not have its own metaserver at this time and the legacy Freeciv metaserver does not support Freeciv21. This means, right now, that all commands related to the metaserver are held over from the fork from legacy Freeciv until the Longturn community creates a custom metaserver.
/metapatches <meta-line>Set metaserver patches line. See Note about Freeciv21 metaserver above.
/metaconnection up|down|persistent|?/metaconnection ?reports on the status of the connection to the metaserver./metaconnection downor/metac dbrings the metaserver connection down./metaconnection upor/metac ubrings the metaserver connection up./metaconnection persistentor/metac pis like ‘up’, but keeps trying after failures. See Note about Freeciv21 metaserver above./metaserver <address>Set address (URL) for metaserver to report to. Same as
--Metaserveron the command-line. See NOTE about Freeciv21 metaserver above./aitoggle <player-name>Toggle AI status of player. By default, new players are AI.
/take <player-name>Only the console and connections with cmdlevel
hackcan force other connections to take over a player. If you are not one of these, only the<player-name>argument is allowed. If-is given for the player name and the connection does not already control a player, one is created and assigned to the connection. The/allowtakeoption controls which players may be taken and in what circumstances.For example, if you have cmdlevel
hackand are connected to a server, you can issue/take <player-name> -to take over any player. If you do not have cmdlevelhack, then the/allowtakeoption must be properly set as well as a proper/delegatecommand by the player wishing to delegate is completed first. Then a player can use/taketo take the player while the delegation is in place./observe <player-name>Only the console and connections with cmdlevel
hackcan force other connections to observe a player. If you are not one of these, only the<player-name>argument is allowed. If the console gives no player-name or the connection uses no arguments, then the connection is attached to a global observer. The/allowtakeoption controls which players may be observed and in what circumstances.For example, if you have cmdlevel
hackand are connected to a server, you can issue/observewith no<player-name>parameter. The server will change your connection to a global observer, able to view all nations. A global observer can make no changes and can only see information. If a user with cmdlevelhackissues/observer <player-name>, then they can only observe that particular nation only. To restore to original connection, you issue/take <player-name>for your own username./detach <connection-name>Only the console and connections with cmdlevel
hackcan force other connections to detach from a player.This rarely used command essentially forces a connected client to disconnect from a server. To see the connections, issue a
/list connectionscommand as noted above./create <player-name> [ai type]With the
/createcommand a new player with the given name is created. Ifplayer-nameis empty, a random name will be assigned when the game begins. Until then the player will be known by a name derived from its type. Theai typeparameter can be used to select which AI module will be used for the created player. This requires that the respective module has been loaded or built in to the server. If the game has already started, the new player will have no units or cities. Also, if no free player slots are available, the slot of a dead player can be reused (removing all record of that player from the running game)./awayToggles
awaymode for your nation. In away mode, the AI will govern your nation but make only minimal changes.
Note
The term minimal changes is not well understood at this time. The server help does not provide more details. An enterprising enthusiast could read the AI code to determine what the term means and provide more details. Any real player is not going to want the AI to run their nation and will delegate instead.
/handicapped <player-name>With no arguments, sets all AI players to skill level
Handicapped, and sets the default level for any new AI players toHandicapped. With an argument, sets the skill level for the specified player only. This skill level has the same features asNovice, but may suffer additional ruleset-defined penalties.Does not build offensive diplomatic units.
Gets reduced bonuses from huts.
Prefers defensive buildings and avoids close diplomatic relations.
Can see through FOW.
Does not build air units.
Has complete map knowledge, including unexplored territory.
Naive at diplomacy.
Limits growth to match human players.
Believes its cities are always under threat.
Always offers cease-fire on first contact.
Does not bribe worker or city founder units.
Has erratic decision-making.
Research takes 250% as long as usual.
Has reduced appetite for expansion.
/novice <player-name>With no arguments, sets all AI players to skill level
Novice, and sets the default level for any new AI players toNovice. With an argument, sets the skill level for the specified player only.Does not build offensive diplomatic units.
Gets reduced bonuses from huts.
Prefers defensive buildings and avoids close diplomatic relations.
Can see through FOW.
Does not build air units.
Has complete map knowledge, including unexplored territory.
Naive at diplomacy.
Limits growth to match human players.
Believes its cities are always under threat.
Always offers cease-fire on first contact.
Does not bribe worker or city founder units.
Has erratic decision-making.
Research takes 250% as long as usual.
Has reduced appetite for expansion.
/easy <player-name>With no arguments, sets all AI players to skill level
Easy, and sets the default level for any new AI players toEasy. With an argument, sets the skill level for the specified player only.Does not build offensive diplomatic units.
Gets reduced bonuses from huts.
Prefers defensive buildings and avoids close diplomatic relations.
Can see through FOW.
Does not build air units.
Has complete map knowledge, including unexplored territory.
Naive at diplomacy.
Limits growth to match human players.
Always offers cease-fire on first contact.
Does not bribe worker or city founder units.
Can change city production type without penalty.
Has erratic decision-making.
Has reduced appetite for expansion.
/normal <player-name>With no arguments, sets all AI players to skill level
Normal, and sets the default level for any new AI players toNormal. With an argument, sets the skill level for the specified player only.Does not build offensive diplomatic units.
Can see through FOW.
Has complete map knowledge, including unexplored territory.
Can skip anarchy during revolution.
Always offers cease-fire on first contact.
Does not bribe worker or city founder units.
Can change city production type without penalty.
/hard <player-name>With no arguments, sets all AI players to skill level
Hard, and sets the default level for any new AI players toHard. With an argument, sets the skill level for the specified player only.Has no restrictions on national budget.
Can target units and cities in unseen or unexplored territory.
Knows the location of huts in unexplored territory.
Can see through FOW.
Has complete map knowledge, including unexplored territory.
Can skip anarchy during revolution.
Can change city production type without penalty.
/cheating <player-name>With no arguments, sets all AI players to skill level
Cheating, and sets the default level for any new AI players toCheating. With an argument, sets the skill level for the specified player only.Can target units and cities in unseen or unexplored territory.
Knows the location of huts in unexplored territory.
Can see through FOW.
Has complete map knowledge, including unexplored territory.
Can skip anarchy during revolution.
Can change city production type without penalty.
/experimental <player-name>With no arguments, sets all AI players to skill level
Experimental, and sets the default level for any new AI players toExperimental. With an argument, sets the skill level for the specified player only. THIS IS ONLY FOR TESTING OF NEW AI FEATURES! For ordinary servers, this level is no different toHard.Has no restrictions on national budget.
Can target units and cities in unseen or unexplored territory.
Knows the location of huts in unexplored territory.
Can see through FOW.
Has complete map knowledge, including unexplored territory.
Can skip anarchy during revolution.
Can change city production type without penalty.
/cmdlevel none|info|basic|ctrl|admin|hackThe command access level controls which server commands are available to users via the client chatline. The available levels are:
none: no commandsinfo: informational or observer commands onlybasic: commands available to players in the gamectrl: commands that affect the game and usersadmin: commands that affect server operationhack: all commands - dangerous!
With no arguments, the current command access levels are reported. With a single argument, the level is set for all existing connections, and the default is set for future connections. If
newis specified, the level is set for newly connecting clients. Iffirst comeis specified, thefirst comelevel is set. It will be granted to the first client to connect, or if there are connections already, the first client to issue the/firstcommand. If a connection name is specified, the level is set for that connection only. Command access levels do not persist if a client disconnects, because some untrusted person could reconnect with the same name. Note that this command now takes connection names, not player names./firstIf there is none, become the game organizer with increased permissions.
/timeoutshowShows information about the timeout for the current turn, for instance how much time is left.
/timeoutset <time>This command changes the remaining time for the current turn. Passing a value of
0ends the turn immediately. The time is specified as hours, minutes, and seconds using the formathh:mm:ss(minutes and hours are optional)./timeoutadd <time>This increases the timeout for the current turn, giving players more time to finish their actions. The time is specified as hours, minutes, and seconds using the format
hh:mm:ss(minutes and hours are optional). Negative values are allowed/timeoutincrease <turn> <turninc> <value> <valuemult>Every
<turn>turns, add<value>to the timeout timer, then add<turninc>to<turn>and multiply<value>by<valuemult>. Use this command in concert with the option/timeout. Defaults are0 0 0 1./ignore [type=]<pattern>The given pattern will be added to your ignore list. You will not receive any messages from users matching this pattern. The type may be either
user,host, orip. The default type (if omitted) is to match against the username. The pattern supports unix glob style wildcards, i.e.,*matches zero or more character,?exactly one character,[abc]exactly one ofa,b, orc, etc. To access your current ignore list, issue/list ignore./unignore <range>The ignore list entries in the given range will be removed. You will be able to receive messages from the respective users. The range argument may be a single number or a pair of numbers separated by a dash
-. If the first number is omitted, it is assumed to be1. If the last is omitted, it is assumed to be the last valid ignore list index. To access your current ignore list, issue/list ignore.
/playercolor <player-name> <color>This command sets the color of a specific player, overriding any color assigned according to the
plrcolormodesetting. The color is defined using hexadecimal notation (hex) for the combination of Red, Green, and Blue color components (RGB), similarly to HTML. For each component, the lowest (darkest) value is0(in hex:00), and the highest value is255(in hex:FF). The color definition is simply the three hex values concatenated together (RRGGBB). For example, the following command sets Caesar to pure red:playercolor Caesar ff0000. Before the game starts, this command can only be used if theplrcolormodesetting is set toPLR_SET. A player’s color can be unset again by specifyingreset. Once the game has started and colors have been assigned, this command changes the player color in any mode;resetcannot be used. To list the player colors, use/list colors./playernation <player-name> [nation] [is-male] [leader] [style]This command sets the nation, leader name, style, and gender of a specific player. The string “random” can be used to select a random nation. The gender parameter should be
1for male,0for female. Omitting any of the player settings will reset the player to defaults. This command may not be used once the game has started./endgameEnd the game immediately in a draw.
/surrenderThis tells everyone else that you concede the game, and if all but one player (or one team) have conceded the game in this way then the game ends.
/remove <player-name>This completely removes a player from the game, including all cities and units etc. Use with care!
/save <file-name>Save the current game to file
<file-name>. If nofile-nameargument is given saves to<auto-save name prefix><year>m.sav[.gz]. To reload a savegame created by/save, start the server with the command-line argument:--file <filename>or-f <filename>and use the/startcommand once players have reconnected./scensave <file-name>Save the current game to file
<file-name>as a scenario. If nofile-nameargument is given saves to<auto-save name prefix><year>m.sav[.gz]. To reload a savegame created by/scensave, start the server with the command-line argument:--file <filename>or-f <filename>and use the/startcommand once players have reconnected./load <file-name>Load a game from
<file-name>. Any current data including players, rulesets and server options are lost./read <file-name>Process server commands from file.
/write <file-name>Write current settings as server commands to file.
/reset game|ruleset|script|defaultReset all settings if it is possible. The following levels are supported:
game: using the values defined at the game start.ruleset: using the values defined in the ruleset.script: using default values and rereading the start script.default: using default values.
/default <option name>Reset the option to its default value. If the default ever changes in a future version, the option’s value will follow that change.
/lua cmd <script line>Evaluate a line of Freeciv21 script or a Freeciv script file in the current game. Variations are:
lua cmd <script line>lua unsafe-cmd <script line>lua file <script file>lua unsafe-file <script file>
The unsafe prefix runs the script in an instance separate from the ruleset. This instance does not restrict access to Lua functions that can be used to hack the computer running the Freeciv21 server. Access to it is therefore limited to the console and connections with cmdlevel
hack.
/kick <user>The connection given by the
userargument will be cut from the server and not allowed to reconnect. The time the user would not be able to reconnect is controlled by thekicktimesetting.
/delegate to <username>Delegation allows a user to nominate another user who can temporarily take over control of their player while they are away. Variations are:
/delegate to <username>: Allow<username>todelegate takeyour player./delegate cancel: Nominated user can no longer take your player./delegate take <player-name>: Take control of a player who has been delegated to you. Behaves like/take, except that the/allowtakerestrictions are not enforced./delegate restore: Relinquish control of a delegated player (opposite of/delegate take) and restore your previous view, if any. This also happens automatically if the player’s owner reconnects./delegate show: Show who control of your player is currently delegated to, if anyone.
The
[player-name]argument can only be used by connections with cmdleveladminor above to force the corresponding change of the delegation status./aicmd <player> <command>Execute a command in the context of the AI for the given player.
/fcdb lua <script>The argument
reloadcauses the database script file to be re-read after a change, while the argumentluaevaluates a line of Lua script in the context of the Lua instance for the database./mapimg define <mapdef>Create image files of the world/player map. Variations are:
mapimg define <mapdef>mapimg show <id>|allmapimg create <id>|allmapimg delete <id>|allmapimg colortest
This command controls the creation of map images. Supported arguments:
define <mapdef>: define a map image; returns numeric<id>.show <id>|all: list map image definitions or show a specific one.create <id>|all: manually save image(s) for current map state.delete <id>|all: delete map image definition(s).colortest: create test image(s) showing all colors.
Multiple definitions can be active at once. A definition
<mapdef>consists of colon-separated options:Table 3 mapdef options Option
(Default)
Description
format=<format>
(png)
file format
show=<show>
(all)
which players to show
plrname=<name>
player name
plrid=<id>
numeric player id
plrbv=<bit vector>
see example; first char = id 0
turns=<turns>
save image each <turns> turns (0=no autosave, save with create)
zoom=<zoom>
magnification factor (1-5)
map=<map>
(bcku)
which map layers to draw
<format> =use image format<format>. Thepngformat is always supported.<show>determines which players are represented and how many images are saved by this definition:none: no players, only terrain.each: one image per player.human: one image per human player.all: all players on a single image.plrname: just the player named withplrname.plrid: just the player specified withplrid.plrbv: one image per player inplrbv.
<map>can contain one or more of the following layers:a: show area within borders of specified players.b: show borders of specified players.c: show cities of specified players.f: show fog of war (single-player images only).k: show only player knowledge (single-player images only).t: full display of terrain types.u: show units of specified players.
Examples of
<mapdef>:zoom=1:map=tcub:show=all:format=pngzoom=2:map=tcub:show=each:format=pngzoom=1:map=tcub:show=plrname:plrname=Otto:format=pngzoom=3:map=cu:show=plrbv:plrbv=010011:format=pngzoom=1:map=t:show=none:format=png
/rfcstyleSwitch server output between ‘RFC-style’ and normal style.
/serveridSimply returns the id of the server.
- USER
Specifies the username of the current user.
BUGS
Please report bugs to the Freeciv21 bug tracker at https://github.com/longturn/freeciv21/issues/new/choose
MORE INFORMATION
See the Longturn home page at https://longturn.net/. You can also find the code repository at https://github.com/longturn/freeciv21/.