diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
index 002744a..bb31285 100644
--- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
@@ -107,6 +107,9 @@ public class Settings extends Appliance {
                     .filter(setting -> ((CategorizedSetting) setting).category().equals(category))
                     .toList();
 
+                //skip empty category rows
+                if(categorizedSettings.isEmpty()) return;
+
                 for(int i = 0; i < categorizedSettings.size(); i++) {
                     int slot = row.get() * 9 + i % 9;
                     inventory.setItem(slot, categorizedSettings.get(i).buildItem());
@@ -139,17 +142,23 @@ public class Settings extends Appliance {
         int countOfUncategorized = (int) settings.stream()
             .filter(setting -> !(setting instanceof CategorizedSetting))
             .count();
+        int rowsOfUncategorized = (int) Math.ceil((double) countOfUncategorized / 9);
 
-        return Arrays.stream(SettingCategory.values())
+        int rowsOfCategorized = Arrays.stream(SettingCategory.values())
             .map(settingCategory -> settings.stream()
                 .filter(setting -> setting instanceof CategorizedSetting)
                 .map(setting -> (CategorizedSetting) setting)
                 .filter(categorizedSetting -> categorizedSetting.category().equals(settingCategory))
                 .count())
-            .map(itemCount -> itemCount + countOfUncategorized)
             .map(itemCount -> (int) Math.ceil((double) itemCount / 9))
             .reduce(Integer::sum)
             .orElse(1) * 9;
+
+        int rows = rowsOfUncategorized + rowsOfCategorized;
+        if(rows % 9 != 0) throw new IllegalStateException(
+            String.format("Failed to calculate settings inventory size. %d is not an multiple of 9", rows)
+        );
+        return rows;
     }
 
     public void onSettingsClose(Player player) {