playerdemos - recording actions of a player and playing them back using bots, to...
[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>\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 label flags:\r
87    !! = primary sorting key\r
88    <!! = primary sorting key, lower is better\r
89    ! = secondary sorting key\r
90    <! = secondary sorting key, lower is better\r
91    < = lower is better\r
92 \r
93 itemstring:\r
94    <weaponid><flags>\r
95    or\r
96    <weaponid><flags>|<runes>\r
97 \r
98    where flags can contain:\r
99          F = player carries the flag\r
100          S = player has strength\r
101          I = player has the shield\r
102          T = player is typing (console, menu or chat)\r
103    \r
104    and weapon IDs are:\r
105          1 = Laser\r
106                  2 = Shotgun\r
107                  3 = Uzi\r
108          4 = Mortar\r
109          5 = Electro\r
110          6 = Crylink\r
111          7 = Nex\r
112          8 = Hagar\r
113          9 = Rocket Launcher\r
114         10 = Port-O-Launch\r
115         11 = MinstaNex\r
116         12 = Grappling Hook\r
117         13 = Heavy Laser Assault Cannon\r
118         14 = T.A.G. Seeker\r
119 \r
120    runes/curses are stored as a bit mask with the following values:\r
121          1 = Strength\r
122          2 = Defense\r
123          4 = Regeneration\r
124          8 = Speed\r
125         16 = Vampire\r
126       8192 = Weakness\r
127      16384 = Vulnerability\r
128      32768 = Venom\r
129      65536 = Slow\r
130     131072 = Empathy\r
131 \r
132 death type:\r
133    either a weapon ID ORed with weapon death flags, or one of:\r
134      10000 = fallen to death\r
135      10001 = telefragged\r
136      10002 = drowned\r
137      10003 = killed by a trap / fallen into the void\r
138      10004 = lava\r
139      10005 = slime\r
140      10006 = console kill\r
141      10007 = (MinstaGib) out of ammo\r
142      10008 = swamp\r
143      10009 = team change\r
144      10010 = auto team change\r
145      10011 = camping protection\r
146          10012 = player became too fast (should never happen)\r
147          10013 = health rot\r
148          10014 = mirror damage\r
149          10015 = g_touchexplode\r
150          10100 = turret\r
151         10150 = spiderbot miniguns\r
152         10151 = spiderbot rocket\r
153         10152 = spiderbot, cushed by\r
154         10300 = custom deathmessage\r
155 \r
156    weapon death flags are:\r
157        256 = secondary fire\r
158            512 = splash damage\r
159           1024 = bounced projectile\r
160           2048 = head shot (MinstaNex only)\r
161           4096 = unused flag\r
162 \r
163 There will be a log analyzer parsing this file format soon. Note that weapon\r
164 IDs are below 10000.\r