Controlify 1.1 (Beta 1)
A noteable update to Controlify, with a lot of new features.
New Features
- Controller vibration support for all platforms.
- Reach-around block interaction that imitates Bedrock Edition's exact behaviour.
- Reduce aim sensitivity option. When aiming, the sensitivity is reduced and more fine control is given.
- Modded keybinds are now automatically registered as controller binds.
- Bindings are now grouped into categories.
- Compound joysticks, allowing for an infinite amount of inputs. This currently has no UI, and you have to create a joystick mapping resource-pack yourself. This will come in a future update.
- Two abstract gui controller binds are available for mod developers to use in any screen context.
- Button guide in screens, with a new API for mod developers to add their own button guides.
- New registry for screenop API, as an alternative to mixing into UIs, you now register
ScreenProcessor
s andComponentProcessor
s on the Controlify entrypoint. - New builder API for controller bindings, deprecating the old constructor-based approach.
Controller Vibration
This is a feature that is available on all platforms, Windows, Linux, and Mac. Only a few vibrations are implemented in this beta, but I'd love suggestions for more. The current vibrations are:
- Using items (including eating)
- Taking damage
- Ender dragon death
- Anvil use (clang! clang! clang!)
Changes
There are multiple breaking API changes in this update, but as of writing, I am not aware of any mods that utilise any of Controlify's APIs. This will not happen in minor updates when this mod is more popular.
- Ingame guide registry now takes a function that provides
IngameGuideContext
, rather than many parameters, this future-proofs the API if more parameters are added. - Some ingame guide classes have moved inside the
api
package. - Partial Chinese translation by @GodGun968.
Bug Fixes
- Fixed a bug where some in-game binds worked in containers. (#35)
Controlify 1.0
Due to this being the first full release, all features from betas will be listed here.
Features
- In-game complete controller input
- 4-axis screen operation with thumbsticks
- In-game button guide hud with accompanying mod API
- Cursor snapping to slots in containers (with API)
- Bedrock-like look sensitivity
- Controller mapping interface to change buttons
- "Virtual mouse" fallback for incompatible screens and containers
- Joystick support (limited)
- Auto deadzone detection
- Controller hotplugging
- Resource-pack based controller model identification, button rendering and joystick mapping
- Seperate X/Y axis sensitivity settings
- Axis deadzone configuration
- Accessibility options per-controller, auto jump, toggle sneak, toggle sprint.
- 1.19.4 tab system compatibility
- Steam Deck support
- Chat offset for on-screen keyboards
- Keyboard-like movement setting for over-zealous anti-cheats
- Immediately-fast HUD batching
Compatibility
- Most vanilla menu support
- YACL support
- Sodium support
- Iris support
- Explicit immediately-fast support for button guide hud batching
New since 0.3.0
- Update to 1.19.4 release
- Rewritten controller identification system to be more reliable and to support Steam Deck
- Add icon to Mod Menu
- Fix virtual mouse spawning top-left when it should spawn in the middle
- Chat offset for on-screen keyboards
- Add compatibility for navbars for all screens, rather than just create world
- Controller switch confirmation toast
- Keyboard-like movement setting for over-zealous anti-cheats
- Fix binding API breaking with generics
- Fix YACL cycling using incorrect bindings
Milestone 3
This milestone includes a lot of community suggestions and joystick support (though multiple of these cannot be used at once yet)
- Joystick support - completely modular with resource pack mapping system.
- Controller deadzone auto-calibration system
- More button guides
- Swap hands bind
- Shift click bind
- Better error handling for controller identification service
- Improve controller looking
- Improve controller snapping
- Auto jump per-controller
- Steamdeck identification
- Sodium support (this build and onwards)
- Current controller is now saved between loads
- New 1.19.4-pre1 create world screen tab compatibility
Milestone 2
- In-game dynamic button guide hud with accompanying API
- Controller cursor snapping for containers
- Rewrite of player look input to feel more snappy and bedrock-like
- Fix toggle sneak not working
- Fix controller bindings not saving in some scenarios
Milestone 0.1
- In-game complete controller input
- Controller Mapping
- Joystick screen navigation
- Virtual Mouse Support in any GUI
- Controller hotplugging
- Common vanilla menu compatibility
- YACL compatibility
- Controller model identification
- Controller button theming
- Separate X/Y look sensitivity control
- Controller deadzone configuration
- Controller Accessibility (auto jump + sneak)