Litematica (Forge)

Litematica (Forge)

336k Downloads

MacOS mouse scrolling sensitivity issue

MaxLevs opened this issue ยท 10 comments

commented

Minecraft version
1.17

Mod version and malilib version
Screenshot 2021-06-26 at 23 28 10
Screenshot 2021-06-26 at 23 29 26

OS Version
MacOS 11.4 Big Sur

Bug description
Tool mode scrolling is too fast. When I try to change mode to a next one and scroll only one wheel position it moves several modes at ones (and maybe several mode cycles).
It's common problem for mouse scrolling on MacOS in this game BUT minecraft has ESC > Controll > Mouse settings > Scroll Sensitivity that fix this type of behaviour.
Can you use this configuration for your mod too to fix scrolling?

commented

Hi there. ๐Ÿ‘‹๐Ÿผ I found this issue (#370) after searching for "mouse wheel." I'm on macOS, and I'm encountering the frustrating behavior described by @MaxLevs in his original post. Despite this issue being three years old (as of this comment), it appears that it is still open.

  • Should I interpret the open status to mean that the bug was never resolved?
  • What specific scroll sensitivity setting will fix the issue?
  • Do y'all still need any testers?

Here are some of my specs, FYI:

  • Litematica 0.4.13
  • Minecraft 1.19.4
    • Mouse Setting: Sensitivity -> 100%
    • Mouse Setting: Scroll Sensitivity -> 1.00
    • Mouse Setting: Discrete Scrolling: OFF
  • Malilib 0.15.4
  • Fabric API 0.83.0+1.19.4
  • Fabric Loader 0.14.21
  • LWJGL 3 3.3.1
  • macOS 11.7.10
    • System preference for Mouse: Scrolling speed -> between midway and "fast"
commented

@ejm554 Can you tell how many "notches" it scrolls when you try to scroll only one notch? One way to test this is to scroll over one of the number input elements in some config screen, like the placement position +/- button.

Also try the debug steps I explained in my second message, and post the output.

commented

@ejm554 Can you tell how many "notches" it scrolls when you try to scroll only one notch?

@maruohon Strangely, on my system, it doesn't seem to respond to each notch, i.e., I often need to scroll my wheel a few times to get it to advance the mode/position a single step.

Also try the debug steps I explained in my second message, and post the output.

I need a little more explanation how to use your debug tool. After installing it in my mods folder and launching Minecraft, I get the following error. Perhaps I need to create a Minecraft 1.17.1 world with (some older version of) Litematica, and install the debug tool there?

Incompatible mod set!
net.fabricmc.loader.impl.FormattedException: Mod resolution encountered an incompatible mod set!
A potential solution has been determined:
	 - Replace mod 'MaLiLib' (malilib) 0.10.0-dev.23+mousedebug.1 with any 0.15.x version.
Unmet dependency listing:
	 - Mod 'Litematica' (litematica) 0.14.3 requires any 0.15.x version of mod 'MaLiLib' (malilib), but only the wrong version is present: 0.10.0-dev.23+mousedebug.1!
	at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:51)
	at net.fabricmc.loader.impl.FabricLoaderImpl.load(FabricLoaderImpl.java:192)
	at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:148)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)

As an an aside, I see a Litematica config named debugLogging. Would setting that to TRUE on my current 1.19.4 world โ€” instead of following instructions for the older tool โ€” collect the scrolling data that you're seeking? I saw you mention this config in a previous issue.

commented

@ejm554 You don't need to use any special version, that debug option is in all malilib versions since that 1.17.1 version. So just use your normal malilib version, and access the config menu with A + C and then in the Debug category there is the option mouseScrollDebug.

But if the issue in your case is not too fast scrolling but too slow scrolling, then it's kind of the opposite issue. I guess first try enabling the discrete mouse scrolling option in the vanilla settings (Options -> Controls -> Mouse -> Discrete Scrolling). If that doesn't help, then try increasing the scroll sensitivity to over 100% to see if that helps (both with and without discrete scrolling).

commented

I need to look into how this works or how the vanilla workaround for this works.

The fix will need to be in malilib, since it handles all the inputs and then calls the registered hooks, such as Litematica's mouse input handling method. Once I do some changes for this, I'll need people who are using MacOS and are having this issue to test if the changes work... No idea yet when this might be, but I'm guessing it should happen as part of the rewrites in 1.12.2 that are happening atm.

