Jump input gets duplicated when making other inputs on the same tick

Altimor

Active member
Most bound inputs cause this alongside a jump. Happens when releasing jump along with another input too (counts as another jump press).

Difficulty of reproducing seems framerate dependent. Could reproduce with increasing difficulty down to but not at 60 FPS. Subtick input confusion?
 

Attachments

Even easier to test with engine_render_only 1.

Pressing jump and then releasing a movement input also causes it. Seems to be anything that causes a subtick split after the jump press/release.
 
Only happens if the input that causes the subtick split is done with a UI bind, not an engine bind, regardless of how you input the jump.
 
Code:
[Client] cl: 2636 ===========================
[Client] cl: 2636: CCitadelUserCmdPB
[Client] cl: 2636: {
[Client] cl: 2636: base {
[Client] cl: 2636:   command_number: 2636
[Client] cl: 2636:   client_tick: 2715
[Client] cl: 2636:   buttons_pb {
[Client] cl: 2636:     buttonstate1: 0
[Client] cl: 2636:     buttonstate2: 0
[Client] cl: 2636:     buttonstate3: 0
[Client] cl: 2636:   }
[Client] cl: 2636:   viewangles {
[Client] cl: 2636:     x: 9.45097065
[Client] cl: 2636:     y: -118.598419
[Client] cl: 2636:   }
[Client] cl: 2636:   random_seed: 1604535332
[Client] cl: 2636:   mousedx: 0
[Client] cl: 2636:   mousedy: 0
[Client] cl: 2636:   pawn_entity_handle: 11223094
[Client] cl: 2636:   consumed_server_angle_changes: 0
[Client] cl: 2636: }
[Client] cl: 2636: vec_camera_position {
[Client] cl: 2636:   x: 2294.34375
[Client] cl: 2636:   y: 1017.09375
[Client] cl: 2636:   z: 97.71875
[Client] cl: 2636: }
[Client] cl: 2636: ang_camera_angles {
[Client] cl: 2636:   x: 9.46875
[Client] cl: 2636:   y: 244.875
[Client] cl: 2636:   z: 0
[Client] cl: 2636: }
[Client] cl: 2636: in_shop: false
[Client] cl: 2636: }
[Client] cl: 2636 ===========================
[Client] cl: 2636: CCitadelUserCmdPB
[Client] cl: 2636: {
[Client] cl: 2636: base {
[Client] cl: 2636:   command_number: 2636
[Client] cl: 2636:   client_tick: 2715
[Client] cl: 2636:   buttons_pb {
[Client] cl: 2636:     buttonstate1: 281474976710656
[Client] cl: 2636:     buttonstate2: 281474976710656
[Client] cl: 2636:     buttonstate3: 0
[Client] cl: 2636:   }
[Client] cl: 2636:   viewangles {
[Client] cl: 2636:     x: 9.45097065
[Client] cl: 2636:     y: -118.598419
[Client] cl: 2636:   }
[Client] cl: 2636:   random_seed: 1604535332
[Client] cl: 2636:   mousedx: 0
[Client] cl: 2636:   mousedy: 0
[Client] cl: 2636:   pawn_entity_handle: 11223094
[Client] cl: 2636:   consumed_server_angle_changes: 0
[Client] cl: 2636: }
[Client] cl: 2636: vec_camera_position {
[Client] cl: 2636:   x: 2294.34375
[Client] cl: 2636:   y: 1017.09375
[Client] cl: 2636:   z: 97.71875
[Client] cl: 2636: }
[Client] cl: 2636: ang_camera_angles {
[Client] cl: 2636:   x: 9.46875
[Client] cl: 2636:   y: 244.875
[Client] cl: 2636:   z: 0
[Client] cl: 2636: }
[Client] cl: 2636: in_shop: false
[Client] cl: 2636: }
[Client] cl: 2636 ===========================
[Client] cl: 2636: CCitadelUserCmdPB
[Client] cl: 2636: {
[Client] cl: 2636: base {
[Client] cl: 2636:   command_number: 2636
[Client] cl: 2636:   client_tick: 2715
[Client] cl: 2636:   buttons_pb {
[Client] cl: 2636:     buttonstate1: 281474976710656
[Client] cl: 2636:     buttonstate2: 281474976710656
[Client] cl: 2636:     buttonstate3: 0
[Client] cl: 2636:   }
[Client] cl: 2636:   viewangles {
[Client] cl: 2636:     x: 9.45097065
[Client] cl: 2636:     y: -118.598419
[Client] cl: 2636:   }
[Client] cl: 2636:   random_seed: 1604535332
[Client] cl: 2636:   mousedx: 0
[Client] cl: 2636:   mousedy: 0
[Client] cl: 2636:   pawn_entity_handle: 11223094
[Client] cl: 2636:   consumed_server_angle_changes: 0
[Client] cl: 2636: }
[Client] cl: 2636: vec_camera_position {
[Client] cl: 2636:   x: 2294.34375
[Client] cl: 2636:   y: 1017.09375
[Client] cl: 2636:   z: 97.71875
[Client] cl: 2636: }
[Client] cl: 2636: ang_camera_angles {
[Client] cl: 2636:   x: 9.46875
[Client] cl: 2636:   y: 244.875
[Client] cl: 2636:   z: 0
[Client] cl: 2636: }
[Client] cl: 2636: in_shop: false
[Client] cl: 2636: }
[Client] cl: 2636 ===========================
[Client] cl: 2636: CCitadelUserCmdPB
[Client] cl: 2636: {
[Client] cl: 2636: base {
[Client] cl: 2636:   command_number: 2636
[Client] cl: 2636:   client_tick: 2715
[Client] cl: 2636:   buttons_pb {
[Client] cl: 2636:     buttonstate1: 281474976710656
[Client] cl: 2636:     buttonstate2: 281474976710656
[Client] cl: 2636:     buttonstate3: 0
[Client] cl: 2636:   }
[Client] cl: 2636:   viewangles {
[Client] cl: 2636:     x: 9.45097065
[Client] cl: 2636:     y: -118.598419
[Client] cl: 2636:   }
[Client] cl: 2636:   random_seed: 1604535332
[Client] cl: 2636:   mousedx: 0
[Client] cl: 2636:   mousedy: 0
[Client] cl: 2636:   pawn_entity_handle: 11223094
[Client] cl: 2636:   consumed_server_angle_changes: 0
[Client] cl: 2636: }
[Client] cl: 2636: vec_camera_position {
[Client] cl: 2636:   x: 2294.34375
[Client] cl: 2636:   y: 1017.09375
[Client] cl: 2636:   z: 97.71875
[Client] cl: 2636: }
[Client] cl: 2636: ang_camera_angles {
[Client] cl: 2636:   x: 9.46875
[Client] cl: 2636:   y: 244.875
[Client] cl: 2636:   z: 0
[Client] cl: 2636: }
[Client] cl: 2636: in_shop: false
[Client] cl: 2636: }
[Client] cl: 2637 ===========================
[Client] cl: 2637: CCitadelUserCmdPB
[Client] cl: 2637: {
[Client] cl: 2637: base {
[Client] cl: 2637:   command_number: 2637
[Client] cl: 2637:   client_tick: 2715
[Client] cl: 2637:   buttons_pb {
[Client] cl: 2637:     buttonstate1: 281474976711680
[Client] cl: 2637:     buttonstate2: 281474976711680
[Client] cl: 2637:     buttonstate3: 0
[Client] cl: 2637:   }
[Client] cl: 2637:   viewangles {
[Client] cl: 2637:     x: 9.45097065
[Client] cl: 2637:     y: -118.598419
[Client] cl: 2637:   }
[Client] cl: 2637:   leftmove: -1
[Client] cl: 2637:   random_seed: 1971518158
[Client] cl: 2637:   mousedx: 0
[Client] cl: 2637:   mousedy: 0
[Client] cl: 2637:   pawn_entity_handle: 11223094
[Client] cl: 2637:   subtick_moves {
[Client] cl: 2637:     button: 1024
[Client] cl: 2637:     pressed: true
[Client] cl: 2637:     when: 0
[Client] cl: 2637:   }
[Client] cl: 2637:   consumed_server_angle_changes: 0
[Client] cl: 2637: }
[Client] cl: 2637: vec_camera_position {
[Client] cl: 2637:   x: 2294.34375
[Client] cl: 2637:   y: 1017.09375
[Client] cl: 2637:   z: 97.71875
[Client] cl: 2637: }
[Client] cl: 2637: ang_camera_angles {
[Client] cl: 2637:   x: 9.46875
[Client] cl: 2637:   y: 244.875
[Client] cl: 2637:   z: 0
[Client] cl: 2637: }
[Client] cl: 2637: in_shop: false
[Client] cl: 2637: }

Looks like the UI movement binds are waiting until the next tick (hence 0 subtick fraction) to add themself to the newly pressed buttons along with any other buttons that were freshly pressed or released when the UI bind was triggered.
 
Think I've seen this as well and it's gotten me killed a handful of times now. Trying to dash + jump away only to execute a second jump once I hit the air and have no stamina leftover once I hit the ground.
 
Back
Top