Final Fantasy VII Remake
0 of 0

File information

Last updated

Original upload

Created by

TheUnlocked

Uploaded by

TheUnlocked

Virus scan

Safe to use

Tags for this mod

About this mod

A native mod to improve some of the keyboard and mouse controls.

Requirements
Permissions and credits
Changelogs
Latest update 0.5.0 (2/18/2024)

You can now rebind the controls for the motorcycle minigame! Want left and right click to be left and right swing? Want W and S to be accelerate and break? Now you can do all that, and more!


What does it do?

The purpose of this mod is to provide various improvements to FF7R's unfortunately terrible KB&M controls, particularly around allowing both movement and the menu directions to be bound to the same keys (e.g. WASD). Here are the list of the current features:

  • Allows using a discrete set of keys to change your selected party member (internally called your "leader") in combat rather than having the menu buttons control it.
  • Changes the map to be controlled by your mouse, including clicking and dragging to move the map and scrolling to zoom in and out.
  • Allows you to rebind controls in the motorcycle minigame.
  • Lets you press a button to walk slowly as if you were just slightly pushing the joystick on a controller.


Installation


Video: https://www.youtube.com/watch?v=sLDb_tu4TlI


Uninstallation

Remove ff7-kbm-hook.dll from your NativeMods directory, and optionally delete ff7-kbm-hook.toml and ff7-kbm-hook.log from the game's base directory.


Configuration

When you first start the game after installing this mod, a configuration file called "ff7-kbm-hook.toml" will automatically be created in your game's base path next to (not inside of) the NativeMods directory. If you wish to re-generate this file in the future, you can rename, move, or delete it, and the mod will generate a new one.

Options are split into categories based on what part of the mod they affect. A comprehensive list is included below:

[General]
  • ReloadKey (default: 'f10') - controls what key will cause the config file to be reloaded from disk.

[ChangeLeader]
  • EnableHook (default: true) - decides whether to override the behavior around changing your selected party member (leader); if false, none of the following options have any impact
  • PrevLeader (default: 'left') - the button to switch to the previous party member in the list
  • NextLeader (default: 'right') - the button to switch to the next party member in the list
  • ZExperiment_DisableTimeStop (default: false) - disable the "time stop" effect when changing the leader

[Map]
  • EnableHook (default: true) - decides whether to change the map to use mouse controls
  • LockMouse (default: true) - whether your cursor should be locked to the map area, or if it can go anywhere
  • ZoomSensitivity (min: 0 (off), max: 10, default: 5) - how much each scroll tick should zoom in or out; decimal values supported

[Movement]
  • EnableHook (default: true) - decides whether to enable movement changes
  • WalkKey (default: 'ctrl') - what key should make you walk rather than jog
  • ToggleWalk (default: false) - whether WalkKey should toggle walking rather than needing it to be held

[Motorcycle]
Note: for all of the custom keybinds here, you can use an empty string ('') to tell the mod to use your original keybinds
  • EnableHook (default: true) - decides whether to enable motorcycle minigame changes
  • Accelerate (default: 'w') - the new accelerate key
  • Brake (default: 's') - the new brake key
  • AttackLeft (default: 'lbutton') - the new left attack key
  • AttackRight (default: 'rbutton') - the new right attack key
  • Guard (default: '') - the new guard key
  • Special (default: '') - the new special/unique attack key
  • LongRange (default: 'r') - the new long range key (the one you hold in order to make the special attack long-range)


FAQ

What are valid key names?

Keyboard.cpp in the source code has a list. And yes it supports mouse bindings as well.


Can you add X?

Unless it's a trivial change, probably not, though you're free to ask. If I find something annoying during my playthrough, I may take the time to add a feature to fix it, but reverse engineering can be extraordinarily time consuming so I'm not likely to do it on request unless I also want it. If you already have relevant memory addresses/code patches for a particular KB&M improvement and you just want help getting it packaged into a mod, you can share them and I'll see how straight-forward it would be to include them in this mod.

Things I know would be nice features but I haven't gotten around to adding:
  • When the confirm and unique attack keys are the same, prevent the unique attack from triggering when you give a command to another character in the ATB menu
  • Add mouse or at least better keyboard control to the Midgar wireframe map (very low priority)


Is this open-source?

Yes. The source code is available on GitHub at https://github.com/TheUnlocked/ff7r-kbm-hook. Feel free to make pull requests.


Known Issues

  • The PrevLeader and NextLeader buttons will also act as left and right menu navigation buttons. This happens because the mod triggers switching by emulating left and right arrow key presses. Earlier versions of this mod directly called internal functions to change the selected player, but that had its own issues and the current solution is far more stable.


Credits

gottyduke's DKUtil library and PluginTemplate sample were extremely helpful in creating this mod.

Thanks to Hydeny for the suggestion to add a walk button.