commented

Here's a tested matlilib patch that'll make it honour the GUI settings:

diff -ru a/src/main/java/fi/dy/masa/malilib/gui/widgets/WidgetListBase.java b/src/main/java/fi/dy/masa/malilib/gui/widgets/WidgetListBase.java
--- a/src/main/java/fi/dy/masa/malilib/gui/widgets/WidgetListBase.java	2021-07-11 14:50:33.000000000 +0800
+++ b/src/main/java/fi/dy/masa/malilib/gui/widgets/WidgetListBase.java	2021-07-11 17:24:38.000000000 +0800
@@ -8,6 +8,7 @@
 import java.util.List;
 import java.util.Set;
 import javax.annotation.Nullable;
+import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.util.math.MatrixStack;
 import net.minecraft.util.math.MathHelper;
 import fi.dy.masa.malilib.gui.GuiBase;
@@ -133,6 +134,14 @@
     @Override
     public boolean onMouseScrolled(int mouseX, int mouseY, double mouseWheelDelta)
     {
+        // Adjust scroll delta as per Mouse Sensitivity options
+        MinecraftClient mc = MinecraftClient.getInstance();
+        mouseWheelDelta = (
+            mc.options.discreteMouseScroll
+                ? Math.signum(mouseWheelDelta)
+                : mouseWheelDelta
+        ) * mc.options.mouseWheelSensitivity;
+
         if (super.onMouseScrolled(mouseX, mouseY, mouseWheelDelta))
         {
             return true;

While this helps and uses the same logic applies for in-game scrolling, it doesn't match Minecraft's GUI. With the default mouse sensitivity settings Minecraft's scrollable widgets scroll at a reasonable (ie. slow) speed, while in-game scrolling (eg. the active hotbar item) is way too fast. An ideal fix for this issue would be to not require scroll speed adjustment for GUI scrolling; I'm still trying to find how that happens in vanilla's UI.

In any event let me know if you want this as a PR on malilib.

I'll need people who are using MacOS

I'm happy to help test if required.

commented

@globau Could you use this version: https://masa.dy.fi/tmp/minecraft/mods/misc_test_versions/malilib-fabric-1.17.1-0.10.0-dev.23%2Bmousedebug.1.jar
and then go to A + C -> Debug and enable mouseScrollDebug.

Then (just in-game) scroll up and down both slowly one by one and then separately as a fast scroll movement, and label those for example with a chat message. And copy the output from the game console/log.

For example on Win 10 I get this, where all the initial y-offsets LWJGL provides seem to be either 1.0 or -1.0 already:

[15:36:16] [Server thread/INFO] (Minecraft) <masa_> scrolling up one-by-one
[15:36:16] [Render thread/INFO] (Minecraft) [CHAT] [15:36:16] <masa_> scrolling up one-by-one
[15:36:18] [Render thread/INFO] (malilib) time: 7E61, tick: A908 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:18] [Render thread/INFO] (malilib) time: 81A1, tick: A918 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:19] [Render thread/INFO] (malilib) time: 8468, tick: A926 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:20] [Render thread/INFO] (malilib) time: 8714, tick: A934 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:27] [Server thread/INFO] (Minecraft) <masa_> scrolling down one-by-one
[15:36:27] [Render thread/INFO] (Minecraft) [CHAT] [15:36:27] <masa_> scrolling down one-by-one
[15:36:28] [Render thread/INFO] (malilib) time: A79E, tick: A9DB - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:29] [Render thread/INFO] (malilib) time: AA86, tick: A9EA - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:30] [Render thread/INFO] (malilib) time: AD01, tick: A9F6 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:30] [Render thread/INFO] (malilib) time: AFBD, tick: AA04 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:40] [Server thread/INFO] (Minecraft) <masa_> scrolling up quickly
[15:36:40] [Render thread/INFO] (Minecraft) [CHAT] [15:36:40] <masa_> scrolling up quickly
[15:36:41] [Render thread/INFO] (malilib) time: DA51, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA59, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA60, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA6A, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA71, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA7B, tick: AADF - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA84, tick: AAE0 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:41] [Render thread/INFO] (malilib) time: DA92, tick: AAE0 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[15:36:48] [Server thread/INFO] (Minecraft) <masa_> scrolling down quickly
[15:36:48] [Render thread/INFO] (Minecraft) [CHAT] [15:36:48] <masa_> scrolling down quickly
[15:36:49] [Render thread/INFO] (malilib) time: F7B5, tick: AB75 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7C3, tick: AB75 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7CD, tick: AB75 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7D6, tick: AB76 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7DE, tick: AB76 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7E5, tick: AB76 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7EE, tick: AB76 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[15:36:49] [Render thread/INFO] (malilib) time: F7F5, tick: AB76 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0

And the diff in this build is this:
image

Note that this does not affect any of the GUIs yet, only the direct mouse scroll input hooks that some mods use.

commented
[21:06:14] <glob> scrolling up one-by-one
[21:06:15] time: E9E5, tick: 332F - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:15] time: E9F5, tick: 332F - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:15] time: EA06, tick: 3330 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:15] time: EB64, tick: 3337 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:15] time: EB75, tick: 3337 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:15] time: EB85, tick: 3337 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:15] time: EB96, tick: 3338 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:15] time: EBA7, tick: 3338 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:17] time: F312, tick: 335E - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:17] time: F3EC, tick: 3362 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:17] time: F40C, tick: 3363 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:17] time: F41D, tick: 3363 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:17] time: F42E, tick: 3364 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:17] time: F43F, tick: 3364 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:17] time: F44F, tick: 3364 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:17] time: F493, tick: 3366 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F837, tick: 3378 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F848, tick: 3379 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F87A, tick: 337A - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F89B, tick: 337A - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F8AD, tick: 337B - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F8BE, tick: 337B - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F8D0, tick: 337C - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:18] time: F8DF, tick: 337C - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:19] time: F8FF, tick: 337C - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:19] time: F9C7, tick: 3380 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:19] time: F9D8, tick: 3381 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:19] time: F9E8, tick: 3381 - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:19] time: F9F9, tick: 3381 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FCE7, tick: 3390 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FCFA, tick: 3391 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FD0A, tick: 3391 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FD5D, tick: 3393 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FDC0, tick: 3395 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FDE2, tick: 3395 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FDF2, tick: 3396 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FE02, tick: 3396 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:20] time: FE24, tick: 3397 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:28] <glob> scrolling down one-by-one
[21:06:29] time: 2224, tick: 344F - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2235, tick: 344F - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2238, tick: 3450 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2245, tick: 3450 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2257, tick: 3450 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2278, tick: 3451 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2299, tick: 3451 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 22AA, tick: 3452 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 22BA, tick: 3452 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 22CB, tick: 3452 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 22EC, tick: 3453 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 2393, tick: 3456 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 23A4, tick: 3457 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 23B4, tick: 3457 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:29] time: 23C5, tick: 3457 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 26B3, tick: 3466 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 26C4, tick: 3467 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:30] time: 26D4, tick: 3467 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 26E5, tick: 3467 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:30] time: 26F5, tick: 3468 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 2706, tick: 3468 - xOffset: -0.1, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:30] time: 2717, tick: 3468 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:30] time: 2728, tick: 3469 - xOffset: -0.1, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 273B, tick: 3469 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 275B, tick: 346A - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 278D, tick: 346B - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 279C, tick: 346B - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:30] time: 27BE, tick: 346C - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2C4E, tick: 3483 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2C6F, tick: 3484 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2C9F, tick: 3485 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2D35, tick: 3488 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2D57, tick: 3488 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2D78, tick: 3489 - xOffset: -0.1, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:32] time: 2D89, tick: 3489 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2D9A, tick: 348A - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2DAB, tick: 348A - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2DBC, tick: 348A - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:32] time: 2DCC, tick: 348B - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2DDC, tick: 348B - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2DED, tick: 348B - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2E40, tick: 348D - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2E62, tick: 348E - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2E72, tick: 348E - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2E84, tick: 348E - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2EA4, tick: 348F - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:32] time: 2ED6, tick: 3490 - xOffset: -0.1, yOffset: 0.0, discrete: false, sensitivity: 1.0, amount: 0.0
[21:06:39] <glob> scrolling up quickly
[21:06:39] time: 49FC, tick: 351B - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:39] time: 4A0D, tick: 351B - xOffset: 0.30000000000000004, yOffset: 1.4000000000000001, discrete: false, sensitivity: 1.0, amount: 1.4000000000000001
[21:06:39] time: 4A1D, tick: 351C - xOffset: 0.30000000000000004, yOffset: 3.6, discrete: false, sensitivity: 1.0, amount: 3.6
[21:06:39] time: 4A3F, tick: 351C - xOffset: 0.0, yOffset: 4.2, discrete: false, sensitivity: 1.0, amount: 4.2
[21:06:39] time: 4A50, tick: 351D - xOffset: 0.0, yOffset: 5.7, discrete: false, sensitivity: 1.0, amount: 5.7
[21:06:39] time: 4A60, tick: 351D - xOffset: 0.0, yOffset: 6.2, discrete: false, sensitivity: 1.0, amount: 6.2
[21:06:39] time: 4A71, tick: 351D - xOffset: 0.0, yOffset: 6.300000000000001, discrete: false, sensitivity: 1.0, amount: 6.300000000000001
[21:06:39] time: 4A74, tick: 351E - xOffset: 0.0, yOffset: 6.1000000000000005, discrete: false, sensitivity: 1.0, amount: 6.1000000000000005
[21:06:39] time: 4A92, tick: 351E - xOffset: 0.0, yOffset: 5.9, discrete: false, sensitivity: 1.0, amount: 5.9
[21:06:39] time: 4AA3, tick: 351E - xOffset: 0.0, yOffset: 5.6000000000000005, discrete: false, sensitivity: 1.0, amount: 5.6000000000000005
[21:06:39] time: 4AB4, tick: 351F - xOffset: 0.0, yOffset: 5.800000000000001, discrete: false, sensitivity: 1.0, amount: 5.800000000000001
[21:06:39] time: 4AC4, tick: 351F - xOffset: 0.0, yOffset: 5.5, discrete: false, sensitivity: 1.0, amount: 5.5
[21:06:39] time: 4AD5, tick: 351F - xOffset: 0.0, yOffset: 5.1000000000000005, discrete: false, sensitivity: 1.0, amount: 5.1000000000000005
[21:06:39] time: 4AD8, tick: 3520 - xOffset: 0.0, yOffset: 4.7, discrete: false, sensitivity: 1.0, amount: 4.7
[21:06:39] time: 4AF6, tick: 3520 - xOffset: 0.0, yOffset: 4.3, discrete: false, sensitivity: 1.0, amount: 4.3
[21:06:40] time: 4B07, tick: 3520 - xOffset: 0.0, yOffset: 4.0, discrete: false, sensitivity: 1.0, amount: 4.0
[21:06:40] time: 4B0A, tick: 3521 - xOffset: 0.0, yOffset: 3.7, discrete: false, sensitivity: 1.0, amount: 3.7
[21:06:40] time: 4B29, tick: 3521 - xOffset: 0.0, yOffset: 3.4000000000000004, discrete: false, sensitivity: 1.0, amount: 3.4000000000000004
[21:06:40] time: 4B39, tick: 3521 - xOffset: 0.0, yOffset: 3.1, discrete: false, sensitivity: 1.0, amount: 3.1
[21:06:40] time: 4B49, tick: 3522 - xOffset: 0.0, yOffset: 2.8000000000000003, discrete: false, sensitivity: 1.0, amount: 2.8000000000000003
[21:06:40] time: 4B5A, tick: 3522 - xOffset: 0.0, yOffset: 2.6, discrete: false, sensitivity: 1.0, amount: 2.6
[21:06:40] time: 4B6D, tick: 3522 - xOffset: 0.0, yOffset: 2.4000000000000004, discrete: false, sensitivity: 1.0, amount: 2.4000000000000004
[21:06:40] time: 4B70, tick: 3523 - xOffset: 0.0, yOffset: 2.2, discrete: false, sensitivity: 1.0, amount: 2.2
[21:06:40] time: 4B8C, tick: 3523 - xOffset: 0.0, yOffset: 2.0, discrete: false, sensitivity: 1.0, amount: 2.0
[21:06:40] time: 4B9D, tick: 3523 - xOffset: 0.0, yOffset: 1.9000000000000001, discrete: false, sensitivity: 1.0, amount: 1.9000000000000001
[21:06:40] time: 4BAE, tick: 3524 - xOffset: 0.0, yOffset: 1.7000000000000002, discrete: false, sensitivity: 1.0, amount: 1.7000000000000002
[21:06:40] time: 4BBF, tick: 3524 - xOffset: 0.0, yOffset: 1.6, discrete: false, sensitivity: 1.0, amount: 1.6
[21:06:40] time: 4BCF, tick: 3524 - xOffset: 0.0, yOffset: 1.4000000000000001, discrete: false, sensitivity: 1.0, amount: 1.4000000000000001
[21:06:40] time: 4BD2, tick: 3525 - xOffset: 0.0, yOffset: 1.3, discrete: false, sensitivity: 1.0, amount: 1.3
[21:06:40] time: 4BF0, tick: 3525 - xOffset: 0.0, yOffset: 1.2000000000000002, discrete: false, sensitivity: 1.0, amount: 1.2000000000000002
[21:06:40] time: 4C01, tick: 3525 - xOffset: 0.0, yOffset: 1.1, discrete: false, sensitivity: 1.0, amount: 1.1
[21:06:40] time: 4C12, tick: 3526 - xOffset: 0.0, yOffset: 1.0, discrete: false, sensitivity: 1.0, amount: 1.0
[21:06:40] time: 4C22, tick: 3526 - xOffset: 0.0, yOffset: 0.9, discrete: false, sensitivity: 1.0, amount: 0.9
[21:06:40] time: 4C33, tick: 3526 - xOffset: 0.0, yOffset: 0.8, discrete: false, sensitivity: 1.0, amount: 0.8
[21:06:40] time: 4C43, tick: 3527 - xOffset: 0.0, yOffset: 0.8, discrete: false, sensitivity: 1.0, amount: 0.8
[21:06:40] time: 4C55, tick: 3527 - xOffset: 0.0, yOffset: 0.7000000000000001, discrete: false, sensitivity: 1.0, amount: 0.7000000000000001
[21:06:40] time: 4C65, tick: 3527 - xOffset: 0.0, yOffset: 0.6000000000000001, discrete: false, sensitivity: 1.0, amount: 0.6000000000000001
[21:06:40] time: 4C75, tick: 3528 - xOffset: 0.0, yOffset: 0.6000000000000001, discrete: false, sensitivity: 1.0, amount: 0.6000000000000001
[21:06:40] time: 4C86, tick: 3528 - xOffset: 0.0, yOffset: 0.5, discrete: false, sensitivity: 1.0, amount: 0.5
[21:06:40] time: 4C97, tick: 3528 - xOffset: 0.0, yOffset: 0.5, discrete: false, sensitivity: 1.0, amount: 0.5
[21:06:40] time: 4CA7, tick: 3529 - xOffset: 0.0, yOffset: 0.5, discrete: false, sensitivity: 1.0, amount: 0.5
[21:06:40] time: 4CB8, tick: 3529 - xOffset: 0.0, yOffset: 0.4, discrete: false, sensitivity: 1.0, amount: 0.4
[21:06:40] time: 4CC9, tick: 3529 - xOffset: 0.0, yOffset: 0.4, discrete: false, sensitivity: 1.0, amount: 0.4
[21:06:40] time: 4CD9, tick: 352A - xOffset: 0.0, yOffset: 0.4, discrete: false, sensitivity: 1.0, amount: 0.4
[21:06:40] time: 4CEA, tick: 352A - xOffset: 0.0, yOffset: 0.30000000000000004, discrete: false, sensitivity: 1.0, amount: 0.30000000000000004
[21:06:40] time: 4CFB, tick: 352A - xOffset: 0.0, yOffset: 0.30000000000000004, discrete: false, sensitivity: 1.0, amount: 0.30000000000000004
[21:06:40] time: 4D0B, tick: 352B - xOffset: 0.0, yOffset: 0.30000000000000004, discrete: false, sensitivity: 1.0, amount: 0.30000000000000004
[21:06:40] time: 4D1C, tick: 352B - xOffset: 0.0, yOffset: 0.30000000000000004, discrete: false, sensitivity: 1.0, amount: 0.30000000000000004
[21:06:40] time: 4D2D, tick: 352B - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:40] time: 4D3E, tick: 352C - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:40] time: 4D4E, tick: 352C - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:40] time: 4D5F, tick: 352C - xOffset: 0.0, yOffset: 0.2, discrete: false, sensitivity: 1.0, amount: 0.2
[21:06:40] time: 4D70, tick: 352D - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4D80, tick: 352D - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4D91, tick: 352D - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4DA1, tick: 352E - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4DB2, tick: 352E - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4DC3, tick: 352E - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4DE4, tick: 352F - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4DF6, tick: 352F - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:40] time: 4E16, tick: 3530 - xOffset: 0.0, yOffset: 0.1, discrete: false, sensitivity: 1.0, amount: 0.1
[21:06:47] <glob> scrolling down quickly
[21:06:48] time: 6C19, tick: 35CA - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:48] time: 6C2A, tick: 35CA - xOffset: -0.1, yOffset: -1.3, discrete: false, sensitivity: 1.0, amount: -1.3
[21:06:48] time: 6C3B, tick: 35CA - xOffset: -0.2, yOffset: -1.8, discrete: false, sensitivity: 1.0, amount: -1.8
[21:06:48] time: 6C3E, tick: 35CB - xOffset: 0.0, yOffset: -0.9, discrete: false, sensitivity: 1.0, amount: -0.9
[21:06:48] time: 6C4C, tick: 35CB - xOffset: -0.1, yOffset: -0.9, discrete: false, sensitivity: 1.0, amount: -0.9
[21:06:48] time: 6C4C, tick: 35CB - xOffset: -0.1, yOffset: -0.9, discrete: false, sensitivity: 1.0, amount: -0.9
[21:06:48] time: 6C6D, tick: 35CB - xOffset: 0.0, yOffset: -1.9000000000000001, discrete: false, sensitivity: 1.0, amount: -1.9000000000000001
[21:06:48] time: 6C7D, tick: 35CC - xOffset: 0.0, yOffset: -2.4000000000000004, discrete: false, sensitivity: 1.0, amount: -2.4000000000000004
[21:06:48] time: 6C8E, tick: 35CC - xOffset: 0.0, yOffset: -2.6, discrete: false, sensitivity: 1.0, amount: -2.6
[21:06:48] time: 6C9F, tick: 35CC - xOffset: 0.0, yOffset: -2.6, discrete: false, sensitivity: 1.0, amount: -2.6
[21:06:48] time: 6CAF, tick: 35CD - xOffset: 0.0, yOffset: -2.6, discrete: false, sensitivity: 1.0, amount: -2.6
[21:06:48] time: 6CC0, tick: 35CD - xOffset: 0.0, yOffset: -2.5, discrete: false, sensitivity: 1.0, amount: -2.5
[21:06:48] time: 6CD1, tick: 35CD - xOffset: 0.0, yOffset: -2.4000000000000004, discrete: false, sensitivity: 1.0, amount: -2.4000000000000004
[21:06:48] time: 6CE1, tick: 35CE - xOffset: 0.0, yOffset: -2.7, discrete: false, sensitivity: 1.0, amount: -2.7
[21:06:48] time: 6CF2, tick: 35CE - xOffset: 0.0, yOffset: -2.4000000000000004, discrete: false, sensitivity: 1.0, amount: -2.4000000000000004
[21:06:48] time: 6D03, tick: 35CE - xOffset: 0.0, yOffset: -2.2, discrete: false, sensitivity: 1.0, amount: -2.2
[21:06:48] time: 6D13, tick: 35CF - xOffset: 0.0, yOffset: -2.0, discrete: false, sensitivity: 1.0, amount: -2.0
[21:06:48] time: 6D24, tick: 35CF - xOffset: 0.0, yOffset: -1.9000000000000001, discrete: false, sensitivity: 1.0, amount: -1.9000000000000001
[21:06:48] time: 6D35, tick: 35CF - xOffset: 0.0, yOffset: -1.7000000000000002, discrete: false, sensitivity: 1.0, amount: -1.7000000000000002
[21:06:48] time: 6D45, tick: 35D0 - xOffset: 0.0, yOffset: -1.6, discrete: false, sensitivity: 1.0, amount: -1.6
[21:06:48] time: 6D57, tick: 35D0 - xOffset: 0.0, yOffset: -1.4000000000000001, discrete: false, sensitivity: 1.0, amount: -1.4000000000000001
[21:06:48] time: 6D67, tick: 35D0 - xOffset: 0.0, yOffset: -1.3, discrete: false, sensitivity: 1.0, amount: -1.3
[21:06:48] time: 6D77, tick: 35D1 - xOffset: 0.0, yOffset: -1.2000000000000002, discrete: false, sensitivity: 1.0, amount: -1.2000000000000002
[21:06:48] time: 6D88, tick: 35D1 - xOffset: 0.0, yOffset: -1.1, discrete: false, sensitivity: 1.0, amount: -1.1
[21:06:48] time: 6D99, tick: 35D1 - xOffset: 0.0, yOffset: -1.0, discrete: false, sensitivity: 1.0, amount: -1.0
[21:06:48] time: 6DAA, tick: 35D2 - xOffset: 0.0, yOffset: -0.9, discrete: false, sensitivity: 1.0, amount: -0.9
[21:06:48] time: 6DBB, tick: 35D2 - xOffset: 0.0, yOffset: -0.8, discrete: false, sensitivity: 1.0, amount: -0.8
[21:06:48] time: 6DCB, tick: 35D2 - xOffset: 0.0, yOffset: -0.8, discrete: false, sensitivity: 1.0, amount: -0.8
[21:06:48] time: 6DDB, tick: 35D3 - xOffset: 0.0, yOffset: -0.7000000000000001, discrete: false, sensitivity: 1.0, amount: -0.7000000000000001
[21:06:48] time: 6DEC, tick: 35D3 - xOffset: 0.0, yOffset: -0.7000000000000001, discrete: false, sensitivity: 1.0, amount: -0.7000000000000001
[21:06:48] time: 6DFD, tick: 35D3 - xOffset: 0.0, yOffset: -0.6000000000000001, discrete: false, sensitivity: 1.0, amount: -0.6000000000000001
[21:06:48] time: 6E0D, tick: 35D4 - xOffset: 0.0, yOffset: -0.6000000000000001, discrete: false, sensitivity: 1.0, amount: -0.6000000000000001
[21:06:48] time: 6E1F, tick: 35D4 - xOffset: 0.0, yOffset: -0.5, discrete: false, sensitivity: 1.0, amount: -0.5
[21:06:49] time: 6E31, tick: 35D4 - xOffset: 0.0, yOffset: -0.5, discrete: false, sensitivity: 1.0, amount: -0.5
[21:06:49] time: 6E40, tick: 35D5 - xOffset: 0.0, yOffset: -0.5, discrete: false, sensitivity: 1.0, amount: -0.5
[21:06:49] time: 6E50, tick: 35D5 - xOffset: 0.0, yOffset: -0.4, discrete: false, sensitivity: 1.0, amount: -0.4
[21:06:49] time: 6E61, tick: 35D5 - xOffset: 0.0, yOffset: -0.4, discrete: false, sensitivity: 1.0, amount: -0.4
[21:06:49] time: 6E71, tick: 35D6 - xOffset: 0.0, yOffset: -0.4, discrete: false, sensitivity: 1.0, amount: -0.4
[21:06:49] time: 6E82, tick: 35D6 - xOffset: 0.0, yOffset: -0.30000000000000004, discrete: false, sensitivity: 1.0, amount: -0.30000000000000004
[21:06:49] time: 6E94, tick: 35D6 - xOffset: 0.0, yOffset: -0.30000000000000004, discrete: false, sensitivity: 1.0, amount: -0.30000000000000004
[21:06:49] time: 6EA4, tick: 35D7 - xOffset: 0.0, yOffset: -0.30000000000000004, discrete: false, sensitivity: 1.0, amount: -0.30000000000000004
[21:06:49] time: 6EB5, tick: 35D7 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:49] time: 6EC5, tick: 35D7 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:49] time: 6ED5, tick: 35D8 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:49] time: 6EE6, tick: 35D8 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:49] time: 6EF7, tick: 35D8 - xOffset: 0.0, yOffset: -0.2, discrete: false, sensitivity: 1.0, amount: -0.2
[21:06:49] time: 6F08, tick: 35D9 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F18, tick: 35D9 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F29, tick: 35D9 - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F39, tick: 35DA - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F4A, tick: 35DA - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F6C, tick: 35DB - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F7C, tick: 35DB - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
[21:06:49] time: 6F9D, tick: 35DC - xOffset: 0.0, yOffset: -0.1, discrete: false, sensitivity: 1.0, amount: -0.1
commented

Here is a related analysis of the changes from LWJGL 2 to LWJGL 3 in the context of Minecraft from a while back by Pokechu22: https://gist.github.com/Pokechu22/2ee22711bec84136e1e94e225bd916b4

commented

I now uploaded version 0.10.0-dev.24 of malilib to CurseForge, which includes the fixes that were tested 2 days ago on Discord (ie. this commit: maruohon/malilib@1435da8).