temporarily slow down file conversion a bit (sleep 0.25) to keep server load down
[xonotic/xonotic.git] / Docs / eventlog.txt
index 030ba52f28a4a30c2794979fb849fa57264b8d3a..1152b4346959b45dcccb472cb42dd9392164f11c 100644 (file)
-cvars:\r
-______________\r
-\r
-   sv_eventlog                    master switch (default: 0)\r
-   sv_eventlog_files              print frags, scores and captures for separate files each match (default: 0)\r
-   sv_eventlog_console            print frags, scores and captures to serverconsole during the match (default: 1)\r
-   sv_logscores_bots              choose whether bot are included in stats or not (default: 0)\r
-                                \r
-   sv_eventlog_files_counter      number of matches logged until now\r
-   sv_eventlog_files_nameprefix   file name prefix to be used (default: nexuiz)\r
-   sv_eventlog_files_namesuffix   file name extension to be used (default: .log)\r
-   sv_eventlog_files_timestamps   prefix log lines in the files with :time events (default: 1)\r
-\r
-log format:\r
-______________\r
-\r
-   :logversion:3\r
-   :gamestart:<gametype>_<mapname>:<matchid>\r
-   :gameinfo:mutators:LIST:mutator1:mutator2:...\r
-\r
-      (note that mutators are listed by their cvar name with g_ removed,\r
-      unless such a cvar is 1 by default - then the mutator is listed with\r
-      a no_ prefix if the cvar is 0)\r
-\r
-   :gameinfo:end\r
-   :join:<ID>:<slot>:<ip>:<nickname>\r
-   :join:<ID>:<slot>:bot:<nickname>\r
-   :name:<ID>:<nickname>\r
-   :part:<ID>\r
-   :team:<ID>:<team>:<jointype>\r
-   :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
-   :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
-   :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>\r
-   :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>\r
-   :ctf:steal:<flagcolor>:<ID of attacker>\r
-   :ctf:dropped:<flagcolor>:<ID of dropper>\r
-   :ctf:pickup:<flagcolor>:<ID of attacker>\r
-   :ctf:capture:<flagcolor>:<ID of attacker>\r
-   :ctf:return:<flagcolor>:<ID of defender>\r
-   :ctf:returned:<flagcolor>\r
-   :dom:taken:<previouscolor>:<ID of player>\r
-   :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:destroyed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:destroyed_holdingkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:dropkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:losekey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:push:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :keyhunt:pushed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
-   :scores:<gametype>_<mapname>:<map runtime>\r
-   :labels:player:<head1><flags>,<head2><flags>,...\r
-   :player:see-labels:<score1>,<score2>,...:<playtime>:<team>:<ID>:<nickname>\r
-   :player:see-labels:<score1>,<score2>,...:<playtime>:spectator:<ID>:<nickname>\r
-   :labels:teamscores:<head1><flags>,<head2><flags>,...\r
-   :teamscores:see-labels:<score1>,<score2>,...:<team>\r
-   :end\r
-   :restart\r
-   :gameover\r
-   :vote:suggested:<mapname>:<playerid>\r
-   :vote:keeptwo:<mapname>:<mapvotes>:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
-   :vote:finished:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
-   :vote:suggestion_accepted:<mapname>\r
-   :vote:vcall:<ID of player>:<vote command display string>\r
-   :vote:vyes:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
-   :vote:vno:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
-   :vote:vtimeout:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
-   :vote:vstop:<ID of stopper>\r
-   :vote:vlogin:<ID of player>\r
-   :vote:vdo:<ID of player>:<do command display string>\r
-   :time:<YYYY-MM-DD HH:MM:SS>\r
-   :recordset:<ID of player>:<time in seconds>\r
-\r
-   Note that only the :join and :player lines ever contain player names. The\r
-   :time event only appears in the log files if sv_eventlog_files_timestamps\r
-   is 1; there is no way to log these time stamps to the console (for console\r
-   timestamps, set timestamps to 1).\r
-\r
-team colors:\r
-    1 = No Team (Domination)\r
-    5 = Red Team\r
-   14 = Blue Team\r
-   13 = Yellow Team\r
-   10 = Pink Team\r
-\r
-join types:\r
-    1 = connect\r
-    2 = auto\r
-    3 = manual\r
-    4 = spectating\r
-    6 = adminmove\r
-\r
-label flags:\r
-   !! = primary sorting key\r
-   <!! = primary sorting key, lower is better\r
-   ! = secondary sorting key\r
-   <! = secondary sorting key, lower is better\r
-   < = lower is better\r
-\r
-itemstring:\r
-   <weaponid><flags>\r
-   or\r
-   <weaponid><flags>|<runes>\r
-\r
-   where flags can contain:\r
-         F = player carries the flag\r
-         S = player has strength\r
-         I = player has the shield\r
-         T = player is typing (console, menu or chat)\r
-   \r
-   and weapon IDs are:\r
-         1 = Laser\r
-                2 = Shotgun\r
-                3 = Uzi\r
-         4 = Mortar\r
-         5 = Electro\r
-         6 = Crylink\r
-         7 = Nex\r
-         8 = Hagar\r
-         9 = Rocket Launcher\r
-        10 = Port-O-Launch\r
-        11 = MinstaNex\r
-        12 = Grappling Hook\r
-        13 = Heavy Laser Assault Cannon\r
-        14 = T.A.G. Seeker\r
-\r
-   runes/curses are stored as a bit mask with the following values:\r
-         1 = Strength\r
-         2 = Defense\r
-         4 = Regeneration\r
-         8 = Speed\r
-        16 = Vampire\r
-      8192 = Weakness\r
-     16384 = Vulnerability\r
-     32768 = Venom\r
-     65536 = Slow\r
-    131072 = Empathy\r
-\r
-death type:\r
-   either a weapon ID ORed with weapon death flags, or one of:\r
-     10000 = fallen to death\r
-     10001 = telefragged\r
-     10002 = drowned\r
-     10003 = killed by a trap / fallen into the void\r
-     10004 = lava\r
-     10005 = slime\r
-     10006 = console kill\r
-     10007 = (MinstaGib) out of ammo\r
-     10008 = swamp\r
-     10009 = team change\r
-     10010 = auto team change\r
-     10011 = camping protection\r
-        10012 = player became too fast (should never happen)\r
-        10013 = health rot\r
-        10014 = mirror damage\r
-        10015 = g_touchexplode\r
-        10100 = turret\r
-       10150 = spiderbot miniguns\r
-       10151 = spiderbot rocket\r
-       10152 = spiderbot, cushed by\r
-       10300 = custom deathmessage\r
-\r
-   weapon death flags are:\r
-       256 = secondary fire\r
-          512 = splash damage\r
-         1024 = bounced projectile\r
-         2048 = head shot (MinstaNex only)\r
-         4096 = unused flag\r
-\r
-There will be a log analyzer parsing this file format soon. Note that weapon\r
-IDs are below 10000.\r
+cvars:
+______________
+
+   sv_eventlog                    master switch (default: 0)
+   sv_eventlog_files              print frags, scores and captures for separate files each match (default: 0)
+   sv_eventlog_console            print frags, scores and captures to serverconsole during the match (default: 1)
+   sv_logscores_bots              choose whether bot are included in stats or not (default: 0)
+                                
+   sv_eventlog_files_counter      number of matches logged until now
+   sv_eventlog_files_nameprefix   file name prefix to be used (default: nexuiz)
+   sv_eventlog_files_namesuffix   file name extension to be used (default: .log)
+   sv_eventlog_files_timestamps   prefix log lines in the files with :time events (default: 1)
+
+log format:
+______________
+
+   :logversion:3
+   :gamestart:<gametype>_<mapname>:<matchid>
+   :gameinfo:mutators:LIST:mutator1:mutator2:...
+
+      (note that mutators are listed by their cvar name with g_ removed,
+      unless such a cvar is 1 by default - then the mutator is listed with
+      a no_ prefix if the cvar is 0)
+
+   :gameinfo:end
+   :join:<ID>:<slot>:<ip>:<nickname>
+   :join:<ID>:<slot>:bot:<nickname>
+   :name:<ID>:<nickname>
+   :part:<ID>
+   :team:<ID>:<team>:<jointype>
+   :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
+   :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
+   :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>
+   :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>
+   :ctf:steal:<flagcolor>:<ID of attacker>
+   :ctf:dropped:<flagcolor>:<ID of dropper>
+   :ctf:pickup:<flagcolor>:<ID of attacker>
+   :ctf:capture:<flagcolor>:<ID of attacker>
+   :ctf:return:<flagcolor>:<ID of defender>
+   :ctf:returned:<flagcolor>
+   :dom:taken:<previouscolor>:<ID of player>
+   :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:destroyed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:destroyed_holdingkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:dropkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:losekey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:push:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :keyhunt:pushed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
+   :scores:<gametype>_<mapname>:<map runtime>
+   :labels:player:<head1><flags>,<head2><flags>,...
+   :player:see-labels:<score1>,<score2>,...:<playtime>:<team>:<ID>:<nickname>
+   :player:see-labels:<score1>,<score2>,...:<playtime>:spectator:<ID>:<nickname>
+   :labels:teamscores:<head1><flags>,<head2><flags>,...
+   :teamscores:see-labels:<score1>,<score2>,...:<team>
+   :end
+   :restart
+   :gameover
+   :vote:suggested:<mapname>:<playerid>
+   :vote:keeptwo:<mapname>:<mapvotes>:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:...:didn't vote:<notvoters>
+   :vote:finished:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:<mapname>:<mapvotes>:...:didn't vote:<notvoters>
+   :vote:suggestion_accepted:<mapname>
+   :vote:vcall:<ID of player>:<vote command display string>
+   :vote:vyes:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
+   :vote:vno:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
+   :vote:vtimeout:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
+   :vote:vstop:<ID of stopper>
+   :vote:vlogin:<ID of player>
+   :vote:vdo:<ID of player>:<do command display string>
+   :time:<YYYY-MM-DD HH:MM:SS>
+   :recordset:<ID of player>:<time in seconds>
+
+   Note that only the :join and :player lines ever contain player names. The
+   :time event only appears in the log files if sv_eventlog_files_timestamps
+   is 1; there is no way to log these time stamps to the console (for console
+   timestamps, set timestamps to 1).
+
+team colors:
+    1 = No Team (Domination)
+    5 = Red Team
+   14 = Blue Team
+   13 = Yellow Team
+   10 = Pink Team
+
+join types:
+    1 = connect
+    2 = auto
+    3 = manual
+    4 = spectating
+    6 = adminmove
+
+label flags:
+   !! = primary sorting key
+   <!! = primary sorting key, lower is better
+   ! = secondary sorting key
+   <! = secondary sorting key, lower is better
+   < = lower is better
+
+itemstring:
+   <weaponid><flags>
+   or
+   <weaponid><flags>|<runes>
+
+   where flags can contain:
+         F = player carries the flag
+         S = player has strength
+         I = player has the shield
+         T = player is typing (console, menu or chat)
+   
+   and weapon IDs are:
+         1 = Laser
+                2 = Shotgun
+                3 = Uzi
+         4 = Mortar
+         5 = Electro
+         6 = Crylink
+         7 = Nex
+         8 = Hagar
+         9 = Rocket Launcher
+        10 = Port-O-Launch
+        11 = MinstaNex
+        12 = Grappling Hook
+        13 = Heavy Laser Assault Cannon
+        14 = T.A.G. Seeker
+
+   runes/curses are stored as a bit mask with the following values:
+         1 = Strength
+         2 = Defense
+         4 = Regeneration
+         8 = Speed
+        16 = Vampire
+      8192 = Weakness
+     16384 = Vulnerability
+     32768 = Venom
+     65536 = Slow
+    131072 = Empathy
+
+death type:
+   either a weapon ID ORed with weapon death flags, or one of:
+     10000 = fallen to death
+     10001 = telefragged
+     10002 = drowned
+     10003 = killed by a trap / fallen into the void
+     10004 = lava
+     10005 = slime
+     10006 = console kill
+     10007 = (MinstaGib) out of ammo
+     10008 = swamp
+     10009 = team change
+     10010 = auto team change
+     10011 = camping protection
+        10012 = player became too fast (should never happen)
+        10013 = health rot
+        10014 = mirror damage
+        10015 = g_touchexplode
+        10100 = turret
+       10150 = spiderbot miniguns
+       10151 = spiderbot rocket
+       10152 = spiderbot, cushed by
+       10300 = custom deathmessage
+
+   weapon death flags are:
+       256 = secondary fire
+          512 = splash damage
+         1024 = bounced projectile
+         2048 = head shot (MinstaNex only)
+         4096 = unused flag
+
+There will be a log analyzer parsing this file format soon. Note that weapon
+IDs are below 10000.