--- a/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java
@@ -20,7 +_,8 @@
     private VibrationSystem.Data vibrationData;
     private final VibrationSystem.Listener vibrationListener;
     private final VibrationSystem.User vibrationUser;
-    private int lastVibrationFrequency = 0;
+    public int lastVibrationFrequency = 0;
+    @Nullable public Integer rangeOverride = null; // Paper - Configurable sculk sensor listener range
 
     protected SculkSensorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState blockState) {
         super(type, pos, blockState);
@@ -42,14 +_,22 @@
         super.loadAdditional(input);
         this.lastVibrationFrequency = input.getIntOr("last_vibration_frequency", 0);
         this.vibrationData = input.read("listener", VibrationSystem.Data.CODEC).orElseGet(VibrationSystem.Data::new);
+        this.rangeOverride = input.getInt(PAPER_LISTENER_RANGE_NBT_KEY).orElse(null); // Paper start - Configurable sculk sensor listener range
     }
 
+    protected static final String PAPER_LISTENER_RANGE_NBT_KEY = "Paper.ListenerRange"; // Paper - Configurable sculk sensor listener range
     @Override
     protected void saveAdditional(ValueOutput output) {
         super.saveAdditional(output);
         output.putInt("last_vibration_frequency", this.lastVibrationFrequency);
         output.store("listener", VibrationSystem.Data.CODEC, this.vibrationData);
-    }
+        this.saveRangeOverride(output); // Paper - Configurable sculk sensor listener range
+    }
+    // Paper start - Configurable sculk sensor listener range
+    protected void saveRangeOverride(ValueOutput output) {
+        if (this.rangeOverride != null && this.rangeOverride != VibrationUser.LISTENER_RANGE) output.putInt(PAPER_LISTENER_RANGE_NBT_KEY, this.rangeOverride); // only save if it's different from the default
+    }
+    // Paper end - Configurable sculk sensor listener range
 
     @Override
     public VibrationSystem.Data getVibrationData() {
@@ -86,6 +_,7 @@
 
         @Override
         public int getListenerRadius() {
+            if (SculkSensorBlockEntity.this.rangeOverride != null) return SculkSensorBlockEntity.this.rangeOverride; // Paper - Configurable sculk sensor listener range
             return 8;
         }
 
