90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

1.3.0+1.20

Changelog

Controlify 1.3 for 1.20

New Features

  • Added a config setting delegate_setup so modpack authors can move the controller setup to when users enter the config screen.

Controller Carousel Screen

This screen appears where the YACL config once was, after opening controller settings. You can select a controller from the carousel to either edit its settings or set it as the active controller.

On each entry of the carousel, you can now also see a pixel art icon of the specific controller type, thanks to Andrew Grant for making these!

carousel screen

New Controller Settings Screen

Upon opening an individual controller config, a more refined YACL config screen will appear. Three categories are available: Basic, Advanced and Controls. Basic contains the most common settings you will change, advanced holds settings such as gyro and rumble.

With the new settings screen, comes the features of YetAnotherConfigLib v3. Some option descriptions are now enhanced with gifs and images to better explain what they do. Because the controls groups are now actually classes as groups, searching the group name will show all controls in that group.

Greatly improved gyro support

I got my hands on a controller with gyro, so I was able to test and refine the functionality to make it as intuitive as possible. For starts, it actually works now (I forgot to enable the sensor) and the flick stick is now a smooth animation rather than just jumping 90 degrees.

Better controller name detection

If not provided by explicit controller detection, Controlify now uses the name found in the SDL game controller database, so more controllers should have more accurate names.

Experimental anti-snapback

Every spring isn't perfect, and can sometimes cause the stick to overshoot the neutral position when returning to it. This can cause the camera to drift slightly. This feature attempts to mitigate that. This feature can already be found in DS4Windows, but a more native solution is always better.

To try it out, you need to set a JVM flag in your launcher: -Dcontrolify.debug.use_snapback=true, however, do be warned, this is extremely buggy and can cause the stick to jitter.

Server-side support

Controlify now has server-side support, meaning it is now recommended to install Controlify on your server.

/vibratecontroller command

This command allows you to make players' controllers vibrate. You can specify the intensity of both the low frequency and high frequency motors, and the duration of the vibration.

You can select to either do a simple vibration, or place the vibration in world-space (either bound to an entity or position) with a range to have the vibration intensity decrease with distance.

/vibratecontroller <receivers> <low_freq_intensity> <high_freq_intensity> <duration_ticks> <(static|positioned)> [<range>] [<(position|entity>]

/vibratecontroller @a 0 0.25 200 positioned 10 ~ ~ ~
/vibratecontroller @a 0.75 1 50 static
/vibratecontroller @a 0.75 1 20 positioned 10 @e[type=minecraft:warden,sort=nearest,limit=1]
/execute as @e[type=!minecraft:player] run vibratecontroller @a 1 0 5 positioned 20 @s

This comes with a client option in global settings to ignore these server requests to vibrate.

Reach-around policy

When Controlify is stored in the server, by default, the reach-around policy is set to disallow. You can allow reach-around placement on your server by setting the reach_around_policy config option to true.

Changes

  • Removed extra mappings resource pack (merged into base resources)

Bug Fixes

  • Fixed hotplugging not working when no controllers were connected at launch
  • Fixed natives not working on Apple Silicon

Files

Controlify-1.3.0+1.20.jar(1.78 MiB) Primary Download

Project members

isxander

Owner

Details

Licensed LGPL-3.0-or-later
Published 2 years ago
Updated 2 months ago