skullernet / openffa

Free-for-all deathmatch mod for Quake 2
GNU General Public License v2.0
22 stars 11 forks source link

OpenFFA Manual

Andrey Nazarov skuller@skuller.net

About

OpenFFA is a simple free-for-all deathmatch mod for Quake 2, an open source replacement for ‘RegularDM’ mode of OSP Tourney. Currently in development, it features familiar scoreboard and HUD, voting system, configurable map rotation support, high scores logging, ‘proper’ in-eyes chasecam support. Besides that, OpenFFA fixes many gameplay bugs and annoyances original Quake 2 game library has.

Client commands

OpenFFA supports a number of custom client commands, some of them are reproduced below.

[horizontal] menu:: Show OpenFFA menu join:: Enter the game observe:: Leave the game chase:: Enter chasecam mode settings:: Show match settings oldscore:: Show previous scoreboard vote:: Propose new settings stats:: Show accuracy stats players:: Show players on server highscores:: Show the best results on map id:: Toggle player ID display ready:: Become ready during warmup unready:: Become not ready during warmup commands:: Show custom client commands list

Admin commands

Administrators are granted access to a number of privileged client commands.

admin [password]:: Toggle administrator status.

mute :: Disallow player to talk during the match.

unmute :: Allow player to talk during the match.

muteall:: Globally disable chat during the match.

unmuteall:: Globally enable chat during the match.

ban <ip/mask> [action] [duration]:: Add IP address specified by ip/mask into the ban list. Optional action parameter specifies ban type. It can be ban (prevent player from connecting) or mute (allow player to connect and enter the game, but disallow chat during the match). Default action is ban. Optional duration parameter specifies how long this address should stay in the list. Default duration is 1 hour. Maximum duration is 12 hours. Default units for specifying duration are minutes. Add ‘h’ or ‘H’ suffix to specify hours. Add ‘d’ or ‘D’ suffix to specify days (server operator only). Order of action and duration arguments is not important.

unban <ip/mask>:: Remove IP address specified by ip/mask from the ban list. Permanent bans added by server operator can't be removed.

bans:: Show the current ban list.

kick :: Kick player from the server.

kickban:: Kick player from the server and ban his IP address for 1 hour.

readyall:: Force all players to be ready. Starts the countdown if ‘g_warmup’ is enabled.

unreadyall:: Force all players to be not ready. Aborts the countdown if ‘g_warmup’ is enabled.

acommands:: Show administrator commands list.

Server operator commands

Commands below are available from server console when issued with ‘sv’ command.

addip <ip/mask> [action] [duration]:: Equivalent to ‘ban’ admin command, except that ban duration longer than 12 hours is allowed. If duration argument is omitted, creates permanent ban. Order of action and duration arguments is not important.

removeip <ip/mask>:: Equivalent to ‘unban’ admin command, except that removing any ban is allowed.

listip:: Show the current ban list.

writeip:: Write current ban list to ‘listip.cfg’.

reset:: Reset current map to its initial state and respawn all players.

nextmap :: Override map queue and manually set next map to map.

maplist:: Show current map list.

mapqueue:: Show current map queue.

players:: List players.

highscores:: Show high scores.

stats :: Show stats for specified player.

settings:: Show match settings.

Server configuration

Custom OpenFFA cvars are described below.

