OptiGUI is a client-side mod, which enables the customization of in-game GUI screen textures with resource packs. Now rewritten from scratch in Kotlin for cleaner code, better performance, more features, and extensibility.
Other mods' developers can add their custom containers and customization options. See documentation link above.
Supports most OptiFine GUI resource packs. If a resource pack does not work or works differently than using OptiFine, please open an issue (select the Report a bug template).
Check out my new OptiGUI resource pack for Minecraft 1.19+: Chest Boat GUI
⚠️ OptiGUI 2.3.x prior to beta 8 is incompatible with Fabric Language Kotlin 1.13.5+. Please downgrade to Fabric Language Kotlin 1.13.4.
⚠️ If you're not a resource pack creator experimenting with OptiGUI 3 JSON resources, then you should stick with OptiGUI 2.3.x betas.
Want to see your name here? Translate OptiGUI to your native language.
If you play with Cobblemon 1.5.2 and earlier, you need Fabric Language Kotlin 1.10.11+kotlin.1.9.20 or earlier (which doesn't crash).
As of the latest OptiGUI 3 alpha release, only Fabric & Quilt loaders are supported.
⚠️ Quilt support is based on Quilt loader's support for loading Fabric mods.
⚠️ Support for using Fabric compatibility layers or alternative clients such as Sinytra Connector or Lunar client is done on a best-effort basis, but issues may arise, which is not necessarily OptiGUI's fault.
OptiGUI supports OptiFine custom GUI resource packs, and also supports OptiGUI resource packs. OptiGUI resource packs are more flexible than OptiFine resource packs.
See documentation link above to get started.
Excluding vanilla resource packs (which don't container OptiFine or OptiGUI-specific files)
¹ see FAQ for animation support
This list is not exhaustive. If you know a resource pack which works, and you'd like to see it here, or a resource pack, which does not work, but works with OptiFine, please open an issue.
Excluding vanilla resource packs (which don't container OptiFine or OptiGUI-specific files)
¹ Barrel does not work, neither does it work with OptiFine. The resource pack does not specify it according to the format.
Yes.
Only with Animatica.
No, use Colormatic.
OptiGUI's performance impact is negligible (tho it varies a bit depending on which resource packs are used).
Nothing to configure.
Yes.
Actually, OptiGUI and OptiFine (with OptiFabric) can be loaded simultaneously.
I have observed that OptiGUI mixins will be placed before OptiFine ones, so you can turn off custom GUIs in OptiFine to save performance.
However, I can't assist you with this.
Required
Unsupported
Terms for using, modifying and redistributing this product.
29.06.2026 · Modrinth
Screenshots and images from the original Modrinth page.

Published versions and original Modrinth files.
29.06.2026 · 1 480 002 downloads
01.04.2026 · 971 515 downloads
01.04.2026 · 1 948 944 downloads
13.11.2025 · 289 649 downloads
chest.large selector13.11.2025 · 8 029 downloads
chest.large selector13.11.2025 · 27 830 downloads
chest.large selector13.11.2025 · 315 002 downloads
chest.large selector13.11.2025 · 119 702 downloads
chest.large selector12.11.2025 · 56 489 downloads
chest.large selector12.11.2025 · 123 739 downloads
chest.large selector12.11.2025 · 3 792 095 downloads
chest.large selector09.10.2025 · 1 985 downloads
09.10.2025 · 18 720 downloads
09.10.2025 · 1 257 downloads
09.10.2025 · 519 downloads
09.10.2025 · 62 452 downloads
05.10.2025 · 12 864 downloads
05.10.2025 · 10 162 downloads
05.10.2025 · 621 887 downloads
30.08.2025 · 717 963 downloads
17.06.2025 · 1 261 692 downloads
01.04.2025 · 1 178 839 downloads
25.02.2025 · 269 348 downloads
As per #135 (comment), Modrinth app is downloading the latest alpha version of OptiGUI, which is not recommended for everyday use.
This release is the same as OptiGUI 2.3.0-beta.6+1.21, only the version was bumped to make it the latest release.
25.02.2025 · 396 652 downloads
As per #135 (comment), Modrinth app is downloading the latest alpha version of OptiGUI, which is not recommended for everyday use.
This release is the same as OptiGUI 2.3.0-beta.6+1.20, only the version was bumped to make it the latest release.
11.01.2025 · 103 477 downloads
F12) now generates a JSON resource instead of an INI resource11.01.2025 · 71 815 downloads
11.01.2025 · 1 776 downloads
if was omitted, the filter didn't loadmatch was omitted, the filter didn't change any textures10.01.2025 · 555 downloads
F12) now generates a JSON resource instead of an INI resource09.12.2024 · 1 597 071 downloads
25.10.2024 · 255 553 downloads
chest_boat.variants selector because chest_boat entity was split in 24w39a08.10.2024 · 999 926 downloads
texture.PATH property08.10.2024 · 16 456 downloads
texture.PATH property08.10.2024 · 34 497 downloads
texture.PATH property08.10.2024 · 784 513 downloads
texture.PATH property08.10.2024 · 6 117 downloads
texture.PATH property25.09.2024 · 464 downloads
player.name, player.name.wildcard, player.name.wildcard.ignore_case, player.name.regex, player.name.regex.ignore_case, player.biomes, player.heightsinteraction.handhorse.has_saddle, horse.variants, horse.markings, llama.variantsload.priority)F12 (by default) when a GUI screen is open to copy the interaction data to the clipboardvillager.type selectordate selectorchristmas=false chestscontainer=inventory compatibility25.09.2024 · 31 267 downloads
player.name, player.name.wildcard, player.name.wildcard.ignore_case, player.name.regex, player.name.regex.ignore_case, player.biomes, player.heightsinteraction.handhorse.has_saddle, horse.variants, horse.markings, llama.variantsload.priority)F12 (by default) when a GUI screen is open to copy the interaction data to the clipboardvillager.type selectordate selectorchristmas=false chestscontainer=inventory compatibility22.09.2024 · 240 344 downloads
22.09.2024 · 36 167 downloads
22.09.2024 · 6 606 downloads
20.09.2024 · 25 017 downloads
date selector, which didn't conform to the OptiGUI documentationchristmas=false chestscontainer=inventory compatibility20.09.2024 · 326 downloads
date selector, which didn't conform to the OptiGUI documentationchristmas=false chestscontainer=inventory compatibility20.09.2024 · 586 downloads
date selector, which didn't conform to the OptiGUI documentationchristmas=false chestscontainer=inventory compatibility20.09.2024 · 153 downloads
date selector, which didn't conform to the OptiGUI documentationchristmas=false chestscontainer=inventory compatibility15.06.2024 · 1 625 460 downloads
This is a port of OptiGUI 2.3.0-beta.2 to Minecraft 1.21.
See OptiGUI 2.3.0-beta.2 changelog.
24.04.2024 · 335 136 downloads
This is a port of OptiGUI 2.3.0-beta.2 to Minecraft 1.20.5.
See OptiGUI 2.3.0-beta.2 changelog.
24.04.2024 · 171 745 downloads
It was removed due to incompatibilities with Minecraft 1.20.5.
12.03.2024 · 68 492 downloads
This version of OptiGUI is based on OptiGUI 2.1.3, not OptiGUI 2.2.0-alpha.1.
OptiGUI 2.2.x codebase was highly experimental, but I ended up not liking it, so I reverted it with the exception of the following:
15.12.2023 · 1 580 426 downloads
legacy/2.1.7 branch, and will not be merged into the main branchlegacy/2.1.7 branch instead of the usual main28.10.2023 · 200 048 downloads
legacy/2.1.6 branch, and will not be merged into the main branchlegacy/2.1.6 branch instead of the usual mainSee #75.
10.09.2023 · 756 687 downloads
F12)20.07.2023 · 1 091 978 downloads
20.07.2023 · 1 996 downloads
14.07.2023 · 9 058 downloads
donkey.has_chestcomparator.outputvillager.typebook.page.currentbook.page.count13.06.2023 · 291 145 downloads
09.06.2023 · 66 952 downloads
07.06.2023 · 13 972 downloads
_extensions from OptiFine properties29.05.2023 · 15 637 downloads
texture is missingtexture.<path> is present, which is valid, this no longer showsfabric.mod.json21.05.2023 · 7 681 downloads
17.05.2023 · 1 204 downloads
Nowhere. The code was a bit buggy, and I reworked the properties in #32 in the meanwhile. This introduced a breaking change in resource packs, so I decided to skip the full release, and ship the next beta (with an increased version number).
24.03.2023 · 175 372 downloads
container and texture from GeneralProperties and subclasses19.03.2023 · 6 401 downloads
17.03.2023 · 406 downloads
name as player name in container=inventory15.03.2023 · 711 downloads
11.03.2023 · 1 570 downloads
01.02.2023 · 2 177 downloads
26.01.2023 · 520 downloads
21.01.2023 · 305 downloads
20.01.2023 · 191 downloads
15.12.2022 · 25 711 downloads
28.09.2022 · 194 836 downloads
28.09.2022 · 1 713 downloads
24.09.2022 · 398 downloads
⚠️ Broken on Windows
24.09.2022 · 195 downloads
⚠️ Broken on Windows
18.09.2022 · 1 842 downloads
18.09.2022 · 154 downloads
18.09.2022 · 165 downloads
18.09.2022 · 119 downloads
18.09.2022 · 293 downloads
18.09.2022 · 493 downloads
11.07.2022 · 31 782 downloads
07.06.2022 · 4 983 downloads
27.05.2022 · 80 803 downloads
11.05.2022 · 594 downloads
10.05.2022 · 151 downloads
10.05.2022 · 132 downloads
10.05.2022 · 138 downloads
02.05.2022 · 172 downloads
02.05.2022 · 164 downloads
What's new:
texture.<path> matching in properties file (fixes creative inventory texture)Bug fixes:
02.05.2022 · 185 downloads