OpenArena
Tag: sourceedit
Tag: sourceedit
Line 44: Line 44:
 
* Check that <tt>g_votecustomfile</tt> CVAR value fits the name of your file (default value is ''votecustom.cfg''). You can change it if you wish (you may prepare more custom vote files and then change this CVAR value to switch to another set of votes).
 
* Check that <tt>g_votecustomfile</tt> CVAR value fits the name of your file (default value is ''votecustom.cfg''). You can change it if you wish (you may prepare more custom vote files and then change this CVAR value to switch to another set of votes).
 
* To ''enable'' custom votes, modify <tt>g_votenames</tt> CVAR value to make it include <tt>/custom/</tt>. E.g. you may change it from its OA 0.8.8 default (<tt>map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/</tt>) to <tt>map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/'''custom/'''</tt>. Please notice that initial and final "/" are important.
 
* To ''enable'' custom votes, modify <tt>g_votenames</tt> CVAR value to make it include <tt>/custom/</tt>. E.g. you may change it from its OA 0.8.8 default (<tt>map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/</tt>) to <tt>map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/'''custom/'''</tt>. Please notice that initial and final "/" are important.
  +
** ''Tip:'' ability of command console to ''paste'' (e.g. Shift+Ins) text from your Operating System clipboard can be handy when modifying this long variable. Also, you may prepare custom [[configuration file]]s to be invoked by <tt>/exec <filename.ext></tt> to use as shortuts to modify this variable.
   
 
If you later wish to ''disable'' custom votes, you should modify "g_votenames" to do not include "custom" (e.g. <tt>/reset g_votenames</tt> sets it back to its default value). '''Less elegant''' ways are to clear/detele your custom vote files, or to set g_votecustomfile variable to a not existing file.
 
If you later wish to ''disable'' custom votes, you should modify "g_votenames" to do not include "custom" (e.g. <tt>/reset g_votenames</tt> sets it back to its default value). '''Less elegant''' ways are to clear/detele your custom vote files, or to set g_votecustomfile variable to a not existing file.

Revision as of 11:34, 23 November 2015

Since OpenArena 0.8.5, it is possible to extend voting by setting up custom votes. This OpenArena-specific feature will not work with old mods.

Players are be able to see available custom votes using command console or ESC menu.

Usage

Server setup (administrators)

  • Create a plain text file into your baseoa (or current mod, if supporting custom votes) folder. Default name for it is votecustom.cfg.
  • Here you can find an example of a such file with five options:
{
votecommand	"lms_custom"
displayname	"Change to Last Man Standing on dm4ish?"
command		"g_gametype 10 ; g_instantgib 0; map dm4ish"
}
{
votecommand	"ffa_custom"
displayname	"Change to instantgib FFA on dm6ish?"
command		"g_gametype 0 ; g_instantgib 2 ; map dm6ish"
}
{
votecommand	"kick_all_bots"
displayname	"Kick all bots?"
command		"kick allbots"
}
{
votecommand	"domination_500"
displayname	"Change to Domination and Capturelimit 500?"
command		"capturelimit 500 ; g_gametype 12 ; map restart"
}
{
votecommand	"capturelimit_8"
displayname	"Change Capturelimit to 8?"
command		"capturelimit 8 ; map restart"
}

Explaination:
- { and } mark the beginning and the end of each custom vote entry.
- "votecommand" is the name of the vote clients will ask for (e.g. /callvote custom <votecommand>). It may not contain spaces!
- "displayname" is the description displayed while the vote is going on.
- "command" is the string that will be executed if the vote passes. The string can include more commands separated by ";".

  • Please notice that ESC menu and /callvote custom command will show only the first 12 custom slots: you may create more custom options, but users would not know about their existence!
  • Lauch OpenArena, load a map (e.g. /map wrackdm17).
  • Check that g_votecustomfile CVAR value fits the name of your file (default value is votecustom.cfg). You can change it if you wish (you may prepare more custom vote files and then change this CVAR value to switch to another set of votes).
  • To enable custom votes, modify g_votenames CVAR value to make it include /custom/. E.g. you may change it from its OA 0.8.8 default (map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/) to map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle/custom/. Please notice that initial and final "/" are important.
    • Tip: ability of command console to paste (e.g. Shift+Ins) text from your Operating System clipboard can be handy when modifying this long variable. Also, you may prepare custom configuration files to be invoked by /exec <filename.ext> to use as shortuts to modify this variable.

If you later wish to disable custom votes, you should modify "g_votenames" to do not include "custom" (e.g. /reset g_votenames sets it back to its default value). Less elegant ways are to clear/detele your custom vote files, or to set g_votecustomfile variable to a not existing file.

Client usage (players)

After admins defined their custom votes and enabled them, Players can invoke custom votes using either command console or ESC menu.

  • Using ESC menu:
    • Access ESC menu (usually, ESCAPE key on your keyboard).
    • Select "CALL VOTE"; select "CUSTOM VOTE" --> Accept; select an entry in the "Call vote custom" list --> Accept.
    • Players will be allowed to vote "yes" or "no" as usual (usually, pressing F1 or F2 keys on keyboard).
    • If the vote passes, the server will execute the predefined command associated.

Please notice that if custom votes are not enabled on the server, "custom vote" will appear grey and you will not be able to select it. If custom votes are enabled, but custom vote file is not correctly configured, "Call vote custom" list will be empty.

  • Using command console:
    • Enter /callvote to check whether custom voting is active: if you can see "custom <special>" in the list, it is enabled.
    • Enter /callvote custom to check which custom votes has been defined.
    • Enter /callvote custom <votecommand> to start voting (e.g. /callvote custom lms_custom).
    • Players will be allowed to vote "yes" or "no" as usual (usually, pressing F1 or F2 keys on keyboard... or entering /vote yes or /vote no in console).
    • If the vote passes, the server will execute the predefined command associated.

Some usage ideas

  • Controlling the number of bots in the server, by either setting bot_minplayers value or using addbot and kick allbots commands (note: standard /callvote kick allbots has been disabled along with /callvote kick all to avoid abuses, but you can do it via custom vote).
  • Enabling or disabling special game options such as g_elimination, vampire mode, allrockets, instantgib, friendly fire, etc.
    • Considering the custom command can execute multiple commands separed by ";", a sigle menu entry can be used to disable more options at once (example: command "g_elimination 0 ; g_vampire 0 ; g_rockets 0 ; g_instantgib 0 ; map_restart")
  • Modifiying capturelimit (as far as 0.8.8, there isn't yet a specific callvote for that), useful if the server can switch from Domination to other modes and vice-versa.

See also