MidnightControls
A Fabric Minecraft mod which adds better controls, reach-around and controller support.
Forked from LambdaControls by the amazing LambdAurora, which was sadly discontinued.
What's this mod?
This mod adds better controls, reach-around features, etc.
Haven't you dreamed to travel in your modded Minecraft world with your controller? Yes? Then this mod is made for you!
This mod also adds controller support.
✅ Features:
-
For a nice overview, visit https://www.midnightdust.eu/midnightcontrols/
-
Controller support
-
Touchscreen support
-
Keyboard controls to look around.
-
Toggleable on screen button indicator (like in Bedrock Edition).
-
New controls settings!
-
Many options in config to change to your liking.
-
Many controllers supported and in a simply way your own controller mappings.
-
Automatic support for modded keybinds
-
An easy API for developers to add their own button bindings.
Install MidnightControlsExtra for extra features that might be considered as cheats
🎮 Supported Controllers:
- Dualshock controllers
- Dualsense controllers
- Xbox controllers
- Switch Pro controllers
- Joycons
- Steam controller and Steam Deck
- And many more!
Trailer
Screenshots

FAQ:
The controller does not work, and its name appears in orange, what can I do?
Orange controller names indicate a missing controller mapping.
Download GamepadTool, create and copy a mapping, go to MidnightControls' Mappings File Editor and paste the string.
Alternatively, you can use AntiMicroX to create the mappings, in case the Gamepad Tool is not working for you.
If that works, you might as well consider submitting the mapping by opening a PR in this repo: https://github.com/gabomdq/SDL_GameControllerDB
That will make sure other people using the same controller as you don't have to use gamepad-tool anymore.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- Port to 26.1
- Compatibility with certain mods needed to temporarily disabled until they're updated
## MidnightControls v1.12.0
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
- Port to 26.1
- Compatibility with certain mods needed to temporarily disabled until they're updated
## MidnightControls v1.12.0
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
- Port to 26.1
- Compatibility with certain mods needed to temporarily disabled until they're updated
## MidnightControls v1.12.0
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
- Port to 26.1
- Compatibility with certain mods needed to temporarily disabled until they're updated
## MidnightControls v1.12.0
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
- Re-enable **NeoForge** support!
- Switch to stonecutter build system
- Eases the process of maintaining the mod for older versions – backports incoming :)
- Migrate to official mappings (mojmap)
- This reduces compile times and makes the mod future-proof
- Analog movement is now handled in a better way
- When joining servers that are known to have anti-cheat systems, analog movement will now be disabled to avoid laggy movement and potential bans. Server IPs can be added in the config.
- Non-analog movement no longer negatively affects joystick movement in GUIs
- Fix controller inputs not resetting the idle timer
- Fix sneak movement being too slow
- Improved code quality and maintainability
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: bundle correct version of SpruceUI
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: depend on SpruceUI instead of ObsidianUI
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Release: v1.11.3-beta.2
- Feat: back to SpruceUI!
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Feat: improve options screen with tooltips & better reset
- Clean: remove double tap to sprint option
- Config: reduce default deadzones
- Feat: fancy input mode icons
- Feat: re-order config class
- Feat: switch to new MidnightLib-based screen
- Fix: controller mouse click simulation in screens
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Release: 1.11.3-alpha.2
- Fix: get debug hud toggle working correctly
- Fix: touchscreen interaction finger outline
- Fix: server list moving entries instead of cycling
- Fix: attack key not working properly for mobs
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Release: 1.11.3-alpha.1
- Feat: more mouse cursors 🐁
- Fix: button category names
- Feat: add more functionality to MidnightLib-based config
- Fix: correctly register keybind category
- Feat: support more mouse cursor styles
- Port: The Copper Age (1.21.9)
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Build: switch to official ObsidianUI version
- Fix: resolve ConcurrentModificationException in InputManager.updateBindings
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Build: switch to official ObsidianUI version
- Fix: resolve ConcurrentModificationException in InputManager.updateBindings
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Build: use ObsidianUI from MidnightDust maven
- Fix: get book working again with virtualkeyboard
- Port: Chase the Skies (1.21.6)
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Build: use ObsidianUI from MidnightDust maven
- Fix: get book working again with virtualkeyboard
- Port: Chase the Skies (1.21.6)
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: camera randomly stops working
- Fix: working touchscreen camera
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: camera randomly stops working
- Fix: working touchscreen camera
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: crash on NeoForge 1.21.5
- Clean: remove GlStateManager calls
- Feat: edit signs using the virtual keyboard!
- Feat: add reset button icon
- Feat: easy switching between virtual keyboard layouts
- Feat: data-driven virtual keyboard layouts
- Feat: load virtual keyboard layouts from JSON
- Fix: multiple touch-related bug fixes
- Fix: get touchscreen controls working again
- Fix virtual keyboard config
- Add obisidianUI text field interop
- Fix handler naming
- Fix tooltip entry in en_us locale
- Add virtual keyboard config option
- Implement NeoForge support
- Add missing row width calculation
- Increase displayed lines for newline support
- Replace KeyInfo with String
- Make special key constant private
- Finalize virtual keyboard screen
- Move cursor to end of text in book
- Implement basic virtual keyboard support
- Remove char
- Added czech language
- Chore: bump version
- Feat: improve advanced config screen
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: crash on NeoForge 1.21.5
- Clean: remove GlStateManager calls
- Feat: edit signs using the virtual keyboard!
- Feat: add reset button icon
- Feat: easy switching between virtual keyboard layouts
- Feat: data-driven virtual keyboard layouts
- Feat: load virtual keyboard layouts from JSON
- Fix: multiple touch-related bug fixes
- Fix: get touchscreen controls working again
- Fix virtual keyboard config
- Add obisidianUI text field interop
- Fix handler naming
- Fix tooltip entry in en_us locale
- Add virtual keyboard config option
- Implement NeoForge support
- Add missing row width calculation
- Increase displayed lines for newline support
- Replace KeyInfo with String
- Make special key constant private
- Finalize virtual keyboard screen
- Move cursor to end of text in book
- Implement basic virtual keyboard support
- Remove char
- Added czech language
- Chore: bump version
- Feat: improve advanced config screen
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Chore: bump version
- Feat: improve advanced config screen
- Port: Spring to Life (1.21.5)
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Chore: bump version
- Feat: improve advanced config screen
- Port: Spring to Life (1.21.5)
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Compat: improve/fix Emotecraft compat
- Chore: bump version
- Fix: controller options button not being clickable
- Fix: catch errors in camera thread
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Compat: improve/fix Emotecraft compat
- Chore: bump version
- Fix: controller options button not being clickable
- Fix: catch errors in camera thread
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: catch errors in camera thread
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix: catch errors in camera thread
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix movement while riding boats and other entities
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Fix movement while riding boats and other entities
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Port to 1.21.4
[View the changelog](https://www.github.com/TeamMidnightDust/MidnightControls/commits/)
- Port to 1.21.4
