Skip to content

Free-for-all deathmatch mod for Quake 2 - with xatrix support

License

Notifications You must be signed in to change notification settings

Niehztog/openffa-xatrix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenFFA Xatrix fork

This is my first attempt to extend OpenFFA Quake 2 Mod to support the xatrix Mission Pack 1 "The Reconing". I merged the 3.20 xatrix code in and it compiles. But this is still a big todo as it is totally untested.

Changes:

  • contains all MP relevant 3.20 xatrix code (+some SP leftovers)

  • contains some additional 3.24 (knightmare) fixes: RealBoundingBox and powerscreen hud icon fix

ToDo:

  • testing

  • make xatrix entities switchable by a server console variable ("xatrix")

  • properly handle quadfire item in quad-chasecam mode

  • implement weapon statistics for the new xatrix weapons

New Xatrix CVAR’s

ripper_self 0/xx (default 0)

The default is 0 - the gun performs as normal. If the CVAR ripper_self is non-zero, then the ion ripper will cause self damage by that amount. The value is the health it will take i.e. ripper_self 10 will cause 10 health damage if you get hit by your own 'ion’s. The usual damage caused by this weapon in DM is 30. I found this too much for self damage - ripper_self 10 is a good value. NOTE - if the player has quad damage then the full damage will occur no matter who you hit

sv_trap_duration (default: 30)

Duration in seconds until a thrown trap expires

sv_trap_health (default: 200)

Traps can now take damage. this CVAR defines the amount of damage it takes until it expplodes

sv_trap_expl_damage (default: 200)

The damage caused by exploding traps

sv_trap_expl_radius (default: 300)

The distance in which players take damage when a trap explodes

sv_trap_held_damage (default: 125)

The amount of damage which occurs when pushing attack button too long

sv_trap_held_radius (default: 165)

The radius in which objects take damage from an exploding trap in a players hand (when pushing attack button too long)

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.

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

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 <player>

Disallow player to talk during the match.

unmute <player>

Allow player to talk during the match.

muteall

Globally disable chat during the match.

unmuteall

Globally enable chat during the match.

ban <ip-mask> [duration] [action]

Add IP address specified by ip-mask into the ban list. 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. 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.

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 <player>

Kick player from the server.

kickban

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

acommands

Show administrator commands list.

Server configuration

Custom OpenFFA cvars are described below.

g_idle_time

Time, in seconds, after which inactive players are automatically put into spectator mode. Default value is 0 (don’t remove inactive players).

g_maps_random

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

  • 0 - sequental order

  • 1 - random order

  • 2 - random order, never allows the same map to be picked twice in a row

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_bugs

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

  • 0 - all bugs are fixed

  • 1 - ‘serious’ bugs are fixed

  • 2 - original Quake 2 behaviour

g_teleporter_nofreeze

Enables ‘no freeze’ (aka ‘Q3’) teleporter behaviour. Default value is 0 (disabled).

g_spawn_mode

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

  • 0 - select random spawn point, avoiding two closest (bugged version)

  • 1 - select random spawn point, avoiding two closest (fixed version)

  • 2 - select random spawn point

g_item_ban

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

  • 1 - quad damage

  • 2 - invulnerability

  • 4 - BFG10K

  • 8 - power armor (screen and shield items)

g_vote_mask

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

  • 1 - change time limit

  • 2 - change frag limit

  • 4 - change item bans

  • 8 - kick a player

  • 16 - mute a player

  • 32 - change current map

  • 64 - toggle weapon stay

  • 128 - toggle respawn protection (between 0 and 1.5 sec)

  • 256 - change teleporter mode

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.

  • 1 - each player’s decision is globally announced as they vote

  • 2 - current vote status is visible in the left corner of the screen

  • 4 - spectators are also allowed to vote

  • 8 - players are allowed to change their votes

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 <password>’ 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.

  • 0 - visible only to players themselves

  • 1 - visible to every player in game

g_mute_chat

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

  • 0 - chat is enabled for everyone

  • 1 - player chat is disabled, spectators are forced to use ‘say_team’

  • 2 - chat is disabled for everyone

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.

About

Free-for-all deathmatch mod for Quake 2 - with xatrix support

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.3%
  • Other 0.7%