diff -urN a/examples.orig/simple_repeater/MyMesh.cpp a/examples/simple_repeater/MyMesh.cpp
--- a/examples.orig/simple_repeater/MyMesh.cpp	2026-06-08 12:50:59.297736305 -0500
+++ a/examples/simple_repeater/MyMesh.cpp	2026-06-09 07:43:50.070697959 -0500
@@ -432,6 +432,9 @@
     if (packet->getPathHashCount() >= _prefs.flood_max) return false;
     if (packet->getRouteType() == ROUTE_TYPE_FLOOD && packet->getPathHashCount() >= _prefs.flood_max_unscoped) return false;
     if (packet->getPayloadType() == PAYLOAD_TYPE_ADVERT && packet->getPathHashCount() >= _prefs.flood_max_advert) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_REQ && packet->getPathHashCount() >= _prefs.flood_max_request) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_ANON_REQ && packet->getPathHashCount() >= _prefs.flood_max_anon_request) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_RESPONSE && packet->getPathHashCount() >= _prefs.flood_max_response) return false;
   }
   if (packet->isRouteFlood() && recv_pkt_region == NULL) {
     MESH_DEBUG_PRINTLN("allowPacketForward: unknown transport code, or wildcard not allowed for FLOOD packet");
@@ -892,6 +895,9 @@
   _prefs.flood_max = 64;
   _prefs.flood_max_unscoped = 64;
   _prefs.flood_max_advert = 8;
+  _prefs.flood_max_request = 8;
+  _prefs.flood_max_anon_request = 8;
+  _prefs.flood_max_response = 8;
   _prefs.interference_threshold = 0; // disabled
   _prefs.cad_enabled = 0;            // hardware CAD before TX (off by default; 'set cad on')
 
diff -urN a/examples.orig/simple_room_server/MyMesh.cpp e/xamples/simple_room_server/MyMesh.cpp
--- a/examples.orig/simple_room_server/MyMesh.cpp	2026-06-08 12:50:59.297736305 -0500
+++ a/examples/simple_room_server/MyMesh.cpp	2026-06-09 07:44:08.646446444 -0500
@@ -286,6 +286,10 @@
     if (packet->getPathHashCount() >= _prefs.flood_max) return false;
     if (packet->getRouteType() == ROUTE_TYPE_FLOOD && packet->getPathHashCount() >= _prefs.flood_max_unscoped) return false;
     if (packet->getPayloadType() == PAYLOAD_TYPE_ADVERT && packet->getPathHashCount() >= _prefs.flood_max_advert) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_REQ && packet->getPathHashCount() >= _prefs.flood_max_request) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_ANON_REQ && packet->getPathHashCount() >= _prefs.flood_max_anon_request) return false;
+    if (packet->getPayloadType() == PAYLOAD_TYPE_RESPONSE && packet->getPathHashCount() >= _prefs.flood_max_response) return false;
+
   }
   return true;
 }
@@ -649,6 +653,10 @@
   _prefs.flood_max = 64;
   _prefs.flood_max_unscoped = 64;
   _prefs.flood_max_advert = 8;
+  _prefs.flood_max_request = 8;
+  _prefs.flood_max_anon_request = 8;
+  _prefs.flood_max_response = 8;
+
   _prefs.interference_threshold = 0; // disabled
   _prefs.cad_enabled = 0;            // hardware CAD before TX (off by default; 'set cad on')
 #ifdef ROOM_PASSWORD
diff -urN a/src.orig/helpers/CommonCLI.cpp a/src/helpers/CommonCLI.cpp
--- a/src.orig/helpers/CommonCLI.cpp	2026-06-08 12:54:38.090623920 -0500
+++ a/src/helpers/CommonCLI.cpp	2026-06-12 11:51:45.235990430 -0500
@@ -92,7 +92,10 @@
     file.read((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped));   // 291
     file.read((uint8_t *)&_prefs->flood_max_advert, sizeof(_prefs->flood_max_advert));       // 292
     file.read((uint8_t *)&_prefs->cad_enabled, sizeof(_prefs->cad_enabled));                  // 293
