### OSP for Soldier of Fortune 2 : Double Helix
Official documentation

#### Setting up an OSP server

##### Running a mod Running a modification under Soldier of Fortune 2 is pretty easy but requires some basic knowledge that I dont have time to give here, if you require more information you can always consult the http://www.gameadmins.com website. In simple terms you need to first install the modification on your server, usually meaning to unzip the package to the server's sof2 directory. Once that is done, there should be a directory named /osp in your /sof2 directory. Once you have that, starting the server is as easy as starting a default server, just add +set fs_game osp to your command line. Note : all files relating to your server will now be found under the osp directory in the directory specified by fs_homepath if you are running a linux server, or your sof2/osp directory if you're running a windows server.
##### Setting up a public server To setup a public server, you can use the default configuration files found in the /sof2/osp/configs/ directory, they follow a naming scheme like so osp_[gametype]_pub.cfg, where [gametype] is the short name for the gametypes (dm,tdm,elim,ctf,inf,dem). These files are taylored for general public servers, and should satisfy most server admins out there. To use one of these files to start your server, just add +exec configs/[config file] to the command line you use to start the server. Note : you should open the files and read the settings, each of them are well documented in comments. Also, the files in the configs directorywill also be used when someone calls a vote for a config load vote. See the callvote section for more details about voteable configs.
##### Setting up a competitive server Setting up a competitive server is done pretty much like a public server, the suggested settings for each gametype can be found under the sof2/osp/configs directory and will be named osp_[gametype]_comp.cfg. Use the same technique as described for public servers to load the settings from your command line.
##### OSP server CVARs descriptions
Name | Values | Effect
g_spectatorInactivity | time in seconds [0,x[ disable: 0 default: 0 | Time in seconds a spectator is allowed to idle on the server, after the specified time has elapsed, the spectator is booted from the server with an appropriate message.
g_alternateSort | sort type [0,1,2] default: 0 | Sort players on scoreboard using different schemes, 0 is default score sorting, 1 sorts players by their kill/death ratio ((kills/kills+deaths)*100), 2 sorts players by kills per minute.
g_radarFix | off|on [0,1] default: 0 | Always broadcast teammate entities to players in team gametypes, fixes the problem with the radar not always showing closeby teammates and not seeing teammate icons through walls.
g_coloredTeamplayNames | off|on [0,1] default: 0 | Enable colored characters in names for teamplay gametypes
g_teamTokensOnly | off|on [0,1] default: 0 | Only tokenize say_team messages (prevent global say abuse)
g_voiceTalkingGhosts | off|on [0,1] default: 0 | Dead players and spectators will be able to talk to live players. Good for servers that host serious players. Note: this is a Raven CVAR that I enabled, in the Raven configs it is enabled by default, so you will have to turn it off if you use the same config as the default game.
sv_adminfile | filename default: osp_admins.cfg | Specifies the file used to store admin GUIDs
sv_extracommands | filename default: osp_extracommands.cfg | File that specifies a carriage-return separated list of commands accessible with the /adm commands
sv_refereePassword | password disable: none default: none | Password clients can use to become a referee (/ref [password])
sv_nolagGlassBreaks | off|on [0,1] default: 0 | Prevent glass break events from lagging clients by only sending the first one when breaking glass occurs in groups (i.e.: glass entrances on mp_raven)
sv_messageFiltering | off|on [0,1,2] default: 0 | Load a list of "bad" words from osp_messagefilter.cfg(max size 2k) in your OSP directory and prevents people from using them in messages on the server. Setting it to 1 will replace the "bad" words with asterisks '*', setting it to 2 will prevent the whole message from printing if it contains "bad" words.
sv_enableAdmins | off|on [0,1] default: 1 | Enables or disable admins, if you run a match server and you play a team wary of you cheating with admin powers, you can turn off admins completely. Needs a map_restart to take effect.
sv_ospClient | off|on [0,1] default: 1 | Enables or disables support for the client side of OSP (certain server behaviors can be turned off to allow the regular Sof2 client to function properly with the OSP server. Note: in order to run a serverside OSP server, you must delete all *.pk3 files from your server's /sof2/osp directory.
match_swap | off|on [0,1] default: 0 | Swap teams at end of match, during intermission
match_shuffle | off|on [0,1] default: 0 | Shuffle teams at end of match, during intermission Note: match_swap takes precedence over match_shuffle
match_fastRestart | off|on [0,1] default: 0 | Quickly restart the map without reloading once in intermission. This setting will prevent mapcycling if enabled.
match_minplayers | minimum [0,x[ default: 4 | Minimum number of players needed to start a match in ready-up mode
match_readypercent | percentage [0-100] default: 100 | Percentage of ready players needed to start a game in ready-up mode
match_timeoutcount | amount [0,x[ default: 3 | Maximum amount of timeouts for each team per map
match_timeoutlength | time in seconds [0,x[ default: 180 | Duration of timeouts in seconds Note: setting this to 0 means timeouts will be unlimitted
server_motd0 server_motd1 server_motd2 server_motd3 server_motd4 server_motd5 | text | Your server's 6 lines message of the day Note: each line can hold a maximum of 50 characters including color codes
team_maxplayers | amount [0,x[ disable: 0 default: 0 | Maximum number of players per team
team_controls | off/on [0,1] default: 0 | Enable the team commands, usually disabled on public servers
team_redName team_blueName | text default: "Red team"|"Blue team" | The name of the team Note: only sticks through one map rotation, will reset back to defaults
vote_limit | limit [0,x[ disable: 0 default: 3 | Maximum number of votes someone can call in a map Note: successful votes are not counted, only failed or canceled votes
vote_percent | percentage [0-100] default: 50 | Percentage of 'yes' votes needed for a vote to pass
g_alternateMap | setting [0,10] default: 0 | Load the alternate map data from the /osp/data directory specified by the value of g_alternateMap.
g_awards | setting [0,1,2] default: 1 (all) disable bad awards: 2 | End of game award ceremonies.
osp_friendlyFireMultiplier | default: 1.0 | When friendly fire is enabled the damage dealt by teamates will be multiplied by this value. For example a setting of 0.5 would halve all damage dealt by friendly fire.
osp_modversion | setting [0,1,2] default: 0 (regular OSP) | Set the mod version used, previously with separate server files now all in one. 0 is the default and is regular OSP with regular Sof2. 1 is the same as OSP++. 2 is Sof2++, a mode based on OSP using new weapons and tweaked accessories.
osp_femaleVIP | setting [0,1] default: 0 | In the new gametype VIP, the VIP can be a female model. Set this to 1 to enable.
osp_defaultJailTime | default: 60 | The default time used when no time is specified when a admin puts a player in jail.
osp_realisticMode | setting [0,1] default: 0 | Truly real world damage, rules are: - grenades do double damage - bullets all do 95 damage when hitting arms,hands,feet,lower legs - bullets do 100 damage when hitting tighs,waist,chest,neck,head - bullets hitting the armor covered area of the body (chest,waist,tighs) take a random amount of armor away from 0 to 99 and the rest is taken from health (M60 and MSG rifle are unnaffected by armor)
osp_realisticRespawnInt | setting [0,* default: 8 | Respawn wait time cvar for realistic mode
osp_enemyKillReport | setting [0,1] default: 1, always disabled in g_doWarmup 2 | Tell players the remaining health/armor of the enemy who just killed them
##### Standard Sof2 server CVARs with new options
Name | Values | Effect
g_doWarmup | setting [0,1,2] disable: 0 default: 0 | Added g_doWarmup 2, which is ready-up mode, where users need to do /ready in console in order to start the match.
g_friendlyFire | setting [0,1,2] disable: 0 default: 0 | Added g_friendlyFire to 2, which enables friendly fire during all gameplay including warmup.