Configstrings are strings (often in the form of a set of key\value pairs) set on the server and automatically sent to each client. They can be accessed with the Configstring and String utility functions.
Tip
A group of related configstrings usually only have a symbolic name for the first value, with a number added to get a particular value. For example, to access a user CS_PLAYERS configstring you must use et.trap_GetConfigstring(et.CS_PLAYERS + slotNumber).
See et.CS_* constants for available configstrings.
Here is the detailed content of the user CS_PLAYERS configstring:
Key | Value | Description |
---|---|---|
n | pers.netname | Nickname |
t | sess.sessionTeam | Team |
c | sess.playerType | Class |
lc | sess.latchPlayerType | Latched class |
r | sess.rank | Rank |
m | medalStr | Medals |
s | skillStr | Skills |
dn | disguiseClientNum | Disguised covert ops |
w | sess.playerWeapon | Primary weapon |
lw | sess.latchPlayerWeapon | Latched primary weapon |
sw | sess.playerWeapon2 | Secondary weapon |
lsw | sess.latchPlayerWeapon2 | Latched secondary weapon |
mu | sess.muted | Muted |
ref | sess.referee | Referee |
u | sess.uci | GeoIP ISO 3166-1 country code |
Userinfo strings are strings set on clients for server processing. They can be accessed with the Userinfo functions.
Key | Example Value | Description |
---|---|---|
cg_etVersion | Enemy Territory, ET 2.60b | ET client version |
cg_uinfo | 12 0 100 | Client settings [cg_autoreload/cg_autoactivate/cg_predictitems] [cl_timenudge] [cl_maxpackets] |
cg_allowGeoIP | 1 | Geolocalisation setting |
g_password | none | Server password |
cl_guid | 0123456789ABCDEF0123456789ABCDEF | GUID |
cl_wwwDownload | 1 | Missing files downloading toggle |
name | ETLegacyPlayer | Nickname |
rate | 2500 | Rate setting |
snaps | 20 | Snaps setting |
ip | 192.168.123.45:27960 | IP and port |
Note
The userinfo string of bots only includes the cl_guid, name, rate, snap and ip keys/values.
The following keys/values pairs are strictly used for connection validation, and are then dropped from userinfo strings once connection is established.
Key | Example Value | Description |
---|---|---|
protocol | 84 | Game protocol |
qport | 4834 | Randomly chosen as startup |
challenge | -686256943 | Random 31 bit integer |
et.trap_SendServerCommand() is used to send a command from the server to one or more clients.
The first argument is the slot number of the client the command is sent to. If it's equal to -1, the command is broadcast to all clients.
The following commands can be issued:
Print a message to the client's console:
"print \"Message\n\""
Print a message to the client's top screen banner area:
"bp \"Message\n\""
Print a message to the center of the client's screen:
"cp \"Message\n\""
Print a message to the client's annoucement area and console:
"cpm \"Message\n\""
Print a message to the client's console and writes it to the statsdump file:
"sc \"Message\n\""
Print a message as a global chat message on behalf of the specified client:
"chat ClientNum \"Message\""
Print a message as a team chat message on behalf of the specified client:
"tchat ClientNum \"Message\" X-Location Y-Location Z-Location"
- The X,Y,Z-Location's are optional parameters that represent the client's location.
Print a message as a global chat message via rcon (qsay command):
"chat \"Message\""
Send a global voice chat on behalf of the specified client:
"vchat VoiceOnly ClientNum 50 Vsay-String Vsay-Number \"Custom-Message\"".
- VoiceOnly prints a global chat message on behalf of ClientNum if set to 0, or only play the sound if set to 1.
- Vsay-String is the global voice chat message.
- Vsay-Number is the vsay number of Vsay as listed in the .voice files. It is by default random, but can be set by the player by passing parameters to the vsay command (/vsay <Vsay-Number> <Vsay-String>).
- Custom-Message is by default empty (""). If set, it prints the message in the chat area.
Send a team voice chat on behalf of the specified client:
"vtchat VoiceOnly ClientNum 50 Vsay-String X-Location Y-Location Z-Location Vsay-Number \"Custom-Message\""
- VoiceOnly prints a team chat message on behalf of ClientNum if set to 0, or only play the sound if set to 1.
- Vsay-String is the team voice chat message.
- Vsay-Number is the vsay number of Vsay as listed in the .voice files. It is by default random, but can be set by the player by passing parameters to the vsay command (/vsay <Vsay-Number> <Vsay-String>).
- The X,Y,Z-Location's are optional parameters that represent the client's location.
- Custom-Message is by default empty (""). If set, it prints the message in the chat area.
Send a fireteam voice chat on behalf of the specified client:
"vbchat VoiceOnly ClientNum 50 Fireteam-String X-Location Y-Location Z-Location Vsay-Number \"Custom-Message\""
- VoiceOnly prints a fireteam chat message on behalf of ClientNum if set to 0, or only play the sound if set to 1.
- Fireteam-String is the fireteam voice chat message.
- Vsay-Number is the vsay number of Vsay as listed in the .voice files. It is by default random, but can be set by the player by passing parameters to the vsay command (/vsay <Vsay-Number> <Vsay-String>).
- The X,Y,Z-Location's are optional parameters that represent the client's location.
- Custom-Message is by default empty (""). If set, it prints the message in the chat area.
Show a fireteam invitation message to the client:
"application Number"
- if Number is > -1, the "Accept ...'s application to join your fireteam?" message is displayed. In this case, Number is the ClientNum of the applying client.
- if Number is -1, the "Your application has been submitted" message is displayed.
- if Number is -2, the "Your application failed" message is displayed.
- if Number is -3, the "Your application has been approved" message is displayed.
- if Number is -4, the "Your application reply has been sent" message is displayed.
Show a fireteam proposition message to the client:
"proposition Number Number2"
- if Number is > -1, the "Accept ...'s proposition to invite ... to your fireteam?" message is displayed. In this case, Number is the ClientNum of the proposed client, and Number2 is the ClientNum of the proposing player.
- if Number is -1, the "Your proposition has been submitted" message is displayed.
- if Number is -2, the "Your proposition was rejected" message is displayed.
- if Number is -3, the "Your proposition was accepted" message is displayed.
- if Number is -4, the "Your proposition reply has been sent" message is displayed.
- Number2 is an optional parameter only used when Number > -1.
Show a fireteam invitation message to the client:
"invitation Number"
- if Number is > -1, the "Accept ..'s invitation to join your fireteam?" message is displayed. In this case, Number is the ClientNum of the applying client.
- if Number is -1, the "Your invitation has been submitted" message is displayed.
- if Number is -2, the "Your invitation rejected" message is displayed.
- if Number is -3, the "Your invitation was accepted" message is displayed.
- if Number is -4, the "Your invitation reply has been sent" message is displayed.
Show the complaint vote message to the client:
"complaint Number"
- if Number is > 1, the "File complaint against ... for team-killing?" message is displayed. In this case, Number is the ClientNum of the teamkilling player.
- if Number is -1, the "Complaint filed" message is displayed.
- if Number is -2, the "Complaint dismissed" message is displayed.
Set the client game selected spawnpoint:
"setspawnpt Number"
- Number is the selected spawnpoint.
Disconnect the client with a "Server disconnected" message:
"disconnect \"reason\""
- reason is an optional parameter to show a reason after "Server disconnected".
Note
Use et.trap_DropClient() instead.
Set a client's configstring to a string:
"cs Number \"String\""
- String is the new configstring string.
Note
Use et.trap_SetUserinfo() instead.
Replace any texture:
"remapShader \"OldShader\" \"NewShader\" #"
- OldShader is the old shader.
- NewShader is the new shader.
- # is the Timeoffset, which currently should be left as 0.
Note
Use et.G_ShaderRemap() instead.
Name | Value | Description |
---|---|---|
DAMAGE_RADIUS | 1 | Indirect splash damage |
DAMAGE_HALF_KNOCKBACK | 2 | Do less knockback |
DAMAGE_NO_KNOCKBACK | 4 | Do not affect velocity, just view angles |
DAMAGE_NO_PROTECTION | 8 | Armor, shields, invulnerability, godmode have no effect |
DAMAGE_NO_TEAM_PROTECTION | 16 | (unused) |
DAMAGE_DISTANCEFALLOFF | 32 | Distance falloff |
Name | Value | Description |
---|---|---|
SK_BATTLE_SENSE | 0 | Battle Sense |
SK_EXPLOSIVES_AND_CONSTRUCTION | 1 | Engineering |
SK_FIRST_AID | 2 | First Aid |
SK_SIGNALS | 3 | Signals |
SK_LIGHT_WEAPONS | 4 | Light Weapons |
SK_HEAVY_WEAPONS | 5 | Heavy Weapons |
SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS | 6 | Covert Ops |
Name | Value | Description |
---|---|---|
EV_NONE | 0 | |
EV_FOOTSTEP | 1 | |
EV_FOOTSTEP_METAL | 2 | (unused) |
EV_FOOTSTEP_WOOD | 3 | (unused) |
EV_FOOTSTEP_GRASS | 4 | (unused) |
EV_FOOTSTEP_GRAVEL | 5 | (unused) |
EV_FOOTSTEP_ROOF | 6 | (unused) |
EV_FOOTSTEP_SNOW | 7 | (unused) |
EV_FOOTSTEP_CARPET | 8 | (unused) |
EV_FOOTSPLASH | 9 | |
EV_FOOTWADE | 10 | (unused) |
EV_SWIM | 11 | |
EV_STEP_4 | 12 | |
EV_STEP_8 | 13 | |
EV_STEP_12 | 14 | |
EV_STEP_16 | 15 | |
EV_FALL_SHORT | 16 | |
EV_FALL_MEDIUM | 17 | |
EV_FALL_FAR | 18 | |
EV_FALL_NDIE | 19 | |
EV_FALL_DMG_10 | 20 | |
EV_FALL_DMG_15 | 21 | |
EV_FALL_DMG_25 | 22 | |
EV_FALL_DMG_50 | 23 | |
EV_WATER_TOUCH | 24 | |
EV_WATER_LEAVE | 25 | |
EV_WATER_UNDER | 26 | |
EV_WATER_CLEAR | 27 | |
EV_ITEM_PICKUP | 28 | |
EV_ITEM_PICKUP_QUIET | 29 | |
EV_GLOBAL_ITEM_PICKUP | 30 | |
EV_NOAMMO | 31 | |
EV_WEAPONSWITCHED | 32 | |
EV_EMPTYCLIP | 33 | (unused) |
EV_FILL_CLIP | 34 | |
EV_MG42_FIXED | 35 | |
EV_WEAP_OVERHEAT | 36 | |
EV_CHANGE_WEAPON | 37 | |
EV_CHANGE_WEAPON_2 | 38 | |
EV_FIRE_WEAPON | 39 | |
EV_FIRE_WEAPONB | 40 | |
EV_FIRE_WEAPON_LASTSHOT | 41 | |
EV_NOFIRE_UNDERWATER | 42 | |
EV_FIRE_WEAPON_MG42 | 43 | |
EV_FIRE_WEAPON_MOUNTEDMG42 | 44 | |
EV_ITEM_RESPAWN | 45 | (unused) |
EV_ITEM_POP | 46 | (unused) |
EV_PLAYER_TELEPORT_IN | 47 | (unused) |
EV_PLAYER_TELEPORT_OUT | 48 | (unused) |
EV_GRENADE_BOUNCE | 49 | |
EV_GENERAL_SOUND | 50 | |
EV_GENERAL_SOUND_VOLUME | 51 | |
EV_GLOBAL_SOUND | 52 | |
EV_GLOBAL_CLIENT_SOUND | 53 | |
EV_GLOBAL_TEAM_SOUND | 54 | |
EV_FX_SOUND | 55 | |
EV_BULLET_HIT_FLESH | 56 | |
EV_BULLET_HIT_WALL | 57 | |
EV_MISSILE_HIT | 58 | |
EV_MISSILE_MISS | 59 | |
EV_RAILTRAIL | 60 | |
EV_BULLET | 61 | |
EV_LOSE_HAT | 62 | |
EV_PAIN | 63 | |
EV_CROUCH_PAIN | 64 | (unused) |
EV_DEATH1 | 65 | (unused) |
EV_DEATH2 | 66 | (unused) |
EV_DEATH3 | 67 | (unused) |
EV_OBITUARY | 68 | |
EV_STOPSTREAMINGSOUND | 69 | |
EV_POWERUP_QUAD | 70 | |
EV_POWERUP_BATTLESUIT | 71 | |
EV_POWERUP_REGEN | 72 | |
EV_GIB_PLAYER | 73 | |
EV_DEBUG_LINE, | 74 | (unused) |
EV_STOPLOOPINGSOUND | 75 | |
EV_TAUNT | 76 | (unused) |
EV_SMOKE | 77 | |
EV_SPARKS | 78 | |
EV_SPARKS_ELECTRIC | 79 | |
EV_EXPLODE | 80 | |
EV_RUBBLE | 81 | |
EV_EFFECT | 82 | |
EV_MORTAREFX | 83 | |
EV_SPINUP | 84 | |
EV_SNOW_ON | 85 | (unused) |
EV_SNOW_OFF | 86 | (unused) |
EV_MISSILE_MISS_SMALL | 87 | |
EV_MISSILE_MISS_LARGE | 88 | |
EV_MORTAR_IMPACT | 89 | |
EV_MORTAR_MISS | 90 | |
EV_SPIT_HIT | 91 | (unused) |
EV_SPIT_MISS | 92 | (unused) |
EV_SHARD | 93 | |
EV_JUNK | 94 | |
EV_EMITTER | 95 | |
EV_OILPARTICLES | 96 | |
EV_OILSLICK | 97 | |
EV_OILSLICKREMOVE | 98 | |
EV_MG42EFX | 99 | (unused) |
EV_FLAKGUN1 | 100 | (unused) |
EV_FLAKGUN2 | 101 | (unused) |
EV_FLAKGUN3 | 102 | (unused) |
EV_FLAKGUN4 | 103 | (unused) |
EV_EXERT1 | 104 | (unused) |
EV_EXERT2 | 105 | (unused) |
EV_EXERT3 | 106 | (unused) |
EV_SNOWFLURRY | 107 | |
EV_CONCUSSIVE | 108 | (unused) |
EV_DUST | 109 | |
EV_RUMBLE_EFX | 110 | |
EV_GUNSPARKS | 111 | |
EV_FLAMETHROWER_EFFECT | 112 | |
EV_POPUP | 113 | (unused) |
EV_POPUPBOOK | 114 | (unused) |
EV_GIVEPAGE | 115 | (unused) |
EV_MG42BULLET_HIT_FLESH | 116 | |
EV_MG42BULLET_HIT_WALL | 117 | |
EV_SHAKE | 118 | |
EV_DISGUISE_SOUND | 119 | |
EV_BUILDDECAYED_SOUND | 120 | |
EV_FIRE_WEAPON_AAGUN | 121 | |
EV_DEBRIS | 122 | |
EV_ALERT_SPEAKER | 123 | |
EV_POPUPMESSAGE | 124 | |
EV_ARTYMESSAGE | 125 | |
EV_AIRSTRIKEMESSAGE | 126 | |
EV_MEDIC_CALL | 127 | |
EV_SHOVE_SOUND | 128 | |
EV_BODY_DP | 129 |