Jump to content
Sign in to follow this  
AoSmiles

Question for anyone who uses an Elgato Stream Deck

Recommended Posts

I just got the stream deck, but I am having issues with Il-2 recognizing the hotkeys.

 

For example: If I make the hotkey "Lshift + F" the game will sometimes get both the combination "Lshift + F" and also the "F" key.

 

I've used the stream deck with DCS World also, but don't have the same problem.

 

I am wondering if anyone here has the same problem and has any fix.

 

thanks!

Edited by AoSmiles

Share this post


Link to post
Share on other sites

I have a streamdeck, but I haven't gotten enough into programming for il2, but what I have done, I haven't had this problem. Question for you though, are you using the modifier function for the key press, or are you using the multi key input?

Share this post


Link to post
Share on other sites

I never solved the underlying issue with the keybinds.

 

I just ended up rebinding the keys I wanted to use on the stream deck as single key presses (no modifier keys). It was the only way I could use the streamdeck. It worked out, but rebinding all those keys was what i was trying to avoid in the first place.

Share this post


Link to post
Share on other sites

OK, how do i install that supermacro into my streamdeck xl software? Im new at the streamdeck as of today lol.

nevermind i figured it out lol

 

Edited by The_Jug

Share this post


Link to post
Share on other sites

Can't say I've noticed this issue but I will keep an eye out for it.

 

 

 

 

Edited by KStyle

Share this post


Link to post
Share on other sites

Umm, I am experiencing the same issue with Streamdeck and IL2 - whenever there are more actions on one key (1-switch to gunner position, Ctrl+1 Flare), modifiers do not work most of the time.

In this example I bound Hotkey Ctrl+1 on a streamdeck button and out of 10 tries 8x was thrown to a gunner position and only 2x the pilot actually draw the flare pistol.

I even tried this supermacro plugin mentioned by Tom25briklebritt, but neither {{LCONTROL}{VK_1}} nor {{CTRL}{VK_1}} worked (all is good in Chrome where Ctrl+1 switches to the first tab).

The keyboard layout in Windows is EN, if it makes any difference.

 

IL2 is the only app where I am experiencing this, so I guess the problem is in the game and not in the Streamdeck. Any help?

Share this post


Link to post
Share on other sites
On 9/17/2020 at 9:32 AM, josephine said:

I even tried this supermacro plugin mentioned by Tom25briklebritt, but neither {{LCONTROL}{VK_1}} nor {{CTRL}{VK_1}} worked (all is good in Chrome where Ctrl+1 switches to the first tab).

 After getting tank crew I thought I'd try figuring this out again. At first I had no luck with the super-macros, but after testing for a while I think I found the solution. 

Using the KeyDown:xxx and KeyUp:xxx commands I got this to work:

 

{{KeyDown:RSHIFT}}
{{KeyDown:l}}
{{KeyUp:l}}
{{KeyUp:RSHIFT}}

 

I couldn't get it to work any other way. The letter key between the modifier also has to use the key down/up commands. 

I also have the "don't treat new line as enter" option on, but it worked with it off so i don't know if that is necessary or will cause any issues. 

 

This works! However, if you mistype or forget to add the keyUp command your computer will think that the key is still down and will cause problems. For this reason I might not use this method because it is a hassle to fix sometimes. 

 

I'm still hoping that there is a better way. It is weird that IL-2 is the only program that I have this issue with. 

Share this post


Link to post
Share on other sites

Hello,

 

If I remember correctly the problem is due to the way IL2 reads inputs from keyboard (combination of several keystroke).

Some times key combination will work, sometime not.

 

In another software to fix the problem is to introduce a small delay between the two keys exemple for ctrl + a -> LCTL + delay +

 

Hope it helps.

Share this post


Link to post
Share on other sites

G'day guys.

 

I was having the same issue with Stream Deck not functioning well with IL-2. I eventually decided that I was approaching the problem from the wrong direction, so I decided to go back to my old friend AHK, vJoy and the vJoy library by evilC. I created a simple script that presses a virtual joystick button (1-128) on a virtual joystick.

It first creates 128 files whose contents are exactly the same, allowing for future individual customisation of buttons, then it uses the number after the dash in the filename to determine which button to press.

Each script is launched using BarRaiders Advanced Launcher.

The advantage with this is that you can set 128 buttons (with a little work also include 4 x POV/hat and 8 axes) on 16 possible virtual devices...that's 2048 possible unique buttons and not a single modifier key used.

You can name the file vJoy2-1.ahk initially and it will create the scripts needed.

Hope it helps.

 

Quote

#SingleInstance, force
#include <CvJoyInterface>

 

IfNotExist, vJoy2-2.ahk
    Loop, 128
    {
    FileCopy, vJoy2-1.ahk, vJoy2-%A_Index%.ahk, Overwrite
    }


; Create an object from vJoy Interface Class.
vJoyInterface := new CvJoyInterface()

; Was vJoy installed and the DLL Loaded?
if (!vJoyInterface.vJoyEnabled()){
    ; Show log of what happened
    Msgbox % vJoyInterface.LoadLibraryLog
    ExitApp
}

ButStr := SubStr(A_ScriptName, 7)
StringTrimRight, button_array, ButStr, 3
myStick := vJoyInterface.Devices[2]
myStick.SetBtn(1,button_array)
sleep 50
myStick.SetBtn(0,button_array)
    Return

ExitApp

 

Edited by splat_cat_au
clarification

Share this post


Link to post
Share on other sites

Actually, this one is easier.

;Filename is "IL2_vJoy.ahk"
#SingleInstance, force
#include <CvJoyInterface>

; Create an object from vJoy Interface Class.
vJoyInterface := new CvJoyInterface()

; Was vJoy installed and the DLL Loaded?
if (!vJoyInterface.vJoyEnabled()){
	; Show log of what happened
	Msgbox % vJoyInterface.LoadLibraryLog
	ExitApp
}

myStick := vJoyInterface.Devices[A_Args[1]]
myStick.SetBtn(1,A_Args[2])
sleep 50
myStick.SetBtn(0,A_Args[2])

AHK, vJoy and the vJoy library by evilC are required - see AutoHotKey site.

BarRaiders Advanced Launcher is also required - see Stream Deck application.

Run the single script file from BarRaiders Advanced Launcher and use arguments "[vJoy device #] [button #]" in the field required, eg "1 2" would denote vJoy device 1 and button 2. A space is required between both of the arguments.

The example bellow shows arguments for virtual device 2 and button 128.

Capture.PNG.2559bb3027ef11e08e8076640275017f.PNG

 

If anyone wants a third argument to control button press duration, first the line with "sleep 50" needs to be changed to "sleep A_Args[3]" and then add the third argument as the amount of time to pause (in milliseconds) between 0 and 2147483647 (24 days) in the arguments field...don't use max value!

 

Have fun.

 

 

 

Edited by splat_cat_au
More options

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...