Skip to content

[Bug] Crash on certain menu buttons (1.21.9) #684

@ViriVanilla

Description

@ViriVanilla

Current Behaviour

On certain menu buttons that cycle between different options, such as the difficulty on the world creation screen, the game crashes when using a controller.
I have tested this with 2 different controllers (Steam Deck, and Nintendo Switch Pro Controller).

Expected Behaviour

The game should not crash and instead should cycle through the menu option as normal like with mouse and keyboard.

Screenshots

No response

Reproduction Steps

  1. Start Game
  2. Go to any menu button that cycles through different options
  3. With controller, press the button. The game will instantly crash.

Logs

---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3

Time: 2025-10-04 19:05:43
Description: Ticking current controller

java.lang.NullPointerException: Cannot invoke "net.minecraft.class_11907.method_74239()" because "$$0" is null
	at knot//net.minecraft.class_5676.method_25306(class_5676.java:60)
	at knot//dev.isxander.controlify.screenop.compat.vanilla.AbstractButtonComponentProcessor.overrideControllerButtons(AbstractButtonComponentProcessor.java:23)
	at knot//dev.isxander.controlify.screenop.ScreenProcessor.handleComponentButtonOverride(ScreenProcessor.java:208)
	at knot//dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:60)
	at knot//dev.isxander.controlify.Controlify.tickController(Controlify.java:532)
	at knot//dev.isxander.controlify.Controlify.lambda$tick$2(Controlify.java:472)
	at knot//dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at knot//dev.isxander.controlify.Controlify.lambda$tick$1(Controlify.java:471)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at knot//dev.isxander.controlify.Controlify.tick(Controlify.java:470)
	at knot//net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at knot//net.minecraft.class_310.handler$zkj000$fabric-lifecycle-events-v1$onStartTick(class_310.java:7596)
	at knot//net.minecraft.class_310.method_1574(class_310.java)
	at knot//net.minecraft.class_310.method_1523(class_310.java:1345)
	at knot//net.minecraft.class_310.method_1514(class_310.java:969)
	at knot//net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:506)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at knot//net.minecraft.class_5676.method_25306(class_5676.java:60)
	at knot//dev.isxander.controlify.screenop.compat.vanilla.AbstractButtonComponentProcessor.overrideControllerButtons(AbstractButtonComponentProcessor.java:23)
	at knot//dev.isxander.controlify.screenop.ScreenProcessor.handleComponentButtonOverride(ScreenProcessor.java:208)
	at knot//dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:60)
	at knot//dev.isxander.controlify.Controlify.tickController(Controlify.java:532)
	at knot//dev.isxander.controlify.Controlify.lambda$tick$2(Controlify.java:472)
	at knot//dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at knot//dev.isxander.controlify.Controlify.lambda$tick$1(Controlify.java:471)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at knot//dev.isxander.controlify.Controlify.tick(Controlify.java:470)
	at knot//net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at knot//net.minecraft.class_310.handler$zkj000$fabric-lifecycle-events-v1$onStartTick(class_310.java:7596)

-- Affected controller --
Details:
	Controller name: Switch Controller
	Controller identification: Switch Controller
	Controller type: dev.isxander.controlify.controller.ControllerEntity
Stacktrace:
	at knot//dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at knot//dev.isxander.controlify.Controlify.lambda$tick$1(Controlify.java:471)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at knot//dev.isxander.controlify.Controlify.tick(Controlify.java:470)
	at knot//net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at knot//net.minecraft.class_310.handler$zkj000$fabric-lifecycle-events-v1$onStartTick(class_310.java:7596)
	at knot//net.minecraft.class_310.method_1574(class_310.java)
	at knot//net.minecraft.class_310.method_1523(class_310.java:1345)
	at knot//net.minecraft.class_310.method_1514(class_310.java:969)
	at knot//net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:506)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)

-- Uptime --
Details:
	JVM uptime: 29.890s
	Wall uptime: 22.877s
	High-res time: 21.527s
	Client ticks: 398 ticks / 19.900s
Stacktrace:
	at knot//net.minecraft.class_310.method_1587(class_310.java:2434)
	at knot//net.minecraft.class_310.method_54580(class_310.java:1038)
	at knot//net.minecraft.class_310.method_1514(class_310.java:990)
	at knot//net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:506)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)

-- Last reload --
Details:
	Reload number: 2
	Reload reason: manual
	Finished: Yes
	Packs: vanilla, fabric, controlify, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-command-api-v2, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-language-kotlin, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-loot-api-v3, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-rendering-fluids-v1, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-resource-loader-v1, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-serialization-api-v1, fabric-sound-api-v1, fabric-tag-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, fabricloader, immediatelyfast, immersiveoverlays, iris, sodium, yet_another_config_lib_v3, zoomify, file/VanillaTweaks_r630827_MC1.21.x.zip

