MidnightLib is a lightweight library that provides common utils and a configuration system for mods.
Mod developers are allowed and encouraged to bundle it with their mods via Jar-in-Jar.
Every feature can be toggled in the library's own config screen/file.
Visit the new Wiki to get started now.
Optional
Optional
Условия использования, изменения и распространения этого товара.
17.06.2026 · Modrinth
Скриншоты и изображения из оригинальной страницы Modrinth.








Опубликованные версии и оригинальные файлы Modrinth.
17.06.2026 · 2 859 загрузки
StringRepresentable to translate enums1.9.0.17.06.2026 · 197 057 загрузки
StringRepresentable to translate enums1.9.0.04.06.2026 · 487 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 5 341 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 206 024 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 1 120 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 28 195 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 677 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 46 091 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 221 175 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 435 392 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 37 609 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 177 588 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 4 405 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 190 798 загрузки
StringRepresentable to translate enums1.9.0.02.05.2026 · 676 загрузки
StringRepresentable to translate enums1.9.0.25.03.2026 · 1 929 загрузки
StringRepresentable to translate enums1.9.0.25.03.2026 · 253 199 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 137 831 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 143 289 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 2 303 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 2 559 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 1 719 940 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 218 128 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 777 075 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 705 923 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 20 359 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 2 244 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 422 608 загрузки
StringRepresentable to translate enums1.9.0.11.12.2025 · 362 504 загрузки
StringRepresentable to translate enums1.9.0.23.11.2025 · 34 118 загрузки
1.9.0.23.11.2025 · 492 загрузки
1.9.0.23.11.2025 · 92 561 загрузки
1.9.0.23.11.2025 · 343 загрузки
1.9.0.23.11.2025 · 82 600 загрузки
1.9.0.23.11.2025 · 1 079 загрузки
1.9.0.23.11.2025 · 64 387 загрузки
1.9.0.23.11.2025 · 29 017 загрузки
1.9.0.23.11.2025 · 51 987 загрузки
1.9.0.23.11.2025 · 27 731 загрузки
1.9.0.23.11.2025 · 65 загрузки
1.9.0.23.11.2025 · 1 081 загрузки
1.9.0.23.11.2025 · 841 загрузки
1.9.0.23.11.2025 · 41 загрузки
1.9.0.23.11.2025 · 112 загрузки
1.9.0.23.11.2025 · 2 840 загрузки
1.9.0.23.11.2025 · 792 загрузки
1.9.0.23.11.2025 · 888 загрузки
1.9.0.23.11.2025 · 807 загрузки
1.9.0.23.11.2025 · 1 992 загрузки
1.9.0.03.10.2025 · 13 374 загрузки
View the changelog
- Fix: crash on servers
03.10.2025 · 262 725 загрузки
View the changelog
- Fix: crash on servers
02.10.2025 · 187 загрузки
View the changelog
- Fix: make tooltip translation key respect custom entry names
02.10.2025 · 7 811 загрузки
View the changelog
- Fix: make tooltip translation key respect custom entry names
01.10.2025 · 170 загрузки
View the changelog
- Feat: better UX and accessibility
- Feat: support NeoForge on 1.21.9
01.10.2025 · 5 256 загрузки
View the changelog
- Feat: better UX and accessibility
- Feat: support NeoForge on 1.21.9
27.09.2025 · 860 загрузки
View the changelog
- Chore: update to 1.21.9-rc1
- Clean: even more refactoring
- Fix: centered multiline comments
- Clean: additional refactoring
- Clean: extract inner classes
- Clean: refactoring (less static methods/fields)
- Feat: support for 1.21.9 (pre3)
- Chore: update gradle config for 1.21.9
- - fix: NullPointerException when the config class of mod updated - alter: better test code in common/src/test, neoforge/src/test and fabric/src/test, run Test Minecraft Client(:fabric) or Test Minecraft Client(:neoforge) for testing
15.07.2025 · 251 637 загрузки
View the changelog
- Clean: remove NeoForge bus annotation
- Port: adapt to 1.21.1
- Port: update gradle config
- Fix: screen titles not showing
- Feat: NeoForge 1.21.6
- Port: update to full 1.21.6
- Fix: correctly wrap option text labels
- Port: 1.21.6 (pre1)
- Chore: bump version
- Clean: some code cleanup
- Optimize: remove unchanged translations in es_ar
- Feat: remove checkbox widgets
- Fix: conditions are not applied in default tab
- Fix: adjust option title position
- Feat: new method to manually add widgets
- Update es_ar.json
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Feat: respect TranslatableOption on enums
- Chore: bump version
- Clean: remove unused import
- Docs: improve JavaDocs
- Feat: improve URL handling
- - feat: add clickable url for @Comment - chore: bump version 1.7.2-rc.2
- Feat: 'visibleButLocked' now applies for all buttons
- Feat: checkbox buttons next to boolean yes/no text buttons
- Fix: improve identifier crash fix
- - adjust: optimize code & add comment
- - rollback: boolean field (CheckboxWidget -> ButtonWidget)
- - fix bug+: illegal Identifier cannot input character
- - fix bug: avoid the crash due to Identifier syntax not legitimate. - new feature: multiple expect values for @Condition - change: use net.minecraft.client.gui.widget.CheckboxWidget for boolean @Entry instead of net.minecraft.client.gui.widget.ButtonWidget - misc: cleanup for en_us.json and example code & bump version
- Chore: bump version
- Docs: improve multi-conditions example
- Feat: optimize AutoCommand's file-size
- Clean: improve entry access further
- Feat: replace Hashtable with LinkedHashMap
- Optimize: use hash tables to reduce complexity
- Cleanup & suppress unused warnings
- Chore: bump version
- Add examples
- Fix bugs: The condition update algorithm is chaotic and does not work properly when the condition values conflict new features: multi-conditions config is supported
- Fix bug: the @Condition does not trigger in real-time to update the menu UI
- Chore: bump version
- Feat: conditions! + large cleanup
- Clean: optimize translation files & metadata
- Clean: various code improvements
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
15.07.2025 · 3 430 076 загрузки
View the changelog
- Clean: remove NeoForge bus annotation
- Port: adapt to 1.21.1
- Port: update gradle config
- Fix: screen titles not showing
- Feat: NeoForge 1.21.6
- Port: update to full 1.21.6
- Fix: correctly wrap option text labels
- Port: 1.21.6 (pre1)
- Chore: bump version
- Clean: some code cleanup
- Optimize: remove unchanged translations in es_ar
- Feat: remove checkbox widgets
- Fix: conditions are not applied in default tab
- Fix: adjust option title position
- Feat: new method to manually add widgets
- Update es_ar.json
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Feat: respect TranslatableOption on enums
- Chore: bump version
- Clean: remove unused import
- Docs: improve JavaDocs
- Feat: improve URL handling
- - feat: add clickable url for @Comment - chore: bump version 1.7.2-rc.2
- Feat: 'visibleButLocked' now applies for all buttons
- Feat: checkbox buttons next to boolean yes/no text buttons
- Fix: improve identifier crash fix
- - adjust: optimize code & add comment
- - rollback: boolean field (CheckboxWidget -> ButtonWidget)
- - fix bug+: illegal Identifier cannot input character
- - fix bug: avoid the crash due to Identifier syntax not legitimate. - new feature: multiple expect values for @Condition - change: use net.minecraft.client.gui.widget.CheckboxWidget for boolean @Entry instead of net.minecraft.client.gui.widget.ButtonWidget - misc: cleanup for en_us.json and example code & bump version
- Chore: bump version
- Docs: improve multi-conditions example
- Feat: optimize AutoCommand's file-size
- Clean: improve entry access further
- Feat: replace Hashtable with LinkedHashMap
- Optimize: use hash tables to reduce complexity
- Cleanup & suppress unused warnings
- Chore: bump version
- Add examples
- Fix bugs: The condition update algorithm is chaotic and does not work properly when the condition values conflict new features: multi-conditions config is supported
- Fix bug: the @Condition does not trigger in real-time to update the menu UI
- Chore: bump version
- Feat: conditions! + large cleanup
- Clean: optimize translation files & metadata
- Clean: various code improvements
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
17.06.2025 · 18 847 загрузки
View the changelog
- Fix: screen titles not showing
17.06.2025 · 601 401 загрузки
View the changelog
- Fix: screen titles not showing
17.06.2025 · 128 загрузки
View the changelog
- Feat: NeoForge 1.21.6
- Port: update to full 1.21.6
- Fix: correctly wrap option text labels
- Port: 1.21.6 (pre1)
17.06.2025 · 669 загрузки
View the changelog
- Feat: NeoForge 1.21.6
- Port: update to full 1.21.6
- Fix: correctly wrap option text labels
- Port: 1.21.6 (pre1)
13.05.2025 · 12 654 загрузки
View the changelog
- Chore: bump version
- Clean: some code cleanup
- Optimize: remove unchanged translations in es_ar
- Feat: remove checkbox widgets
- Fix: conditions are not applied in default tab
- Fix: adjust option title position
- Feat: new method to manually add widgets
- Update es_ar.json
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Feat: respect TranslatableOption on enums
13.05.2025 · 335 644 загрузки
View the changelog
- Chore: bump version
- Clean: some code cleanup
- Optimize: remove unchanged translations in es_ar
- Feat: remove checkbox widgets
- Fix: conditions are not applied in default tab
- Fix: adjust option title position
- Feat: new method to manually add widgets
- Update es_ar.json
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Translation into Argentine Spanish (es_ar) for MidnightLib
- Feat: respect TranslatableOption on enums
21.04.2025 · 1 876 загрузки
View the changelog
- Chore: bump version
- Clean: remove unused import
- Docs: improve JavaDocs
- Feat: improve URL handling
- - feat: add clickable url for @Comment - chore: bump version 1.7.2-rc.2
- Feat: 'visibleButLocked' now applies for all buttons
- Feat: checkbox buttons next to boolean yes/no text buttons
- Fix: improve identifier crash fix
- - adjust: optimize code & add comment
- - rollback: boolean field (CheckboxWidget -> ButtonWidget)
- - fix bug+: illegal Identifier cannot input character
- - fix bug: avoid the crash due to Identifier syntax not legitimate. - new feature: multiple expect values for @Condition - change: use net.minecraft.client.gui.widget.CheckboxWidget for boolean @Entry instead of net.minecraft.client.gui.widget.ButtonWidget - misc: cleanup for en_us.json and example code & bump version
21.04.2025 · 100 653 загрузки
View the changelog
- Chore: bump version
- Clean: remove unused import
- Docs: improve JavaDocs
- Feat: improve URL handling
- - feat: add clickable url for @Comment - chore: bump version 1.7.2-rc.2
- Feat: 'visibleButLocked' now applies for all buttons
- Feat: checkbox buttons next to boolean yes/no text buttons
- Fix: improve identifier crash fix
- - adjust: optimize code & add comment
- - rollback: boolean field (CheckboxWidget -> ButtonWidget)
- - fix bug+: illegal Identifier cannot input character
- - fix bug: avoid the crash due to Identifier syntax not legitimate. - new feature: multiple expect values for @Condition - change: use net.minecraft.client.gui.widget.CheckboxWidget for boolean @Entry instead of net.minecraft.client.gui.widget.ButtonWidget - misc: cleanup for en_us.json and example code & bump version
05.04.2025 · 2 774 загрузки
View the changelog
- Chore: bump version
- Docs: improve multi-conditions example
- Feat: optimize AutoCommand's file-size
- Clean: improve entry access further
- Feat: replace Hashtable with LinkedHashMap
- Optimize: use hash tables to reduce complexity
- Cleanup & suppress unused warnings
- Chore: bump version
- Add examples
- Fix bugs: The condition update algorithm is chaotic and does not work properly when the condition values conflict new features: multi-conditions config is supported
- Fix bug: the @Condition does not trigger in real-time to update the menu UI
05.04.2025 · 70 075 загрузки
View the changelog
- Chore: bump version
- Docs: improve multi-conditions example
- Feat: optimize AutoCommand's file-size
- Clean: improve entry access further
- Feat: replace Hashtable with LinkedHashMap
- Optimize: use hash tables to reduce complexity
- Cleanup & suppress unused warnings
- Chore: bump version
- Add examples
- Fix bugs: The condition update algorithm is chaotic and does not work properly when the condition values conflict new features: multi-conditions config is supported
- Fix bug: the @Condition does not trigger in real-time to update the menu UI
28.03.2025 · 619 загрузки
View the changelog
- Chore: bump version
- Feat: conditions! + large cleanup
- Clean: optimize translation files & metadata
- Clean: various code improvements
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
- Create ru_ru.json
28.03.2025 · 36 735 загрузки
View the changelog
- Chore: bump version
- Feat: conditions! + large cleanup
- Clean: optimize translation files & metadata
- Clean: various code improvements
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
- Create ru_ru.json
20.03.2025 · 654 загрузки
View the changelog
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
20.03.2025 · 28 502 загрузки
View the changelog
- Chore: bump version
- Refactor: identifier item display
- Clean: remove blend functions
- Feat: minimal custom type adapter for Identifiers
22.02.2025 · 219 512 загрузки
22.02.2025 · 944 705 загрузки
22.02.2025 · 1 923 загрузки
View the changelog
- Feat: maintain tab order
22.02.2025 · 117 476 загрузки
View the changelog
- Feat: maintain tab order
15.02.2025 · 3 381 загрузки
15.02.2025 · 18 602 загрузки
15.02.2025 · 801 загрузки
View the changelog
- Fix(neoforge): move command registration to post init
- Feat: use enum variant name when missing translation
- Feat: support non-primitive fields
- Chore: improve version formatting & bump version
- Fix: crash on pure Wayland sessions
15.02.2025 · 10 069 загрузки
View the changelog
- Fix(neoforge): move command registration to post init
- Feat: use enum variant name when missing translation
- Feat: support non-primitive fields
- Chore: improve version formatting & bump version
- Fix: crash on pure Wayland sessions
27.01.2025 · 78 226 загрузки
27.01.2025 · 3 944 загрузки
19.01.2025 · 4 577 загрузки
View the changelog
- MidnightLib 1.6.7
19.01.2025 · 78 248 загрузки
View the changelog
- MidnightLib 1.6.7
04.12.2024 · 121 841 загрузки
View the changelog
- Update to final 1.21.4 release
04.12.2024 · 1 447 загрузки
View the changelog
- Update to final 1.21.4 release
03.12.2024 · 585 загрузки
View the changelog
- Update to 1.21.4
26.10.2024 · 3 317 загрузки
View the changelog
- Allow Entries to be conditionally shown
26.10.2024 · 75 663 загрузки
View the changelog
- Allow Entries to be conditionally shown
06.09.2024 · 39 799 загрузки
View the changelog
- Fix crash on MacOS since v1.6.0
06.09.2024 · 474 464 загрузки
View the changelog
- Fix crash on MacOS since v1.6.0
02.09.2024 · 1 216 загрузки
View the changelog
- Run command registration after main method
02.09.2024 · 22 557 загрузки
View the changelog
- Run command registration after main method
29.08.2024 · 1 387 загрузки
View the changelog
- Open path from last location
- Enable commands in all environments
- Improved button injection
- Improved automatic command registration
29.08.2024 · 37 346 загрузки
View the changelog
- Open path from last location
- Enable commands in all environments
- Improved button injection
- Improved automatic command registration
25.08.2024 · 1 176 загрузки
View the changelog
- Minify json files and images
- More compact code & finishing touches
- Show errors again and correctly handle closing
- Improved layout and lists
- - use fileChooser.showDialog(null, null) instead of fileChooser.showOpenDialog(null)
- - add file chooser for String field in 1.6.0
- Bump version
- Update Neoforge to fix #60
25.08.2024 · 8 848 загрузки
View the changelog
- Minify json files and images
- More compact code & finishing touches
- Show errors again and correctly handle closing
- Improved layout and lists
- - use fileChooser.showDialog(null, null) instead of fileChooser.showOpenDialog(null)
- - add file chooser for String field in 1.6.0
- Bump version
- Update Neoforge to fix #60
10.08.2024 · 1 944 загрузки
View the changelog
- Bump version
10.08.2024 · 68 344 загрузки
View the changelog
- Bump version
17.06.2024 · 3 833 загрузки
View the changelog
- Fix crash with multiple visible tabs
13.06.2024 · 465 367 загрузки
View the changelog
- Fix crash with multiple visible tabs
12.06.2024 · 17 676 загрузки
View the changelog
- Update to 1.21
08.06.2024 · 1 227 загрузки
04.05.2024 · 200 891 загрузки
View the changelog
- MidnightLib 1.5.5
21.04.2024 · 10 378 загрузки
24.12.2023 · 1 402 729 загрузки
19.12.2023 · 467 836 загрузки
Fix modmenu integration
11.12.2023 · 1 576 загрузки
11.12.2023 · 4 208 загрузки
07.12.2023 · 3 389 загрузки
30.09.2023 · 4 087 загрузки
16.09.2023 · 126 948 загрузки
09.06.2023 · 5 370 740 загрузки
Fix tabs not being visible
Re-enable Forge and Quilt support
09.06.2023 · 63 023 загрузки
09.06.2023 · 140 900 загрузки
22.05.2023 · 44 008 загрузки
02.04.2023 · 7 385 загрузки
02.04.2023 · 90 109 загрузки
02.04.2023 · 3 606 загрузки
09.03.2023 · 4 187 загрузки
09.03.2023 · 229 загрузки
15.02.2023 · 1 177 загрузки
This was pretty straightforward.
Only Fabric supports snapshots, so Quilt and Forge have temporarily been disabled.
14.12.2022 · 2 675 загрузки
14.12.2022 · 2 297 загрузки
03.12.2022 · 33 336 загрузки
31.10.2022 · 33 166 загрузки
@Entry property isSlider() to true, specify a max() and min(), optionally precision())31.10.2022 · 42 670 загрузки
@Entry property isSlider() to true, specify a max() and min(), optionally precision())31.10.2022 · 782 352 загрузки
@Entry property isSlider() to true, specify a max() and min(), optionally precision())27.10.2022 · 207 загрузки
Port to 22w43a
21.09.2022 · 4 706 загрузки
22.08.2022 · 3 298 загрузки
07.06.2022 · 13 132 загрузки
Fix crash without ModMenu
07.06.2022 · 41 467 загрузки
Fix crash without ModMenu
06.06.2022 · 163 загрузки
Fix AutoModMenu opt-out
06.06.2022 · 2 037 загрузки
Fix AutoModMenu opt-out
06.06.2022 · 120 загрузки
Add opt-out from AutoModMenu
06.06.2022 · 2 890 загрузки
Add opt-out from AutoModMenu
18.05.2022 · 134 загрузки
22.02.2022 · 3 804 загрузки
Add support for hexadecimal colors in MidnightConfig
Add Client and Server annotations to hide config options on irrelevant sides
Remove any reference to Log4j completely to be future-proof
Code cleanup
20.11.2021 · 241 загрузки
Remove leftover debug info
31.10.2021 · 291 загрузки
29.10.2021 · 175 загрузки
Make /midnightconfig command only able to be executed by operators
28.10.2021 · 128 загрузки
Added a command-based way to configure server mods without having to edit the config file (only for dedicated servers)
Drastically decrease file size once again
MidnightHats:
~ Remove Event Hats (irritating and unneeded)
~ Better Hats for Supporters (Cleanup, code-based colors & more fancy effects)
~ Hats of invisible players are now hidden
MidnightConfig:
~ Better support for external value changing
~ Only tooltip-based screen titles now
MidnightColorUtil:
~ Add radialRainbow utility for fancy chroma effects
Better German translations
19.10.2021 · 142 загрузки
01.10.2021 · 121 загрузки
23.09.2021 · 139 загрузки
21.06.2021 · 137 загрузки
MidnightConfig v1.0.4:
- Number field length is now configurable
- Fixed number fields being empty
09.06.2021 · 155 загрузки
Added automatic mod menu integration for mods using MidnightLib
MidnightConfig 1.0.3:
Text field length is now configurable
Better separation of client and server
01.06.2021 · 1 415 загрузки