Playing Minecraft on PC with a Controller
As of 1.21.4, Minecraft for Windows and MacOS doesn't natively support controllers, so the best way I've found is to use a modded launcher, Fabric, and a mod called MidnightControls. Here's the process of setting that up:
Install the Fabric Launcher
- Download the launcher from fabricmc.net
- Click the big Download button to download Fabric Loader Installer (fabric-installer-x.x.x.exe)
- Copy the Launcher Location, we can use this to easily navigate to the folder.
- Run the installer, leave the options as default.
- Leave all the settings the same and click the Install button

If all goes well, it should say “Successfully Installed” afterward.
Install the Fabric API as a Mod

- Open a File Explorer window and paste in the Launcher Location in the url bar
- Open the mods folder
- Go back to fabricmc.net
- Click the Download Fabric API button.
- Select the first file listed, it should look like “[1.21.4] Fabric API …”
- Download the file (a .jar file) and put it in your mods folder
Install MidnightControls
- Go to modrinth.com/mod/midnightcontrols or google “MidnightControls minecraft” and select the first option
- Click the Download button, select the game version and Fabric for the platform and click on the Download button
- Move the .jar file for Midnight Controls to your mods folder
You should now have two files in your mods folder: Fabric and MidnightControls.

Verify Controller Support
Run the Minecraft Launcher and fabric-loader-1.21.4 should be selected as the launcher to the left of the PLAY button.

Try testing your controller by moving it around on the menu. If it moves, you should be good to go!