-    // next: 294
+    file.read((uint8_t *)&_prefs->flood_max_request, sizeof(_prefs->flood_max_request));	// 294
+    file.read((uint8_t *)&_prefs->flood_max_anon_request, sizeof(_prefs->flood_max_anon_request));	// 295
+    file.read((uint8_t *)&_prefs->flood_max_response, sizeof(_prefs->flood_max_response));	// 296
+    // next: 297
 
     // sanitise bad pref values
     _prefs->rx_delay_base = constrain(_prefs->rx_delay_base, 0, 20.0f);
@@ -187,7 +190,10 @@
     file.write((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped));   // 291
     file.write((uint8_t *)&_prefs->flood_max_advert, sizeof(_prefs->flood_max_advert));       // 292
     file.write((uint8_t *)&_prefs->cad_enabled, sizeof(_prefs->cad_enabled));                 // 293
-    // next: 294
+    file.write((uint8_t *)&_prefs->flood_max_request, sizeof(_prefs->flood_max_request));       // 294
+    file.write((uint8_t *)&_prefs->flood_max_anon_request, sizeof(_prefs->flood_max_anon_request));       // 295
+    file.write((uint8_t *)&_prefs->flood_max_response, sizeof(_prefs->flood_max_response));       // 296
+    // next: 297
 
     file.close();
   }
@@ -637,6 +643,33 @@
     } else {
       strcpy(reply, "Error, max 64");
     }
+  } else if (memcmp(config, "flood.max.request ", 18) == 0) {
+    uint8_t m = atoi(&config[18]);
+    if (m <= 64) {
+      _prefs->flood_max_request = m;
+      savePrefs();
+      strcpy(reply, "OK");
+    } else {
+      strcpy(reply, "Error, max 64");
+    }
+  } else if (memcmp(config, "flood.max.anon.request ", 23) == 0) {
+    uint8_t m = atoi(&config[23]);
+    if (m <= 64) {
+      _prefs->flood_max_anon_request = m;
+      savePrefs();
+      strcpy(reply, "OK");
+    } else {
+      strcpy(reply, "Error, max 64");
+    }
+  } else if (memcmp(config, "flood.max.response ", 19) == 0) {
+    uint8_t m = atoi(&config[18]);
+    if (m <= 64) {
+      _prefs->flood_max_response = m;
+      savePrefs();
+      strcpy(reply, "OK");
+    } else {
+      strcpy(reply, "Error, max 64");
+    }
   } else if (memcmp(config, "flood.max ", 10) == 0) {
     uint8_t m = atoi(&config[10]);
     if (m <= 64) {
@@ -827,6 +860,12 @@
     sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_advert);
   } else if (memcmp(config, "flood.max.unscoped", 18) == 0) {
     sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_unscoped);
+  } else if (memcmp(config, "flood.max.request", 17) == 0) {
+    sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_request);
+  } else if (memcmp(config, "flood.max.anon.request", 22) == 0) {
+    sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_anon_request);
+  } else if (memcmp(config, "flood.max.response", 18) == 0) {
+    sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_response);
   } else if (memcmp(config, "flood.max", 9) == 0) {
     sprintf(reply, "> %d", (uint32_t)_prefs->flood_max);
   } else if (memcmp(config, "direct.txdelay", 14) == 0) {
diff -urN a/src.orig/helpers/CommonCLI.h a/src/helpers/CommonCLI.h
--- a/src.orig/helpers/CommonCLI.h	2026-06-08 12:54:38.090623920 -0500
+++ a/src/helpers/CommonCLI.h	2026-06-08 20:48:20.642982320 -0500
@@ -42,6 +42,9 @@
   uint8_t flood_max;
   uint8_t flood_max_unscoped;
   uint8_t flood_max_advert;
+  uint8_t flood_max_request;
+  uint8_t flood_max_anon_request;
+  uint8_t flood_max_response;
   uint8_t interference_threshold;
   uint8_t agc_reset_interval; // secs / 4
   // Bridge settings
