From 9443aaf053429070ad6e6b2058e7f89aeb3174e8 Mon Sep 17 00:00:00 2001 From: cetteup Date: Thu, 12 Oct 2023 00:10:43 +0200 Subject: [PATCH] docs: Document available stats keys and their meaning --- docs/keys/1943.md | 523 +++++++++++++++++++++++++++++++++++++ docs/keys/bad-company-2.md | 262 +++++++++++++++++++ docs/keys/bad-company.md | 211 +++++++++++++++ 3 files changed, 996 insertions(+) create mode 100644 docs/keys/1943.md create mode 100644 docs/keys/bad-company-2.md create mode 100644 docs/keys/bad-company.md diff --git a/docs/keys/1943.md b/docs/keys/1943.md new file mode 100644 index 0000000..733e7b1 --- /dev/null +++ b/docs/keys/1943.md @@ -0,0 +1,523 @@ +# Keys + +Available stats keys for Battlefield 1943. Extracted from the game files (`startup-00.fbrb`). Verified through additional research and testing. + +**Note:** +- All values are received as floating/decimal point numbers. The types listed in the tables refer to types the values could sensibly be casted to/stored as. +- Timestamps are received as the number of days since January 1, 2008 (`2008-01-01T00:00:00+00:00`). + +## General + +| Key | Description | Type | +|------------------|-------------------------------------------------------------------------------------------|-------| +| accuracy | Overall accuracy | float | +| c__ass_d_g | Rifleman class vehicle kills (destroyed) | int | +| c__ass_ko_g | Rifleman class kills | int | +| c__spe_d_g | Scout class vehicle kills (destroyed) | int | +| c__spe_ko_g | Scout class kills | int | +| c__sup_d_g | Infantry class vehicle kills (destroyed) | int | +| c__sup_ko_g | Infantry class kills | int | +| c_ass__da_g | Rifleman class deaths | int | +| c_loss_att_out_g | Games lost as attacker | int | +| c_loss_def_out_g | Games lost as defender | int | +| c_spe__da_g | Scout class deaths | int | +| c_sup__da_g | Infantry class deaths | int | +| c_win_att_out_g | Games won as attacker | int | +| c_win_def_out_g | Games won as defender | int | +| deaths | Overall deaths | int | +| dogr | Number of dogtags taken from player (non-unique) | int | +| dogt | Number of dogtags taken from (other) players (non-unique) | int | +| elo | ? | float | +| elo0 | ? | float | +| elo1 | ? | float | +| form | ? | ? | +| games | Games played | int | +| gm_coralsea | Games played on Coral Sea (air superiority mode) | int | +| kills | Overall kills | int | +| level | ? | ? | +| losses | Games lost | int | +| rank | Rank (0-50, [details](https://battlefield.fandom.com/wiki/Battlefield_1943_online_ranks)) | int | +| sc_bonus | Bonus score | int | +| sc_general | General score | int | +| sc_objective | Objective score | int | +| sc_squad | Squad score | int | +| sc_team | Team score | int | +| score | Overall score | int | +| slevel | ? | ? | +| spm | ? | float | +| spm0 | ? | float | +| spm1 | ? | float | +| srank | ? | ? | +| sveteran | ? | ? | +| teamkills | Overall teamkills | int | +| time | Time played (in seconds) | float | +| udogt | Number of dogtags taken from (other) players (unique) | int | +| veteran | Veteran status/rank ([info](https://battlefield.fandom.com/wiki/Battlefield_Veteran)) | int | +| webvet | ? | ? | +| wins | Games won | int | + +## Weapons + +**Images:** http://bf1943.statsverse.com/images/stats/weapons_128x32/{weapon}.png ([Example](http://bf1943.statsverse.com/images/stats/weapons_128x32/expackjap.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|---------------------|---------------------------------|-------------------------------| +| `c_{weapon}__dwa_g` | `StatEvent_DeathWith_X_As_Y` | Deaths with ¹ | +| `c_{weapon}__kw_g` | `StatEvent_KillWith_X_As_Y` | Kills with | +| `c_{weapon}__sfw_g` | `StatEvent_ShotsFired_With_X` | Shots fired with | +| `c_{weapon}__shw_g` | `StatEvent_ShotsHit_With_X` | Shots hit with | +| `c_{weapon}__sw_g` | `StatEvent_SecondsWith_X` | Seconds with | +| `c__{weapon}_hsa_g` | `StatEvent_HeadshotAs_X_With_Y` | Headshots received from | +| `c__{weapon}_hsh_g` | `StatEvent_Headshot_X_With_Y` | Headshots taken with | + +¹ it may seem like this is intended to reflect "deaths while weapon was equipped", but it is in fact "deaths from weapon"/"deaths to enemies using weapon" + +### Keys + +| Key | Description | Type | +|----------------------|------------------------------------------------|-------| +| c_ExpackJAP__dwa_g | Deaths from IJN explosives | int | +| c_ExpackJAP__kw_g | Kills with IJN explosives | int | +| c_ExpackJAP__sfw_g | Shots fired with IJN explosives | int | +| c_ExpackJAP__shw_g | Shots hit with IJN explosives | int | +| c_ExpackJAP__sw_g | Seconds with IJN explosives | float | +| c__ExpackJAP_hsa_g | Headshots received from IJN explosives | int | +| c__ExpackJAP_hsh_g | Headshots hit with IJN explosives | int | +| c_ExpackUS__dwa_g | Deaths from USMC explosives | int | +| c_ExpackUS__kw_g | Kills with USMC explosives | int | +| c_ExpackUS__sfw_g | Shots fired with USMC explosives | int | +| c_ExpackUS__shw_g | Shots hit with USMC explosives | int | +| c_ExpackUS__sw_g | Seconds with USMC explosives | float | +| c__ExpackUS_hsa_g | Headshots received from USMC explosives | int | +| c__ExpackUS_hsh_g | Headshots hit with USMC explosives | int | +| c_HGJAP__dwa_g | Deaths from IJN hand grenade | int | +| c_HGJAP__kw_g | Kills with IJN hand grenade | int | +| c_HGJAP__sfw_g | Shots fired with IJN hand grenade | int | +| c_HGJAP__shw_g | Shots hit with IJN hand grenade | int | +| c_HGJAP__sw_g | Seconds with IJN hand grenade | float | +| c__HGJAP_hsa_g | Headshots received from IJN hand grenade | int | +| c__HGJAP_hsh_g | Headshots hit with IJN hand grenade | int | +| c_HGUS__dwa_g | Deaths from USMC hand grenade | int | +| c_HGUS__kw_g | Kills with USMC hand grenade | int | +| c_HGUS__sfw_g | Shots fired with USMC hand grenade | int | +| c_HGUS__shw_g | Shots hit with USMC hand grenade | int | +| c_HGUS__sw_g | Seconds with USMC hand grenade | float | +| c__HGUS_hsa_g | Headshots received from USMC hand grenade | int | +| c__HGUS_hsh_g | Headshots hit with USMC hand grenade | int | +| c_JAPrf__dwa_g | Deaths from IJN rifle grenade | int | +| c_JAPrf__kw_g | Kills with IJN rifle grenade | int | +| c_JAPrf__sfw_g | Shots fired with IJN rifle grenade | int | +| c_JAPrf__shw_g | Shots hit with IJN rifle grenade | int | +| c_JAPrf__sw_g | Seconds with IJN rifle grenade | float | +| c__JAPrf_hsa_g | Headshots received from IJN rifle grenade | int | +| c__JAPrf_hsh_g | Headshots hit with IJN rifle grenade | int | +| c_K98__dwa_g | Deaths from Type 98 (scoped rifle) | int | +| c_K98__kw_g | Kills with Type 98 (scoped rifle) | int | +| c_K98__sfw_g | Shots fired with Type 98 (scoped rifle) | int | +| c_K98__shw_g | Shots hit with Type 98 (scoped rifle) | int | +| c_K98__sw_g | Seconds with Type 98 (scoped rifle) | float | +| c__K98_hsa_g | Headshots received from Type 98 (scoped rifle) | int | +| c__K98_hsh_g | Headshots hit with Type 98 (scoped rifle) | int | +| c_Knife__dwa_g | Deaths from Knife | int | +| c_Knife__kw_g | Kills with Knife | int | +| c_Knife__sfw_g | Shots fired with Knife | int | +| c_Knife__shw_g | Shots hit with Knife | int | +| c_Knife__sw_g | Seconds with Knife | float | +| c__Knife_hsa_g | Headshots received from Knife | int | +| c__Knife_hsh_g | Headshots hit with Knife | int | +| c_M18JAP__dwa_g | Deaths from IJN recoilless rifle | int | +| c_M18JAP__kw_g | Kills with IJN recoilless rifle | int | +| c_M18JAP__sfw_g | Shots fired with IJN recoilless rifle | int | +| c_M18JAP__shw_g | Shots hit with IJN recoilless rifle | int | +| c_M18JAP__sw_g | Seconds with IJN recoilless rifle | float | +| c__M18JAP_hsa_g | Headshots received from IJN recoilless rifle | int | +| c__M18JAP_hsh_g | Headshots hit with IJN recoilless rifle | int | +| c_M18US__dwa_g | Deaths from USMC recoilless rifle | int | +| c_M18US__kw_g | Kills with USMC recoilless rifle | int | +| c_M18US__sfw_g | Shots fired with USMC recoilless rifle | int | +| c_M18US__shw_g | Shots hit with USMC recoilless rifle | int | +| c_M18US__sw_g | Seconds with USMC recoilless rifle | float | +| c__M18US_hsa_g | Headshots received from USMC recoilless rifle | int | +| c__M18US_hsh_g | Headshots hit with USMC recoilless rifle | int | +| c_Nambu100__dwa_g | Deaths from Type 100 (SMG) | int | +| c_Nambu100__kw_g | Kills with Type 100 (SMG) | int | +| c_Nambu100__sfw_g | Shots fired with Type 100 (SMG) | int | +| c_Nambu100__shw_g | Shots hit with Type 100 (SMG) | int | +| c_Nambu100__sw_g | Seconds with Type 100 (SMG) | float | +| c__Nambu100_hsa_g | Headshots received from Type 100 (SMG) | int | +| c__Nambu100_hsh_g | Headshots hit with Type 100 (SMG) | int | +| c_Nambupistol__dwa_g | Deaths from Type 14 (pistol) | int | +| c_Nambupistol__kw_g | Kills with Type 14 (pistol) | int | +| c_Nambupistol__sfw_g | Shots fired with Type 14 (pistol) | int | +| c_Nambupistol__shw_g | Shots hit with Type 14 (pistol) | int | +| c_Nambupistol__sw_g | Seconds with Type 14 (pistol) | float | +| c__Nambupistol_hsa_g | Headshots received from Type 14 (pistol) | int | +| c__Nambupistol_hsh_g | Headshots hit with Type 14 (pistol) | int | +| c_Shingunto__dwa_g | Deaths from Shin gunto knife | int | +| c_Shingunto__kw_g | Kills with Shin gunto knife | int | +| c_Shingunto__sfw_g | Shots fired with Shin gunto knife | int | +| c_Shingunto__shw_g | Shots hit with Shin gunto knife | int | +| c_Shingunto__sw_g | Seconds with Shin gunto knife | float | +| c__Shingunto_hsa_g | Headshots received from Shin gunto knife | int | +| c__Shingunto_hsh_g | Headshots hit with Shin gunto knife | int | +| c_Springfield__dwa_g | Deaths from M1903 (scoped rifle) | int | +| c_Springfield__kw_g | Kills with M1903 (scoped rifle) | int | +| c_Springfield__sfw_g | Shots fired with M1903 (scoped rifle) | int | +| c_Springfield__shw_g | Shots hit with M1903 (scoped rifle) | int | +| c_Springfield__sw_g | Seconds with M1903 (scoped rifle) | float | +| c__Springfield_hsa_g | Headshots received from M1903 (scoped rifle) | int | +| c__Springfield_hsh_g | Headshots hit with M1903 (scoped rifle) | int | +| c_Thompson__dwa_g | Deaths from Thompson (SMG) | int | +| c_Thompson__kw_g | Kills with Thompson (SMG) | int | +| c_Thompson__sfw_g | Shots fired with Thompson (SMG) | int | +| c_Thompson__shw_g | Shots hit with Thompson (SMG) | int | +| c_Thompson__sw_g | Seconds with Thompson (SMG) | float | +| c__Thompson_hsa_g | Headshots received from Thompson (SMG) | int | +| c__Thompson_hsh_g | Headshots hit with Thompson (SMG) | int | +| c_Type5__dwa_g | Deaths from Type 5 (rifle) | int | +| c_Type5__kw_g | Kills with Type 5 (rifle) | int | +| c_Type5__sfw_g | Shots fired with Type 5 (rifle) | int | +| c_Type5__shw_g | Shots hit with Type 5 (rifle) | int | +| c_Type5__sw_g | Seconds with Type 5 (rifle) | float | +| c__Type5_hsa_g | Headshots received from Type 5 (rifle) | int | +| c__Type5_hsh_g | Headshots hit with Type 5 (rifle) | int | +| c_USrf__dwa_g | Deaths from USMC rifle grenade | int | +| c_USrf__kw_g | Kills with USMC rifle grenade | int | +| c_USrf__sfw_g | Shots fired with USMC rifle grenade | int | +| c_USrf__shw_g | Shots hit with USMC rifle grenade | int | +| c_USrf__sw_g | Seconds with USMC rifle grenade | float | +| c__USrf_hsa_g | Headshots received from USMC rifle grenade | int | +| c__USrf_hsh_g | Headshots hit with USMC rifle grenade | int | +| c_Wrenchjap__dwa_g | Deaths from IJN wrench | int | +| c_Wrenchjap__kw_g | Kills with IJN wrench | int | +| c_Wrenchjap__sfw_g | Shots fired with IJN wrench | int | +| c_Wrenchjap__shw_g | Shots hit with IJN wrench | int | +| c_Wrenchjap__sw_g | Seconds with IJN wrench | float | +| c__Wrenchjap_hsa_g | Headshots received from IJN wrench | int | +| c__Wrenchjap_hsh_g | Headshots hit with IJN wrench | int | +| c_Wrenchus__dwa_g | Deaths from USMC wrench | int | +| c_Wrenchus__kw_g | Kills with USMC wrench | int | +| c_Wrenchus__sfw_g | Shots fired with USMC wrench | int | +| c_Wrenchus__shw_g | Shots hit with USMC wrench | int | +| c_Wrenchus__sw_g | Seconds with USMC wrench | float | +| c__Wrenchus_hsa_g | Headshots received from USMC wrench | int | +| c__Wrenchus_hsh_g | Headshots hit with USMC wrench | int | +| c_bayonetJAP__dwa_g | Deaths from IJN bayonet | int | +| c_bayonetJAP__kw_g | Kills with IJN bayonet | int | +| c_bayonetJAP__sfw_g | Shots fired with IJN bayonet | int | +| c_bayonetJAP__shw_g | Shots hit with IJN bayonet | int | +| c_bayonetJAP__sw_g | Seconds with IJN bayonet | float | +| c__bayonetJAP_hsa_g | Headshots received from IJN bayonet | int | +| c__bayonetJAP_hsh_g | Headshots hit with IJN bayonet | int | +| c_bayonetUS__dwa_g | Deaths from USMC bayonet | int | +| c_bayonetUS__kw_g | Kills with USMC bayonet | int | +| c_bayonetUS__sfw_g | Shots fired with USMC bayonet | int | +| c_bayonetUS__shw_g | Shots hit with USMC bayonet | int | +| c_bayonetUS__sw_g | Seconds with USMC bayonet | float | +| c__bayonetUS_hsa_g | Headshots received from USMC bayonet | int | +| c__bayonetUS_hsh_g | Headshots hit with USMC bayonet | int | +| c_garand__dwa_g | Deaths from M1 (rifle) | int | +| c_garand__kw_g | Kills with M1 (rifle) | int | +| c_garand__sfw_g | Shots fired with M1 Garand (rifle) | int | +| c_garand__shw_g | Shots hit with M1 Garand (rifle) | int | +| c_garand__sw_g | Seconds with M1 Garand (rifle) | float | +| c__garand_hsa_g | Headshots received from M1 Garand (rifle) | int | +| c__garand_hsh_g | Headshots hit with M1 Garand (rifle) | int | +| c_m1911__dwa_g | Deaths from M1911 (pistol) | int | +| c_m1911__kw_g | Kills with M1911 (pistol) | int | +| c_m1911__sfw_g | Shots fired with M1911 (pistol) | int | +| c_m1911__shw_g | Shots hit with M1911 (pistol) | int | +| c_m1911__sw_g | Seconds with M1911 (pistol) | float | +| c__m1911_hsa_g | Headshots received from M1911 (pistol) | int | +| c__m1911_hsh_g | Headshots hit with M1911 (pistol) | int | +| c_road__dwa_g | Deaths from road kills | int | +| c_road__kw_g | Kills with road kills | int | +| c_road__sfw_g | Shots fired with road kills | int | +| c_road__shw_g | Shots hit with road kills | int | +| c_road__sw_g | Seconds with road kills | float | +| c__road_hsa_g | Headshots received from road kills | int | +| c__road_hsh_g | Headshots hit with road kills | int | + +## Vehicles + +**Images:** http://bf1943.statsverse.com/images/stats/vehicles_128x32/{vehicle}.png ([Example](http://bf1943.statsverse.com/images/stats/vehicles_128x32/chiha.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|-------------------------|-------------------------------|-------------------------------| +| `c_{vehicle}__si_g` | `StatEvent_SecondsIn_X` | Seconds in | +| `c__{vehicle}_db_g` | `StatEvent_DeathBy_X_In_Y` | Deaths by | +| `c__{vehicle}_di_g` | `StatEvent_Destroy_X_In_Y` | - | +| `c__{vehicle}_ki_g` | `StatEvent_KillOf_X_In_Y` | Kills in | +| `c_rok_{vehicle}_kwi_g` | `StatEvent_KillWith_X_In_Y` | Roadkills in | + +### Keys + +| Key | Description | Type | +|-----------------------|---------------------------------------------------|-------| +| c_Chiha__si_g | Seconds in Type 97 Chi-Ha (tank) | float | +| c__Chiha_db_g | Deaths from Type 97 Chi-Ha (tank) | int | +| c__Chiha_di_g | Vehicles destroyed in Type 97 Chi-Ha (tank) | int | +| c__Chiha_ki_g | Kills in Type 97 Chi-Ha (tank) | int | +| c_rok_Chiha_kwi_g | Road kills in Type 97 Chi-Ha (tank) | int | +| c_Corsair__si_g | Seconds in F4U Corsair (fighter plane) | float | +| c__Corsair_db_g | Deaths from F4U Corsair (fighter plane) | int | +| c__Corsair_di_g | Vehicles destroyed in F4U Corsair (fighter plane) | int | +| c__Corsair_ki_g | Kills in F4U Corsair (fighter plane) | int | +| c_rok_Corsair_kwi_g | Road kills in F4U Corsair (fighter plane) | int | +| c_Kuregane__si_g | Seconds in Type 95 Kurogane (car) | float | +| c__Kuregane_db_g | Deaths from Type 95 Kurogane (car) | int | +| c__Kuregane_di_g | Vehicles destroyed in Type 95 Kurogane (car) | int | +| c__Kuregane_ki_g | Kills in Type 95 Kurogane (car) | int | +| c_rok_Kuregane_kwi_g | Road kills in Type 95 Kurogane (car) | int | +| c_Sherman__si_g | Seconds in M4 Sherman (tank) | float | +| c__Sherman_db_g | Deaths from M4 Sherman (tank) | int | +| c__Sherman_di_g | Vehicles destroyed in M4 Sherman (tank) | int | +| c__Sherman_ki_g | Kills in M4 Sherman (tank) | int | +| c_rok_Sherman_kwi_g | Road kills in M4 Sherman (tank) | int | +| c_Willys__si_g | Seconds in Willys MB (car) | float | +| c__Willys_db_g | Deaths from Willys MB (car) | int | +| c__Willys_di_g | Vehicles destroyed in Willys MB (car) | int | +| c__Willys_ki_g | Kills in Willys MB (car) | int | +| c_rok_Willys_kwi_g | Road kills in Willys MB (car) | int | +| c_Zero__si_g | Seconds in A6M Zero (fighter plane) | float | +| c__Zero_db_g | Deaths from A6M Zero (fighter plane) | int | +| c__Zero_di_g | Vehicles destroyed in A6M Zero (fighter plane) | int | +| c__Zero_ki_g | Kills in A6M Zero (fighter plane) | int | +| c_rok_Zero_kwi_g | Road kills in A6M Zero (fighter plane) | int | +| c_aav__si_g | Seconds in anti aircraft guns | float | +| c__aav_db_g | Deaths from anti aircraft guns | int | +| c__aav_di_g | Vehicles destroyed in anti aircraft guns | int | +| c__aav_ki_g | Kills in anti aircraft guns | int | +| c_rok_aav_kwi_g | Road kills in anti aircraft guns | int | +| c_boav__si_g | Seconds in landing crafts | float | +| c__boav_db_g | Deaths from landing crafts | int | +| c__boav_di_g | Vehicles destroyed in landing crafts | int | +| c__boav_ki_g | Kills in landing crafts | int | +| c_rok_boav_kwi_g | Road kills in landing crafts | int | +| c_bombers__si_g | Seconds in bombing raids | float | +| c__bombers_db_g | Deaths from bombing raids | int | +| c__bombers_di_g | Vehicles destroyed in bombing raids | int | +| c__bombers_ki_g | Kills in bombing raids | int | +| c_rok_bombers_kwi_g | Road kills in bombing raids | int | +| c_mgstat__si_g | Seconds in heavy machine guns | float | +| c__mgstat_db_g | Deaths from heavy machine guns | int | +| c__mgstat_di_g | Vehicles destroyed in heavy machine guns | int | +| c__mgstat_ki_g | Kills in heavy machine guns | int | +| c_rok_mgstat_kwi_g | Road kills in heavy machine guns | int | +| c_parachute__si_g | Seconds in parachute | float | +| c__parachute_db_g | Deaths from parachute | int | +| c__parachute_di_g | Vehicles destroyed in parachute | int | +| c__parachute_ki_g | Kills in parachute | int | +| c_rok_parachute_kwi_g | Road kills in parachute | int | + +## Awards + +### Pattern + +There are at least two keys per awards, always following the same pattern. + +| Attribute | Description | +|-----------------|-----------------------------------------------------------------------------| +| `{award}_00` | Number of times awarded | +| `{award}_01` | Timestamp when (last) awarded | +| `c_{award}_...` | Key indicating progress towards award (optional, award may have multiple) ¹ | + +¹ stop counting once the award was obtained (e.g. c_ac11___ccp_g stops at 5, c_ac12___ccp_g at 25 control points captured) + +### Achievements + +Achievements can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bf1943.statsverse.com/images/stats/achievements_96x96/{base-key}.png ([Example](http://bf1943.statsverse.com/images/stats/achievements_96x96/ac2.png)) + +| Key | Description | Type | +|------------------------|---------------------------------------------------------------------------------------|-------| +| ac2_00 | "The Pacific Campaign: Win once on every map as any team" (number of times awarded) | int | +| ac2_01 | \[ac2\] Timestamp when awarded | float | +| c_ac2_win_gcanal_out_g | \[ac2\] Wins Guadalcanal | int | +| c_ac2_win_iwo_out_g | \[ac2\] Wins Iwo Jima | int | +| c_ac2_win_wake_out_g | \[ac2\] Wins Wake Island | int | +| ac3_00 | "Tour of Duty I: Play 30 matches" (number of times awarded) | int | +| ac3_01 | \[ac3\] Timestamp when awarded | float | +| c_ac3___out_g | \[ac3\] Games played | int | +| ac4_00 | "Melee Man: Melee kill one enemy player" (number of times awarded) | int | +| ac4_01 | \[ac4\] Timestamp when awarded | float | +| ac5_00 | "Master of your domain: Get one kill playing as each class" (number of times awarded) | int | +| ac5_01 | \[ac5\] Timestamp when awarded | float | +| c_ac5__ass_kw_g | \[ac5\] Kills as rifleman | int | +| c_ac5__spe_kw_g | \[ac5\] Kills as scout | int | +| c_ac5__sup_kw_g | \[ac5\] Kills as infantry | int | +| ac6_00 | "Motorman: Get one kill with car, tank and plane" (number of times awarded) | int | +| ac6_01 | \[ac6\] Timestamp when awarded | float | +| c_ac6__air_ki_g | \[ac6\] Kills with planes | int | +| c_ac6__jeep_ki_g | \[ac6\] Kills with cars | int | +| c_ac6__tank_ki_g | \[ac6\] Kills with tank | int | +| ac7_00 | "Parachutist: Use the parachute once (2 seconds)" (number of times awarded) | int | +| ac7_01 | \[ac7\] Timestamp when awarded | float | +| c_ac7_parachute__si_g | \[ac7\] Seconds in parachute | float | +| ac8_00 | "Milkrun: Fly a plane for 10 minutes" (number of times awarded) | int | +| ac8_01 | \[ac8\] Timestamp when awarded | float | +| c_ac8_planes__si_g | \[ac8\] Seconds in planes | float | +| ac10_00 | "Defender: Defend five flags" (number of times awarded) | int | +| ac10_01 | \[ac10\] Timestamp when awarded | float | +| c_ac10___dk_g | \[ac10\] Flags defended | int | +| ac11_00 | "Attacker: Capture five flags" (number of times awarded) | int | +| ac11_01 | \[ac11\] Timestamp when awarded | float | +| c_ac11___ccp_g | \[ac11\] Control points captured | int | +| ac12_00 | "Veteran: Cap 25 enemy flags" (number of times awarded) | int | +| ac12_01 | \[ac12\] Timestamp when awarded | float | +| c_ac12___ccp_g | \[ac12\] Control points captured | int | +| p6_00 | "Tour of Duty II: Play one hundred matches" (number of times awarded) | int | +| p6_01 | \[p6\] Timestamp when awarded | float | +| c_p6___out_g | \[p6\] Games played | int | +| pq3_00 | "Best Squad: Be in the best squad on all three maps" (number of times awarded) | int | +| pq3_01 | \[pq3\] Timestamp when awarded | float | +| c_pq3_gcanal__bc_g | \[pq3\] Best squads on Guadalcanal | int | +| c_pq3_iwo__bc_g | \[pq3\] Best squads on Iwo Jima | int | +| c_pq3_wake__bc_g | \[pq3\] Best squads on Wake Island | int | + +### Postcards + +Postcards can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bf1943.statsverse.com/images/stats/postcards_144x90/{base-key}.png ([Example](http://bf1943.statsverse.com/images/stats/postcards_144x90/op1.png)) + +| Key | Description | Type | +|------------------------|-------------------------------------------------------------------------------------------------------------|-------| +| op1_00 | "Attacker: Capture thirty flags" (number of times awarded) | int | +| op1_01 | \[op1\] Timestamp when awarded | float | +| c_op1___ccp_g | \[op1\] Control points captured | int | +| op2_00 | "Best squad: Be in the best squad 3 times on each map" (number of times awarded) | int | +| op2_01 | \[op2\] Timestamp when awarded | float | +| c_op2_gcanal__bc_g | \[op2\] Best squads on Guadalcanal | int | +| c_op2_iwo__bc_g | \[op2\] Best squads on Iwo Jima | int | +| c_op2_wake__bc_g | \[op2\] Best squads on Wake Island | int | +| op3_00 | "Defender: Defend thirty flags" (number of times awarded) | int | +| op3_01 | \[op3\] Timestamp when awarded | float | +| c_op3___dk_g | \[op3\] Flags defended | int | +| op4_00 | "Master of your domain: Get seventeen kills playing as each class" (number of times awarded) | int | +| op4_01 | \[op4\] Timestamp when awarded | float | +| c_op4__ass_kw_g | \[op4\] Kills as rifleman | int | +| c_op4__spe_kw_g | \[op4\] Kills as scout | int | +| c_op4__sup_kw_g | \[op4\] Kills as infantry | int | +| op5_00 | "Melee Man: Get twenty melee kills" (number of times awarded) | int | +| op5_01 | \[op5\] Timestamp when awarded | float | +| c_op5_melee__kw_g | \[op5\] Melee kills | int | +| op6_00 | "Milk run: Fly a plane for twenty minutes" (number of times awarded) | int | +| op6_01 | \[op6\] Timestamp when awarded | float | +| c_op6_planes__si_g | \[op6\] Seconds in planes | float | +| op7_00 | "Motorman: Get twenty five kills each with a car, tank and plane" (number of times awarded) | int | +| op7_01 | \[op7\] Timestamp when awarded | float | +| c_op7__air_ki_g | \[op7\] Kills with planes | int | +| c_op7__jeep_ki_g | \[op7\] Kills with cars | int | +| c_op7__tank_ki_g | \[op7\] Kills with tanks | int | +| op88_00 | "Parachutist: Use the parachute twice" (number of times awarded) | int | +| op88_01 | \[op88\] Timestamp when awarded | float | +| c_op88_parachute__si_g | \[op88\] Seconds in parachute | float | +| op9_00 | "The Pacific Campaign: Win twice on every map as any team" (number of times awarded) | int | +| op9_01 | \[op9\] Timestamp when awarded | float | +| c_op9_win_gcanal_out_g | \[op9\] Wins Guadalcanal | int | +| c_op9_win_iwo_out_g | \[op9\] Wins Iwo Jima | int | +| c_op9_win_wake_out_g | \[op9\] Wins Wake Island | int | +| op10_00 | "Tour of Duty I: Play fifty matches" (number of times awarded) | int | +| op10_01 | \[op10\] Timestamp when awarded | float | +| c_op10___out_g | \[op10\] Games played | int | +| op11_00 | "Tour of Duty II: Play one hundred and thirty matches" (number of times awarded) | int | +| op11_01 | \[op11\] Timestamp when awarded | float | +| c_op11___out_g | \[op11\] Games played | int | +| op12_00 | "Veteran: Capture fifty enemy flags" (number of times awarded) | int | +| op12_01 | \[op12\] Timestamp when awarded | float | +| c_op12___ccp_g | \[op12\] Control points captured | int | +| p1_00 | "Master Blaster: Kill fifty enemies with grenades, rifle grenades or explosivess" (number of times awarded) | int | +| p1_01 | \[p1\] Timestamp when awarded | float | +| c_p1_ex__kw_g | \[p1\] explosives kills | int | +| p2_00 | "Infrantryman: Kill fifty enemies with a submachine gun" (number of times awarded) | int | +| p2_01 | \[p2\] Timestamp when awarded | float | +| c_p2_smg__kw_g | \[p2\] SMG kills | int | +| p3_00 | "Rifleman: Kill fifty enemies with a semi-automatic rifle" (number of times awarded) | int | +| p3_01 | \[p3\] Timestamp when awarded | float | +| c_p3_rifles__kw_g | \[p3\] Semi-automatic rifle kills | int | +| p4_00 | "Sniper: Kill fifty enemies with a scoped rifle" (number of times awarded) | int | +| p4_01 | \[p4\] Timestamp when awarded | float | +| c_p4_Sniperrifle__kw_g | \[p4\] Sniper rifle kills | int | +| p5_00 | "The Best: Get the highest score in a match" (number of times awarded) | int | +| p5_01 | \[p5\] Timestamp when awarded | float | +| p7_00 | "Truly elite: Get ten thousand kills" (number of times awarded) | int | +| p7_01 | \[p7\] Timestamp when awarded | float | +| c_p7___ko_g | \[p7\] Kills | int | +| p10_00 | "Lifer: Reach top rank" (number of times awarded) | int | +| p10_01 | \[p10\] Timestamp when awarded | float | +| c_p10___ru_g | \[p10\] Rank | int | +| p11_00 | "Fighter ace: Get fifty kills using fighter planes" (number of times awarded) | int | +| p11_01 | \[p11\] Timestamp when awarded | float | +| c_p11__planes_ki_g | \[p11\] Plane kills | int | +| p12_00 | "Wheelman: Get fifty kills each using any vehicle" (number of times awarded) | int | +| p12_01 | \[p12\] Timestamp when awarded | float | +| c_p12__all_ki_g | \[p12\] Vehicle kills | int | +| pq2_00 | "Squad avenger: Avenge one hundred squad members" (number of times awarded) | int | +| pq2_01 | \[pq2\] Timestamp when awarded | float | +| c_pq2___sqa_g | \[pq2\] Squad avenger kills | int | +| pq4_00 | "Squad assister: Get one hundred squad assists" (number of times awarded) | int | +| pq4_01 | \[pq4\] Timestamp when awarded | float | +| c_pq4___sqs_g | \[pq4\] Squad assists | int | + +### Stamps + +Stamps can be awarded any number of times, so the `{award}_00` values (number of times awarded) can be `0.0` or any positive number. Requirements must be fulfilled within a single round, which why stamps do not have keys indicating progress. + +**Images:** http://bf1943.statsverse.com/images/stats/stamps_144x90/{base-key}.png ([Example](http://bf1943.statsverse.com/images/stats/stamps_144x90/s1.png)) + +| Key | Description | Type | +|----------|----------------------------------------------------------------------------------------------------|-------| +| s1_00 | "Anti tank efficiency: Kill four enemies with recoilless rifle" (number of times awarded) | int | +| s1_01 | \[s1\] Timestamp when last awarded | float | +| s2_00 | "explosivess efficiency: Kill four enemies with grenades or explosivess" (number of times awarded) | int | +| s2_01 | \[s2\] Timestamp when last awarded | float | +| s3_00 | "Knife efficiency: Kill four players with melee weapons" (number of times awarded) | int | +| s3_01 | \[s3\] Timestamp when last awarded | float | +| s4_00 | "Pistol efficiency: Kill four players with a pistol" (number of times awarded) | int | +| s4_01 | \[s4\] Timestamp when last awarded | float | +| s5_00 | "Rifle efficiency: Kill four enemies with a semi-automatic rifle" (number of times awarded) | int | +| s5_01 | \[s5\] Timestamp when last awarded | float | +| s6_00 | "Rifle grenade efficiency: Kill four enemies with rifle grenades" (number of times awarded) | int | +| s6_01 | \[s6\] Timestamp when last awarded | float | +| s7_00 | "SMG efficiency: Kill four enemies with a submachine gun" (number of times awarded) | int | +| s7_01 | \[s7\] Timestamp when last awarded | float | +| s8_00 | "Sniper efficiency: Kill four enemies with a scoped rifle" (number of times awarded) | int | +| s8_01 | \[s8\] Timestamp when last awarded | float | +| s9_00 | "Air superiority: Shoot down three bombers" (number of times awarded) | int | +| s9_01 | \[s9\] Timestamp when last awarded | float | +| s10_00 | "Attacker efficiency: Capture five enemy flags" (number of times awarded) | int | +| s10_01 | \[s10\] Timestamp when last awarded | float | +| s11_00 | "Defender efficiency: Defend five flags" (number of times awarded) | int | +| s11_01 | \[s11\] Timestamp when last awarded | float | +| s13_00 | "Leatherneck: Kill at least 20 enemies" (number of times awarded) | int | +| s13_01 | \[s13\] Timestamp when last awarded | float | +| s16_00 | "Vehicle assist efficiency: Get five vehicle assist kills" (number of times awarded) | int | +| s16_01 | \[s16\] Timestamp when last awarded | float | +| s17_00 | "Air defense efficiency: Kill two planes with an anti aircraft gun" (number of times awarded) | int | +| s17_01 | \[s17\] Timestamp when last awarded | float | +| s18_00 | "Boat efficiecncy: Get two kills while n a landing craft" (number of times awarded) | int | +| s18_01 | \[s18\] Timestamp when last awarded | float | +| s19_00 | "Bombing efficiency: Kill four enemies with bombing raids" (number of times awarded) | int | +| s19_01 | \[s19\] Timestamp when last awarded | float | +| s20_00 | "Car efficiency: Get four kills with a car" (number of times awarded) | int | +| s20_01 | \[s20\] Timestamp when last awarded | float | +| s21_00 | "HMG efficiency: Get four kills with a heavy machine gun" (number of times awarded) | int | +| s21_01 | \[s21\] Timestamp when last awarded | float | +| s22_00 | "Figher efficiency: Get five kills with a fighter plane" (number of times awarded) | int | +| s22_01 | \[s22\] Timestamp when last awarded | float | +| s23_00 | "Tank efficiency: Get four kills with a tank" (number of times awarded) | int | +| s23_01 | \[s23\] Timestamp when last awarded | float | +| s24_00 | "Vehicle destroyer: Destroy six vehicles in any fashion" (number of times awarded) | int | +| s24_01 | \[s24\] Timestamp when last awarded | float | +| sq1_00 | "Best squad: Be the best squad of the round" (number of times awarded) | int | +| sq1_01 | \[sq1\] Timestamp when last awarded | float | +| sq564_00 | "Squad excellence: Each squad member gets any one stamp and ten kills" (number of times awarded) | int | +| sq564_01 | \[sq564\] Timestamp when last awarded | float | +| sq85_00 | "Teamplayer: Get ten squad assists" (number of times awarded) | int | +| sq85_01 | \[sq85\] Timestamp when last awarded | float | diff --git a/docs/keys/bad-company-2.md b/docs/keys/bad-company-2.md new file mode 100644 index 0000000..3e424b2 --- /dev/null +++ b/docs/keys/bad-company-2.md @@ -0,0 +1,262 @@ +# Keys + +Available stats keys for Battlefield: Bad Company 2. Extracted from the game files (`startup-00.fbrb`). Verified through additional research and testing. + +**Note:** +- All values are received as floating/decimal point numbers. The types listed in the tables refer to types the values could sensibly be casted to/stored as. +- Timestamps are received as the number of days since January 1, 2008 (`2008-01-01T00:00:00+00:00`). + +## General + +| Key | Description | Type | +|------------------|-----------------------------------------------------------------------------------------------------|-------| +| accuracy | Overall accuracy | float | +| c___h_g | Heals | int | +| c___msa_g | Motion sensor spot assists | int | +| c___r_g | Repairs | int | +| c___res_g | Resupplies | int | +| c___rev_g | Revives | int | +| c___tag_g | Tracer darts planted | int | +| c__as_ko_g | Assault kit kills | int | +| c__de_ko_g | Engineer kit kills | int | +| c__re_ko_g | Recon kit kills | int | +| c__sp_ko_g | \[Unused, relict from Bad Company\] | int | +| c__su_ko_g | Medic kit kills | int | +| c_as__da_g | Assault kit deaths | int | +| c_de__da_g | Engineer kit deaths | int | +| c_loss_att_out_g | Games lost as attacker | int | +| c_loss_def_out_g | Games lost as defender | int | +| c_re__da_g | Recon kit deaths | int | +| c_sp__da_g | \[Unused, relict from Bad Company\] | int | +| c_su__da_g | Medic kit deaths | int | +| c_win_att_out_g | Games won as attacker | int | +| c_win_def_out_g | Games won as defender | int | +| deaths | Overall deaths | int | +| demo_rank | \[Unused, relict from Bad Company\] | int | +| dogr | Number of dogtags taken from player (non-unique) | int | +| dogt | Number of dogtags taken from (other) players (non-unique) | int | +| elo | ? | float | +| elo0 | ? | float | +| elo1 | ? | float | +| form | ? | int | +| games | Games played | int | +| goldedition | \[Unused, relict from Bad Company\] | bool | +| kills | Overall kills | int | +| level | ? | int | +| losses | Games lost | int | +| rank | Rank (0-50, [details](https://battlefield.fandom.com/wiki/Battlefield:_Bad_Company_2_online_ranks)) | int | +| sc_assault | Assault kit score | int | +| sc_award | Award score | int | +| sc_bonus | Bonus score | int | +| sc_demo | Engineer kit score | int | +| sc_general | General score | int | +| sc_objective | Objective score | int | +| sc_recon | Recon kit score | int | +| sc_squad | Squad score | int | +| sc_support | Medic kit score | int | +| sc_team | Team score | int | +| sc_vehicle | Vehicle score | int | +| score | Overall score | int | +| slevel | ? | ? | +| spm | ? | ? | +| spm0 | ? | ? | +| spm1 | ? | ? | +| srank | ? | ? | +| sveteran | ? | ? | +| teamkills | Overall teamkills | int | +| time | Time played (in seconds) | float | +| time_mp002_c | ? | ? | +| time_mp002_h | ? | ? | +| time_mp002_hc | ? | ? | +| time_mp002_n | ? | ? | +| time_mp004_c | ? | ? | +| time_mp004_h | ? | ? | +| time_mp004_hc | ? | ? | +| time_mp004_n | ? | ? | +| time_mp005_c | ? | ? | +| time_mp005_h | ? | ? | +| time_mp005_hc | ? | ? | +| time_mp005_n | ? | ? | +| time_mp008_c | ? | ? | +| time_mp008_h | ? | ? | +| time_mp008_hc | ? | ? | +| time_mp008_n | ? | ? | +| udogt | Number of dogtags taken from (other) players (unique) | int | +| ul_40mmsg | 40mm shotgun gadget unlocked | bool | +| ul_40mmsmk | 40mm smoke grenade launcher gadget unlocked | bool | +| ul_aks74u | ? | ? | +| ul_ammb | Ammo box gadget unlocked | ? | +| ul_an94 | AN94 assault rifle unlocked | ? | +| ul_atm | Anti-tank mine gadget unlocked | ? | +| ul_aug | ? | ? | +| ul_aui | ? | ? | +| ul_bay | ? | ? | +| ul_c4timed | ? | ? | +| ul_defi | Defibrillator gadget unlocked | ? | +| ul_f2000 | F2000 assault rifle unlocked | ? | +| ul_g3 | ? | ? | +| ul_gol | ? | ? | +| ul_ld | ? | ? | +| ul_m1 | ? | ? | +| ul_m136 | ? | ? | +| ul_m16 | ? | ? | +| ul_m16k | ? | ? | +| ul_m1911 | ? | ? | +| ul_m1a1 | ? | ? | +| ul_m249 | ? | ? | +| ul_m2cg | ? | ? | +| ul_m416 | ? | ? | +| ul_m60 | ? | ? | +| ul_m93r | ? | ? | +| ul_m95 | ? | ? | +| ul_m95k | ? | ? | +| ul_mcs | ? | ? | +| ul_medk | ? | ? | +| ul_mg3 | ? | ? | +| ul_mg36 | ? | ? | +| ul_mg3k | ? | ? | +| ul_mk14ebr | ? | ? | +| ul_mots | ? | ? | +| ul_mp412 | ? | ? | +| ul_mp443 | ? | ? | +| ul_mst | ? | ? | +| ul_n2k | ? | ? | +| ul_pp2 | ? | ? | +| ul_qbu88 | ? | ? | +| ul_qby88 | ? | ? | +| ul_qju88 | ? | ? | +| ul_rept | ? | ? | +| ul_s12k | ? | ? | +| ul_scar | ? | ? | +| ul_sp_alt_a | ? | ? | +| ul_sp_alt_r | ? | ? | +| ul_sp_alt_s | ? | ? | +| ul_sp_ammsupp | ? | ? | +| ul_sp_assault_a | ? | ? | +| ul_sp_assault_r | ? | ? | +| ul_sp_assault_s | ? | ? | +| ul_sp_bodarm | ? | ? | +| ul_sp_buldmplus | ? | ? | +| ul_sp_coaxmg | ? | ? | +| ul_sp_expdmplus | ? | ? | +| ul_sp_expsupp | ? | ? | +| ul_sp_grsupp | ? | ? | +| ul_sp_harveharm | ? | ? | +| ul_sp_lmg_aim | ? | ? | +| ul_sp_lmg_r | ? | ? | +| ul_sp_lmg_s | ? | ? | +| ul_sp_medheal | ? | ? | +| ul_sp_medradius | ? | ? | +| ul_sp_sczmplus | ? | ? | +| ul_sp_shotgun_c | ? | ? | +| ul_sp_shotgun_f | ? | ? | +| ul_sp_shotgun_s | ? | ? | +| ul_sp_smg_a | ? | ? | +| ul_sp_smg_r | ? | ? | +| ul_sp_smg_s | ? | ? | +| ul_sp_sniper_r | ? | ? | +| ul_sp_sniper_s | ? | ? | +| ul_sp_sprint | ? | ? | +| ul_sp_spscope | ? | ? | +| ul_sp_tnsmk | ? | ? | +| ul_sp_tnzm | ? | ? | +| ul_sp_vdamage | ? | ? | +| ul_sp_vehmosens | ? | ? | +| ul_sp_vreload | ? | ? | +| ul_spas12 | ? | ? | +| ul_spas15 | ? | ? | +| ul_sv98 | ? | ? | +| ul_svu | ? | ? | +| ul_t194 | ? | ? | +| ul_trad | ? | ? | +| ul_u12 | ? | ? | +| ul_ump | ? | ? | +| ul_umpk | ? | ? | +| ul_uzi | ? | ? | +| ul_vss | ? | ? | +| ul_xm8 | ? | ? | +| ul_xm8c | ? | ? | +| ul_xm8lmg | ? | ? | +| veteran | ? | ? | +| webstats | ? | ? | +| webvet | ? | ? | +| wins | ? | ? | + +## Weapons + +**Images:** http://bfbc2.statsverse.com/images/stats/weapons_128x32/{weapon}.png ([Example](http://bfbc2.statsverse.com/images/stats/weapons_128x32/9a91.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|---------------------|---------------------------------|-------------------------------| + +### Keys + +| Key | Description | Type | +|----------------------|------------------------------------------------|-------| + +## Vehicles + +**Images:** http://bfbc2.statsverse.com/images/stats/vehicles_128x32/{weapon}.png ([Example](http://bfbc2.statsverse.com/images/stats/vehicles_128x32/ah60.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|-------------------------|-------------------------------|-------------------------------| + +### Keys + +| Key | Description | Type | +|-----------------------|---------------------------------------------------|-------| + +## Awards + +### Pattern + +There are at least two keys per awards, always following the same pattern. + +| Attribute | Description | +|-----------------|-----------------------------------------------------------------------------| +| `{award}_00` | Number of times awarded | +| `{award}_01` | Timestamp when (last) awarded | +| `c_{award}_...` | Key indicating progress towards award (optional, award may have multiple) ¹ | + +[//]: # ( TODO: Check if this is the case for BC2 as well, update example keys ) +¹ stop counting once the award was obtained (e.g. c_ac11___ccp_g stops at 5, c_ac12___ccp_g at 25 control points captured) + +### Achievements + +Achievements can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc2.statsverse.com/images/stats/achievements_96x96/{base-key}.png ([Example](http://bfbc2.statsverse.com/images/stats/achievements_96x96/31.png)) + +| Key | Description | Type | +|------------------------|---------------------------------------------------------------------------------------|-------| + +### Wildcards + +Wildcards can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc2.statsverse.com/images/stats/wildcards_96x96/{base-key}.png ([Example](http://bfbc2.statsverse.com/images/stats/wildcards_96x96/wc01.png)) + +| Key | Description | Type | +|------------------------|-------------------------------------------------------------------------------------------------------------|-------| + +### Patches + +Patches can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc2.statsverse.com/images/stats/patches_96x96/{base-key}.png ([Example](http://bfbc2.statsverse.com/images/stats/patches_96x96/pb01.png)) + +| Key | Description | Type | +|------------------------|-------------------------------------------------------------------------------------------------------------|-------| + +### Trophies + +Trophies can be awarded any number of times, so the `{award}_00` values (number of times awarded) can be `0.0` or any positive number. Requirements must be fulfilled within a single round, which why stamps do not have keys indicating progress. + +**Images:** http://bfbc2.statsverse.com/images/stats/trophies_96x96/{base-key}.png ([Example](http://bfbc2.statsverse.com/images/stats/trophies_96x96/t01.png)) + +| Key | Description | Type | +|----------|----------------------------------------------------------------------------------------------------|-------| diff --git a/docs/keys/bad-company.md b/docs/keys/bad-company.md new file mode 100644 index 0000000..6e8f4bb --- /dev/null +++ b/docs/keys/bad-company.md @@ -0,0 +1,211 @@ +# Keys + +Available stats keys for Battlefield: Bad Company. Extracted from the game files (`startup-00.fbrb`). Verified through additional research and testing. + +**Note:** +- All values are received as floating/decimal point numbers. The types listed in the tables refer to types the values could sensibly be casted to/stored as. +- Timestamps are received as the number of days since January 1, 2008 (`2008-01-01T00:00:00+00:00`). + +## General + +Unlock status for the following weapons is not tracked as distinct keys, as they are included in the gold edition or unlocked by reaching rank 25: +* AN94 assault rifle +* SPAS15 shotgun +* VSS scoped rifle +* XM8C submachine gun +* MG3 light machine gun + +| Key | Description | Type | +|------------------|-------------------------------------------------------------------------------------------------------|-------| +| accuracy | Overall accuracy | float | +| c__as_ko_g | Assault kit kills | int | +| c__de_ko_g | Demolition kit kills | int | +| c__re_ko_g | Recon kit kills | int | +| c__sp_ko_g | Specialist kit kills | int | +| c__su_ko_g | Support kit kills | int | +| c_as__da_g | Assault kit deaths | int | +| c_de__da_g | Demolition kit deaths | int | +| c_loss_att_out_g | Games lost as attacker | int | +| c_loss_def_out_g | Games lost as defender | int | +| c_re__da_g | Recon kit deaths | int | +| c_sp__da_g | Specialist kit deaths | int | +| c_su__da_g | Support kit deaths | int | +| c_win_att_out_g | Games won as attacker | int | +| c_win_def_out_g | Games won as defender | int | +| deaths | Overall deaths | int | +| demo_rank | Rank reached in demo version | int | +| dogr | Number of dogtags taken from player (non-unique) | int | +| dogt | Number of dogtags taken from (other) players (non-unique) | int | +| elo | ? | float | +| elo0 | ? | float | +| elo1 | ? | float | +| form | ? | int | +| games | Games played | int | +| goldedition | Player owns gold edition | bool | +| kills | Overall kills | ? | +| le_an94 | ? | ? | +| le_mg3 | ? | ? | +| le_spas15 | ? | ? | +| le_vss | ? | ? | +| le_xm8c | ? | ? | +| level | ? | int | +| losses | Games lost | int | +| mp_an94 | ? | ? | +| mp_atm | ? | ? | +| mp_aui | ? | ? | +| mp_c4 | ? | ? | +| mp_f2000 | ? | ? | +| mp_ld | ? | ? | +| mp_m16 | ? | ? | +| mp_m60 | ? | ? | +| mp_m95 | ? | ? | +| mp_mg3 | ? | ? | +| mp_mg36 | ? | ? | +| mp_mrt | ? | ? | +| mp_ns2000 | ? | ? | +| mp_pp2000 | ? | ? | +| mp_qby88 | ? | ? | +| mp_spas12 | ? | ? | +| mp_spas15 | ? | ? | +| mp_svu | ? | ? | +| mp_ump | ? | ? | +| mp_usas12 | ? | ? | +| mp_uzi | ? | ? | +| mp_vss | ? | ? | +| mp_xm8 | ? | ? | +| mp_xm8c | ? | ? | +| mp_xm8lmg | ? | ? | +| rank | Rank (0-25, [details](https://battlefield.fandom.com/wiki/Battlefield:_Bad_Company_Online_Ranks)) | int | +| re_f2000 | F2000 assault rifle unlocked ([trivia](https://battlefield.fandom.com/wiki/F2000/Bad_Company#Trivia)) | bool | +| re_m60 | M60 light machine gun unlocked | bool | +| re_qby88 | QBU88 scoped rifle unlocked | bool | +| re_usas12 | USAS12 shotgun unlocked | bool | +| re_uzi | UZI submachine gun unlocked | bool | +| sc_bonus | Bonus score | ? | +| sc_general | General score | ? | +| sc_objective | Objective score | ? | +| sc_squad | Squad score | ? | +| sc_team | Team score | ? | +| score | Overall score | ? | +| slevel | ? | ? | +| spm | ? | float | +| spm0 | ? | float | +| spm1 | ? | float | +| srank | ? "Seen rank" (difference between srank and rank seems to trigger rank up shown in game) | int | +| sveteran | ? | int | +| teamkills | Overall teamkills | int | +| time | Time played (in seconds) | float | +| ts_atm | ? | ? | +| ts_aui | ? | ? | +| ts_c4 | ? | ? | +| ts_ld | ? | ? | +| ts_m16 | ? | ? | +| ts_m95 | ? | ? | +| ts_mg36 | ? | ? | +| ts_mrt | ? | ? | +| ts_ns2000 | ? | ? | +| ts_pp2000 | ? | ? | +| ts_spas12 | ? | ? | +| ts_svu | ? | ? | +| ts_ump | ? | ? | +| ts_xm8 | ? | ? | +| ts_xm8lmg | ? | ? | +| udogt | Number of dogtags taken from (other) players (unique) | int | +| ul_atm | ATM-00 vehicle mine unlocked | bool | +| ul_aui | LIFE-2 chemical dispenser unlocked | bool | +| ul_c4 | ? DTN-4 explosives unlocked | bool | +| ul_ld | LZ-537 target designator unlocked | bool | +| ul_m16 | M16 assault rifle unlocked | bool | +| ul_m95 | M95 scoped rifle unlocked | bool | +| ul_mg36 | MG36 light machine gun unlocked | bool | +| ul_mrt | MRTR-5 mortar unlocked | bool | +| ul_ns2000 | NS2000 shotgun unlocked | bool | +| ul_pp2000 | PP2000 submarine gun unlocked | bool | +| ul_spas12 | SPAS12 shotgun unlocked | bool | +| ul_svu | SVU scoped rifle unlocked | bool | +| ul_ump | UMP submachine gun unlocked | bool | +| ul_xm8 | XM8 assault rifle unlocked | bool | +| ul_xm8lmg | XM8 light machine gun unlocked | bool | +| veteran | Veteran status/rank ([info](https://battlefield.fandom.com/wiki/Battlefield_Veteran)) | int | +| webstats | ? | ? | +| webvet | ? | int | +| wins | Games won | ? | + +## Weapons + +**Images:** http://bfbc.statsverse.com/images/stats/weapons_128x32/{weapon}.png ([Example](http://bfbc.statsverse.com/images/stats/weapons_128x32/9a91.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|---------------------|---------------------------------|-------------------------------| + +### Keys + +| Key | Description | Type | +|----------------------|------------------------------------------------|-------| + +## Vehicles + +**Images:** http://bfbc.statsverse.com/images/stats/vehicles_128x32/{weapon}.png ([Example](http://bfbc.statsverse.com/images/stats/vehicles_128x32/ah60.png)) + +### Pattern + +| Attribute | Measuring (as per game files) | Description (from game files) | +|-------------------------|-------------------------------|-------------------------------| + +### Keys + +| Key | Description | Type | +|-----------------------|---------------------------------------------------|-------| + +## Awards + +### Pattern + +There are at least two keys per awards, always following the same pattern. + +| Attribute | Description | +|-----------------|-----------------------------------------------------------------------------| +| `{award}_00` | Number of times awarded | +| `{award}_01` | Timestamp when (last) awarded | +| `c_{award}_...` | Key indicating progress towards award (optional, award may have multiple) ¹ | + +[//]: # ( TODO: Check if this is the case for BC as well, update example keys ) +¹ stop counting once the award was obtained (e.g. c_ac11___ccp_g stops at 5, c_ac12___ccp_g at 25 control points captured) + +### Achievements + +Achievements can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc.statsverse.com/images/stats/achievements_96x96/{base-key}.png ([Example](http://bfbc.statsverse.com/images/stats/achievements_96x96/ac33.png)) + +| Key | Description | Type | +|------------------------|---------------------------------------------------------------------------------------|-------| + +### Wildcards + +Wildcards can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc.statsverse.com/images/stats/wildcards_96x96/{base-key}.png ([Example](http://bfbc.statsverse.com/images/stats/wildcards_96x96/wc01.png)) + +| Key | Description | Type | +|------------------------|-------------------------------------------------------------------------------------------------------------|-------| + +### Patches + +Patches can only be awarded once, so the `{award}_00` values (number of times awarded) will all be `0.0` or `1.0`. + +**Images:** http://bfbc.statsverse.com/images/stats/patches_96x96/{base-key}.png ([Example](http://bfbc.statsverse.com/images/stats/patches_96x96/pb01.png)) + +| Key | Description | Type | +|------------------------|-------------------------------------------------------------------------------------------------------------|-------| + +### Trophies + +Trophies can be awarded any number of times, so the `{award}_00` values (number of times awarded) can be `0.0` or any positive number. Requirements must be fulfilled within a single round, which why stamps do not have keys indicating progress. + +**Images:** http://bfbc.statsverse.com/images/stats/trophies_96x96/{base-key}.png ([Example](http://bfbc.statsverse.com/images/stats/trophies_96x96/t01.png)) + +| Key | Description | Type | +|----------|----------------------------------------------------------------------------------------------------|-------|