diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -33,6 +33,13 @@
     $ octane first.replay second.replay > replays.json
     ```
 
+Rocket League saves your replays in a folder that depends on your operating
+system.
+
+- Windows: `%UserProfile%\Documents\My Games\Rocket League\TAGame\Demos`
+- macOS: `$HOME/Library/Application Support/Rocket League/TAGame/Demos`
+- Linux: `$HOME/.local/share/Rocket League/TAGame/Demos`
+
 Octane is written in Haskell. If you're looking for a library written in
 another language, check out the [Rocket League Replays wiki][]. It has links to
 many other Rocket League replay parsers.
diff --git a/data/products.json b/data/products.json
--- a/data/products.json
+++ b/data/products.json
@@ -11,6 +11,7 @@
   "Antenna_Cupcake": 393,
   "Antenna_DiscoBall": 800,
   "Antenna_Disconnected": 394,
+  "Antenna_DIV": 918,
   "Antenna_DLZ": 1351,
   "Antenna_DogBalloon": 752,
   "Antenna_DollarSign": 3,
@@ -58,6 +59,7 @@
   "Antenna_UtopiaBall": 576,
   "Antenna_VGA_Statue": 655,
   "Antenna_Waffle": 401,
+  "Antenna_WakeupShip": 1347,
   "Antenna_WastelandBall": 577,
   "Antenna_Witcher3_Medallion": 749,
   "Antenna_Worms_Grenade": 1000,
@@ -69,6 +71,7 @@
   "AT_Warframe_Chroma": 682,
   "AT_Warframe_Excalibur": 684,
   "AT_Warframe_Loki": 683,
+  "BlackMarketTest_Skin": 1412,
   "Body_Aftershock": 1286,
   "Body_Backfire": 21,
   "Body_Darkcar": 803,
@@ -79,15 +82,19 @@
   "Body_Interceptor": 600,
   "Body_Marauder": 1172,
   "Body_MuscleCar": 403,
+  "Body_MuscleCar2": 1018,
   "Body_NeoBike": 1317,
   "Body_NeoCar": 1171,
   "Body_Octane": 23,
   "Body_Orion": 24,
   "Body_Rhino": 25,
+  "Body_Rhino2": 1300,
   "Body_Scarab": 404,
   "Body_Spark": 26,
   "Body_SweetTooth": 27,
+  "body_takumi_ii": 1295,
   "Body_Torch": 28,
+  "Body_Torch2": 1159,
   "Body_Torment": 29,
   "Body_Vanquish": 30,
   "Body_Venom": 31,
@@ -131,7 +138,9 @@
   "Boost_Nitrous": 384,
   "Boost_NutsBolts": 544,
   "Boost_Overcharge": 714,
+  "Boost_Pixels": 1092,
   "Boost_Plasma": 52,
+  "boost_plexus": 1158,
   "Boost_Presents": 635,
   "Boost_Propulsion_Blue": 54,
   "Boost_Propulsion_Green": 55,
@@ -155,6 +164,7 @@
   "Boost_Standard": 63,
   "Boost_Star": 1337,
   "Boost_Stars": 545,
+  "Boost_Stylized": 1093,
   "Boost_SweetTooth": 68,
   "Boost_Toon": 1094,
   "Boost_UVGun": 718,
@@ -458,6 +468,7 @@
   "flag_denver_nuggets": 1252,
   "Flag_Destructoid": 724,
   "flag_detroit_pistons": 1253,
+  "Flag_Discord": 1454,
   "Flag_DyingLight": 1304,
   "Flag_EdgeOfSpace": 213,
   "Flag_Epic_BlueFlag": 484,
@@ -492,7 +503,9 @@
   "Flag_Operation_Sports": 726,
   "flag_orlando_magic": 1267,
   "Flag_PanicButton": 829,
+  "Flag_PAX": 916,
   "Flag_PCGamer": 667,
+  "Flag_PennyArcade": 917,
   "flag_philadelphia_76ers": 1268,
   "flag_phoenix_suns": 1269,
   "Flag_Pirate": 217,
@@ -504,6 +517,7 @@
   "Flag_RocketBeans": 869,
   "flag_sacramento_kings": 1271,
   "flag_sanantonio_spurs": 1272,
+  "Flag_ScrewAttack": 1331,
   "Flag_Shacknews": 1213,
   "Flag_Shadowgate": 218,
   "Flag_SomethingAwful": 699,
@@ -532,6 +546,7 @@
   "Hat_Beret": 775,
   "Hat_BikerHat": 776,
   "Hat_BirthdayCake": 789,
+  "Hat_BlackMarketPreview": 1470,
   "Hat_BoomBox": 521,
   "Hat_Boot": 740,
   "Hat_Bow": 811,
@@ -550,6 +565,7 @@
   "Hat_DerbyHat": 790,
   "Hat_DetectiveHat": 742,
   "Hat_DevilHorns": 229,
+  "hat_dot": 1344,
   "HAT_DoughboyHelmet": 743,
   "Hat_DWI": 494,
   "Hat_Fez": 230,
@@ -599,6 +615,9 @@
   "Hat_Witch": 242,
   "Hat_WizardHat": 243,
   "Hat_Worms": 1028,
+  "ItemContainer_2_Default": 1429,
+  "ItemContainer_Default": 1009,
+  "Key": 1353,
   "Logo_Barracudas": 244,
   "Logo_Blacklight": 245,
   "Logo_Bombers": 246,
@@ -657,18 +676,25 @@
   "Skin_Backfire_Stripes": 292,
   "Skin_Backfire_Tech": 293,
   "Skin_Backfire_Wings": 294,
+  "skin_force_cyberpunk": 1456,
+  "Skin_Force_EdgeDots": 1096,
   "Skin_Force_Flames": 295,
   "Skin_Force_Junk": 1178,
   "Skin_Force_Lightning": 296,
+  "Skin_Force_PassingBreeze": 1102,
   "Skin_Force_Skulls": 297,
   "Skin_Force_Stars": 298,
   "Skin_Force_Stripes": 299,
   "Skin_Force_Tech": 300,
   "Skin_Force_Wings": 301,
+  "skin_heatwave": 1435,
+  "Skin_Import_Anubis": 1047,
+  "Skin_Import_Combo": 1048,
   "Skin_Import_Gato": 497,
   "Skin_Import_Nitrous": 498,
   "Skin_Import_Ohai": 499,
   "Skin_Import_Stripes": 501,
+  "skin_import_sugarwizzle": 1455,
   "Skin_Import_Technologic": 502,
   "Skin_Import_Wisp": 503,
   "Skin_Interceptor_Flames": 669,
@@ -677,6 +703,7 @@
   "Skin_Interceptor_Sandgirl": 701,
   "Skin_Interceptor_Spikes": 671,
   "Skin_Interceptor_Tribal": 672,
+  "Skin_Labyrinth": 1436,
   "skin_marauder_avalanche": 1345,
   "Skin_Marauder_BigBuck": 1340,
   "skin_marauder_gasmask": 1346,
@@ -685,11 +712,20 @@
   "skin_marauder_wings": 1352,
   "Skin_MuscleCar_Diammond": 1179,
   "Skin_MuscleCar_Flames": 504,
+  "skin_musclecar_oldface": 1453,
+  "Skin_MuscleCar_Rooster": 1130,
   "Skin_MuscleCar_Skorpion": 506,
   "Skin_MuscleCar_Skulls": 507,
+  "Skin_MuscleCar_SnakeSkin": 1131,
   "Skin_MuscleCar_Stripes": 508,
   "Skin_MuscleCar_Tribal": 509,
   "Skin_MuscleCar_Wings": 510,
+  "skin_musclecar2_flames": 1030,
+  "skin_musclecar2_protractor": 1032,
+  "skin_musclecar2_stripes": 1034,
+  "skin_musclecar2_sunburst": 1035,
+  "skin_musclecar2_techno": 1036,
+  "skin_musclecar2_wings": 1037,
   "Skin_NeoBike_Cutter": 1320,
   "Skin_NeoBike_FormulaIII": 1321,
   "Skin_NeoBike_Kaiju": 1322,
@@ -702,6 +738,8 @@
   "Skin_NeoCar_Stars": 1174,
   "Skin_NeoCar_Stripes": 1175,
   "Skin_NeoCar_Track": 1176,
+  "Skin_Octane_Dragon": 1059,
+  "Skin_Octane_EdgeStatic": 1062,
   "Skin_Octane_Flames": 302,
   "Skin_Octane_Lightning": 303,
   "Skin_Octane_Racer": 1065,
@@ -717,19 +755,28 @@
   "Skin_Orion_Stripes": 313,
   "Skin_Orion_Tech": 314,
   "Skin_Orion_Wings": 315,
+  "Skin_Pixelfire": 1437,
   "Skin_Rhino_Flames": 316,
   "Skin_Rhino_Lightning": 317,
+  "Skin_Rhino_Premium_Stripes": 1442,
   "Skin_Rhino_Skulls": 318,
   "Skin_Rhino_Stars": 319,
   "Skin_Rhino_Stripes": 320,
   "Skin_Rhino_TechSplat": 321,
   "Skin_Rhino_Wings": 322,
+  "skin_rhino2_dragginwagon": 1426,
+  "skin_rhino2_military": 1211,
+  "skin_rhino2_muerto": 1427,
+  "skin_rhino2_munchkin": 1428,
+  "Skin_Rhino2_RollOut": 1283,
+  "Skin_Rhino2_SpaceTrip": 1284,
   "Skin_Scarab_Clouds": 585,
   "Skin_Scarab_Flames": 591,
   "Skin_Scarab_Hearts": 586,
   "Skin_Scarab_RollerDerby": 592,
   "Skin_Scarab_Tiger": 587,
   "Skin_Scarab_Tribal": 588,
+  "Skin_Slipstream": 1438,
   "Skin_Spark_Flames": 323,
   "Skin_Spark_Lightning": 324,
   "Skin_Spark_Skulls": 325,
@@ -737,13 +784,26 @@
   "Skin_Spark_Stripes": 327,
   "Skin_Spark_Tech": 328,
   "Skin_Spark_Wings": 329,
+  "skin_takumi_ii_blackwork": 1299,
+  "skin_takumi_ii_budokan": 1297,
+  "skin_takumi_ii_inkstroke": 1298,
+  "skin_takumi_ii_rockat": 1301,
+  "skin_takumi_ii_skullface": 1296,
+  "skin_takumi_ii_stripes": 1302,
   "Skin_Torch_Flames": 330,
   "Skin_Torch_Lightning": 331,
   "Skin_Torch_Skulls": 332,
+  "Skin_Torch_SnakeSkin": 1449,
   "Skin_Torch_Stars": 333,
   "Skin_Torch_Stripes": 334,
   "Skin_Torch_Tech": 335,
   "Skin_Torch_Wings": 336,
+  "Skin_Torch2_Devil": 1160,
+  "Skin_Torch2_Hyper": 1167,
+  "Skin_Torch2_Star": 1168,
+  "Skin_Torch2_Stripes": 1163,
+  "Skin_Torch2_Techno": 1164,
+  "Skin_Torch2_Wings": 1165,
   "Skin_Torment_Flames": 337,
   "Skin_Torment_Lightning": 338,
   "Skin_Torment_Skulls": 339,
@@ -754,14 +814,17 @@
   "Skin_Vanquish_Dots": 344,
   "Skin_Vanquish_Flames": 345,
   "Skin_Vanquish_Lightning": 346,
+  "Skin_Vanquish_Narwhal": 1458,
   "Skin_Vanquish_Skulls": 347,
   "Skin_Vanquish_Stars": 348,
   "Skin_Vanquish_Stripes": 349,
   "Skin_Vanquish_Wings": 350,
+  "Skin_Vanquish_Wizard": 1079,
   "Skin_Venom_Dots": 351,
   "Skin_Venom_Flames": 352,
   "Skin_Venom_Flex": 1084,
   "Skin_Venom_Lightning": 353,
+  "Skin_Venom_Purrnado": 1087,
   "Skin_Venom_Skulls": 354,
   "Skin_Venom_Stripes": 355,
   "Skin_Venom_Tagged": 356,
@@ -807,6 +870,8 @@
   "WHEEL_Bling": 361,
   "WHEEL_Brink": 362,
   "WHEEL_Caliber": 363,
+  "wheel_cannonboy": 1480,
+  "WHEEL_CarCar": 1423,
   "WHEEL_Carriage": 549,
   "WHEEL_Cog": 716,
   "WHEEL_Crypt": 364,
@@ -816,6 +881,9 @@
   "WHEEL_Forge": 367,
   "WHEEL_GreyCar": 609,
   "WHEEL_Hydra": 368,
+  "WHEEL_Lightning": 731,
+  "WHEEL_LightWheel": 517,
+  "WHEEL_LoneWolf": 818,
   "WHEEL_LowRider": 369,
   "Wheel_Marauder": 1343,
   "WHEEL_Mob": 370,
@@ -824,6 +892,7 @@
   "Wheel_Ninja": 371,
   "WHEEL_OffRoad": 372,
   "Wheel_Pedigree": 373,
+  "WHEEL_Proto_02": 820,
   "WHEEL_Revolution": 374,
   "WHEEL_Scarab": 540,
   "WHEEL_SingleSpoke": 518,
diff --git a/data/properties.json b/data/properties.json
--- a/data/properties.json
+++ b/data/properties.json
@@ -88,6 +88,7 @@
   "TAGame.GameEvent_Soccar_TA:SecondsRemaining": "int",
   "TAGame.GameEvent_Soccar_TA:SubRulesArchetype": "flagged_int",
   "TAGame.GameEvent_SoccarPrivate_TA:MatchSettings": "private_match_settings",
+  "TAGame.GameEvent_TA:bCanVoteToForfeit": "boolean",
   "TAGame.GameEvent_TA:bHasLeaveMatchPenalty": "boolean",
   "TAGame.GameEvent_TA:BotSkill": "int",
   "TAGame.GameEvent_TA:GameMode": "game_mode",
diff --git a/library/Octane/Data.hs b/library/Octane/Data.hs
--- a/library/Octane/Data.hs
+++ b/library/Octane/Data.hs
@@ -37,7 +37,9 @@
   => a
 latestMinorVersion = 12
 
-maxActorId :: (Num a) => a
+maxActorId
+  :: (Num a)
+  => a
 maxActorId = 1024
 
 -- | A mapping between classes and their parent classes. Note that not every
diff --git a/library/Octane/Type/Value/LoadoutsValue.hs b/library/Octane/Type/Value/LoadoutsValue.hs
--- a/library/Octane/Type/Value/LoadoutsValue.hs
+++ b/library/Octane/Type/Value/LoadoutsValue.hs
@@ -24,8 +24,8 @@
 import qualified Octane.Type.Value.LoadoutValue as LoadoutValue
 
 data LoadoutsValue = LoadoutsValue
-  { loadoutsValueLoadout1 :: LoadoutValue.LoadoutValue
-  , loadoutsValueLoadout2 :: LoadoutValue.LoadoutValue
+  { loadoutsValueLoadout1 :: LoadoutValue.LoadoutValue -- ^ blue
+  , loadoutsValueLoadout2 :: LoadoutValue.LoadoutValue -- ^ orange
   } deriving (Eq, Generics.Generic, Show)
 
 $(OverloadedRecords.overloadedRecord Default.def ''LoadoutsValue)
diff --git a/octane.cabal b/octane.cabal
--- a/octane.cabal
+++ b/octane.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           octane
-version:        0.16.2
+version:        0.16.3
 synopsis:       Parse Rocket League replays.
 description:    Octane parses Rocket League replays.
 category:       Game
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -80,4 +80,4 @@
     - -with-rtsopts=-N
     main: Main.hs
     source-dirs: test-suite
-version: '0.16.2'
+version: '0.16.3'
