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