add jointypes to eventlogs and disable the teamnagger in ca
[divverent/nexuiz.git] / Docs / eventlog.txt
1 cvars:\r
2 ______________\r
3 \r
4    sv_eventlog                    master switch (default: 0)\r
5    sv_eventlog_files              print frags, scores and captures for separate files each match (default: 0)\r
6    sv_eventlog_console            print frags, scores and captures to serverconsole during the match (default: 1)\r
7    sv_logscores_bots              choose whether bot are included in stats or not (default: 0)\r
8                                 \r
9    sv_eventlog_files_counter      number of matches logged until now\r
10    sv_eventlog_files_nameprefix   file name prefix to be used (default: nexuiz)\r
11    sv_eventlog_files_namesuffix   file name extension to be used (default: .log)\r
12    sv_eventlog_files_timestamps   prefix log lines in the files with :time events (default: 1)\r
13 \r
14 log format:\r
15 ______________\r
16 \r
17    :logversion:3\r
18    :gamestart:<gametype>_<mapname>:<matchid>\r
19    :gameinfo:mutators:LIST:mutator1:mutator2:...\r
20 \r
21       (note that mutators are listed by their cvar name with g_ removed,\r
22       unless such a cvar is 1 by default - then the mutator is listed with\r
23       a no_ prefix if the cvar is 0)\r
24 \r
25    :gameinfo:end\r
26    :join:<ID>:<slot>:<ip>:<nickname>\r
27    :join:<ID>:<slot>:bot:<nickname>\r
28    :name:<ID>:<nickname>\r
29    :part:<ID>\r
30    :team:<ID>:<team>:<jointype>\r
31    :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
32    :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
33    :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>\r
34    :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>\r
35    :ctf:steal:<flagcolor>:<ID of attacker>\r
36    :ctf:dropped:<flagcolor>:<ID of dropper>\r
37    :ctf:pickup:<flagcolor>:<ID of attacker>\r
38    :ctf:capture:<flagcolor>:<ID of attacker>\r
39    :ctf:return:<flagcolor>:<ID of defender>\r
40    :ctf:returned:<flagcolor>\r
41    :dom:taken:<previouscolor>:<ID of player>\r
42    :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
43    :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
44    :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
45    :keyhunt:destroyed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
46    :keyhunt:destroyed_holdingkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
47    :keyhunt:dropkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
48    :keyhunt:losekey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
49    :keyhunt:push:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
50    :keyhunt:pushed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
51    :scores:<gametype>_<mapname>:<map runtime>\r
52    :labels:player:<head1><flags>,<head2><flags>,...\r
53    :player:see-labels:<score1>,<score2>,...:<playtime>:<team>:<ID>:<nickname>\r
54    :player:see-labels:<score1>,<score2>,...:<playtime>:spectator:<ID>:<nickname>\r
55    :labels:teamscores:<head1><flags>,<head2><flags>,...\r
56    :teamscores:see-labels:<score1>,<score2>,...:<team>\r
57    :end\r
58    :restart\r
59    :gameover\r
60    :vote:suggested:<mapname>:<playerid>\r
61    :vote:keeptwo:<mapname>:<mapvotes>:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
62    :vote:finished:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
63    :vote:suggestion_accepted:<mapname>\r
64    :vote:vcall:<ID of player>:<vote command display string>\r
65    :vote:vyes:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
66    :vote:vno:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
67    :vote:vtimeout:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
68    :vote:vstop:<ID of stopper>\r
69    :vote:vlogin:<ID of player>\r
70    :vote:vdo:<ID of player>:<do command display string>\r
71    :time:<YYYY-MM-DD HH:MM:SS>\r
72    :recordset:<ID of player>:<time in seconds>\r
73 \r
74    Note that only the :join and :player lines ever contain player names. The\r
75    :time event only appears in the log files if sv_eventlog_files_timestamps\r
76    is 1; there is no way to log these time stamps to the console (for console\r
77    timestamps, set timestamps to 1).\r
78 \r
79 team colors:\r
80     1 = No Team (Domination)\r
81     5 = Red Team\r
82    14 = Blue Team\r
83    13 = Yellow Team\r
84    10 = Pink Team\r
85 \r
86 join types:\r
87     1 = connect\r
88     2 = auto\r
89     3 = manual\r
90     4 = spectating\r
91 \r
92 label flags:\r
93    !! = primary sorting key\r
94    <!! = primary sorting key, lower is better\r
95    ! = secondary sorting key\r
96    <! = secondary sorting key, lower is better\r
97    < = lower is better\r
98 \r
99 itemstring:\r
100    <weaponid><flags>\r
101    or\r
102    <weaponid><flags>|<runes>\r
103 \r
104    where flags can contain:\r
105          F = player carries the flag\r
106          S = player has strength\r
107          I = player has the shield\r
108          T = player is typing (console, menu or chat)\r
109    \r
110    and weapon IDs are:\r
111          1 = Laser\r
112                  2 = Shotgun\r
113                  3 = Uzi\r
114          4 = Mortar\r
115          5 = Electro\r
116          6 = Crylink\r
117          7 = Nex\r
118          8 = Hagar\r
119          9 = Rocket Launcher\r
120         10 = Port-O-Launch\r
121         11 = MinstaNex\r
122         12 = Grappling Hook\r
123         13 = Heavy Laser Assault Cannon\r
124         14 = T.A.G. Seeker\r
125 \r
126    runes/curses are stored as a bit mask with the following values:\r
127          1 = Strength\r
128          2 = Defense\r
129          4 = Regeneration\r
130          8 = Speed\r
131         16 = Vampire\r
132       8192 = Weakness\r
133      16384 = Vulnerability\r
134      32768 = Venom\r
135      65536 = Slow\r
136     131072 = Empathy\r
137 \r
138 death type:\r
139    either a weapon ID ORed with weapon death flags, or one of:\r
140      10000 = fallen to death\r
141      10001 = telefragged\r
142      10002 = drowned\r
143      10003 = killed by a trap / fallen into the void\r
144      10004 = lava\r
145      10005 = slime\r
146      10006 = console kill\r
147      10007 = (MinstaGib) out of ammo\r
148      10008 = swamp\r
149      10009 = team change\r
150      10010 = auto team change\r
151      10011 = camping protection\r
152          10012 = player became too fast (should never happen)\r
153          10013 = health rot\r
154          10014 = mirror damage\r
155          10015 = g_touchexplode\r
156          10100 = turret\r
157         10150 = spiderbot miniguns\r
158         10151 = spiderbot rocket\r
159         10152 = spiderbot, cushed by\r
160         10300 = custom deathmessage\r
161 \r
162    weapon death flags are:\r
163        256 = secondary fire\r
164            512 = splash damage\r
165           1024 = bounced projectile\r
166           2048 = head shot (MinstaNex only)\r
167           4096 = unused flag\r
168 \r
169 There will be a log analyzer parsing this file format soon. Note that weapon\r
170 IDs are below 10000.\r