diff --git a/main.py b/main.py index 22032cb..d01f4d4 100644 --- a/main.py +++ b/main.py @@ -139,8 +139,7 @@ def parse_player_events(message, game_state, ui): player_name = re.sub(r'\^\d+$', '', player_name) logger.info(f'CONNECT: {repr(player_name)}') - if game_state.server_info.is_team_mode(): - game_state.player_tracker.update_team(player_name, 'SPECTATOR') + game_state.player_tracker.update_team(player_name, 'SPECTATOR') game_state.player_tracker.add_player(player_name) ui.update_server_info(game_state) diff --git a/raw.json b/raw.json new file mode 100644 index 0000000..47ee5d7 --- /dev/null +++ b/raw.json @@ -0,0 +1,3136 @@ +2025-12-29 08:07:43 - JSON Event received: +2025-12-29 08:07:43 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 145, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 124, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -431.581298828125, + "Y": 1452.871459960938, + "Z": 162.875 + }, + "POWERUPS": null, + "SPEED": 26.36220902073885, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 24.8785400390625, + "Y": 58.282470703125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 24, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 15, + "ARMOR": 86, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": -317.3271179199219, + "Y": 1650.42236328125, + "Z": 120.1267776489258 + }, + "POWERUPS": null, + "SPEED": 183.5292998576794, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 1.7578125, + "Y": 32.354736328125, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": true + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:07:43 - --- +2025-12-29 08:07:43 - JSON Event received: +2025-12-29 08:07:43 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 145, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 124, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -431.581298828125, + "Y": 1452.871459960938, + "Z": 162.875 + }, + "POWERUPS": null, + "SPEED": 26.36220902073885, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 24.8785400390625, + "Y": 58.282470703125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 24, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 15, + "ARMOR": 86, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": -317.3271179199219, + "Y": 1650.42236328125, + "Z": 120.1267776489258 + }, + "POWERUPS": null, + "SPEED": 183.5292998576794, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 1.7578125, + "Y": 32.354736328125, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": true + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:07:43 - --- +2025-12-29 08:07:54 - JSON Event received: +2025-12-29 08:07:54 - { + "DATA": { + "CAPTURE_LIMIT": 8, + "FACTORY": "ffa", + "FACTORY_TITLE": "Free For All", + "FRAG_LIMIT": 5, + "GAME_TYPE": "FFA", + "INFECTED": 0, + "INSTAGIB": 0, + "MAP": "hearth", + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MERCY_LIMIT": 0, + "PLAYERS": [ + { + "NAME": "Wrack", + "STEAM_ID": "0", + "TEAM": 0 + }, + { + "NAME": "Sorlag", + "STEAM_ID": "0", + "TEAM": 0 + }, + { + "NAME": "Demona", + "STEAM_ID": "0", + "TEAM": 0 + }, + { + "NAME": "Patriot", + "STEAM_ID": "0", + "TEAM": 0 + } + ], + "QUADHOG": 0, + "ROUND_LIMIT": 2, + "SCORE_LIMIT": 150, + "SERVER_TITLE": "[+] sexy Frei F\u00fcr Alli", + "TIME_LIMIT": 15, + "TRAINING": 0 + }, + "TYPE": "MATCH_STARTED" +} +2025-12-29 08:07:54 - --- +2025-12-29 08:08:00 - JSON Event received: +2025-12-29 08:08:00 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 42, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 119, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 35.42774200439453, + "Y": 1433.145385742188, + "Z": -7.874148845672607 + }, + "POWERUPS": null, + "SPEED": 302.4958160867684, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -46.42822265625, + "Y": -125.2386474609375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 6, + "VICTIM": { + "AIRBORNE": true, + "AMMO": 9, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 20, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -84.59331512451172, + "Y": 1264.358276367188, + "Z": 243.8267974853516 + }, + "POWERUPS": null, + "SPEED": 161.059777576914, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 47.252197265625, + "Y": 48.7353515625, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:00 - --- +2025-12-29 08:08:00 - JSON Event received: +2025-12-29 08:08:00 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 42, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 119, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 35.42774200439453, + "Y": 1433.145385742188, + "Z": -7.874148845672607 + }, + "POWERUPS": null, + "SPEED": 302.4958160867684, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -46.42822265625, + "Y": -125.2386474609375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 6, + "VICTIM": { + "AIRBORNE": true, + "AMMO": 9, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 20, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -84.59331512451172, + "Y": 1264.358276367188, + "Z": 243.8267974853516 + }, + "POWERUPS": null, + "SPEED": 161.059777576914, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 47.252197265625, + "Y": 48.7353515625, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:00 - --- +2025-12-29 08:08:00 - JSON Event received: +2025-12-29 08:08:00 - { + "DATA": { + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MEDAL": "FIRSTFRAG", + "NAME": "Patriot", + "STEAM_ID": "0", + "TIME": 6, + "TOTAL": 1, + "WARMUP": false + }, + "TYPE": "PLAYER_MEDAL" +} +2025-12-29 08:08:00 - --- +2025-12-29 08:08:00 - JSON Event received: +2025-12-29 08:08:00 - { + "DATA": { + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MEDAL": "MIDAIR", + "NAME": "Patriot", + "STEAM_ID": "0", + "TIME": 6, + "TOTAL": 1, + "WARMUP": false + }, + "TYPE": "PLAYER_MEDAL" +} +2025-12-29 08:08:00 - --- +2025-12-29 08:08:01 - JSON Event received: +2025-12-29 08:08:01 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 75, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 203.8879699707031, + "Y": 2037.3125, + "Z": -7.639978885650635 + }, + "POWERUPS": null, + "SPEED": 276.8522140736823, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 3.6199951171875, + "Y": -85.638427734375, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 7, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 36, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 226.8646697998047, + "Y": 1756.713500976562, + "Z": -7.874991416931152 + }, + "POWERUPS": null, + "SPEED": 337.7525212711224, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 12.65625, + "Y": 97.1905517578125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:01 - --- +2025-12-29 08:08:01 - JSON Event received: +2025-12-29 08:08:01 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 75, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 203.8879699707031, + "Y": 2037.3125, + "Z": -7.639978885650635 + }, + "POWERUPS": null, + "SPEED": 276.8522140736823, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 3.6199951171875, + "Y": -85.638427734375, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 7, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 36, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 226.8646697998047, + "Y": 1756.713500976562, + "Z": -7.874991416931152 + }, + "POWERUPS": null, + "SPEED": 337.7525212711224, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 12.65625, + "Y": 97.1905517578125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:01 - --- +2025-12-29 08:08:11 - JSON Event received: +2025-12-29 08:08:11 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 2, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 42, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 300.4742736816406, + "Y": 900.03759765625, + "Z": 80.1250991821289 + }, + "POWERUPS": null, + "SPEED": 304.5301324376621, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0.2252197265625, + "Y": 47.823486328125, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 17, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 43, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 652.1370849609375, + "Y": 1286.519897460938, + "Z": 80.12796783447266 + }, + "POWERUPS": null, + "SPEED": 263.2466613036146, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.6529541015625, + "Y": -125.848388671875, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:11 - --- +2025-12-29 08:08:11 - JSON Event received: +2025-12-29 08:08:11 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 2, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 42, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 300.4742736816406, + "Y": 900.03759765625, + "Z": 80.1250991821289 + }, + "POWERUPS": null, + "SPEED": 304.5301324376621, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0.2252197265625, + "Y": 47.823486328125, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 17, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 43, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 652.1370849609375, + "Y": 1286.519897460938, + "Z": 80.12796783447266 + }, + "POWERUPS": null, + "SPEED": 263.2466613036146, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.6529541015625, + "Y": -125.848388671875, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:11 - --- +2025-12-29 08:08:13 - JSON Event received: +2025-12-29 08:08:13 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 41, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 91, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 305.3837585449219, + "Y": 1198.075561523438, + "Z": 63.125 + }, + "POWERUPS": null, + "SPEED": 195.86294434821, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -4.0594482421875, + "Y": 173.1500244140625, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 19, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 1, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 2, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -62.46903610229492, + "Y": 1243.833374023438, + "Z": 120.1642761230469 + }, + "POWERUPS": null, + "SPEED": 427.5261870634359, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 11.42578125, + "Y": -7.152099609375, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:13 - --- +2025-12-29 08:08:13 - JSON Event received: +2025-12-29 08:08:13 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 41, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 91, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 305.3837585449219, + "Y": 1198.075561523438, + "Z": 63.125 + }, + "POWERUPS": null, + "SPEED": 195.86294434821, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -4.0594482421875, + "Y": 173.1500244140625, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 19, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 1, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 2, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -62.46903610229492, + "Y": 1243.833374023438, + "Z": 120.1642761230469 + }, + "POWERUPS": null, + "SPEED": 427.5261870634359, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 11.42578125, + "Y": -7.152099609375, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:13 - --- +2025-12-29 08:08:16 - JSON Event received: +2025-12-29 08:08:16 - { + "DATA": { + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "NAME": "xbl", + "STEAM_ID": "76561197963469434", + "TIME": 23, + "WARMUP": false + }, + "TYPE": "PLAYER_CONNECT" +} +2025-12-29 08:08:16 - --- +2025-12-29 08:08:22 - JSON Event received: +2025-12-29 08:08:22 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 6, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 329.810546875, + "Y": 1446.31103515625, + "Z": 120.125 + }, + "POWERUPS": null, + "SPEED": 112.2969782680059, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 34.16748046875, + "Y": 157.74169921875, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "ROCKET_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 28, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 31, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 11, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -355.1815490722656, + "Y": 1357.330688476562, + "Z": -7.719124317169189 + }, + "POWERUPS": null, + "SPEED": 273.8093828286387, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -8.931884765625, + "Y": 6.998291015625, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:22 - --- +2025-12-29 08:08:22 - JSON Event received: +2025-12-29 08:08:22 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 6, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 329.810546875, + "Y": 1446.31103515625, + "Z": 120.125 + }, + "POWERUPS": null, + "SPEED": 112.2969782680059, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 34.16748046875, + "Y": 157.74169921875, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "ROCKET_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 28, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 31, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 11, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -355.1815490722656, + "Y": 1357.330688476562, + "Z": -7.719124317169189 + }, + "POWERUPS": null, + "SPEED": 273.8093828286387, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -8.931884765625, + "Y": 6.998291015625, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:22 - --- +2025-12-29 08:08:22 - JSON Event received: +2025-12-29 08:08:22 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 31, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": -54, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -321.8819885253906, + "Y": 1381.372436523438, + "Z": 21.69496154785156 + }, + "POWERUPS": null, + "SPEED": 273.8093828286387, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0, + "Y": 7.413501739501953, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 28, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 7, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 6, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 312.2055969238281, + "Y": 1463.626586914062, + "Z": 120.125 + }, + "POWERUPS": null, + "SPEED": 109.2753161814803, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 32.34375, + "Y": -172.276611328125, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:22 - --- +2025-12-29 08:08:22 - JSON Event received: +2025-12-29 08:08:22 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 31, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": -54, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -321.8819885253906, + "Y": 1381.372436523438, + "Z": 21.69496154785156 + }, + "POWERUPS": null, + "SPEED": 273.8093828286387, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0, + "Y": 7.413501739501953, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 28, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 7, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 6, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 312.2055969238281, + "Y": 1463.626586914062, + "Z": 120.125 + }, + "POWERUPS": null, + "SPEED": 109.2753161814803, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 32.34375, + "Y": -172.276611328125, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:22 - --- +2025-12-29 08:08:25 - JSON Event received: +2025-12-29 08:08:25 - { + "DATA": { + "KILLER": { + "NAME": "^7ggThx", + "OLD_TEAM": "SPECTATOR", + "STEAM_ID": "76561197963469434", + "TEAM": "SPECTATOR" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "TIME": 31, + "WARMUP": false + }, + "TYPE": "PLAYER_SWITCHTEAM" +} +2025-12-29 08:08:25 - --- +2025-12-29 08:08:34 - JSON Event received: +2025-12-29 08:08:34 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 5, + "ARMOR": 5, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -28.80640411376953, + "Y": 1419.548583984375, + "Z": -7.802143096923828 + }, + "POWERUPS": null, + "SPEED": 321.7508984058941, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0.692138671875, + "Y": -20.7586669921875, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 40, + "VICTIM": { + "AIRBORNE": true, + "AMMO": 5, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 2, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 203.3301696777344, + "Y": 1333.516357421875, + "Z": 7.125012397766113 + }, + "POWERUPS": null, + "SPEED": 191.8930366115457, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 19.7808837890625, + "Y": 169.6893310546875, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:34 - --- +2025-12-29 08:08:34 - JSON Event received: +2025-12-29 08:08:34 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 5, + "ARMOR": 5, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 5, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -28.80640411376953, + "Y": 1419.548583984375, + "Z": -7.802143096923828 + }, + "POWERUPS": null, + "SPEED": 321.7508984058941, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0.692138671875, + "Y": -20.7586669921875, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 40, + "VICTIM": { + "AIRBORNE": true, + "AMMO": 5, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 2, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": 203.3301696777344, + "Y": 1333.516357421875, + "Z": 7.125012397766113 + }, + "POWERUPS": null, + "SPEED": 191.8930366115457, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 19.7808837890625, + "Y": 169.6893310546875, + "Z": 0 + }, + "WEAPON": "ROCKET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:34 - --- +2025-12-29 08:08:37 - JSON Event received: +2025-12-29 08:08:37 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 34, + "ARMOR": 100, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 64, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -327.3202819824219, + "Y": 2175.96435546875, + "Z": -7.874999046325684 + }, + "POWERUPS": null, + "SPEED": 350.2278834023642, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 19.423828125, + "Y": 146.348876953125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 43, + "VICTIM": { + "AIRBORNE": false, + "AMMO": -1, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 3, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": -473.2381591796875, + "Y": 2263.515625, + "Z": -7.875000476837158 + }, + "POWERUPS": null, + "SPEED": 171.87282953175, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.723876953125, + "Y": -32.926025390625, + "Z": 0 + }, + "WEAPON": "GAUNTLET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:37 - --- +2025-12-29 08:08:37 - JSON Event received: +2025-12-29 08:08:37 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 34, + "ARMOR": 100, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 64, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -327.3202819824219, + "Y": 2175.96435546875, + "Z": -7.874999046325684 + }, + "POWERUPS": null, + "SPEED": 350.2278834023642, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 19.423828125, + "Y": 146.348876953125, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 43, + "VICTIM": { + "AIRBORNE": false, + "AMMO": -1, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 3, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": -473.2381591796875, + "Y": 2263.515625, + "Z": -7.875000476837158 + }, + "POWERUPS": null, + "SPEED": 171.87282953175, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.723876953125, + "Y": -32.926025390625, + "Z": 0 + }, + "WEAPON": "GAUNTLET" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:37 - --- +2025-12-29 08:08:42 - JSON Event received: +2025-12-29 08:08:42 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 72, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 52, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 198.0443725585938, + "Y": 1802.800415039062, + "Z": -7.872885227203369 + }, + "POWERUPS": null, + "SPEED": 330.8164851923193, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.0322265625, + "Y": -79.9090576171875, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 48, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 40, + "ARMOR": 1, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 304.5485229492188, + "Y": 1232.9189453125, + "Z": 48.125 + }, + "POWERUPS": null, + "SPEED": 311.8698897376917, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 11.07421875, + "Y": 100.316162109375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:42 - --- +2025-12-29 08:08:42 - JSON Event received: +2025-12-29 08:08:42 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 8, + "ARMOR": 72, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 52, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 198.0443725585938, + "Y": 1802.800415039062, + "Z": -7.872885227203369 + }, + "POWERUPS": null, + "SPEED": 330.8164851923193, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.0322265625, + "Y": -79.9090576171875, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "SHOTGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 48, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 40, + "ARMOR": 1, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 304.5485229492188, + "Y": 1232.9189453125, + "Z": 48.125 + }, + "POWERUPS": null, + "SPEED": 311.8698897376917, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 11.07421875, + "Y": 100.316162109375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:42 - --- +2025-12-29 08:08:45 - JSON Event received: +2025-12-29 08:08:45 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 75, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 11, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": 242.8883819580078, + "Y": 1300.280517578125, + "Z": 16.125 + }, + "POWERUPS": null, + "SPEED": 316.25956013218, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -6.5203857421875, + "Y": -46.142578125, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 51, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 5, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 519.8688354492188, + "Y": 1001.800842285156, + "Z": 80.12554931640625 + }, + "POWERUPS": null, + "SPEED": 334.0576648387221, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 9.16259765625, + "Y": 133.5992431640625, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:45 - --- +2025-12-29 08:08:45 - JSON Event received: +2025-12-29 08:08:45 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 75, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 11, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": 242.8883819580078, + "Y": 1300.280517578125, + "Z": 16.125 + }, + "POWERUPS": null, + "SPEED": 316.25956013218, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -6.5203857421875, + "Y": -46.142578125, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 51, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 5, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": 519.8688354492188, + "Y": 1001.800842285156, + "Z": 80.12554931640625 + }, + "POWERUPS": null, + "SPEED": 334.0576648387221, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 9.16259765625, + "Y": 133.5992431640625, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:45 - --- +2025-12-29 08:08:45 - JSON Event received: +2025-12-29 08:08:45 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 88, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 124, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 246.2126922607422, + "Y": 1809.522827148438, + "Z": 71.125 + }, + "POWERUPS": null, + "SPEED": 7.390475830121188, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 4.910888671875, + "Y": -85.1055908203125, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 52, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 75, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 1, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": 286.2553405761719, + "Y": 1245.613037109375, + "Z": 40.125 + }, + "POWERUPS": null, + "SPEED": 339.2160884856436, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.526611328125, + "Y": 43.83544921875, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:45 - --- +2025-12-29 08:08:45 - JSON Event received: +2025-12-29 08:08:45 - { + "DATA": { + "KILLER": { + "AIRBORNE": true, + "AMMO": 88, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 124, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": 246.2126922607422, + "Y": 1809.522827148438, + "Z": 71.125 + }, + "POWERUPS": null, + "SPEED": 7.390475830121188, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 4.910888671875, + "Y": -85.1055908203125, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 52, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 75, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 1, + "HOLDABLE": null, + "NAME": "Demona", + "POSITION": { + "X": 286.2553405761719, + "Y": 1245.613037109375, + "Z": 40.125 + }, + "POWERUPS": null, + "SPEED": 339.2160884856436, + "STEAM_ID": "0", + "STREAK": 1, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -3.526611328125, + "Y": 43.83544921875, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:45 - --- +2025-12-29 08:08:49 - JSON Event received: +2025-12-29 08:08:49 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 65, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 21, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -280.1607360839844, + "Y": 1343.336303710938, + "Z": -7.869753837585449 + }, + "POWERUPS": null, + "SPEED": 91.544569490085, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.833740234375, + "Y": 125.7659912109375, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 55, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -346.0759582519531, + "Y": 1435.693115234375, + "Z": -7.874695301055908 + }, + "POWERUPS": null, + "SPEED": 315.9973298937825, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 27.938232421875, + "Y": -53.7396240234375, + "Z": 0 + }, + "WEAPON": "GRENADE" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:49 - --- +2025-12-29 08:08:49 - JSON Event received: +2025-12-29 08:08:49 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 65, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 21, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -280.1607360839844, + "Y": 1343.336303710938, + "Z": -7.869753837585449 + }, + "POWERUPS": null, + "SPEED": 91.544569490085, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.833740234375, + "Y": 125.7659912109375, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "MACHINEGUN", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 55, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 4, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -346.0759582519531, + "Y": 1435.693115234375, + "Z": -7.874695301055908 + }, + "POWERUPS": null, + "SPEED": 315.9973298937825, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 27.938232421875, + "Y": -53.7396240234375, + "Z": 0 + }, + "WEAPON": "GRENADE" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:49 - --- +2025-12-29 08:08:49 - JSON Event received: +2025-12-29 08:08:49 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": -1, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -344.3859558105469, + "Y": 1441.751831054688, + "Z": -7.874644756317139 + }, + "POWERUPS": null, + "SPEED": 251.5982660910047, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0, + "Y": 305.6553344726562, + "Z": 0 + }, + "WEAPON": "GRENADE" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "GRENADE", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 55, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 65, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 21, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -280.1607360839844, + "Y": 1343.336303710938, + "Z": -7.869753837585449 + }, + "POWERUPS": null, + "SPEED": 560.104231371269, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.833740234375, + "Y": 125.7659912109375, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:49 - --- +2025-12-29 08:08:50 - JSON Event received: +2025-12-29 08:08:50 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": -1, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -344.3859558105469, + "Y": 1441.751831054688, + "Z": -7.874644756317139 + }, + "POWERUPS": null, + "SPEED": 251.5982660910047, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 0, + "Y": 305.6553344726562, + "Z": 0 + }, + "WEAPON": "GRENADE" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "GRENADE", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 55, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 65, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 21, + "HOLDABLE": null, + "NAME": "Wrack", + "POSITION": { + "X": -280.1607360839844, + "Y": 1343.336303710938, + "Z": -7.869753837585449 + }, + "POWERUPS": null, + "SPEED": 560.104231371269, + "STEAM_ID": "0", + "STREAK": 2, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 5.833740234375, + "Y": 125.7659912109375, + "Z": 0 + }, + "WEAPON": "MACHINEGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:50 - --- +2025-12-29 08:08:50 - JSON Event received: +2025-12-29 08:08:50 - { + "DATA": { + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MEDAL": "REVENGE", + "NAME": "Patriot", + "STEAM_ID": "0", + "TIME": 55, + "TOTAL": 1, + "WARMUP": false + }, + "TYPE": "PLAYER_MEDAL" +} +2025-12-29 08:08:50 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 32, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 55, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -1109.50146484375, + "Y": 1260.426513671875, + "Z": 24.12516403198242 + }, + "POWERUPS": null, + "SPEED": 235.0273754001861, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 7.4102783203125, + "Y": 2.61474609375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 63, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 1, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -731.5380859375, + "Y": 1282.631591796875, + "Z": -7.63282585144043 + }, + "POWERUPS": null, + "SPEED": 478.4720145943752, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -2.054443359375, + "Y": -177.38525390625, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_KILL" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "KILLER": { + "AIRBORNE": false, + "AMMO": 32, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 55, + "HOLDABLE": null, + "NAME": "Patriot", + "POSITION": { + "X": -1109.50146484375, + "Y": 1260.426513671875, + "Z": 24.12516403198242 + }, + "POWERUPS": null, + "SPEED": 235.0273754001861, + "STEAM_ID": "0", + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": 7.4102783203125, + "Y": 2.61474609375, + "Z": 0 + }, + "WEAPON": "PLASMA" + }, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MOD": "PLASMA_SPLASH", + "OTHER_TEAM_ALIVE": null, + "OTHER_TEAM_DEAD": null, + "ROUND": null, + "SUICIDE": false, + "TEAMKILL": false, + "TEAM_ALIVE": null, + "TEAM_DEAD": null, + "TIME": 63, + "VICTIM": { + "AIRBORNE": false, + "AMMO": 6, + "ARMOR": 0, + "BOT": true, + "BOT_SKILL": 5, + "HEALTH": 1, + "HOLDABLE": null, + "NAME": "Sorlag", + "POSITION": { + "X": -731.5380859375, + "Y": 1282.631591796875, + "Z": -7.63282585144043 + }, + "POWERUPS": null, + "SPEED": 478.4720145943752, + "STEAM_ID": "0", + "STREAK": 0, + "SUBMERGED": false, + "TEAM": 0, + "VIEW": { + "X": -2.054443359375, + "Y": -177.38525390625, + "Z": 0 + }, + "WEAPON": "SHOTGUN" + }, + "WARMUP": false + }, + "TYPE": "PLAYER_DEATH" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "ABORTED": false, + "DAMAGE": { + "DEALT": 783, + "TAKEN": 543 + }, + "DEATHS": 4, + "KILLS": 5, + "LOSE": 0, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MAX_STREAK": 2, + "MEDALS": { + "ACCURACY": 0, + "ASSISTS": 0, + "CAPTURES": 0, + "COMBOKILL": 0, + "DEFENDS": 0, + "EXCELLENT": 0, + "FIRSTFRAG": 1, + "HEADSHOT": 0, + "HUMILIATION": 0, + "IMPRESSIVE": 0, + "MIDAIR": 1, + "PERFECT": 0, + "PERFORATED": 0, + "QUADGOD": 0, + "RAMPAGE": 0, + "REVENGE": 1 + }, + "MODEL": "razor/patriot", + "NAME": "Patriot", + "PICKUPS": { + "AMMO": 4, + "ARMOR": 0, + "ARMOR_REGEN": 0, + "BATTLESUIT": 0, + "DOUBLER": 0, + "FLIGHT": 0, + "GREEN_ARMOR": 0, + "GUARD": 0, + "HASTE": 0, + "HEALTH": 1, + "INVIS": 0, + "INVULNERABILITY": 0, + "KAMIKAZE": 0, + "MEDKIT": 0, + "MEGA_HEALTH": 0, + "OTHER_HOLDABLE": 0, + "OTHER_POWERUP": 0, + "PORTAL": 0, + "QUAD": 0, + "RED_ARMOR": 0, + "REGEN": 0, + "SCOUT": 0, + "TELEPORTER": 0, + "YELLOW_ARMOR": 0 + }, + "PLAY_TIME": 63, + "QUIT": 0, + "RANK": 1, + "SCORE": 5, + "STEAM_ID": "0", + "TIED_RANK": 0, + "WARMUP": false, + "WEAPONS": { + "BFG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "CHAINGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GAUNTLET": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GRENADE": { + "D": 0, + "DG": 200, + "DR": 0, + "H": 2, + "K": 1, + "P": 1, + "S": 4, + "T": 10 + }, + "HMG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "LIGHTNING": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "MACHINEGUN": { + "D": 1, + "DG": 10, + "DR": 129, + "H": 2, + "K": 0, + "P": 0, + "S": 76, + "T": 64 + }, + "NAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "OTHER_WEAPON": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "PLASMA": { + "D": 1, + "DG": 307, + "DR": 26, + "H": 26, + "K": 3, + "P": 3, + "S": 82, + "T": 17 + }, + "PROXMINE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "RAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "ROCKET": { + "D": 0, + "DG": 266, + "DR": 79, + "H": 6, + "K": 1, + "P": 2, + "S": 8, + "T": 7 + }, + "SHOTGUN": { + "D": 2, + "DG": 0, + "DR": 309, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + } + }, + "WIN": 1 + }, + "TYPE": "PLAYER_STATS" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "ABORTED": false, + "DAMAGE": { + "DEALT": 649, + "TAKEN": 650 + }, + "DEATHS": 5, + "KILLS": 4, + "LOSE": 1, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MAX_STREAK": 2, + "MEDALS": { + "ACCURACY": 0, + "ASSISTS": 0, + "CAPTURES": 0, + "COMBOKILL": 0, + "DEFENDS": 0, + "EXCELLENT": 0, + "FIRSTFRAG": 0, + "HEADSHOT": 0, + "HUMILIATION": 0, + "IMPRESSIVE": 0, + "MIDAIR": 0, + "PERFECT": 0, + "PERFORATED": 0, + "QUADGOD": 0, + "RAMPAGE": 0, + "REVENGE": 0 + }, + "MODEL": "ranger/wrack", + "NAME": "Wrack", + "PICKUPS": { + "AMMO": 1, + "ARMOR": 7, + "ARMOR_REGEN": 0, + "BATTLESUIT": 0, + "DOUBLER": 0, + "FLIGHT": 0, + "GREEN_ARMOR": 0, + "GUARD": 0, + "HASTE": 0, + "HEALTH": 0, + "INVIS": 0, + "INVULNERABILITY": 0, + "KAMIKAZE": 0, + "MEDKIT": 0, + "MEGA_HEALTH": 0, + "OTHER_HOLDABLE": 0, + "OTHER_POWERUP": 0, + "PORTAL": 0, + "QUAD": 0, + "RED_ARMOR": 0, + "REGEN": 0, + "SCOUT": 0, + "TELEPORTER": 0, + "YELLOW_ARMOR": 0 + }, + "PLAY_TIME": 63, + "QUIT": 0, + "RANK": 2, + "SCORE": 4, + "STEAM_ID": "0", + "TIED_RANK": 1, + "WARMUP": false, + "WEAPONS": { + "BFG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "CHAINGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GAUNTLET": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GRENADE": { + "D": 1, + "DG": 0, + "DR": 121, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "HMG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "LIGHTNING": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "MACHINEGUN": { + "D": 0, + "DG": 260, + "DR": 115, + "H": 52, + "K": 2, + "P": 0, + "S": 191, + "T": 80 + }, + "NAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "OTHER_WEAPON": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "PLASMA": { + "D": 1, + "DG": 100, + "DR": 217, + "H": 5, + "K": 1, + "P": 2, + "S": 29, + "T": 6 + }, + "PROXMINE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "RAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "ROCKET": { + "D": 1, + "DG": 179, + "DR": 112, + "H": 2, + "K": 0, + "P": 3, + "S": 5, + "T": 3 + }, + "SHOTGUN": { + "D": 2, + "DG": 110, + "DR": 85, + "H": 23, + "K": 1, + "P": 2, + "S": 100, + "T": 7 + } + }, + "WIN": 0 + }, + "TYPE": "PLAYER_STATS" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "ABORTED": false, + "DAMAGE": { + "DEALT": 630, + "TAKEN": 537 + }, + "DEATHS": 3, + "ITEM_TIMING": { + "RED_ARMOR": 0 + }, + "KILLS": 4, + "LOSE": 1, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MAX_STREAK": 2, + "MEDALS": { + "ACCURACY": 0, + "ASSISTS": 0, + "CAPTURES": 0, + "COMBOKILL": 0, + "DEFENDS": 0, + "EXCELLENT": 0, + "FIRSTFRAG": 0, + "HEADSHOT": 0, + "HUMILIATION": 0, + "IMPRESSIVE": 0, + "MIDAIR": 0, + "PERFECT": 0, + "PERFORATED": 0, + "QUADGOD": 0, + "RAMPAGE": 0, + "REVENGE": 0 + }, + "MODEL": "sorlag", + "NAME": "Sorlag", + "PICKUPS": { + "AMMO": 2, + "ARMOR": 4, + "ARMOR_REGEN": 0, + "BATTLESUIT": 0, + "DOUBLER": 0, + "FLIGHT": 0, + "GREEN_ARMOR": 0, + "GUARD": 0, + "HASTE": 0, + "HEALTH": 3, + "INVIS": 0, + "INVULNERABILITY": 0, + "KAMIKAZE": 0, + "MEDKIT": 0, + "MEGA_HEALTH": 0, + "OTHER_HOLDABLE": 0, + "OTHER_POWERUP": 0, + "PORTAL": 0, + "QUAD": 0, + "RED_ARMOR": 1, + "REGEN": 0, + "SCOUT": 0, + "TELEPORTER": 0, + "YELLOW_ARMOR": 0 + }, + "PLAY_TIME": 63, + "QUIT": 0, + "RANK": 2, + "SCORE": 4, + "STEAM_ID": "0", + "TIED_RANK": 1, + "WARMUP": false, + "WEAPONS": { + "BFG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "CHAINGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GAUNTLET": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GRENADE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 1, + "S": 0, + "T": 0 + }, + "HMG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "LIGHTNING": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "MACHINEGUN": { + "D": 1, + "DG": 0, + "DR": 229, + "H": 0, + "K": 0, + "P": 0, + "S": 19, + "T": 52 + }, + "NAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "OTHER_WEAPON": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "PLASMA": { + "D": 2, + "DG": 170, + "DR": 108, + "H": 11, + "K": 1, + "P": 2, + "S": 16, + "T": 5 + }, + "PROXMINE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "RAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "ROCKET": { + "D": 0, + "DG": 0, + "DR": 200, + "H": 0, + "K": 0, + "P": 3, + "S": 0, + "T": 0 + }, + "SHOTGUN": { + "D": 0, + "DG": 460, + "DR": 0, + "H": 94, + "K": 3, + "P": 4, + "S": 560, + "T": 41 + } + }, + "WIN": 0 + }, + "TYPE": "PLAYER_STATS" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "ABORTED": false, + "DAMAGE": { + "DEALT": 275, + "TAKEN": 399 + }, + "DEATHS": 2, + "ITEM_TIMING": { + "MEGA_HEALTH": 1137 + }, + "KILLS": 1, + "LOSE": 1, + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MAX_STREAK": 1, + "MEDALS": { + "ACCURACY": 0, + "ASSISTS": 0, + "CAPTURES": 0, + "COMBOKILL": 0, + "DEFENDS": 0, + "EXCELLENT": 0, + "FIRSTFRAG": 0, + "HEADSHOT": 0, + "HUMILIATION": 0, + "IMPRESSIVE": 0, + "MIDAIR": 0, + "PERFECT": 0, + "PERFORATED": 0, + "QUADGOD": 0, + "RAMPAGE": 0, + "REVENGE": 0 + }, + "MODEL": "major/red", + "NAME": "Demona", + "PICKUPS": { + "AMMO": 4, + "ARMOR": 6, + "ARMOR_REGEN": 0, + "BATTLESUIT": 0, + "DOUBLER": 0, + "FLIGHT": 0, + "GREEN_ARMOR": 0, + "GUARD": 0, + "HASTE": 0, + "HEALTH": 0, + "INVIS": 0, + "INVULNERABILITY": 0, + "KAMIKAZE": 0, + "MEDKIT": 0, + "MEGA_HEALTH": 2, + "OTHER_HOLDABLE": 0, + "OTHER_POWERUP": 0, + "PORTAL": 0, + "QUAD": 0, + "RED_ARMOR": 0, + "REGEN": 0, + "SCOUT": 0, + "TELEPORTER": 0, + "YELLOW_ARMOR": 0 + }, + "PLAY_TIME": 63, + "QUIT": 0, + "RANK": 3, + "SCORE": 1, + "STEAM_ID": "0", + "TIED_RANK": 0, + "WARMUP": false, + "WEAPONS": { + "BFG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "CHAINGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "GAUNTLET": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 12 + }, + "GRENADE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "HMG": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 1, + "S": 0, + "T": 0 + }, + "LIGHTNING": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "MACHINEGUN": { + "D": 1, + "DG": 275, + "DR": 66, + "H": 55, + "K": 1, + "P": 0, + "S": 126, + "T": 86 + }, + "NAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "OTHER_WEAPON": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "PLASMA": { + "D": 1, + "DG": 0, + "DR": 163, + "H": 0, + "K": 0, + "P": 1, + "S": 0, + "T": 0 + }, + "PROXMINE": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "RAILGUN": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "ROCKET": { + "D": 0, + "DG": 0, + "DR": 0, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + }, + "SHOTGUN": { + "D": 0, + "DG": 0, + "DR": 170, + "H": 0, + "K": 0, + "P": 0, + "S": 0, + "T": 0 + } + }, + "WIN": 0 + }, + "TYPE": "PLAYER_STATS" +} +2025-12-29 08:08:57 - --- +2025-12-29 08:08:57 - JSON Event received: +2025-12-29 08:08:57 - { + "DATA": { + "ABORTED": false, + "CAPTURE_LIMIT": 8, + "EXIT_MSG": "Fraglimit hit.", + "FACTORY": "ffa", + "FACTORY_TITLE": "Free For All", + "FIRST_SCORER": "Patriot", + "FRAG_LIMIT": 5, + "GAME_LENGTH": 63, + "GAME_TYPE": "FFA", + "INFECTED": 0, + "INSTAGIB": 0, + "LAST_LEAD_CHANGE_TIME": 63400, + "LAST_SCORER": "Patriot", + "LAST_TEAMSCORER": "none", + "MAP": "hearth", + "MATCH_GUID": "0c1b571f-803e-4dc8-9605-148e75b65bb4", + "MERCY_LIMIT": 0, + "QUADHOG": 0, + "RESTARTED": 0, + "ROUND_LIMIT": 2, + "SCORE_LIMIT": 150, + "SERVER_TITLE": "[+] sexy Frei F\u00fcr Alli", + "TIME_LIMIT": 15, + "TRAINING": 0, + "TSCORE0": 0, + "TSCORE1": 0 + }, + "TYPE": "MATCH_REPORT" +} +2025-12-29 08:08:57 - --- diff --git a/state.py b/state.py index 80e2158..5508bae 100644 --- a/state.py +++ b/state.py @@ -70,9 +70,6 @@ class PlayerTracker: def update_team(self, name, team): """Update player team. Team can be int or string""" - if not self.server_info.is_team_mode(): - return - # Convert numeric team to string if isinstance(team, int): team = TEAM_MAP.get(team, 'FREE') @@ -161,8 +158,7 @@ class PlayerTracker: self.player_teams.pop(old_clean, None) # Add new team entries with color codes preserved - if self.server_info.is_team_mode(): - self.update_team(new_name, team) + self.update_team(new_name, team) logger.debug(f'Renamed player: {old_name} -> {new_name} (team: {team})') diff --git a/ui.py b/ui.py index 0166c52..1b6d178 100644 --- a/ui.py +++ b/ui.py @@ -354,13 +354,27 @@ class UIManager: print_colored(self.info_window, line, 0) else: warmup_display = "^3Warmup: ^2YES^9" if server_info.warmup else "^3Warmup: ^1NO^9" - print_colored(self.info_window, f"^0^3(FREE) {warmup_display}\n", 0) - free_players = teams['FREE'][:4] - for player in free_players: - print_colored(self.info_window, f"^0{player}^9\n", 0) - # Fill remaining lines - for i in range(4 - len(free_players)): - self.info_window.addstr("\n") + print_colored(self.info_window, f"^0^5(FREE) ^5(FREE) ^3(SPEC) {warmup_display}\n", 0) + free_players = teams['FREE'] + spec_players = teams['SPECTATOR'][:4] + free_col1 = free_players[:4] + free_col2 = free_players[4:8] + + for i in range(4): + col1 = free_col1[i] if i < len(free_col1) else '' + col2 = free_col2[i] if i < len(free_col2) else '' + spec = spec_players[i] if i < len(spec_players) else '' + + from formatter import strip_color_codes + col1_clean = strip_color_codes(col1) + col2_clean = strip_color_codes(col2) + spec_clean = strip_color_codes(spec) + + col1_pad = 24 - len(col1_clean) + col2_pad = 24 - len(col2_clean) + + line = f"^0{col1}^9{' ' * col1_pad}^0{col2}^9{' ' * col2_pad}^0{spec}^9\n" + print_colored(self.info_window, line, 0) # Blank lines to fill self.info_window.addstr("\n\n")