Skip to content

[BUG] <...> #20

Description

@mMaalii

Describe the bug
Game crashes on startup when the system/JVM default locale is Turkish (tr_TR).
The crash happens during eclipsestweakeroo's client init, in ToggleManager ,
which fails with an IdentifierException.

Root cause: somewhere a config/tweak name (likely containing "Info") is being lowercased
with .toLowerCase() using the default JVM locale instead of Locale.ROOT. Under Turkish
locale rules, "I".toLowerCase() produces the dotless "ı" (U+0131) instead of "i". This
character is not valid in a Minecraft Identifier path ([a-z0-9/._-] only), so
Identifier.assertValidPath throws and the whole client fails to initialize.

Stack trace excerpt:
Caused by: net.minecraft.IdentifierException: Non [a-z0-9/._-] character in path of location:
eclipsestweakeroo:tweak_player_ınfo_notifications
at EclipsesTweakeroo.getModdedIdentifier(EclipsesTweakeroo.java:41)
at EclipsesConfigs.getCommentTranslationKey(EclipsesConfigs.java:86)
at EclipsesTweaksConfig.create(EclipsesTweaksConfig.java:39)
at EclipsesTweaksConfig.(EclipsesTweaksConfig.java:24)

Likely fix: use .toLowerCase(Locale.ROOT) instead of .toLowerCase() wherever tweak/config
names are converted into identifier paths (EclipsesConfigs.getCommentTranslationKey and
EclipsesTweakeroo.getModdedIdentifier look like the relevant spots).

To Reproduce

  1. Set system/JVM locale to Turkish (tr_TR) — e.g. Linux with system language set to Turkish.
  2. Launch Minecraft with Eclipse's Tweakeroo Additions installed.
  3. Game crashes during client init, before the main menu loads.

Expected behavior
The mod should initialize normally regardless of system locale.

Screenshots/logs

latest.log

crash-2026-08-16_19.28.06-client.txt

Minecraft setup

  • Minecraft version: 26.2
  • Fabric loader version: 0.19.3
  • Eclipse's Tweakeroo Additions version: 0.7.5-26.2
  • Tweakeroo version: 0.29.2
  • Malilib version: 0.29.3
  • Other relevant info: Java 25.0.3 (Azul Zulu), OS: Linux, system locale tr_TR

Additional context
This is a known JVM pitfall ("Turkish I problem") — using String.toLowerCase() without
specifying Locale.ROOT breaks on tr_TR/az_AZ locales specifically. Workaround on my end:
launching with -Duser.language=en -Duser.country=US JVM args avoids the crash.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions