diff --git a/loader/src/loader/Patch.cpp b/loader/src/loader/Patch.cpp
index fc7e774f..a056396d 100644
--- a/loader/src/loader/Patch.cpp
+++ b/loader/src/loader/Patch.cpp
@@ -4,11 +4,17 @@
 using namespace geode::prelude;
 
 bool Patch::apply() {
-    return bool(tulip::hook::writeMemory(m_address, m_patch.data(), m_patch.size()));
+    bool res = bool(tulip::hook::writeMemory(m_address, m_patch.data(), m_patch.size()));
+    if (res)
+        m_applied = true;
+    return res;
 }
 
 bool Patch::restore() {
-    return bool(tulip::hook::writeMemory(m_address, m_original.data(), m_original.size()));
+    bool res = bool(tulip::hook::writeMemory(m_address, m_original.data(), m_original.size()));
+    if (res)
+        m_applied = false;
+    return res;
 }
 
 Patch::Patch() : m_owner(nullptr), m_address(nullptr), m_applied(false), m_autoEnable(true) {}