-- System Details --
Details:
	Minecraft Version: 1.21.9
	Minecraft Version ID: 1.21.9
	Operating System: Windows 11 (amd64) version 10.0
	Java Version: 21.0.7, Microsoft
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
	Memory: 251504480 bytes (239 MiB) / 671088640 bytes (640 MiB) up to 2147483648 bytes (2048 MiB)
	CPUs: 32
	Processor Vendor: GenuineIntel
	Processor Name: 13th Gen Intel(R) Core(TM) i9-13900K
	Identifier: Intel64 Family 6 Model 183 Stepping 1
	Microarchitecture: Raptor Lake
	Frequency (GHz): 3.00
	Number of physical packages: 1
	Number of physical CPUs: 24
	Number of logical CPUs: 32
	Graphics card #0 name: Intel(R) UHD Graphics 770
	Graphics card #0 vendor: Intel Corporation
	Graphics card #0 VRAM (MiB): 2048.00
	Graphics card #0 deviceId: VideoController1
	Graphics card #0 versionInfo: 32.0.101.6987
	Graphics card #1 name: NVIDIA GeForce RTX 4090
	Graphics card #1 vendor: NVIDIA
	Graphics card #1 VRAM (MiB): 24564.00
	Graphics card #1 deviceId: VideoController2
	Graphics card #1 versionInfo: 32.0.15.6094
	Memory slot #0 capacity (MiB): 16384.00
	Memory slot #0 clockSpeed (GHz): 4.80
	Memory slot #0 type: DDR5
	Memory slot #1 capacity (MiB): 16384.00
	Memory slot #1 clockSpeed (GHz): 4.80
	Memory slot #1 type: DDR5
	Virtual memory max (MiB): 38944.00
	Virtual memory used (MiB): 24952.69
	Swap memory total (MiB): 6400.00
	Swap memory used (MiB): 224.62
	Space in storage for jna.tmpdir (MiB): available: 249644.22, total: 952852.00
	Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 249644.22, total: 952852.00
	Space in storage for io.netty.native.workdir (MiB): available: 249644.22, total: 952852.00
	Space in storage for java.io.tmpdir (MiB): available: 249644.22, total: 952852.00
	Space in storage for workdir (MiB): available: 249644.22, total: 952852.00
	JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	Debug Flags: 0 total; 
	Fabric Mods: 
		controlify: Controlify 2.4.1+1.21.10-fabric
			dev_isxander_libsdl4j: libsdl4j 3.2.18.release-3.2.18-79
			dev_isxander_steamdeck4j: steamdeck4j 1.1.7
			org_hid4java_hid4java: hid4java 0.8.0
		fabric-api: Fabric API 0.133.14+1.21.9
			fabric-api-base: Fabric API Base 1.0.0+14b92d8987
			fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.106+d176821587
			fabric-biome-api-v1: Fabric Biome API (v1) 16.0.15+14b92d8987
			fabric-block-api-v1: Fabric Block API (v1) 1.1.5+d176821587
			fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.34+e4fd1b9287
			fabric-command-api-v2: Fabric Command API (v2) 2.3.7+328a75ba87
			fabric-content-registries-v0: Fabric Content Registries (v0) 10.2.3+b6a2426487
			fabric-convention-tags-v1: Fabric Convention Tags 2.1.47+7f945d5b87
			fabric-convention-tags-v2: Fabric Convention Tags (v2) 2.15.12+3154c1c887
			fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.3.18+33df5e6e87
			fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.8.27+9bce411b87
			fabric-data-generation-api-v1: Fabric Data Generation API (v1) 23.2.21+d8b85ef187
			fabric-dimensions-v1: Fabric Dimensions API (v1) 4.0.22+38b9cc1987
			fabric-entity-events-v1: Fabric Entity Events (v1) 2.1.12+14b92d8987
			fabric-events-interaction-v0: Fabric Events Interaction (v0) 4.0.34+5ba2171287
			fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.1.0+492293e687
			fabric-item-api-v1: Fabric Item API (v1) 11.5.8+9bce411b87
			fabric-item-group-api-v1: Fabric Item Group API (v1) 4.2.24+86b3ae5787
			fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.1.1+b3ba9c4887
			fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.6.9+33df5e6e87
			fabric-loot-api-v2: Fabric Loot API (v2) 3.0.64+3f89f5a587
			fabric-loot-api-v3: Fabric Loot API (v3) 2.0.11+d176821587
			fabric-message-api-v1: Fabric Message API (v1) 6.1.7+3154c1c887
			fabric-model-loading-api-v1: Fabric Model Loading API (v1) 6.0.0+3ffd6ef087
			fabric-networking-api-v1: Fabric Networking API (v1) 5.0.12+86b3ae5787
			fabric-object-builder-api-v1: Fabric Object Builder API (v1) 21.1.23+9bce411b87
			fabric-particles-v1: Fabric Particles (v1) 4.2.1+ed8c182687
			fabric-recipe-api-v1: Fabric Recipe API (v1) 8.1.25+d176821587
			fabric-registry-sync-v0: Fabric Registry Sync (v0) 6.1.40+679c8c5c87
			fabric-renderer-api-v1: Fabric Renderer API (v1) 7.1.1+328a75ba87
			fabric-renderer-indigo: Fabric Renderer - Indigo 4.0.19+328a75ba87
			fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.1.38+86b3ae5787
			fabric-rendering-v1: Fabric Rendering (v1) 16.0.1+328a75ba87
			fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 5.0.28+33df5e6e87
			fabric-resource-loader-v0: Fabric Resource Loader (v0) 3.2.2+3388a3b287
			fabric-resource-loader-v1: Fabric Resource Loader (v1) 1.0.2+225bca4087
			fabric-screen-api-v1: Fabric Screen API (v1) 3.0.3+86b3ae5787
			fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.149+d176821587
			fabric-serialization-api-v1: Fabric Serialization API (v1) 1.0.0+d857c97687
			fabric-sound-api-v1: Fabric Sound API (v1) 1.0.45+328a75ba87
			fabric-tag-api-v1: Fabric Tag API (v1) 1.2.10+2fa446b287
			fabric-transfer-api-v1: Fabric Transfer API (v1) 6.0.15+79ec2c1287
			fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 6.5.3+41eb434387
		fabric-language-kotlin: Fabric Language Kotlin 1.13.6+kotlin.2.2.20
			org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 2.2.20
			org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 2.2.20
			org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 2.2.20
			org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 2.2.20
			org_jetbrains_kotlinx_atomicfu-jvm: atomicfu-jvm 0.29.0
			org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.10.2
			org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.10.2
			org_jetbrains_kotlinx_kotlinx-datetime-jvm: kotlinx-datetime-jvm 0.7.1
			org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm: kotlinx-io-bytestring-jvm 0.8.0
			org_jetbrains_kotlinx_kotlinx-io-core-jvm: kotlinx-io-core-jvm 0.8.0
			org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm: kotlinx-serialization-cbor-jvm 1.9.0
			org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.9.0
			org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.9.0
		fabricloader: Fabric Loader 0.17.2
			mixinextras: MixinExtras 0.5.0
		immediatelyfast: ImmediatelyFast 1.13.0+1.21.9
			net_lenni0451_reflect: Reflect 1.3.4
		immersiveoverlays: Immersive Overlays 1.3.2+1.21.9
		iris: Iris 1.9.3+mc1.21.9
			io_github_douira_glsl-transformer: glsl-transformer 3.0.0-pre3
			org_anarres_jcpp: jcpp 1.4.14
			org_antlr_antlr4-runtime: antlr4-runtime 4.13.1
		java: OpenJDK 64-Bit Server VM 21
		minecraft: Minecraft 1.21.9
		sodium: Sodium 0.7.0+mc1.21.9
		yet_another_config_lib_v3: YetAnotherConfigLib 3.8.0+1.21.9-fabric
			com_twelvemonkeys_common_common-image: common-image 3.12.0
			com_twelvemonkeys_common_common-io: common-io 3.12.0
			com_twelvemonkeys_common_common-lang: common-lang 3.12.0
			com_twelvemonkeys_imageio_imageio-core: imageio-core 3.12.0
			com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.12.0
			com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.12.0
			org_quiltmc_parsers_gson: gson 0.2.1
			org_quiltmc_parsers_json: json 0.2.1
		zoomify: Zoomify 2.14.6+1.21.9
			com_akuleshov7_ktoml-core-jvm: ktoml-core-jvm 0.5.2
	Loaded Shaderpack: (off)
	Launched Version: fabric-loader-0.17.2-1.21.9
	Launcher name: minecraft-launcher
	Backend library: LWJGL version 3.3.3-snapshot
	Backend API: NVIDIA GeForce RTX 4090/PCIe/SSE2 GL version 3.3.0 NVIDIA 560.94, NVIDIA Corporation
	Window size: 854x480
	GFLW Platform: win32
	Render Extensions: GL_ARB_buffer_storage, GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access
	GL debug messages: 
	Is Modded: Definitely; Client brand changed to 'fabric'
	Universe: 400921fb54442d18
	Type: Client (map_client.txt)
	Graphics mode: fancy
	Render Distance: 24/24 chunks
	Resource Packs: vanilla, fabric, controlify, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-command-api-v2, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-language-kotlin, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-loot-api-v3, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-rendering-fluids-v1, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-resource-loader-v1, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-serialization-api-v1, fabric-sound-api-v1, fabric-tag-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, fabricloader, immediatelyfast, immersiveoverlays, iris, sodium, yet_another_config_lib_v3 (incompatible), zoomify, file/VanillaTweaks_r630827_MC1.21.x.zip
	Current Language: en_us
	Locale: en_US
	System encoding: Cp1252
	File encoding: UTF-8
	CPU: 32x 13th Gen Intel(R) Core(TM) i9-13900K

Mod Version

2.4.1 for fabric 1.21.10-rc1

Controller

Nintendo Switch Pro Controller, Steam Deck

Bluetooth

  • Yes

Operating System

Windows

ARM

  • Yes

Additional Information

If it is conflicting with any other mods, here is the list of mods I am using (not including Controlify and it's dependencies):
Fabric API
Fabric Language Kotlin
ImmediatelyFast
Iris
Sodium
Zoomify

Just to make sure...

  • I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
  • I have made sure there are no other issues describing the same problem on the issue tracker.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions