Page 1 of 1

the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Sun Aug 11, 2024 1:54 am
by ahicks
Hard to come up with a good title. We have discovered that the order of modifiers in a custom input only works sometimes based on the modifier order. This seems to apply to almost any custom input using two or more modifiers. A specific concrete example is ALT + SHIFT + LEFT (doesn't trigger) versus SHIFT + ALT + LEFT (triggers fine). The result is that one must fiddle with it to figure out which order works. I *think* that it's SHIFT + CONTROL + ALT only, dropping whichever you don't use.

We have lots of examples and have checked across multiple machines. I also personally have an n-key rollover mechanical keyboard, and have done my testing on that.

There's always a correct order that triggers fine but you have to guess to find it.

If nothing else it'd be good to get an error if a non-working order is used and a tweak to the docs, but people on the official discord mod help channel told me yeah probably it's a bug so here I am reporting.

Here's the startup logs all the way up to when it loads mods:

Code: Select all

0.001 2024-08-10 15:04:25; Factorio 1.1.104 (build 62119, win64, full)
   0.001 Operating system: Windows 10 (build 19045) 
   0.001 Program arguments: "C:\projects\in_progress\factorio_access\factorio\bin\x64\factorio.exe" "-c" "C:\projects\in_progress\factorio_access\factorio\config\config.ini" "--load-game" "LBR Megafactory.zip" 
   0.001 Config path: C:/projects/in_progress/factorio_access/factorio/config/config.ini
   0.001 Read data path: C:/projects/in_progress/factorio_access/factorio/data
   0.001 Write data path: C:/projects/in_progress/factorio_access/factorio [151314/976144MB]
   0.001 Binaries path: C:/projects/in_progress/factorio_access/factorio/bin
   0.009 System info: [CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz, 12 cores, RAM: 15488/65474 MB, page: 16308/75202 MB, virtual: 4258/134217727 MB, extended virtual: 0 MB]
   0.022 Memory info:
   0.022  [0]: 04CD F4-2666C19-16GIS 16384 MB 2400 MHz 1.2 v
   0.022  [1]: 04CD F4-2666C19-16GIS 16384 MB 2400 MHz 1.2 v
   0.022  [2]: 04CD F4-2666C19-16GIS 16384 MB 2400 MHz 1.2 v
   0.022  [3]: 04CD F4-2666C19-16GIS 16384 MB 2400 MHz 1.2 v
   0.023 Display options: [FullScreen: 1] [VSync: 1] [UIScale: automatic (100.0%)] [Native DPI: 1] [Screen: 255] [Special: lmw] [Lang: en]
   0.143 Video driver: windows
   0.143 Available displays: 1
   0.143  [0]: \\.\DISPLAY1 - NVIDIA GeForce RTX 2060 {0x05, [0,0], 1920x1080, 32bit, 60Hz}
   0.210 [Direct3D11] Display: 0, Output: 0, DisplayAdapter: 0, RenderingAdapter: 0; d3dcompiler_47.dll
   0.397 Initialised Direct3D[0]: NVIDIA GeForce RTX 2060; id: 10de-1f08; driver: nvldumdx.dll 31.0.15.3623
   0.397   D3D Feature Level: 11.1, DXGI 1.5+, SwapChain: 3,flip-discard,-,-,-,none
   0.397   [Local Video Memory] Budget: 5200MB, CurrentUsage: 7MB, Reservation: 0/2728MB
   0.397   [Non-Local Vid.Mem.] Budget: 31969MB, CurrentUsage: 0MB, Reservation: 0/16112MB
   0.397   Tiled resources: Tier 2
   0.397   Unified Memory Architecture: No
   0.397   BGR 565 Supported: Yes
   0.397   MaximumFrameLatency: 3, GPUThreadPriority: 0
   0.398 Graphics settings preset: very-high
   0.398   Dedicated video memory size 5968 MB
   0.453 Desktop composition is active.
   0.453 Graphics options: [Graphics quality: normal] [Video memory usage: all] [DXT: high-quality] [Color: 16bit]
   0.453                   [Max threads (load/render): 32/12] [Max texture size: 0] [Tex.Stream.: 0] [Rotation quality: normal] [Other: STDCWT] [B:0,C:0,S:100]
   0.493 [Audio] Backend:SDL(default); Driver:wasapi, Device:Default device, Depth:16, Channels:2, Frequency:44100
   0.635 Logitech LED Controller initialized.
   0.635 Error SteelSeriesGameSenseWindowsController.cpp:118: Failed to start SteelSeries GameSense. Error when processing coreProps.json file: GameSense address is empty

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Sun Aug 11, 2024 2:10 am
by Loewchen
The sequence of the modifier keys is irrelevant when I try it and always triggers the action as bound for all examples given and some I tried out beyond that.

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Sun Aug 11, 2024 5:58 pm
by ahicks
What platform? We've been testing on Windows. And could you show me your examples? I can try to repro them and then we'd at least know if it's machine specific.

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Sun Aug 11, 2024 6:08 pm
by Loewchen
Any chance you just have an additional binding that collides? I am on win 11 with 1.1.109. I can check later if any and all combinations work, but your never working example already works for me.
I'd suggest you create a new default .zip install and try only changing one binding, that would rule out many unknowns.

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Wed Aug 14, 2024 8:18 pm
by ahicks
Yeah, I will look into this more and see if I can get a minimum repro.

Pretty sure it's not colliding keybinds. We definitely don't have multiple things bound to ctrl+alt+shift+l, though in other spots we intentionally do that because both fire reliably anyway. It's not an either-or thing, you can do that and it works. You shouldn't and and we have an issue to undo this as well--the mod has gone through many hands and needs cleanup. But. You can.

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Wed Aug 14, 2024 9:20 pm
by SirFendi
Hello. I would like to offer some observations to add to the discussion:
- Normally you have the Controls menu GUI for assigning keybinds. No matter what order you press when trying to rebind there, a specific order is written to the box in the end. This is the only accepted order, it seems. CONTROL before SHIFT before ALT before OTHER KEY.
- The other way to edit the keybinds is to directly edit their lines in `config.ini`. You can use any order you want here, but in that case I have observed that opening up the controller menu will say that the order you chose is invalid unless it matches the enforced order in the GUI.
- Example: I rebinded "clear cursor" from "Q" to "ALT + SHIFT + Q" by editing config.ini. In game the keybind does not work. The Controls GUI shows the keybind highlighted in red as "ALT + Unknown".

Re: the order of modifiers in custom inputs must be ordered arbitrarily or it doesn't work

Posted: Mon Sep 09, 2024 6:43 pm
by Gweneph
I can confirm Sir Fendi's findings:
Before:

Code: Select all

place-ping=CONTROL + ALT + mouse-button-1
After:

Code: Select all

place-ping=ALT + CONTROL + mouse-button-1
Result:
errored key binding in menu
errored key binding in menu
09-09-2024, 14-35-56.png (5.06 KiB) Viewed 102 times