Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Controlify 2.0.0-beta.4 for MC 1.20.4

Changelog

This build targets 1.20.1, 1.20.4 and 1.20.5-rc2

More supported controllers!

  • Added support for Switch Pro controllers and any switch controllers that emulate it.
    • A new icon set is also present for switch controllers
    • This is not support for JoyCons
  • Added support for a new firmware of Xbox controllers.

Bind icons - now powered by fonts!

The button icon rendering system has been completely overhauled. It now utilises the font renderer. Other mods can now embed these icons within their text components, and servers can now send these through the chat.

// will display as the missing character square on clients without Controlify
{"key": "controlify:walk_forward", "font": "controlify:inputs"}
// will display 'No controlify here' with clients without Controlify
{"translate": "controlify.placeholder","with":[{"key": "controlify:walk_forward", "font": "controlify:inputs"},"No controlify here!"]}

This also allows for resource packs to provide HD icons!

New button icon set!

Many previous icons have been redrawn. They are now using 16x textures.

  • DualSense controllers now have an additional texture for the mute button (this is functional by the way!)
  • Xbox Series controllers now have an additional texture for the share button (also functional!)
  • Generic controllers now have textures for paddles and an extra miscellaneous button for controllers that support it
  • A completely new Switch Pro icon set to go along with Switch Pro controller support.

Server handshake

Servers with Controlify installed will now initiate a handshake with the player;

  • If a client does not have Controlify installed, it will allow them to connect
  • If a client has Controlify installed but the protocol is not the same as the server, it will be disconnected
  • If a client has Controlify with a matching protocol version, it will allow them to connect

Note: protocol version is not the same thing as mod version. It is only changed when a change is made to the way packets are sent and received.

Note: the client will not make itself known to a server unless the server implements the handshake protocol.

Changes

  • Controlify will now hard-crash when it fails to create a controller
    • This is useful because it will be more obvious to you that there was an issue, rather than Controlify just not detecting it and silently failing. You will be able to submit a crash report to me to get it sorted.
  • A new toast is now displayed after an unfixable error occurred and the controller config had to be reset
  • Prevent the 'use the mouse' tutorial from appearing when a new world is started in controller mode.
  • Switch use-item rumble to be under the 'Interaction' category, rather than 'Player'

Bug fixes

  • Fix a memory leak that retained world data through the 'Loading Terrain' screen. (#293)
  • Fix vibration not disabling when 'Allow Vibration' is off (#263)
  • Fix 'cannot find SDL3.dll' logs spamming (#294)
  • Don't enable the HD Haptics component if on macOS since it's broken
  • Fix an error that was causing controller configuration to reset (#290)

Files

Controlify-2.0.0-beta.4+1.20.4.jar(2.49 MiB) Primary Download
Controlify-2.0.0-beta.4+1.20.4-offline.jar(11.26 MiB) Download

External resources



Project members

isxander

Owner


Technical information

License
LGPL-3.0-or-later
Client side
required
Server side
unsupported
Project ID