diff --git a/library/Octane/Type/Replay.hs b/library/Octane/Type/Replay.hs
--- a/library/Octane/Type/Replay.hs
+++ b/library/Octane/Type/Replay.hs
@@ -370,6 +370,14 @@
                  (Boolean.Boolean False)
                  (Just (toInt32 (Rattletrap.explosionAttributeActorId x)))
                  (toIntVector (Rattletrap.explosionAttributeLocation x)))
+          Rattletrap.ExtendedExplosionAttributeValue x ->
+            Value.ValueExtendedExplosion
+              (Value.ExtendedExplosionValue
+                (Boolean.Boolean False)
+                (Just (toInt32 (Rattletrap.extendedExplosionAttributeActorId x)))
+                (toIntVector (Rattletrap.extendedExplosionAttributeLocation x))
+                (Boolean.Boolean (Rattletrap.extendedExplosionAttributeUnknown1 x))
+                (toInt32 (Rattletrap.extendedExplosionAttributeUnknown2 x)))
           Rattletrap.FlaggedIntAttributeValue x ->
             Value.ValueFlaggedInt
               (Value.FlaggedIntValue
diff --git a/library/Octane/Type/Value.hs b/library/Octane/Type/Value.hs
--- a/library/Octane/Type/Value.hs
+++ b/library/Octane/Type/Value.hs
@@ -11,6 +11,7 @@
   , module Octane.Type.Value.DemolishValue
   , module Octane.Type.Value.EnumValue
   , module Octane.Type.Value.ExplosionValue
+  , module Octane.Type.Value.ExtendedExplosionValue
   , module Octane.Type.Value.FlaggedIntValue
   , module Octane.Type.Value.FloatValue
   , module Octane.Type.Value.GameModeValue
@@ -41,6 +42,7 @@
 import Octane.Type.Value.DemolishValue
 import Octane.Type.Value.EnumValue
 import Octane.Type.Value.ExplosionValue
+import Octane.Type.Value.ExtendedExplosionValue
 import Octane.Type.Value.FlaggedIntValue
 import Octane.Type.Value.FloatValue
 import Octane.Type.Value.GameModeValue
@@ -74,6 +76,7 @@
   | ValueDemolish DemolishValue
   | ValueEnum EnumValue
   | ValueExplosion ExplosionValue
+  | ValueExtendedExplosion ExtendedExplosionValue
   | ValueFlaggedInt FlaggedIntValue
   | ValueFloat FloatValue
   | ValueGameMode GameModeValue
@@ -107,6 +110,7 @@
       ValueDemolish x -> Aeson.toJSON x
       ValueEnum x -> Aeson.toJSON x
       ValueExplosion x -> Aeson.toJSON x
+      ValueExtendedExplosion x -> Aeson.toJSON x
       ValueFlaggedInt x -> Aeson.toJSON x
       ValueFloat x -> Aeson.toJSON x
       ValueGameMode x -> Aeson.toJSON x
diff --git a/library/Octane/Type/Value/ExtendedExplosionValue.hs b/library/Octane/Type/Value/ExtendedExplosionValue.hs
new file mode 100644
--- /dev/null
+++ b/library/Octane/Type/Value/ExtendedExplosionValue.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedLabels #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TypeFamilies #-}
+
+module Octane.Type.Value.ExtendedExplosionValue
+  ( ExtendedExplosionValue(..)
+  ) where
+
+import Data.Aeson ((.=))
+
+import qualified Data.Aeson as Aeson
+import qualified Data.Default.Class as Default
+import qualified Data.OverloadedRecords.TH as OverloadedRecords
+import qualified Data.Text as StrictText
+import qualified Octane.Type.Boolean as Boolean
+import qualified Octane.Type.Int32 as Int32
+import qualified Octane.Type.Vector as Vector
+
+data ExtendedExplosionValue = ExtendedExplosionValue
+  { extendedExplosionValueActorless :: Boolean.Boolean
+  , extendedExplosionValueActorId :: Maybe Int32.Int32
+  , extendedExplosionValuePosition :: Vector.Vector Int
+  , extendedExplosionValueUnknown1 :: Boolean.Boolean
+  , extendedExplosionValueUnknown2 :: Int32.Int32
+  } deriving (Eq, Show)
+
+$(OverloadedRecords.overloadedRecord Default.def ''ExtendedExplosionValue)
+
+instance Aeson.ToJSON ExtendedExplosionValue where
+  toJSON x =
+    Aeson.object
+      [ "Type" .= ("ExtendedExplosion" :: StrictText.Text)
+      , "Value" .=
+        Aeson.object
+          [ "Actorless" .= #actorless x
+          , "ActorId" .= #actorId x
+          , "Position" .= #position x
+          ]
+      ]
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.19.0
+version:        0.20.0
 synopsis:       Parse Rocket League replays.
 description:    Octane parses Rocket League replays.
 category:       Game
@@ -84,6 +84,7 @@
       Octane.Type.Value.DemolishValue
       Octane.Type.Value.EnumValue
       Octane.Type.Value.ExplosionValue
+      Octane.Type.Value.ExtendedExplosionValue
       Octane.Type.Value.FlaggedIntValue
       Octane.Type.Value.FloatValue
       Octane.Type.Value.GameModeValue
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -44,4 +44,4 @@
 maintainer: Taylor Fausak
 name: octane
 synopsis: Parse Rocket League replays.
-version: '0.19.0'
+version: '0.20.0'
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,3 +1,3 @@
 extra-deps:
-- rattletrap-2.2.3
+- rattletrap-2.5.0
 resolver: lts-8.0
