If you press a +REP macro, press another while still holding the first, and release the second, the first will fire at about half speed until all keys are released.
Numbered Steps to Reproduce Problem:
Open stub world with an empty map that has enough room to move around.
- Open stub world with an blank map that has enough room to move around.
- Hold down
- Wait one second (or so)
- Hold left (don't release down) (this will cause you to move left at normal speed)
- wait one second
- Release left (you will resume moving down, but at about half speed with randomish delays(see below))
Code Snippet (if applicable) to Reproduce Problem:
client
var/lastmove = 0
Move()
var/diff = world.time - lastmove
lastmove = world.time
src << "MOVING: [world.time] ||| [world.timeofday] ||| time since last move: [diff]"
. = ..()
Expected Results:
MOVING: 137.1 ||| 709149 ||| time since last move: 0.5
MOVING: 137.6 ||| 709149 ||| time since last move: 0.5
MOVING: 138.1 ||| 709150 ||| time since last move: 0.5
MOVING: 138.6 ||| 709151 ||| time since last move: 0.5
MOVING: 139.1 ||| 709152 ||| time since last move: 0.5
MOVING: 139.6 ||| 709153 ||| time since last move: 0.5
MOVING: 140.1 ||| 709153 ||| time since last move: 0.5
Actual Results:
MOVING: 141.6 ||| 709156 ||| time since last move: 1.5
MOVING: 142.1 ||| 709156 ||| time since last move: 0.5
MOVING: 144.6 ||| 709160 ||| time since last move: 2.5
MOVING: 145.6 ||| 709161 ||| time since last move: 1
MOVING: 147.6 ||| 709164 ||| time since last move: 2
MOVING: 148.1 ||| 709165 ||| time since last move: 0.5
MOVING: 150.6 ||| 709168 ||| time since last move: 2.5
MOVING: 151.6 ||| 709169 ||| time since last move: 1
MOVING: 153.6 ||| 709172 ||| time since last move: 2
MOVING: 154.1 ||| 709173 ||| time since last move: 0.5
Workarounds:
Mousedown + mouseup binding and roll your own repeating functionality
Related: https://github.com/tgstation/tgstation/issues/26604
Note: this seems to happens for all verbs, not just movement ones, but its only movement ones that you would really notice it on.
also does it on macros that run instant verbs