g_idle_time:: Time, in seconds, after which inactive players are removed from the game. Default value is 0 (don't remove inactive players). Inactive players with ‘stuck’ buttons are removed faster.

g_idle_kick:: Specifies whether inactive players are kicked or put into spectator mode. Default value is 0.

g_maps_random:: Specifies whether map list is traversed in random on sequental order. Default value is 2.

g_maps_file:: Specifies name of the file to load map list from. Should not include any extenstion part or slashes. Default value is empty (no map list).

.Map list format


Map list is loaded at server startup from ‘mapcfg/${g_maps_file}.txt’. Each line of the map list file should have the following format:

<mapname> [min_players] [max_players] [flags]

Minimum and maximum player counts are optional, as well as flags. Flags can be either 1 or 2, which makes the map entry not automatically selectable and not votable, respectively.


g_defaults_file:: If this variable is not empty and there are some settings modified by voting, server will execute the specified config file after 5 minutes pass without any active players. Config file should reset all votable variables to their default values. Default value is empty.

g_skins_file:: Specifies name of the file to load skin list from. Should not include any extenstion part or slashes. If skin list is specified, players may only use skins defined in the list. Default value is empty (no skin list).

.Skin list format


Skin list is loaded at server startup from ‘${g_skins_file}.txt’. Each line of the skin list file should specify either a model name, or a skin name. It should begin with a model (directory) name, optionally followed by skin names allowed for that model. Model names are distinguished from skin names by the presence of trailing slash, e.g. ‘male/’ and ‘female/’ are models, ‘grunt’ and ‘athena’ are skins.

There may be several model names defined in the file. If there are no skins defined for the model, then any skin can be used for that model. When player skins are validated, if there is no matching skin found, then the last one defined for the matching model is used. Likewise, if there is no matching model found, then the last one defined in the file is used.

It is highly recommended that a skin list is set up to prevent players from specifying random skins, causing unwanted skin download attempts.


g_motd_file:: Specifies name of the file to load MOTD from. Should not include any extenstion part or slashes. Default value is empty (no MOTD set).

g_highscores_dir:: Specifies name of the subdirectory under highscores/ to save high scores into. Should not include any slashes. Default value is empty (save under highscores/).

g_bugs:: Specifies whether some known Quake 2 gameplay bugs are enabled or not. Default value is 0.

g_teleporter_nofreeze:: Enables ‘no freeze’ (aka ‘Quake 3’) teleporter behaviour. Default value is 0 (disabled).

g_spawn_mode:: Specifies deathmatch spawn point selection mode. Default value is 1.

g_item_ban:: Allows one to remove certain items from the map. This variable is a bitmask. Default value is 0.

g_vote_mask:: Specifies what proposals are available for voting. This variable is a bitmask. Default value is 0.

g_vote_time:: Time, in seconds, after which undecided vote times out. Default value is 60.

g_vote_treshold:: Vote passes or fails when percentage of players who voted either ‘yes’ or ‘no’ becomes greater than this value. Default value is 50.

g_vote_limit:: Maximum number of votes each player can initiate. Default value is 3. 0 disables this limit.

g_vote_flags:: Specifies misc voting parameters. This variable is a bitmask. Default value is 11.

g_warmup:: Enables warmup period before match, and requires all players to be ready for match to start. Default value is 0.

g_countdown_time:: Specifies countdown time before match starts, in seconds. Only effective if ‘g_warmup’ is enabled. Default value is 15.

g_intermission_time:: Time, in seconds, for the final scoreboard and high scores to be visible before automatically changing to the next map. Default value is 10.

g_admin_password:: If not empty, clients can execute ‘admin ’ command to become server admins. Right now this gives them a decider voice in votes, ability to see IP addresses in the output of ‘playerlist’ command and grants access to a number of privileged commands (listed in ‘acommands’ command output). Default value is empty (admin feature disabled).

g_team_chat:: Specifies if ‘say_team’ messages from players are visible to others. This setting does not affect ‘say_team’ messages from spectators. Default value is 0.

g_mute_chat:: Allows one to globally disallow chat during the match (chat is still allowed during the intermission). Default value is 0.

g_protection_time:: Time, in seconds, for newly respawned players to be invincible. Default value is 0 (don't make players invincible after respawning).

flood_msgs:: Number of the last chat message considered by flood protection algorithm. Default value is 4. Specify 0 to disable chat flood protection.

flood_persecond:: Minimum time, in seconds, that has to pass since the last chat message before flood protection is triggered. Default value is 4.

flood_waitdelay:: Time, in seconds, for player chat to be disabled once flood protection is triggered. Default value is 10.

flood_waves:: Number of the last wave command considered by flood protection algorithm. Default value is 4. Specify 0 to disable wave flood protection.

flood_perwave:: Minimum time, in seconds, that has to pass since the last wave command before flood protection is triggered. Default value is 30.

flood_wavedelay:: Time, in seconds, for wave commands to be disabled once flood protection is triggered. Default value is 60.

flood_infos:: Number of the last name or skin change considered by flood protection algorithm. Default value is 4. Specify 0 to disable userinfo flood protection.

flood_perinfo:: Minimum time, in seconds, that has to pass since the last name or skin change before flood protection is triggered. Default value is 30.

flood_infodelay:: Time, in seconds, for name or skin changes to be disabled once flood protection is triggered. Default value is 60.