Tags
Creators
Details
3.0.0-beta.1
Compatibility
Required content
Changes
Controlify 3.0.0-beta.1
This version has the following targets:
- StonecutterProject(project=1.21.11-fabric, version=1.21.11)
- StonecutterProject(project=1.21.11-neoforge, version=1.21.11)
- StonecutterProject(project=1.21.10-fabric, version=1.21.10)
- StonecutterProject(project=1.21.10-neoforge, version=1.21.10)
- StonecutterProject(project=1.21.8-fabric, version=1.21.8)
- StonecutterProject(project=1.21.8-neoforge, version=1.21.8)
- StonecutterProject(project=1.21.5-fabric, version=1.21.5)
- StonecutterProject(project=1.21.5-neoforge, version=1.21.5)
- StonecutterProject(project=1.21.4-fabric, version=1.21.4)
- StonecutterProject(project=1.21.4-neoforge, version=1.21.4)
- StonecutterProject(project=1.21.3-fabric, version=1.21.3)
- StonecutterProject(project=1.21.3-neoforge, version=1.21.3)
- StonecutterProject(project=1.21.1-fabric, version=1.21.1)
- StonecutterProject(project=1.21.1-neoforge, version=1.21.1)
By donating on my Patreon, you will gain access to builds of Controlify for splitscreen support and snapshot versions
New Config System
Each controller no longer has its own configuration. This means if you switch between multiple controllers, they will share the same configuration.
Instead of "controller settings", these are now referred to as "profiles".
This sets up the foundations of the current in-development splitscreen feature.
The format of the configuration file has completely changed. Controlify will automatically migrate your old configuration to the new format on first run. Beware that if you downgrade Controlify after running this version, your configuration will be lost.
Codec-based configuration
This new config system migrates from Gson object serialization to a codec-based system. This makes everything a lot more explicit and easier to maintain, and has allowed for much easier versioning and migration of configuration files using data-fixer-upper.
Resource-pack-driven defaults
You can now bundle default profiles with resource packs. Each controller type can provide its own default, but because configuration is per-profile and not per-controller. Once a profile has been created for one controller type, it will not be overridden by another controller type's defaults, even if you switch controllers.
Documentation coming soon.
Settings screen overhaul
The carousel settings screen is no more! A new, simpler settings screen has taken its place, since you can no longer choose between multiple controllers or configure them separately.
This layout has been designed for future expansion, namely adding splitscreen support.
No more manual controller switching!
You no longer need to go into the settings to switch controllers. Simply use your second controller, and Controlify will automatically switch to it!
No more calibration!
Previous versions of Controlify had a pop-up when you connected a new controller, asking you to calibrate it. This calibration step tried to adjust the deadzones and gyroscope offset for your controller.
- Deadzones are now defaulted to 12% for all controllers.
- Gyroscope offset is now automatically and continually calculated in the background while you play.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:DOUdJVEm:6ciuzqwg"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DOUdJVEm:6ciuzqwg"
}


