Is there a way to change the Jump keybind?

I want my game to have custom binds settings, but then I realize is there even a way to changed the Jump Button keybind?

2 Likes

You will need to fork the PlayerModule to do this. Find the Keyboard module in ControlModule under the PlayerModule and go to line 129 (accurate at time of post; may change in the future). Replace Enum.PlayerActions.Jump with Enum.KeyCode.YOUR_KEY_NAME_HERE.

Roblox used some kind of special enumeration for handling character movement actions but there’s a todo mentioning reverting to KeyCode. Not sure what the design decision behind that was but in any case once you replace PlayerActions.Jump with a keycode of your choice you’re set.

3 Likes

Or you can just use contextactionservice, unbind the current button, and bind jump to another key

1 Like

I would agree with this and avoid forking in most cases but you don’t quite have a choice with the ControlModule unless you have a means to rewrite the jump instructions as well.

local handleJumpAction = function(actionName, inputState, inputObject)
	self.jumpRequested = self.jumpEnabled and (inputState == Enum.UserInputState.Begin)
	self:UpdateJump()
	return Enum.ContextActionResult.Pass
end

This is a local function in the Keyboard module and there’s no method that allows you to get the bound function so changing it isn’t all that clean if you intend to do it without forking and while respecting the controller state.

4 Likes