Updated for silEnT 0.3.3
Server CVAR Reference1 | Enable killingsprees |
2 | Enable killingspree ends |
4 | Enable multikills |
8 | When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map's longest killing spree will be printed every two minutes |
16 | At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown |
32 | /kill will end a spree |
64 | Teamswitching will end a spree |
128 | Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -> multikill -> megakill -> etc. flooding |
256 | Killing bots doesn't count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) |
512 | Display the map and overall spree record when entering intmission |
1024 | Summary: don't enable this flag if you don't have enabled g_spreeOptions flag 512 OR
g_XPSave flag 16 or Shrubbot flag t Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don't have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use !spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn't matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won't do much harm anyway (your server won't explode) |
2048 | Enable revivesprees ([revive] blocks) |
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,
which is sent after player spotting landmines stops using binoculars.
It's generated after each binculars zoom.
0 | Only standard notfications (for each landmine revealed). |
1 | Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by "player name" and last one was in location "some location". |
2 | Don't send any landmine notifications. |
3 | Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). |
You can use a modifiers with this value. Here are some examples:
set g_dbUserMaxAge "1o" - 1 month
set g_dbUserMaxAge "2w" - 2 weeks
set g_dbUserMaxAge "5d" - 5 days
set g_dbUserMaxAge "36h" - 36 hours
set g_dbUserMaxAge "120m" - 120 minutes
1 | Store xp when a client disconnects. This is always required for the XP save to work. |
2 | Don't reset xp to the pre-map start values on a map restart, shuffle, etc. |
4 | Never reset xp (ever). |
8 | Force the disconnection of clients with the same GUID as the connecting
client. This is useful in saving the stored XP of players with unreliable
network connections since they should still get their stored XP even if
reconnecting immediately with a new IP address. This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3's on your server often because stored XP will be lost over disconencted downloads. |
16 | Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases. |
You can use a modifier with this value. Here are some examples:
set g_XPSaveMaxAge_xp "1o" - 1 month
set g_XPSaveMaxAge_xp "2w" - 2 weeks
set g_XPSaveMaxAge_xp "5d" - 5 days
set g_XPSaveMaxAge_xp "36h" - 36 hours
set g_XPSaveMaxAge_xp "120m" - 120 minutes
You can use a modifier for this value. Here are some examples:
set g_XPSaveMaxAge "1o" - 1 month
set g_XPSaveMaxAge "2w" - 2 weeks
set g_XPSaveMaxAge "5d" - 5 days
set g_XPSaveMaxAge "36h" - 36 hours
set g_XPSaveMaxAge "120m" - 120 minutes
See also g_XPSaveMaxAge_xp
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.
Set this to -1 to disable it.
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.
This setting can also have percentage value (eg, "90%"), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.
If you specify a negative value, players will be warned when that offset is hit. For example:
For a value of -75, warnings will to display then players have g_maxXP - 75 XP
For a value of -2%, warnings will display when players have 98% of g_maxXP
Set this to 0 to disable it.
0 | Disabled: use normal ET XP awarding methods |
1 | 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP. |
2 | 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP). |
See also g_XPDecayRate.
1 | Enable XP Decay |
2 | Do not decay a player's XP when they are disconnected from the server |
4 | Do not decay a player's XP for the class they are currently playing as (e.g. Medic). |
8 | Do not decay a player's XP while they are spectating |
16 | Do not decay a player's XP during warmup/intermission |
32 | Do not decay a player's XP when he/she is playing. This means that they are on a Allies or Axis and the game is active. |
64 | Do not decay a player's Battle Sense XP when he/she is playing. |
128 | Do not decay a player's Light Weapons XP when he/she is playing. |
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.
You can use a modifier with this value. Here are some examples:
set g_xpDecayRate "5000/o" - Decay 5000xp per skill per month
set g_xpDecayRate "1000/w" - Decay 1000xp per skill per week
set g_xpDecayRate "500/d" - Decay 500xp per skill per day
set g_xpDecayRate "40/h" - Decay 40xp per skill per hour
set g_xpDecayRate "2/m" - Decay 2xp per skill per minute
This is the minimum that any particular skill can be reduced to by g_XPDecay.
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay.
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.
g_tyranny must also be enabled in order to specify a client in using the 'playsound' server command.
'g_tyranny' and its value appear in the serverInfo string to serve as a warning for perspective players.
1 | Link stored warnings to the guid of a player |
2 | Link stored warnings to the ip of the player |
4 | Remove the oldest warning when the total maximum ammount of warnings is reached |
8 | Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings |
16 | Allow clients to see their own warnings with the /warnings command |
1 | Tempban when reaching g_teamDamageRestriction |
2 | Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds |
4 | Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds |
0 | Chat area |
1 | Center of screen |
2 | Left notification area |
3 | Top of the screen |
4 | Console only |
The possibility to deny players without GUID to enter is important because the silEnT mod no longer enforces bans without GUIDs to all players without GUIDs. IP and client identification is still used with guidless bans. Also, an informative message is displayed to the player as what was the real reason he couldn't connect.
The possibility to enable the client PunkBuster is important for the servers without running the PunkBuster themselves. This allows the players to be stored in the database and save XP if they have PunkBuster GUID from playing some server with PunkBuster enabled. If the client doesn't have punkbuster installed, this flag has no effect and it doesn't deny the player from connecting to the server. Also, silEnT mod doesn't do anything else but enables the client PunkBuster. The GUID must be acquired in the normal way.
The values do not work well in combination because the player will get denied access to the server before his PunkBuster starts if the value 2 is set.
1 | Enable client PunkBuster |
2 | Do not allow players without GUIDs to enter the server |
1 | Kick clients that are spoofing the client identification to enter the server |
2 | Kick clients that are not sending the identification to the server |
4 | Enforce bans using the identification |
8 | Report all actions taken based on client identification to the adminchat |
On an silEnT installation with little statistics history, !howfair will not print out very accurate data. g_playerRating_mapPad is a cvar that attempts to stabilize early !howfair results by adding a number of fake wins to each team. If you set it to 50, it starts with Axis = 50, Allies = 50 wins. This yields a map rating of 50% for both teams on that map. For every 2 real games played, 1 map pad value is ignored. So after 100 games, map pad is ignored (replaced with real games).
The higher map pad, the longer the values will stay near 50-50.
1 | When shooting a corpse to gib, do not count it as a hit. |
2 | When shooting a corpse to gib, do not count it as a shot. |
1 | Use player XP |
2 | Use the rate at which players have gained XP since connecting. |
3 | Use the killRating (g_killRating must be nonzero) |
4 | Use the playerRating (g_playerRating must be nonzero) |
5 | Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50 |
When not set to 0 silEnT will track a player's killing ability using an ELO type statistic similar to chess. Each kill will increase a player's kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points. Kill rating also takes into account the weapon used (less for arty, more for knife).
See also g_shuffle_rating.
1 | Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it. |
2 | Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall. |
4 | Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier. |
When not set to non zero positive value, silEnT will track a player's ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player's rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).
See also g_shuffle_rating.
1 | Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it. |
2 | Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player. |
4 | Put player rating on the scoreboard instead of the XP. |
8 | Print out extra info at the end of a round that can be used to further refine the playerrating model. |
16 | The same as flag 8 except a lot more info is output. |
Set to 0 to disable this feature
See also g_unevenTeamDiff
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.
Limits the number of the given weapon per team.
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up
You can also use a number such as "20%-" for this setting, in which case partial values will be rounded down
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!
Example:set team_maxFlamers "2" This will limit each team to 2 flamethrowers, regardless of how many players are on the team
Example:set team_maxFlamers "10%"This will limit each team to having only 10% of their players as flamethrowers, and a team with few players (for example, 5) will be able to have 1 flamethrower. They will be able to have their second flamethrower when they have 11 players on the team.
Example:set team_maxFlamers "10%-"This will limit each team to having only 10% of their players as flamethrowers, and a team will not be able to have any flamethrowers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players on the team.
Set this to -1 to disable limits
You can use a number such as "20%-" for this setting, in which case partial values will be rounded down
Example:set team_maxMedics "5" This will limit each team to 5 medics, regardless of how many players are on the team
Example:set team_maxMedics "15%"This will limit each team to having only 15% of their players as medics, and a team with few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players on the team.
Example:set team_maxMedics "15%-"This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players on the team.
Set this to -1 to disable limits
1 | Map ends only when timelimit hits |
2 | Map ends when either the target score is reached or the timelimit hits |
3 | Map ends only when the target score is reached |
1 | Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.) |
2 | Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar |
4 | Teams get negative points when they do selfkills or teamkills |
8 | Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured |
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to 'mapcfg', when the map fueldump starts, the server will try to exec 'mapcfg/fueldump.cfg'.
Set this to "" to disable it.
Set this to "." to look for the cfg file in the current directory (fs_home_path).
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec'ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec'ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2.
Similar to ETPro's b_mapscriptsdirectory. Set it to the name of a directory in your fs_path that contains custom map scripts.
For example you can copy the 'etpromapscripts' directory from the ETPro distribution to your 'silent' directory and add:
set g_mapScriptDirectory "etpromapscripts"to your cfg.
NOTE: It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.
Setting g_mapScriptDirectory to "" disables any use of map .script files.
Similar to ETPro's b_campaignFile. If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored.
This is useful for making custom campaigns since you don't need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. Such information includes:
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client's VOTE -> MAP menu. If a vote for one of them passes, nothing will happen.
Setting this to "" disables it.
Example:
set g_settings "settings.cfg"
1 | Kill the player |
2 | Kick players with names containing words in g_censorNames |
4 | Kill, but don't gib |
8 | Auto-mute for g_censorMuteTime [60] seconds |
16 | Lose the amount of xp specified in g_censorXP |
32 | Burn |
1 | Votes will pass on the number of votes cast rather than total eligible voters. |
2 | Votes that pass do not count against the vote_limit for the caller. |
4 | " (called by NAME)" is appended to the vote description where NAME is the name of the player that called the vote. |
8 | Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin. |
1 | Changes the tie breaker so that the map not played in the longest wins |
2 | Intermission doesn't end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system) |
4 | Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one |
8 | Don't randomize the maps, so they will always appear in the same order |
16 | A passed nextmap vote (when g_gametype is 6) will start the intermission and lets players vote which map should be played next. NOTE: this makes one of the two teams be displayed as winner |
1 | Poisoned player's screen shakes. |
2 | Other players see the poisoned player's head shaking. |
4 | Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.) |
8 | Poisoned player cannot use +attack. NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired. |
16 | Poisoned player is disoriented (view turned upside down). |
1 | Medics can't pick up their own health packs to cure themselves of poison needle effects |
2 | Medics can't pick up their own health packs at all |
4 | A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is) |
8 | Value is not in use |
16 | Medics do not spawn with akimbo pistols, regardless of their light weapons skill |
32 | Medics spawn with pistol only, and can't pick up SMG of either team However, any class can steal a medics uni, if g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG |
64 | Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle. |
128 | Level 4 medics can inject other players with their adrenaline. This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command. |
256 | Level 4 medics cannot adrenaline self. If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won't affect flag 128) |
0 | 3/2 |
1 | 2/2 |
2 | 2/1 |
3 | 2/0 |
4 | 1/1 |
5 | 1/0 |
6 | 0/0 |
7 | 0/1 |
8 | 0/2 |
1 | Make an announcement whenever an airstrike is blocked. |
2 | A player may easily block an airstrike by crouching, standing, or proning over the enemy's canister to block the airstrike. |
4 | Reserved. |
8 | Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players. |
16 | Disables teammates blocking airstrikes. |
32 | Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike. |
1 | Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death. |
2 | Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective. |
4 | Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won't see the time remaining. |
8 | Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it. |
16 | Enable dynamite ID. You can see the owner of a dynamite when you point at it. |
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.
0 | Kicker does not take ownership of the canister. |
1 | Kicker takes ownership of the canister. |
A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.
A value of 1.0 would reflect full damage.
A value of 0.5 would reflect half damage.
Set to 0 to disable reflected friendly fire.
1 | Enable reflected damage for Firearms (all types of guns) |
2 | Enable reflected damage for Grenades and grenade launchers |
4 | Enable reflected damage for Knives (includes thrown knives) |
8 | Enable reflected damage for Panzers |
16 | Enable reflected damage for Flamethrowers |
32 | Enable reflected damage for Mortars |
64 | Enable reflected damage for Satchel Charges |
128 | Enable reflected damage for Artillery and Air Strikes |
256 | Enable reflected damage for Dynamite and Construction Damage |
512 | Enable reflected damage for Landmines |
1 | Landmines ALWAYS damage teammates regardless of g_friendlyfire setting |
2 | Allow 'grenade boosting' when friendly fire is off |
4 | Non-engineer players do not trigger landmines on their own team |
8 | Players do not trigger trip mines on their own team |
The amount of suicides is reset every map.
Set to -1 to disable, -2 to always enable (no normal panzers anymore)
Set to 0 to use default (etmain)
1 | Level 0 field ops doesn't get binoculars (unless he has >= level 1 Battle Sense) |
2 | Syringes work underwater |
4 | Pliers work underwater |
8 | Fully restore Field ops charge bar if airstrike is aborted |
16 | Half restore FIeld ops charge bar if airstrike is aborted |
32 | Ammo packs restore helmets |
64 | Drop binoculars if player has them |
128 | Soldiers with level 4 heavy weapons don't lose their pistols |
256 | Garands can reload when clip is not empty |
512 | Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43. |
1024 | Creates a hitbox for mortar shells. This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits. |
2048 | Knives will always gib a body (not a player, use g_dmgKnife instead if you want that) |
4096 | Extra ammo is included with dropped weapons. |
1 | Enable PPSH for soldiers |
2 | Enable PPSH for engineers |
4 | Enable PPSH for fieldops |
1 | Machine Guns can make headshots |
2 | Machine Guns can reload when clip is not empty |
1 | Level 4 Coverts have more accurate scoped weapons. |
2 | Disguised coverts can only be identified with the "crosshair name" by level 4 Field Ops. |
4 | After detonating a satchel charge, the primary weapon will be selected instead of satchel again. |
8 | Coverts in disguise take half the normal combat damage. |
16 | Coverts in disguise take no splash damage. |
32 | Coverts do not automatically lose their uniform if an enemy sees them firing a weapon. |
64 | Coverts do not automatically lose their uniform if they fire a non-silent weapon. |
128 | Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon. Note that this flag has nothing to do with firing. |
256 | Coverts are awarded xp for constructive use of smoke. |
512 | Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni). |
1024 | A disguised covert can still steal enemy uniforms. |
All skill_* variables are identical.
These variables allow customization of the experience points necessary to go up in ranks. These settings consist of four space-separated integers indicating the number of XP required to go up a rank. A string such as "3 10 10 10" indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the players has 10 points. If, for example, you want to grant akimbo pistols upon the first kill, you would set skill_lightweapons to "3 3 3 3". The default for each of these variables is "20 50 90 140". You can also grant levels upon connection byt using a value like "0 0 20 100". This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.
Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.
If this value is non-zero, the spotting round will follow normal ET behavior (can do damage, but to a VERY small radius, making damage unlikely)
If this value is non-zero, the spotting round will follow normal ET behavior (can do damage, but to a VERY small radius, making damage unlikely)
0 | Use traditional ET settings for combat. |
1 | Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage. |
2 | Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges. |
4 | Gives a damage bonus to short-range weapons when used in close combat situations. This will increase the effectiveness of these weapons at closer ranges. |
8 | Use bullet fall-off approximations when computing shot trajectory. |
16 | Improve accuracy of non-scoped single-shot rifles. |
32 | Use alternate bullet-spread characteristics for automatic or rapid-fire weapons. |
64 | Damage from players who are spectators or have disconnected is ignored, and XP is not awarded. |
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin.
Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio.
(The actual damage may undergo additional modification due to range and other conditions)
Set this to 0 to turn it off.
Set this to 0 to turn it off.
1 | Players with level 4 battle sense can spot landmines for teammates |
2 | Players with level 4 engineering can keep the flak jacket for other classes |
4 | Players with level 4 first aid can keep adrenaline for other classes |
1 | Enable double jump |
2 | Enable binoc master competition. Requires g_weapons 64 to be set. |
4 | When a player is killed he can see the HP the killer has left |
8 | Disable self damage |
16 | Players can not jump if stamina is too low |
32 | Value is not in use |
64 | Disable Falling Damage |
128 | Announce revives |
Set this to 1 to enable Neil Toronto's unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro's antiwarp, but has some differences. Neil likes this version better, bani likes his better.
This replaces g_smoothClients from etmain.
You can find a demo that shows g_skipCorrection in action at: http://et.tjw.org/etpub/skipCorrection/
This allows you to control the amount of "warping" that players with high packet loss can do. The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.
A server frame is 50ms on a typical server (sv_fps set to 20). This means that if you set g_maxWarp to 5 you won't allow players to warp from point A to point B if that distance takes an normal player 1/4 of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.
You can find a demo that shows g_maxWarp in action at: http://et.tjw.org/etpub/skipCorrection/
Controls the behavior of the /kill command.
See also g_fear and g_maxSelfkills
1 | Player spawns with half charge bar after /kill |
2 | Player spawns with 0 charge bar after /kill |
4 | Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo) |
8 | Disable /kill when player is frozen |
16 | Disable /kill when player is poisoned |
Amount of times a player can use /kill per map.
Setting this to -1 will result in normal behaviour (infinite selfkills).
Setting this to 0 will disable /kill.
1 | When in freelook mode, you can 'fire' at a player to follow. If you miss a player, nothing happens. |
2 | When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player. |
4 | When the player you're following goes into limbo, don't move to the next available player. |
8 | When the player you're following goes into limbo, go to freelook instead of following the next available player. (4 has precedence) |
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.
The parts are dropped by pressing the +activate key (usually bound to F) when there's nothing else around to be activated.
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don't want to set this very high.
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife. This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.
1 | Display player team information using the 'P' cvar in the server info string. (etpro and etmain 2.60 behaviour) |
2 | Display player team information using the 'Players_Axis' and 'Players_Allies' cvars in the server info string. (etmain < 2.60 behaviour) |
4 | Display the 'campaign_maps' cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4. |
8 | Displays the 'C' CVAR in the server info string. This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of "xx,yy". Only works if you have g_gametype set to 4. |
16 | The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime. |
32 | Send KR (KillRating) instead of XP in SERVERINFO string. This is overriden by flag 64. |
64 | Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32. |
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded.
The serverInfo string has a fixed length of 1024 characters. This space is shared with any cvar you create on your server with the 'sets' command. If you use up too much space with 'sets', your server will fail to start. It will print the message "Info string length exceeded" if you don't have enough space left in your serverinfo string to handle the g_serverInfo flags you've selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR. Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.
g_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.
Set this to 0 to disable this behaviour.
0 | Regular headbox positions. |
1 | Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value. |
1 | Kick for GUIDspoofing. |
2 | Kick for IPspoofing. |
4 | Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work) |
8 | Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work) |
16 | Don't use the stored GUID. (This option is a higher security risk.) |
32 | Don't use the stored IP. (This option is a higher security risk.) |
Set to -1 to disable.
1 | Landmines |
2 | Artillery and airstrikes |
4 | Mortar |
8 | Dynamite |
Players can enable/disable it with cg_countryFlags (default 1).
You will need the GeoIP.dat file in your server's silent folder. You should read and accept the license of the GeoIP.dat database!
Read the database license at
http://geolite.maxmind.com/download/geoip/database/LICENSE.txt.
Download the latest database at
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz.
1 | Headshots only |
2 | Instagib damage (controlled by g_instagibDamage) |
1 | Don't drop shoutcasters |
2 | Don't drop spectators when in following mode |
4 | ETmain inactivity behavior (don't wait for a full server) |
8 | Shrubbot flag '0' admins will be moved to spectators due to team inactivity |
1 | Prevent ettv slaves from being callvote kicked |
2 | Grant shoutcaster status to ettv slaves |
1 | Players will spawn instantly |
2 | Each class receives adrenaline |
4 | No damage on players |
8 | Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!) |
1 | Enable hitsounds |
2 | Disable hitsounds when shooting wounded players |
4 | Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it's place) |
8 | Unused option |
16 | Disable hitsounds from poison damage |
32 | Disable hitsounds from explosive weapons |
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on. Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally. It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall. So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.
See also g_goombaFlags
Set this to 0 to disable it
1 | Cannot do goomba damage to teammates. |
2 | Short falls (hopping) on another player does no damage. |
4 | Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set) |
8 | Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player). |
16 | Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage. |
32 | Falling corpses won't cause damage. |
1 | Server outputs obituaries to chat |
2 | Adrenaline countdown displayed |
4 | Disable display of tap-out confirmation box |
8 | Display connection attempts by banned players |
16 | Display gib reports ("<victim> was gibbed by <attacker>") |
32 | Omit "item" lines from log file |
64 | Value not in use |
128 | GUID's are logged in the game log |
256 | Log all private messages (/m commands). This setting won't have any effect unless g_tyranny is enabled. |
512 | Logs the real time into logs, instead of the normal uptime of the server. |
1024 | Value not in use |
2048 | Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3. |
g_logAdmin "admin.log"
Set this to -1 to disable this feature
NOTES:
Set this to -1 to disable this feature
1 | Disables XPSave for bots |
2 | Bots cannot mount tanks |
4 | Bots cannot mount emplaced guns |
8 | Don't track bot count in omnibot_playing cvar |
16 | Bots will target ungibbed enemies |
32 | Bots will trigger team and spotted mines |
64 | Bots can use g_shove |
65536 | Bots are granted shrubbot command immunity (the same as shrubbot flag !) |
131072 | Bots cannot be !kicked or !banned |
262144 | Disable shrubbot greeting for bots |
We are aiming for compatibility with ETPro's Lua Mod API
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results
The following cvars control how map voting operates
Miscellaneous notes about mapvoting:There are several settings in silEnT that attempt to determine how "good" a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:
How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter's kill rating more than killing players with a low kill rating.
This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.
The probability that a team will win a map (based on the players' player rating, team size, and the map).
These statistics are gathered by silEnT and the data is saved to local files on disk.
This feature is originally from ETPub and no alterations have been made to it by silEnT team.
The etpub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen at: http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf
If you cannot find the document at the above location, please visit http://etpub.org
The following server console commands (for use in the server console or through rcon) commands have been added in etpub:
Omni-bot command. See the omni-bot 0.52 documentation for full details.
Display a message to all users in the chat area
Display a message to a specific user in the chat area. A partial name match can be used, and in this case the message will be sent to all users that match the partial name
Clears the XP of all users
Display a message to all users in the top of the screen (Requires etpub client >= 20051230)
Display a message to all users in the center of the screen
Display a message to all users in the popup message area of the screen
Forces a client cvar to have a certain value for all clients
List KillRating info by team, sorted.
Send a private message to a player. A partial name match can be used, and in this case the private message will be sent to all users that match the partial name
Plays the specified sound file. The slot number/player name parameter is optional. If the slot number or playername is specified, only that player hears the sound, otherwise all players hear the sound. g_tyranny must be enabled in order to play a sound to a specific player.
Plays the specified sound file, but the sound can be heard by everyone near the specified player. In contrast to playsound, both parameters are required for playsound_env. If playsound_env is used with one parameter (only the the filename is specified), then it is treated exactly as playsound [filename]. The further away nearby players are, the less they hear the sound. g_tyranny must be enabled in order to use this command.
List PlayerRating info by team, sorted.
Completely reset the PlayerRating system
Reset only the player ratings part of the PlayerRating system
Resets the total kills and deaths made by SMG weapons from all the players in the database.
Reloads the g_settings file. This is done by the server automatically, but if you decide to change the banners or sprees/multikills ingame, you can load the new settings with this command.
(Requires that g_tyranny be enabled) Loads the XPSave file from disk. There is no reason to call this function, etpub loads the XPSave file automatically as needed.
Prints information about the win probability model
Commits the in-memory XPSave info to disk. Normally, silEnT does this automatically every time a map ends or the server is shut down.
Clears all the spreerecords stored in XPSave file (doesn't work during warmup or intermission)
Shows information about the scripts currently loaded by the Lua API engine.
Promotes the player to be a shoutcaster. Shoutcasters can see floating player names, dynamite counter, truck and tank health and all mines.
Removes players shoutcaster status.
Shows information about the running silEnT server version.
Additionally, all of the shrubbot commands can be used on the server console as well, the leading "!" is optional.
Shrubbot is an invention of Ryan Mannion. ETPub tries to clone shrubbot as accurately as possible, both in user interface and in the shrubbot configuration file called "shrubbot.cfg". This is silEnT shrubbot based on the work of ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the folder defined by g_dbDirectory setting. In case shrubbot command like !ban is used against a player and shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created to store the needed data.
The created file will also have the default level settings written to it. This file can be freely edited by hand and then after !readconfig command has been issued, the changes take effect on the server.
Below are the shrubbot commands that silEnT currently supports and the corresponding flag to be used in the shrubbot config file to give permission to the command:
COMMAND | FLAG | g_tyranny | USAGE | DESCRIPTION |
---|---|---|---|---|
!admintest | a | - | !admintest [NAME|SLOT] | prints out player's current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown |
!ban | b | - | !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON |
Kicks the player in slot number SLOT or with name containing
NAME off the server and will not let them connect again for
SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a
given amount of time. For example: 90 = 90 seconds 15m = 15 minutes 3h = 3 hours 5d = 5 days 1w = 1 week |
!baninfo | e | - | !baninfo (BAN NUMBER) | Shows detailed information of a ban in the ban list. Find the ban number with !showbans command. |
!burn | U | YES | !burn (NAME|SLOT) [REASON] | Sets the player in slot number SLOT or with name containing NAME on fire. REASON will be center-printed to the victim. |
!cancelvote | c | - | !cancelvote | makes a vote in progress fail |
!dewarn | R | - | !dewarn (NAME|SLOT) [WARNING#] | Shows all the warnings of a user. When warning# is added, the warning with that number will be removed |
!disorient | d | YES | !disorient (NAME|SLOT) [REASON] | turns the view upside down for the client in slot number SLOT or with name containing NAME. If REASON is specified it is printed to the client. |
!finger | e | - | !finger (NAME|SLOT) |
Display the slot, partial guid, ip and clientversion of a player. NOTE: this command should only be available to the highest server admins! |
!freeze | F | YES | !freeze [NAME|SLOT] [REASON] | Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client. |
!gib | g | YES | !gib (NAME|SLOT|-1|all) |
kills and gibs the player in slot number SLOT or with name containing
NAME if name is -1 or all or if no name is entered, everybody will be gibbed |
!giba | Q | YES | !giba | kills and gibs all players |
!help | - | !help | Lists all the available shrubbot commands. The command doesn't have a flag but it is available to all clients always. | |
!howfair | I | - | !howfair | Prints a simple summary to everyone on the chat of team fairness based on player kill rating. |
!kick | k | - | !kick (NAME|SLOT) REASON | kicks the player in slot number SLOT or with name containing NAME off off the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes. |
!list | i | - | !list |
Prints out a list of information about the connected players. The
columns are:
|
!listteams | I | - | !listteams | prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even. |
!lock | K | - | !lock (r|b|s|all) | locks the team specified. recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL |
!lol | x | YES | !lol [NAME|SLOT] [GRENADES] | makes all players drop grenades. If NAME or SLOT is provided only that player will drop grenades. GRENADES is the number of grenades to be dropped (default is 1, maximum is 16). |
!mute | m | - | !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON | Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban 6 lines above for more information on modifiers |
!news | W | - | !news | plays the map specific news audio to all players if it is available. |
!nextmap | n | - | !nextmap | moves to the next map in campaign or in the objective cycle end game intermission is skipped |
!orient | d | YES | !orient (NAME|SLOT) | reverses the action of !disorient for the client in slot number SLOT or with name containing NAME. |
!panzerwar | q | - | !panzerwar [on|off] | Enables panzerwar |
!passvote | V | - | !passvote | makes a vote in progress pass |
!pause | Z | - | !pause | pauses the match |
!pip | z | YES | !pip [NAME|SLOT] | draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. does it to all players if no NAME/SLOT is not providied. |
!pop | z | YES | !pop [NAME|SLOT] | pops the helmet off of player in slot number SLOT or with name containing NAME. If no paramter is provided it pops the helmets off of all players. |
!putteam | p | - | !putteam (NAME|SLOT) (r|b|s) |
puts the player in slot number SLOT or with name containing NAME on
the indicated team. r - AXIS b - ALLIES s - SPECTATORS |
!readconfig | G | - | !readconfig | read g_shrubbot file |
!rename | N | YES | !rename (NAME|SLOT) NEWNAME | sets the player in slot number SLOT or with name containing NAME to NEWNAME. |
!reset | r | - | !reset | resets the match |
!resetmyxp | M | - | !resetmyxp | clears all XP and skillpoints for the player who runs this command. |
!resetxp | X | YES | !resetxp (NAME|SLOT) [REASON] | clears all XP and skillpoints for player in slot number SLOT or with name containing NAME. If reason is provided it is printed to the client. |
!restart | r | - | !restart | restarts the match |
!riflewar | q | - | !riflewar [on|off] | Enables riflewar |
!setlevel | s | - | !setlevel (NAME|SLOT) LEVEL | sets the connected player in slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself. |
!showbans | B | - | !showbans [SKIP] |
Lists up to 30 shrubbot bans currently in effect. The columns are:
|
!shuffle | S | - | !shuffle | Shuffles teams (based on XP), but does NOT restart (see !restart) |
!slap | A | YES | !slap (NAME|SLOT) [DAMAGE] [REASON] | does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it's center-printed to the victim. |
!sniperwar | q | - | !sniperwar [on|off] | Enables sniperwar |
!spec999 | P | - | !spec999 | moves all players with ping of 999 to the spectators team. |
!spree | E | - | !spree | Show the players current killing spree count |
!spreerecord | E | - | !spreerecord | Displays the map and overall spreerecord |
!stats | t | - | !stats | Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players. |
!swap | w | - | !swap | swaps the players to the opposite team |
!time | - | !time | Prints out localtime of the client in the chat. No other client can see this time message. The command doesn't have a flag but it is available to all clients always. | |
!tspree | E | - | !tspree [amount] | Show the top n current killing spree (default top 5) |
!unban | b | - | !unban BAN_NUMBER | removes the ban that !showbans lists as BAN_NUMBER |
!unfreeze | F | YES | !unfreeze [NAME|SLOT] | Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players. |
!unpause | Z | - | !unpause | unpauses the match |
!unmute | m | - | !unmute (NAME|SLOT) | Unmutes the player in slot number SLOT or with name containing NAME. |
!unlock | K | - | !unlock (r|b|s|all) | unlocks the team specified. recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL |
!uptime | u | - | !uptime |
Show how long the server has been up and running |
!fling !launch !throw | l | YES | !fling (NAME|SLOT) | send the player in slot number SLOT or with name containing NAME flying. |
!flinga !launcha !throwa | L | YES | !flinga | sends all players flying |
!warn | R | - | !warn (NAME|SLOT) [WARNING] | plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME. |
User Database Commands | ||||
!userlist | ] | - | !userlist [PAGE] |
Lists all users in the database. If PAGE is given, the list starts from that page. See !userlist for details. |
!userinfo | ] | - | !userinfo [PBGUID] |
Displays all information that is stored about the user in the database. See !userinfo for details. |
!useredit | [ | - | !useredit [PBGUID] [add|remove|level|greeting|sound] [new value] |
Command is used to edit explicit userdata in the database. See !useredit for details. |
!givexp | [ | - | !givexp [PBGUID] [sold|med|eng|fops|cov|light|battle] [amount to add] |
Command gives XP to a player identified by PBGUID. See !givexp for details. |
!userban | ] | - | !userban [PBGUID] [time] [reason] |
Command bans user indentified by the 8 character PB GUID from the server. See !userban for details. |
!userdelete | [ | - | !userdelete [PBGUID] |
Command removes the user identified by the 8 character PB GUID from the database. See !userdelete for details. |
!usersearch | ] | - | !usersearch [name (name)]|&[level (level)]|&[IP (IP)] [page] |
Command is used to search user database to find players. It will not work with players that are not stored in the database. See !usersearch for details. |
!readadmins | ) | - | !readadmins |
Command can be used to read admin definitions from edmins.cfg file. See !readadmins for details. |
!resetpls | ( | - | !resetpls [PBGUID] |
Command can be used to reset statistics for specified player. The total kills/deaths and also K/D and PRW is resetted. See !resetpls for details. |
1 | Cannot be vote kicked, vote muted, or complained against. |
2 | Cannot be censored. |
3 | Can run commands silently with /!COMMAND in the console. |
4 | Can see Axis/Allies team chats as a spectator. |
5 | Can switch teams any time, regardless of balance. |
6 | Does not need to specify a reason for !kick or !ban. |
7 | Can call a vote at any time (regardless of disabled voting or voting limitations). |
8 | Does not need to specify a duration for a ban (defaults to PERMANENT). |
9 | Can do shrubbot commands via team and fireteam chats. |
0 | Is immune to g_inactivity and g_spectatorInactivity settings. |
! | Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it. |
@ | "incognito" flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it. |
$ | Can do !admintest on other players. |
~ | Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat. |
& | Can rename himself regardless of g_maxNameChanges limit. |
? | Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect. |
/ | Cannot send private messages. Otherwise normal privileges. |
[level] level = 5 name = flags = *xU greeting = greeting_sound =would give level 5 admins all commands except !lol and !burn.
Shrubbot is divided into to parts. Users are stored in the user database and other
configuration infos and bans are stored in a separate human readable config file.
The configuration file itself is layed out in blocks serpated by blank lines.
The types of blocks supported are [level], [command] and [ban].
If you ever need to edit the shrubbot.cfg file by hand, you need to run the
!readconfig command (or restart etded) to load it.
When setting up a new shrubbot.cfg file, simply set the g_shrubbot cvar to the name you want to use for the configuration file, then connect to the server with your et, and run the following command in the server console:
!setlevel ETPlayer 5(where ETPlayer is your name). This will create the shrubbot.cfg file with default levels and your guid set to level 5 admin (the highest default level). You can then edit the level definitions in this file to match your preferences and run the !readconfig command to load them up.
The new element [command] in the shrubbot file format. This allows server admins to create their own shrubbot commands for executing server commands. however, you can only give privileges to commands through levels. It is not possible to explicitly give some user a privilege to a custom command. Here are some examples:
[command] command = hello exec = cp "hello world" desc = Center Print the text "hello world" to all connected clients levels = 0 1 2 3 4 5 [command] command = panzeroff exec = set team_maxPanzers 0 desc = Turn off panzers levels = 5 [command] command = havefun exec = exec fun.cfg desc = Load up some crazy settings/commands levels = 5 [command] command = unlimitedpanzers exec = cp "^1Unlimited panzers!"; set team_maxPanzers -1 desc = Everyone can have a panzerfaust! levels = 5
This would create 4 new commands, !hello, !panzeroff, !havefun, and !unlimitedpanzers. !hello can be run by any user with an admin level 0 through 5. !panzeroff, !havefun, and !unlimitedpanzers would be executable by only level 5 users. You must name each level in the space seperated level string (a higher level does not grant authority). As shown in !unlimitedpanzers, you can separate commands with a semicolon (;).
[command] elements can use shortcut characters as described in Shortcuts. You can use a new shortcut [i] to replace it with the player ID of the calling player.
Here are some samples:
[command] command = spec exec = !putteam [n] s desc = Become a spectator levels = 0 1 2 3 4 5 [command] command = pizza exec = cp "[n] ^7orders a big pizza for everyone except [d]^7!" desc = Some message levels = 3 4 5 [command] command = ms exec = makeshoutcaster [i] desc = Makes you a shoutcaster levels = 5
[command] elements can use up to 9 parameter placeholders (from [1] to [9]) in the commands. For example, given the following definition:
[command] command = mynameis exec = cp "[n]'s ^7real-life name is [1]^7!" desc = Print real name levels = 0 1 2 3 4 5
When a user types the command like this:
!mynameis bartholomew
Will print out something like:
[JJJJ]zuxx0r's real-life name is bartholomew
Since silEnT 0.2.1 it is possible to add '?' to the parameter placeholders. This will try to match the pattern to a player name on the server. For example, given the following definition:
[command] command = crybaby exec = chat "[1?]^7 is crying like little baby!" desc = Make someone cry levels = 0 1 2 3 4 5
When user types the command like this:
!crybaby gao
Will print out something like:
gaoesa is crying like a little baby!
If the player name match fails a response is returned to the user stating either that there were too many matches or that no player matched.
Parameters that the user does not type in are left blank in your command. You can use the parameters in any order (so the user types the parameters in a different order than they are used).
These commands will show up like any other shrubbot command in the output of !help and the !help command will also provide detailed info for the command using the 'desc' paramter (e.g. '!help hello')
You can also add a greeting to users specifically and/or [level] blocks. This greeting will be displayed when a shrubbot admin connects to the server. Adding a greeting to a [level] block will show that greeting for every admin with that level, while adding a greeting to any user specifically will only show the greeting when that particular admin connects. When both [level] block and user data contain a greeting, the user specific greeting is used. When you type [n] in a greeting, it will be replaced by the name of the connecting admin. Example:
[level] level = 5 name = Admin flags = * greeting = Level 5 admin [n] is on the floor greeting_sound =
If TJW is the connecting admin, all players will see: "Level 5 admin TJW is on the floor".
These are the limits on the shrubbot file:
Maximum number of levels: | 31 |
Maximum length of shrubbot level name: | 35 (includes color codes) |
Maximum number of users with a set level: | Unlimited |
Maximum number of player bans: | 1023 |
Maximum length of ban reason: | 1023 |
Maximum number of admin-defined commands: | 63 |
Maximum admin-defined command name length: | 63 characters |
Maximum admin-defined command length (executable part): | 1023 characters |
Maximum admin-defined command length (help string): | 1023 characters |
Maximum number of warnings: | 1023 |
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. PunkBuster GUIDs are used to identify single players. If a player joining the server doesn't have PB GUID data about that player can not be saved. However, the user database can still be used to store data of those players who have enabled punkbuster on the client side.
Shrubbot includes functionality to server admins to handle database userdata. These commands are !userlist, !userinfo, !useredit, !givexp, !userban, !userdelete, !usersearch, !readadmins and !resetpls. All commands that handle users in the database will take the last 8 characters of the player PunkBuster GUID to identify the player to edit. This is not unique identification but because EvenBalance has seen this to have enough uniqueness, it is good for the user database commands. Internally, the complete GUID is used to identify the players.
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.
The printed rows have the following columns:
# | This is the serial number of the user in the printout. The number doesn't correspond to anything in the database. |
PBGUID | This is the 8 character PB GUID of the user. This is used to identify different users in the database. |
Last Seen | This tells how long time ago the user was last seen on the server. For connected clients, this will print "connected". |
IP | This tells the last IP address user has had on the server. |
Name | This tells the last name with user has been saved on the server. |
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed.
Displays all information that is stored about the user in the database.
This information includes:
Command requires the last 8 characters of the player PB GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.
Command is used to edit explicit userdata in the database. The command format is:
!useredit [PBGUID] [add|remove|level|greeting|sound] [new value]
The command parameters in detail:
PBGUID | This is the 8 character PunkBuster GUID of the player. This is needed to identify the player to edit. |
add | If the command is given this parameter, the value(s) in the [new value] field will be added to the player's personal flags. |
remove | If the command is given this parameter, the value(s) in the [new value] field will be removed from the player's personal flags. |
level | If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command. |
greeting | If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared. |
sound | If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared. |
new value | This field is used to give values to the command. |
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.
This command works with online and offline players.
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill.
The possible skills are:
sold | Soldier or Heavy Weapons |
med | Medics or First Aid |
eng | Engineering or Explosives and Construction |
fops | Field Ops or Signals |
cov | Covert Ops or Military Intelligence and Scoped Weapons |
light | Light Weapons |
battle | Battle Sense |
Command bans user indentified by the 8 character PB GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot's cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired.
The command syntax is
!userban [PBGUID] [time] [reason]where [time] is the ban time in seconds and [reason] is the stored reason for the ban. Time modifiers can be used with this command.
Command removes the user identified by the 8 character PB GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.
If the removed player is connected to the server while removing, a new entry is written to that player.
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they already have been stored into the database.
This command is performance intensive and it is not recommended to use it on high utilisation server unless it is needed for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changin the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that silEnT will try to use the already found results as a basis for the new search (e.g. "!usersearch name gao" followed by "!usersearch name gaoe" will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page.
With this command an admin can read admin definitions from a specific admins.cfg file.
The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.
[admin] name = name of the admin (can be left empty) guid = full 32 character PB GUID (this field is used to identify players in the database) level = level number flags = personal admin flags (can be left empty) greeting = personal greeting (can be left empty) greeting_sound = path to personal greeting sound (can be left empty)If the database doesn't yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file.
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.
The settings file is a file that contains all the information about banners. See g_settings to see how you can enable this file.
The settings file consists of [banner] blocks (similar to shrubbot). A [banner] block adds a banner to the server banner queue.
A [banner] block has the following fields:
[banner] message = ^1Check out our banner! wait = 30 position = bpThe "message" is the actual message that is displayed to all the players on the server. The "wait" field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the "position" field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. "position" can have the values chat, cpm (popup), cp (center), bp (banner) or print (console).
The maximum amount of banners is 31 and the maximum length of individual banner is 255 characters.
Server supports the replacement of the following keys in say messages
[a] | last player who gave you ammo |
[d] | last player who killed you |
[g] | the last 8 characters of your GUID |
[h] | last player who gave you health |
[k] | last player you killed |
[l] | your location (letter,number) |
[n] | your name |
[r] | last player who revived you |
[p] | last player you looked at |
[s] | health remaining |
[w] | name of current weapon |
[t] | ammo for current weapon |
silEnT server is able to force client cvars to certain values or ranges by using forcecvar and sv_cvar commands. sv_cvarempty will clear all the sv_cvar commands the server has loaded.
To use the possibility, the g_mapConfigs must be set. All forcecvar and sv_cvar commands that are placed in the default.cfg, will be executed on every map start. Those settings can be overloaded by using a map specific cfg name [mapname].cfg. More help is available at silEnT forums.
When announcements are enbaled on the server, the server admins may choose to install their own announcement sounds to replace the mod default ones or add missing sounds. Any of the following sounds can be installed by the admins:
To replace any of the sounds, create a pk3 file with the mentioned path and sound file name. The replaced sound will be automatically played. The pk3 files are regular zips with only the zip ending changed with pk3.
We are greatly thankful to Etpub Dev Team since silEnT mod is based on Etpub 9.1. With time, we have done many core code changes, added new features and reworked all code to make it more optimized. We are also thankful to Foxdie, SunLight for the detailed explanation of the cg_zoomDefaultSniper exploit, ailmanki for the help with tripmine wires and unHoL for miscellaneous help.
Dev Team gaoesa TheSilencerPL hellreturn jamesplock jowish