project icon

Controlify

Adds advanced controller support to Minecraft: Java Edition

Download

2.39M downloads

<center>

Controlify - Controller support for Minecraft Java

Mod Loader - Fabric wakatime

Modrinth download count CurseForge download count

Ko-fi donation page

A mod that adds the best controller support for Minecraft: Java Edition.

</center>

Why Controlify?

User friendly

Despite advanced settings available for power users, Controlify is beginner-friendly. It comes by default with button guides that appear across the whole game, helping you learn the controller layout. It also automatically detects your controller's make and model, displaying relevant Minecraft-style button textures for a more intuitive experience. Controlify "just works" out of the box, no need to spend tens of minutes getting your controller feeling like any other game, thanks to the sane defaults I have created.

Feature-rich

Controlify strives to support all the added features that may come with your controller.

  • It supports gyroscopes natively, allowing for precise movements.
  • It comes with vibration/rumble support, making your gameplay more immersive (this is even missing on Bedrock Edition!)
  • Soon, HD haptics support for DualSense controllers, something never seen outside a Playstation game.
  • Support for non-standard joysticks such as flight sticks, given a small amount of setup.

Compatibility focus

I, the developer have actively collaborated with fellow mod creators of performance mods like Sodium and Iris to ensure seamless controller functionality throughout these custom GUIs. This will mean a more friction-free environment that lets you focus on playing the game, instead of battling through the menus.

Q&A

Does it support Steam Deck?

Yes! Controlify has been tested and is fully working on the Steam Deck, and works great. However, due to limitations with SteamOS, only Steam games can currently interface with the gyroscope and the back buttons directly, though this is set to change in the coming months! For now, you can use Steam Input to convert the gyro into a mouse input, and map the back buttons to other, more common buttons.

Does it support my controller?

Controlify supports most controllers out of the box, any generic gamepad-like controller is bound to work fine, at least in a basic state, giving inputs. Though, more strange and uncommon controllers such as handhelds like the ROG Ally may be missing features such as gyroscope.

If you are having trouble getting your controller working correctly, you can join my discord server or consult the wiki for assistance.

Features

Controller vibration

Controlify supports controller vibration, which has not been seen before for PC versions of Minecraft, including Bedrock Windows 10 Edition. Configure the intensity of each vibration source, with complex vibration patterns for lots of aspects of the game (e.g. when you take damage).

picture of vibration config

Radial menu

radial menu showcase

To save up some buttons on your controller, dedicate some less-used actions to the radial menu. It is fully customizable through the settings and intuitive to use. Any modded keybind is compatible with this menu.

Built-in gyro support

Controlify has built-in support for controller gyroscopes, allowing you to make fine movements in-game with your controller. This can be combined with flick stick to be able to use a controller without the compromise.

Container cursor

Just like in bedrock edition, you can move a cursor across your inventory, and interact with it in a controller-friendly way. With dedicated buttons for quick move, dropping etc. Controlify also comes with cursor snapping, so you don't need to be so precise with cursor movements.

container cursor screenshot

Controller identification

Controlify has the ability to identify the make and model of your controller automatically, and displays relevant button textures for your controller. This is also extendable by resource packs, changing up the button textures in a different style and adding some of your own, more niche controller identifiers.

demonstration of data-driven identification

Joystick support

You can connect any joystick to the mod and map it with your own names and textures, with an unlimited amount of inputs per controller.

Button guide

There is a simple overlay in-game that displays the buttons you can press based on your player's state and look direction. This is useful for new players, who have not yet memorised the controls.

image of in-game button guide

Also, some GUIs display controller buttons on elements that have a controller shortcut, to easily navigate with a controller like you should be able to.

image of in-screen button guide

Containerised Controllers

This mod is built around the fact that each controller is completely separate, with it's own configuration, bindings etc. This means it will be trivial to add support for split-screen play in the future.

Built for mod compatibility

GUI operation has been abstracted into a simple API, which allows other mods to easily add support for their own GUIs, without convoluted support throughout the whole mod's codebase, making it difficult for third parties to integrate.

demonstration of dabr compat

Video recorded using do-a-barrel-roll with a Thrustmaster HOTAS flightstick

Automatic controller deadzone calibration

The deadzone values of your controller are automatically calibrated, meaning you don't have to worry about it.

image of calibration screen

What is to come?

A few features in various points in the horizon are:

  • Explicit Steam Deck support, with the ability to interface with its gyroscope and be able to handle its extra buttons on the back of the device.
  • A better way to change controller bindings, possibly a custom graphical GUI to pick what buttons do what actions, not the other way around.
  • Split-screen support of some degree.

Backports?

This mod is only and will only be available for 1.19.4 and above, this is because in 1.19.4, Mojang introduced arrow key navigation which was easily ported to controller, below 1.19.4, this is not possible.

Gallery