diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for Calamity
 
+## 0.1.18.1
+
+* Fix custom presences failing to parse.
+
 ## 0.1.18.0
 
 * Add raw message events: `RawMessageUpdateEvt`, `RawMessageDeleteEvt`,
diff --git a/calamity.cabal b/calamity.cabal
--- a/calamity.cabal
+++ b/calamity.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: eb69f9ccf663e6f7de402507416d61ec69ba3c89e2706f2a6db544aa7056696e
+-- hash: a6769a4539e66514b12eecc23237ab16610680d4a5058078c778cbc99f1a47cb
 
 name:           calamity
-version:        0.1.18.0
+version:        0.1.18.1
 synopsis:       A library for writing discord bots in haskell
 description:    Please see the README on GitHub at <https://github.com/nitros12/calamity#readme>
 category:       Network, Web
diff --git a/src/Calamity/Types/Model/Presence/Activity.hs b/src/Calamity/Types/Model/Presence/Activity.hs
--- a/src/Calamity/Types/Model/Presence/Activity.hs
+++ b/src/Calamity/Types/Model/Presence/Activity.hs
@@ -28,11 +28,14 @@
   | Streaming
   | Listening
   | Custom
-  deriving ( Eq, Generic, Show, Enum )
+  deriving ( Eq, Generic, Show )
   deriving ( TextShow ) via TSG.FromGeneric ActivityType
 
 instance ToJSON ActivityType where
-  toJSON t = Number $ fromIntegral (fromEnum t)
+  toJSON Game = Number 0
+  toJSON Streaming = Number 1
+  toJSON Listening = Number 2
+  toJSON Custom = Number 4
 
 instance FromJSON ActivityType where
   parseJSON = withScientific "ActivityType" $ \n -> case toBoundedInteger @Int n of
@@ -40,7 +43,7 @@
       0 -> pure Game
       1 -> pure Streaming
       2 -> pure Listening
-      3 -> pure Custom
+      4 -> pure Custom
       _ -> fail $ "Invalid ActivityType: " <> show n
     Nothing -> fail $ "Invalid ActivityType: " <> show n
 
