Infinite mouse movement for games

I am currently trying to get a system in place that will let me do challenges using just my MIDI keyboard for input. Everything is working great, except for the mouse input. I have one major issue and one minor issue.

Major issue:

Mouse movement inputs will stop working when the mouse has reached the edge of the screen instead of moving infinitely. While this is somewhat expected behavior, I would really like to figure out a way around this.

Minor issue:

Mouse inputs don't seem to have an option to make them repeat while a key is pressed unlike other input types. Rapidly pressing the key is doable, just annoying.

 

I have attached my mouse preset as it currently stands. If any of you have ideas and other threads that you think might help I would love to hear about them.


Attachments:
1572403560300_Mouse.txt

Hi,

For the major issue. I’m not sure you can tell a mouse to continue to move left if there is no more screen real estate. I don’t think for relative movements that Bome has any knowledge where the mouse is on the screen so messages SHOULD continue, however what the application does, may ignore it. What is the game you are using? Are you running on Windows or Mac?

Are you expecting the mouse pointer to wrap around?

As far as your minor issue, you can create a timer to send mouse clicks and specific intervals while holding a key down. Instead of outgoing being click, it would start and continues timer at regular intervals. The timer translator would then handle sending mouse clicks at those intervals. When you release the button you would have to send a “kill timer” message for the clicks to stop.

 

Posting a copy of the actual project file instead of the exported text would help as then I would not have to spend the time to re-create the file.

 

I hope this helps!

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

For Windows, I can confirm that relative mouse movement messages continue to be send, even when out of screen boundries so it is really up to the application to determine what to do with those messages from there. I did not send them as Windows injected events which seems like what you are doing on one of the translators. This also answers my question that you are on Windows, not Mac.

I am using it in the game Destiny 2. I have tried both injected and normal inputs. Injected inputs are not permitted by the application, so I am afraid it might be the game that is culling the increments as they are somehow not the expected input. Also, yes I am on Win 10. I will link the actual preset in an “answer” as some reason I can’t edit the attached files in my original post. Thanks for your help!

This is the preset file I am currently working with. Sorry for linking the wrong file initially.


Attachments:
1572409632256_GAMES-Destiny.bmtp

Yes only posts and answers take attachments. Not comments. I’ll see if my son has Destiny 2 loaded on his system. He plays lots of games.

OK mouse movement look as expected. Message keep being sent. Still have to see if I can test with Destiny 2 (only if I have it). For clicks, what is the behavior you want. You know multiple click down with no click up will probably not do anything. So do you want click down and wait then click up and click down alternating until you push another button to stop the the process, leaving it a click up?
We will need two timers to do that if that is the case and also, need a way to ensure last click was up.

Basically, I want to be able to use automatic weapons within the game. The game is actually free on Steam, but it is quite large (80GB) so don’t feel like you need to test it. As far as the repeating mouse button inputs, virtually rapidly re-clicking is potentially an option. I can also set up an alternative keybind to a keyboard button, so this is more a matter of convenience.

I’ll see if I can get my son to load up Destiny 2 but I’m pretty sure that mouse movement messages continue even after the mouse is at the edge of the screen. I tested this with an independent program (written in AutoHotKey) that I wrote that monitors Windows event messages from the mouse (and in this case MT Pro).

I’ll see if I can add some timer translators that handle rapid fire.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Hi,

Set the below file with rapid fire. I also modified your inputs for my controller on the others for testing so you will need to ensure correct MIDI inputs for your controller for all messages.

There are 5 rapid fire translators:

  1. Rapid Fire On – Initiates a continuous timer called “Rapid Fire” at 200 ms intervals. You can change the timing on this to your liking.
  2. Rapid Fire Off Kill – Kills the Rapid Fire timer
  3. Rapid Fire Mouse down – Sends mouse down messages if button state is up. Rules with a global variable “za” determines the button state (initially 0 or up), then toggles the state.
  4. Rapid Fire Mouse up – Sends mouse up messages if the button state is down. Toggles the state
  5. Rapid Fire Mouse Final – Ensure last action is always mouse up, uses a delay after releasing button (and killing the timer). Only fires output if button state is left down after killing the timer. Sets button state to 0 (up)

Translator numbers are 2-14 to 2-18. I assumed you were not using the global variable za for anything else.

 

Have fun!

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz


Attachments:
1572446163053_GAMES-Destiny-w-rapid-fire.bmtp
1 Like