When you change from one screen to another when a key is depressed on one computer that key remains on while you are on another screen, this causes a lot of issues when playing games on multiple computers or using push to talk in discord.
Hello,
I have forwarded your problem to Stardock Support team for their assistance. Please keep an eye on this thread for any updates. We appreciate your feedback and patience.
Basj
Stardock Community Assistant.
Sorry to hear you are having trouble.
I assume you mean modifier keys - Alt, Ctrl, Shift, etc.
While I have seen it myself, it's very rare and not reproducible reliably (unless you have found a method).
That said, if you double tap said key, it should end it being in that state.
----------------Sean DrohanStardock Customer Service Manager
It is any key.
It is extremely repeatable. The only way to clear the key being stuck down is to hit the key again.
I use WSAD to move in the game. If I am holding any of those keys down when changing screens the character will keep running in that direction.
In discord if I am holding down my push to talk combination it will keep the mic open until I press that key again.
Several people that play the same game with me and use discord have the same problem. We are usually playing on multiple computers at same time and it requires frequent screen switching.
A bunch of us use Multiplicity to multi-box across different computers in EverQuest.
It's super reproducible in this circumstance and causes us all sorts of trouble (push to talk not being released when I release a button when transitioning between computers while speaking in Discord might be the easiest repro step for you).
Try this:
Install Discord (discordapp.com) on your main computer that is the server.
Set up a Push-To-Talk key in Discord and hold it down. Ensure that you see in Discord that you are transmitting as a result of your PTT key being held down.
Move the mouse to a second PC via multiplicity. Release your push to talk key. Notice that you are still transmitting in Discord.
I believe the issue is that when multiplicty transfers seamless control between 2 PCs, it doesn't signal the end of a keypress to the current machine that is receiving it.
keyup and keydown are usually 2 different events from the keyboard in most programming languages I have used. So my guess is discord is not receiving a keyup event when the focus is on another screen.
I don't doubt that you are seeing the issue, and I'll see if I can, but is it only with Discord? If not, what other apps?
What key combo are you using? Do any other (random) key combos not produce the issues (ones that do not involve the aforementioned modifier keys)?
This isn't related to modifier keys. My Push-to-talk with Discord is a key on my keyboard (I think it's scroll lock?) bound to a mouse button using razer's configuration options.
Understood.
While likely unrelated (unless you have it enabled), MP has a hook for the scroll lock:
So I would like to eliminate it as a culprit candidate. Can you test mapping it to another key (one one of the F Keys perhaps)?
I would like to test such a remapping without the inclusion of the mouse mapping as well - again, just for testing.
Also, I would still like to know if you are only seeing this with Discord or with other apps / general use.
Thanks
So far the only 2 programs I have been able to reproduce this on consistently are Discord and Everquest.
I rebound my push to talk key for discord to just the letter G and my mic still remained open when switching screens.
In Everquest any movement key WSAD, or arrows exhibit this behavior.
One thing I have noticed though after some testing is this only affects the Main computer, If you set up these programs on the remote machines they do not exhibit this behavior.
Does this happen after performing a 'clean boot':
https://forums.stardock.com/486104/multiplicity-support-faq#cleanboot
Sean DrohanStardock Support Manager
Yes even after clean boot.
I have reproduced the issue in a few other games as well.But the most pressing program I need this fixed for is discord. Several people in my guild (play same game as me) experience this problem daily. So it's not a problem specific to one configuration unless somehow we all have managed to have the same misconfiguration. But that seems highly improbable.
It's a program with over 100 million (14 million daily) users I'm surprised more people haven't complained about this. But I guess the people that use discord and are playing the same game on multiple computers at the same time is a bit niche.
While I cant test with game you have mentioned (EverQuest for example). I will see what I can find with Discord but it will be some time before I can do so (a day or so).
It's been 2 weeks, just checking in.
In particular, your last statment, you are expecting MP to do something it cant (and should never); have a key state changed on the Primary while controlling a Secondary. There is never a reason that a key state on a Secondary PC should ever impact the state of a key on any other PC. The only case where a Primary can is if this feature is enabled:
I have two suggestions:
I am revisiting this because control based on mouse movement doesn't solve my problem. I am constantly changing monitors so none of those options help. I have just been putting up with the issue for several years.
I tried writing a few programs that would send a keyup on the main computer after a mouse out but I can't get it to work right. So instead I wrote a program that monitors if any key is in a keydown state and turns on cursor clipping to prevent exiting the current monitor if this is the case. The problem is because the program uses a Low level keyboard hook to monitor keypresses I'm like 3 lines of code away from writing a keylogger and so AV programs freak out because of Heuristics. So it's difficult to share with friends. I can send you the source code if you want but it's not all that complicated.EDIT: changed the program to check for keystate instead of using a keyboard hook and less AV programs seem to care now.
Can you please add an option to multiplicity 3.6 for if *ANY* key is being pressed prevent control switching? Seams like something that could be implemented pretty easy on your end.
Also, if we could have a slider to select the level of dimming for screen darkening would be really nice I find the 2 states to be pretty hard on the eyes especially in low light situations and would like the change to be a little more subtle.
I want to be clear on one thing, Fenlaan79. When you switch to a Secondary, that you have the PTT mapped key held down still is inadvertent yes? If so, you are asking for an option in MP that saves you from this non-deliberate act of still having the PTT key depressed as you switch, correct?
Sean DrohanStardock Product Lifecycle Manager
Correct, if PTT is pressed down and you change control to another pc your mic is left in an open state until PTT is pressed again, This can lead to embarrassing open mic situations and this happens many times with both me and other guild members. So I want to prevent switching while PTT is being held down. But it's also not just PTT keys that are the problem. Sometimes I'm moving the character when switching screens in game and those keys get stuck as well which can cause your character to just run off. Hence the "any" key request.
In theory you could keep it to just common keys like 1-9 a-z all the f keys, numpad keys, space bar, etc... I wrote a list in my program with all the key codes mapped out.
public static readonly Dictionary<string, ushort> KeyDictionary = new Dictionary<string, ushort> { { "0", 0x30 }, { "1", 0x31 }, { "2", 0x32 }, { "3", 0x33 }, { "4", 0x34 }, { "5", 0x35 }, { "6", 0x36 }, { "7", 0x37 }, { "8", 0x38 }, { "9", 0x39 }, { "a", 0x41 }, { "b", 0x42 }, { "c", 0x43 }, { "d", 0x44 }, { "e", 0x45 }, { "f", 0x46 }, { "g", 0x47 }, { "h", 0x48 }, { "i", 0x49 }, { "j", 0x4A }, { "k", 0x4B }, { "l", 0x4C }, { "m", 0x4D }, { "n", 0x4E }, { "o", 0x4F }, { "p", 0x50 }, { "q", 0x51 }, { "r", 0x52 }, { "s", 0x53 }, { "t", 0x54 }, { "u", 0x55 }, { "v", 0x56 }, { "w", 0x57 }, { "x", 0x58 }, { "y", 0x59 }, { "z", 0x5A }, { "/", 0xBF }, { ".", 0xBE }, { ",", 0xBC }, { "'", 0xDE }, { "-", 0xBD }, { "=", 0xBB }, { "[", 0xDB }, { "]", 0xDD }, { "`", 0xC0 }, { ";", 0xBA }, {"f1" , 0x70}, {"f2" , 0x71}, {"f3" , 0x72}, {"f4" , 0x73}, {"f5" , 0x74}, {"f6" , 0x75}, {"f7" , 0x76}, {"f8" , 0x77}, {"f9" , 0x78}, {"f10", 0x79}, {"f11", 0x7A}, {"f12", 0x7B}, {"space", 0x20}, {"num0", 0x60}, {"num1", 0x61}, {"num2", 0x62}, {"num3", 0x63}, {"num4", 0x64}, {"num5", 0x65}, {"num6", 0x66}, {"num7", 0x67}, {"num8", 0x68}, {"num9", 0x69}, {"num*", 0x6A}, {"num+", 0x6B}, {"num-", 0x6D}, {"num.", 0x6E}, {"num/", 0x6F}, {"enter", 0x0D}, {"lwin", 0x5B}, {"lshift", 0xA0}, {"lctrl", 0xA2}, {"lmenu", 0xA4}, {"rwin", 0x5C}, {"rshift", 0xA1}, {"rctrl", 0xA3}, {"rmenu", 0xA5} };
Here is link to my program if you want a rough idea of what I'm trying to accomplish.
https://1drv.ms/u/s!AhpdYMJjpIWUiPpSmgj9XtRERZSwkg?e=BDakQV
Needs .net framework 4.8
Ok, so the 'unless shift is held down' switching control option does 'save one from one's self' there, you are just hoping for another option.
While the 'any key held down' request seems reasonable on the surface, I wonder how that would function with the Hotkeys - which require a key press combo. Incidentally, HotKeys could also factor in for a solution for you had you not already considered it.
Unless shift held down means I have to hit shift to move to another screen. While this is probably the best option currently offered. It also doesn't fully stop the problem because I use shift for some actions in the game and as a mod key in some hotkey functions. People playing Everquest are often playing 2-6 characters at the same time(some even more than that, I currently am playing 5). We need to be able to seamlessly switch between screens *constantly*. While also hitting push to talk. During raids there's often a lot going on. It's often 54 characters working together at least half of those 54 are being "boxed" usually with multiplicity.
I use multiplicity hotkeys, My program works fine with hotkeys. My main use for hotkeys is when I "lose" the cursor. My program also *only* affects the main computer which is the *only* computer that has this issue. I have been playing this game for many many years, my general habit is to not be pushing a key when I switch screens so when I am "accidently" pressing a key when switching this is the problem. Often the switch was unintentional because I was too close to the edge or in a hurry to deal with something.
Shift to switch is probably the closest solution to my issue but it would involve a lot of adjustment to my gameplay and doesn't fully solve the issue. I am just asking for another checkbox in that list. There's no reason to prevent screen switching if you hitting the hotkey to do so. My screen switch hotkey is a 3 button combination there is no conflict. You should also be able to prioritize in your program a lot easier than I could with a 3rd party application (not that my program has caused me any issues).
Keys being stuck when switching off screen on main pc as far as I'm concerned is a bug that you have refused to address for several years. I tried writing a fix for it but it's not something I can fix from a 3rd party program as far as I can tell. So I am asking for a reasonable workaround to prevent this bug. This bug is not just experienced by me I just happen to be the most vocal about it, several people in my guild experience this problem and complain about it occasionally. I just am the only one that is vocal about it here, most just put up with it.
This would be a great quality-of-life fix that affects a lot of Everquest players. Please don't leave us in a depressed state
Bump. Please fix this.
Now that they disabled truebox I've noticed that same thing happens when running multiple clients on same pc it's more of an issue with direct x games and a loss of client focus.
I think it's more of an issue with EverQuest when the game loses focus. There's some advantages to it working this way; but I've also been caught by inadvertently broadcasting with Discord when I don't mean to do so.
Is this on GitHub somewhere? Source?
There are many great features available to you once you register, including:
Sign in or Create Account