diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp
index a766d91b6ea15a6a08bc5091f34590020981df83..ceab71381332ba9080747213054f068437d83dbb 100644
--- a/Marlin/src/module/configuration_store.cpp
+++ b/Marlin/src/module/configuration_store.cpp
@@ -37,7 +37,7 @@
  */
 
 // Change EEPROM version if the structure changes
-#define EEPROM_VERSION "V64"
+#define EEPROM_VERSION "V65"
 #define EEPROM_OFFSET 100
 
 // Check the integrity of data offsets.
@@ -90,6 +90,10 @@
 
 #include "../feature/pause.h"
 
+#if HAS_FILAMENT_SENSOR
+  #include "../feature/runout.h"
+#endif
+
 #if ENABLED(EXTRA_LIN_ADVANCE_K)
 extern float saved_extruder_advance_K[EXTRUDERS];
 #endif
@@ -141,6 +145,11 @@ typedef struct SettingsDataStruct {
     float hotend_offset[XYZ][HOTENDS - 1];              // M218 XYZ
   #endif
 
+  //
+  // FILAMENT_RUNOUT_SENSOR
+  //
+  bool runout_sensor_enabled;                           // M412 S
+
   //
   // ENABLE_LEVELING_FADE_HEIGHT
   //
@@ -291,6 +300,8 @@ typedef struct SettingsDataStruct {
 
 } SettingsData;
 
+//static_assert(sizeof(SettingsData) <= E2END + 1, "EEPROM too small to contain SettingsData!");
+
 MarlinSettings settings;
 
 uint16_t MarlinSettings::datasize() { return sizeof(SettingsData); }
@@ -512,6 +523,18 @@ void MarlinSettings::postprocess() {
       #endif
     }
 
+    //
+    // Filament Runout Sensor
+    //
+    {
+      #if HAS_FILAMENT_SENSOR
+        EEPROM_WRITE(runout.enabled);
+      #else
+        const bool runout_sensor_enabled = true;
+        EEPROM_WRITE(runout_sensor_enabled);
+      #endif
+    }
+
     //
     // Global Leveling
     //
@@ -1237,6 +1260,19 @@ void MarlinSettings::postprocess() {
         #endif
       }
 
+      //
+      // Filament Runout Sensor
+      //
+      {
+        _FIELD_TEST(runout_sensor_enabled);
+        #if HAS_FILAMENT_SENSOR
+          EEPROM_READ(runout.enabled);
+        #else
+          bool runout_sensor_enabled;
+          EEPROM_READ(runout_sensor_enabled);
+        #endif
+      }
+
       //
       // Global Leveling
       //
@@ -2047,6 +2083,19 @@ void MarlinSettings::reset() {
     reset_hotend_offsets();
   #endif
 
+  //
+  // Filament Runout Sensor
+  //
+
+  #if HAS_FILAMENT_SENSOR
+    runout.enabled = true;
+    runout.reset();
+  #endif
+
+  //
+  // Tool-change Settings
+  //
+
   #if EXTRUDERS > 1
     #if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
       toolchange_settings.swap_length = TOOLCHANGE_FIL_SWAP_LENGTH;
@@ -2059,6 +2108,10 @@ void MarlinSettings::reset() {
     toolchange_settings.z_raise = TOOLCHANGE_ZRAISE;
   #endif
 
+  //
+  // Magnetic Parking Extruder
+  //
+
   #if ENABLED(MAGNETIC_PARKING_EXTRUDER)
     mpe_settings_init();
   #endif
@@ -2540,6 +2593,12 @@ void MarlinSettings::reset() {
       }
     #endif
 
+    #if HAS_FILAMENT_SENSOR
+      CONFIG_ECHO_HEADING("Filament Runout Sensor:");
+      CONFIG_ECHO_START();
+      SERIAL_ECHOLNPAIR("  M412 S", int(runout.enabled));
+    #endif
+
     /**
      * Bed Leveling
      */