diff --git a/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java b/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
index 26cf787..02b4fb8 100644
--- a/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
+++ b/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
@@ -18,10 +18,12 @@ import java.util.stream.Collectors;
 
 public final class OptionListWidget extends ContainerObjectSelectionList<Entry> {
 	public static final int ROW_WIDTH = 408;
-	public static final int ROW_PADDING = 2;
 	
-	public static final int COL2_W = (ROW_WIDTH / 2) - ROW_PADDING;
-	public static final int COL4_W = (ROW_WIDTH / 4) - ROW_PADDING;
+	private static final int ROW_HORIZONTAL_PADDING = 2;
+	private static final int SCROLL_MULTIPLIER = 18;
+	
+	public static final int COL2_W = (ROW_WIDTH / 2) - ROW_HORIZONTAL_PADDING;
+	public static final int COL4_W = (ROW_WIDTH / 4) - ROW_HORIZONTAL_PADDING;
 	
 	public static int col2(final int column) {
 		return (column * ROW_WIDTH) / 2;
@@ -59,7 +61,7 @@ public final class OptionListWidget extends ContainerObjectSelectionList<Entry>
 	
 	@Override
 	public int getRowLeft() {
-		return super.getRowLeft() - ROW_PADDING;
+		return super.getRowLeft() - ROW_HORIZONTAL_PADDING;
 	}
 	
 	@Override
@@ -72,6 +74,12 @@ public final class OptionListWidget extends ContainerObjectSelectionList<Entry>
 		return (width + ROW_WIDTH) / 2 + 4;
 	}
 	
+	@Override
+	public boolean mouseScrolled(final double x, final double y, final double amount) {
+		setScrollAmount(getScrollAmount() - amount * SCROLL_MULTIPLIER);
+		return true;
+	}
+	
 	protected static final class Entry extends ContainerObjectSelectionList.Entry<Entry> {
 		private final List<GuiEventListener> elements;
 		private final List<NarratableEntry> narratables;