### Anvil GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example selector for an Anvil GUI. Supports common, interaction, and independent selectors. ```text [anvil chipped_anvil damaged_anvil] ``` -------------------------------- ### Beacon GUI example with beacon.levels Source: https://opekope2.dev/OptiGUI/INI.html Example selector for a Beacon GUI, including the `beacon.levels` selector. Supports common, interaction, and independent selectors. ```text [beacon] beacon.levels = 1 3-5 ``` -------------------------------- ### Barrel GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example selector for a Barrel GUI. Supports common, interaction, independent, and comparator selectors. ```text [barrel] ``` -------------------------------- ### Writable book GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example of a writable book GUI. Requires OptiGUI 2.1.3+ and Minecraft 1.18+. Uses the texture 'minecraft:textures/gui/book.png'. ```ini [writable_book] ``` -------------------------------- ### Brewing stand GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example of a brewing stand GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the texture 'minecraft:textures/gui/container/brewing_stand.png'. ```ini [brewing_stand] ``` -------------------------------- ### Book GUI example with book.page selectors Source: https://opekope2.dev/OptiGUI/INI.html Example selector for a Book GUI, including `book.page.current` and `book.page.count` selectors. Supports common, interaction, and independent selectors. ```text [written_book] book.page.current = 1 3-4 book.page.count = 5 10-15 ``` -------------------------------- ### Dropper GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the dropper container. Uses the texture at minecraft:textures/gui/container/dispenser.png. Supports common, interaction, independent, and comparator selectors. ```text [dropper] ``` -------------------------------- ### if.mods examples Source: https://opekope2.dev/OptiGUI/INI.html Examples of using the 'if.mods' selector to check for mod presence and version constraints. Multiple conditions can be combined, and all must match for the group to load. ```properties if.mods = optigui # Checks for the presence of optigui if.mods = optigui>=2.3.0-alpha.1 # Checks, if OptiGUI is 2.3.0-alpha.1 or newer if.mods = minecraft~1.20.1 # Checks if Minecraft is >=1.20.1 and <1.21 if.mods = optigui>=2.3.0-alpha.1 optigui<2.4.0 # Checks if OptiGUI meets multiple criteria if.mods = minecraft fabric-api java>=17 # Mix-n-match (all of them has to match) ``` -------------------------------- ### Dispenser GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the dispenser container. Uses the texture at minecraft:textures/gui/container/dispenser.png. Supports common, interaction, independent, and comparator selectors. ```text [dispenser] ``` -------------------------------- ### Date selector configuration example Source: https://opekope2.dev/OptiGUI/INI.html Shows how to specify dates for texture replacement using month names, abbreviations, or numbers, with optional day ranges separated by '@'. Includes valid and invalid examples, and demonstrates using multiple dates and excluding dates. ```ini # January date = january date = jan date = 1 # These are all equivalent to: date = jan@1-31 # October 1-5, 11-15, 21-25 date = oct@1-5 10@11-15 october@21-25 # The following is not valid: invalid_date = october@1-5,11-15,21-25 # Christmas christmas = dec@24-26 # Not Christmas not_christmas = 1 2 3 4 5 6 7 8 9 spooktober 11 dec@1-23 dec@27-31 ``` -------------------------------- ### Path syntax examples Source: https://opekope2.dev/OptiGUI/INI.html Shows how to specify relative, current/parent directory, and absolute namespace-prefixed paths. Always use forward slashes; file extensions are required. Tildes are not supported. ```ini # Relative path (relative to the folder the INI file is in) path=texture.png path=subfolder/texture.png # You can use current and parent directory path=./texture.png path=../other/texture.png # Absolute (namespace prefix) path=minecraft:textures/gui/container/crafting_table.png ``` -------------------------------- ### Furnace GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the furnace container. Uses the texture at minecraft:textures/gui/container/furnace.png. Supports common, interaction, independent, and comparator selectors. ```text [furnace] ``` -------------------------------- ### Cartography table GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example of a cartography table GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the texture 'minecraft:textures/gui/container/cartography_table.png'. ```ini [cartography_tabe] ``` -------------------------------- ### Horse GUI configuration example Source: https://opekope2.dev/OptiGUI/INI.html Example configuration for the Horse GUI container. Uses the texture path 'minecraft:textures/gui/container/horse.png'. Supports common, interaction, independent, and donkey selectors. ```ini [horse] ``` -------------------------------- ### Hopper GUI configuration example Source: https://opekope2.dev/OptiGUI/INI.html Example configuration for the Hopper GUI container. Uses the texture path 'minecraft:textures/gui/container/hopper.png'. Supports common, interaction, independent, and comparator selectors. ```ini [hopper] ``` -------------------------------- ### Smoker GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the smoker container. Uses the texture at minecraft:textures/gui/container/smoker.png. Supports common, interaction, independent, and comparator selectors. ```text [smoker] ``` -------------------------------- ### Grindstone GUI configuration example Source: https://opekope2.dev/OptiGUI/INI.html Example configuration for the Grindstone GUI container. Uses the texture path 'minecraft:textures/gui/container/grindstone.png'. Supports common, interaction, and independent selectors. ```ini [grindstone] ``` -------------------------------- ### Chest GUI example with chest.large option Source: https://opekope2.dev/OptiGUI/INI.html Example of a chest GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the texture 'minecraft:textures/gui/container/generic_54.png'. The 'chest.large' option is optional and specifies if the double chest texture should be replaced. ```ini [chest] chest.large = true ``` -------------------------------- ### Loom GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a loom GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses texture path minecraft:textures/gui/container/loom.png. Supports common, interaction, and independent selectors. ```ini [loom] ``` -------------------------------- ### Trapped chest GUI example Source: https://opekope2.dev/OptiGUI/INI.html Example of a trapped chest GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the texture 'minecraft:textures/gui/container/generic_54.png'. The 'chest.large' option is set to true. ```ini [trapped_chest] chest.large = true ``` -------------------------------- ### Lectern GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a lectern GUI. Requires OptiGUI 2.1.0+ and Minecraft 1.18+. Uses texture path minecraft:textures/gui/container/horse.png. Supports common, interaction, independent, comparator, and book selectors. ```ini [lectern] ``` -------------------------------- ### Blast Furnace GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the blast furnace container. Uses the texture at minecraft:textures/gui/container/blast_furnace.png. Supports common, interaction, independent, and comparator selectors. ```text [blast_furnace] ``` -------------------------------- ### Hopper minecart GUI configuration example Source: https://opekope2.dev/OptiGUI/INI.html Example configuration for the Hopper minecart GUI container. Uses the texture path 'minecraft:textures/gui/container/hopper.png'. Supports common, interaction, independent, and comparator selectors. ```ini [hopper_minecart] ``` -------------------------------- ### Trader Llama GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a trader llama GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses texture path minecraft:textures/gui/container/horse.png. Supports common, interaction, independent, donkey, and llama selectors. The example sets llama.colors to red, green, and blue. ```ini [llama trader_llama] llama.colors = red green blue ``` -------------------------------- ### Survival inventory INI example Source: https://opekope2.dev/OptiGUI/INI.html Configures the survival inventory GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the default texture path minecraft:textures/gui/container/inventory.png. Common selectors apply to the player instead of the interacted container because there is no interaction with another entity or block entity. ```ini [player] interaction.texture = minecraft:textures/gui/container/inventory.png ``` -------------------------------- ### Camel GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a camel GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.20+ (or 1.19.3+ with 1.20 experiments). Uses texture path minecraft:textures/gui/container/horse.png. Supports common, interaction, independent, and horse.has_saddle selectors. ```ini [camel] ``` -------------------------------- ### Zombie Horse GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a zombie horse GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses texture path minecraft:textures/gui/container/horse.png. Supports common, interaction, and independent selectors. ```ini [zombie_horse] ``` -------------------------------- ### Skeleton Horse GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Configuration for a skeleton horse GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses texture path minecraft:textures/gui/container/horse.png. Supports common, interaction, and independent selectors. ```ini [skeleton_horse] ``` -------------------------------- ### Referencing OptiGUI asset from OptiFine properties file Source: https://opekope2.dev/OptiGUI/index.html Use this line in an OptiFine properties file to reference an OptiGUI asset. The example references a texture at /assets/optigui/gui/shulker_boxes/purple.png. ```properties texture=optigui:gui/shulker_boxes/purple.png ``` -------------------------------- ### Mule selector example Source: https://opekope2.dev/OptiGUI/INI.html Example of using the [mule] selector in OptiGUI. This selector is available in OptiGUI 2.1.0-beta.1+ for Minecraft 1.18+ and uses the texture at minecraft:textures/gui/container/horse.png. It supports common, interaction, independent, and donkey selectors. ```ini [mule] ``` -------------------------------- ### Enchanting Table GUI Example Source: https://opekope2.dev/OptiGUI/INI.html Example for the enchanting table container. Uses the texture at minecraft:textures/gui/container/enchanting_table.png. Supports common, interaction, and independent selectors. ```text [enchanting_table] ``` -------------------------------- ### Creative inventory INI example with biome filtering Source: https://opekope2.dev/OptiGUI/INI.html Configures the creative inventory GUI for desert biomes. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. GUIs without a default texture must be filtered with interaction.texture. This example replaces four creative inventory textures with desert variants. ```ini [player #1] biomes = desert interaction.texture = minecraft:textures/gui/container/creative_inventory/tab_inventory.png replacement = tab_inventory_desert.png [player #2] biomes = desert interaction.texture = minecraft:textures/gui/container/creative_inventory/tabs.png replacement = tabs_desert.png [player #3] biomes = desert interaction.texture = minecraft:textures/gui/container/creative_inventory/tab_items.png replacement = tab_items_desert.png [player #4] biomes = desert interaction.texture = minecraft:textures/gui/container/creative_inventory/tab_item_search.png replacement = tab_item_search_desert.png ``` -------------------------------- ### Donkey selector example Source: https://opekope2.dev/OptiGUI/INI.html Example of using the [donkey] selector in OptiGUI. This selector is available in OptiGUI 2.1.0-beta.1+ for Minecraft 1.18+ and uses the texture at minecraft:textures/gui/container/horse.png. It supports common, interaction, independent, and horse.has_saddle selectors. ```ini [donkey] ``` -------------------------------- ### textures mapping example Source: https://opekope2.dev/OptiGUI/JSON.html Maps original texture paths to replacement texture paths in the 'textures' object. The namespace can be omitted if it is 'minecraft'. ```json { "textures": { "mod:textures/gui/path/to/texture.png": "example:path/to/changed/texture.png" } } ``` -------------------------------- ### Wandering trader INI example Source: https://opekope2.dev/OptiGUI/INI.html Configures the wandering trader GUI. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the default texture path minecraft:textures/gui/container/villager2.png. Supports common, interaction, and independent selectors. ```ini [wandering_trader] ``` -------------------------------- ### Number range examples Source: https://opekope2.dev/OptiGUI/INI.html Illustrates inclusive ranges, multiple ranges, greater-than-or-equal, negative numbers, and parenthesized negative ranges. The right side of a range is optional (positive infinity). ```ini # 1, 2, 3 numbers = 1-3 # Multiple ranges # 1 through 3, or 6, or 8, or 10 through 15 # 1, 2, 3, 6, 8, 10, 11, 12, 13, 14, 15 numbers = 1-3 6 8 10-15 # Greater than or equal to # 100, or 200, or 5340, or 25902, etc. numbers = 100- # Negative number, not a range # Only matches negative 100, not -4, -7, or -101 numbers = -100 # Negative numbers must be surrounded with parenthesis numbers = (-1)-(-3) ``` -------------------------------- ### all_of filter example Source: https://opekope2.dev/OptiGUI/JSON.html Use the all_of filter to match an NBT element when all filters in the given JSON array match. In this example, the player's Health and FoodLevel must both be 20. ```json { "@player": { "all_of": [ { "@Health": 20 }, { "@FoodLevel": 20 } ] } } ``` -------------------------------- ### size filter example Source: https://opekope2.dev/OptiGUI/JSON.html Use the size filter to match an NBT element based on its size: for compounds, the number of attribute-value pairs; for lists/arrays, the number of elements; for strings, the length. This example checks that the active_effects list has at least 33 elements. ```json { "@player": { "@active_effects": { "size": { ">=": 33 } } } } ``` -------------------------------- ### Referencing OptiFine texture from OptiGUI INI file Source: https://opekope2.dev/OptiGUI/index.html Use this line in an OptiGUI INI file to reference a texture located in the OptiFine assets folder. The example references a texture at /assets/minecraft/optifine/gui/container/shulker_boxes/purple.png. ```ini replacement = minecraft:optifine/gui/container/shulker_boxes/purple.png ``` -------------------------------- ### INI group syntax for container GUI replacement Source: https://opekope2.dev/OptiGUI/INI.html Shows the INI group syntax for replacing container GUIs. Groups start with bracketed identifiers, selectors are case-sensitive, and multiple selectors in a group must all match. Comments after '#' are ignored, and whitespace around '=' is trimmed. ```ini [chest] # Selectors here apply to minecraft:chest # If namespace is omitted, the default is minecraft selector=value [minecraft:barrel] # Starts a new group # Selectors here apply to minecraft:barrel selector=value_for_barrel [horse minecraft:llama] # Selectors here apply to both horses and llamas # Namespaces and the lack of them can be mixed # The default namespace is minecraft white_spaces = are_trimmed # Is the same as white_spaces=are_trimmed [chest #2] # [chest] is not allowed again # Anything specified after a hashtag is ignored # Useful when want to replace the GUI of the same container, but with different selectors [#3 chest] # Hashtags can be anywhere between the square brackets # Remember, the group accepts a list of identifiers, a hashtag's scope lasts until the next whitespace # Here, only #3 is ignored, but not chest ``` -------------------------------- ### keys filter example Source: https://opekope2.dev/OptiGUI/JSON.html Use the keys filter to match an NBT Compound when the given filter matches a list of its attribute keys. Here, the mods compound matches if any key equals 'avm_staff'. ```json { "@mods": { "keys": { "#any": { "=": "avm_staff" } } } } ``` -------------------------------- ### values filter example Source: https://opekope2.dev/OptiGUI/JSON.html Use the values filter to match an NBT Compound when the given filter matches a list of its values. Here, all values must have a version greater than or equal to 1. ```json { "@mods": { "values": { "#all": { "@version": { ">=*": "1" } } } } } ``` -------------------------------- ### Convert container=_chest_boat with multiple variants (1.21.2+) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html For multiple variants of the chest boat starting Minecraft 1.21.2, put the variant-prefixed container names in a JSON array. Replace `` and `` with the actual variants. ```json { "container": ["_chest_boat", "_chest_boat"] } ``` -------------------------------- ### Llama selector with color configuration Source: https://opekope2.dev/OptiGUI/INI.html Example of using the [llama] selector with the llama.colors option. This selector is available in OptiGUI 2.1.0-beta.1+ for Minecraft 1.18+ and uses the texture at minecraft:textures/gui/container/horse.png. It supports common, interaction, independent, and donkey selectors. The llama.colors option is optional and specifies the llama's carpet color. ```ini [llama trader_llama] llama.colors = red green blue ``` -------------------------------- ### Convert container=_smithing_table to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `container=_smithing_table` with an OptiGUI JSON resource that sets the container to `smithing_table`. ```json { "container": "smithing_table" } ``` -------------------------------- ### Convert container=_cartography_table to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `container=_cartography_table` with an OptiGUI JSON resource that sets the container to `cartography_table`. ```json { "container": "cartography_table" } ``` -------------------------------- ### Convert container=_loom to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `container=_loom` with an OptiGUI JSON resource that sets the container to `loom`. ```json { "container": "loom" } ``` -------------------------------- ### Check for missing child tag with none_of Source: https://opekope2.dev/OptiGUI/JSON.html Use none_of to check that an NBT compound does not have a child tag. This example checks that the root compound does not have a child tag named 'tag'. ```json { "@root": { "none_of": [ { "@tag": {} } ] } } ``` -------------------------------- ### Smithing Table GUI Configuration Source: https://opekope2.dev/OptiGUI/INI.html Configures the smithing table GUI using the [smithing_table] section. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Supports common, interaction, and independent selectors. ```ini [smithing_table] ``` -------------------------------- ### Convert container=_grindstone to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `container=_grindstone` with an OptiGUI JSON resource that sets the container to `grindstone`. ```json { "container": "grindstone" } ``` -------------------------------- ### Shulker box selectors Source: https://opekope2.dev/OptiGUI/INI.html Lists all shulker box selectors supported by OptiGUI. Use these in GUI configuration to target shulker box variants. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. ```text [shulker_box] [white_shulker_box] [orange_shulker_box] [magenta_shulker_box] [light_blue_shulker_box] [yellow_shulker_box] [lime_shulker_box] [pink_shulker_box] [gray_shulker_box] [light_gray_shulker_box] [cyan_shulker_box] [purple_shulker_box] [blue_shulker_box] [brown_shulker_box] [green_shulker_box] [red_shulker_box] [black_shulker_box] ``` -------------------------------- ### Convert _minecart=true (chest) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_minecart=true` when `container=chest` with an OptiGUI JSON resource that sets the container to `chest_minecart`. ```json { "container": "chest_minecart" } ``` -------------------------------- ### Convert _skeleton_horse=true to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_skeleton_horse=true` with an OptiGUI JSON resource that sets the container to `skeleton_horse`. ```json { "container": "skeleton_horse" } ``` -------------------------------- ### Villager GUI Configuration Source: https://opekope2.dev/OptiGUI/INI.html Configures the villager GUI using the [villager] section. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Supports common, interaction, and independent selectors. ```ini [villager] ``` -------------------------------- ### Check for anvil-renamed container via screen title Source: https://opekope2.dev/OptiGUI/JSON.html Check for a container renamed in an anvil by matching the GUI screen title. The title can be a plain text (anvil-renamed) or a translated text (default block name). This example matches either the plain text 'Never gonna give you up' or the translation key 'container.shulkerBox'. ```json { "@screen": { "@title": [ { "@text": "Never gonna give you up" }, { "@translate": "container.shulkerBox" } ] } } ``` -------------------------------- ### Convert _zombie_horse=true to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_zombie_horse=true` with an OptiGUI JSON resource that sets the container to `zombie_horse`. ```json { "container": "zombie_horse" } ``` -------------------------------- ### Convert variants=_furnace to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `variants=_furnace` with an OptiGUI JSON resource that sets the container to `furnace`. ```json { "container": "furnace" } ``` -------------------------------- ### Convert _barrel=true to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_barrel=true` with an OptiGUI JSON resource that sets the container to `barrel`. ```json { "container": "barrel" } ``` -------------------------------- ### Convert _wandering_trader=true to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_wandering_trader=true` with an OptiGUI JSON resource that sets the container to `wandering_trader`. ```json { "container": "wandering_trader" } ``` -------------------------------- ### Convert container=_stonecutter to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `container=_stonecutter` with an OptiGUI JSON resource that sets the container to `stonecutter`. ```json { "container": "stonecutter" } ``` -------------------------------- ### Convert variants=_blast/_blast_furnace to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine properties `variants=_blast` or `variants=_blast_furnace` with an OptiGUI JSON resource that sets the container to `blast_furnace`. ```json { "container": "blast_furnace" } ``` -------------------------------- ### Hanging sign selectors Source: https://opekope2.dev/OptiGUI/INI.html Lists all hanging sign selectors supported by OptiGUI. Use these in GUI configuration to target hanging sign variants. Requires OptiGUI 2.1.3+ and Minecraft 1.20+ (or 1.19.3+ with 1.20 experiments). ```text [acacia_hanging_sign acacia_wall_hanging_sign] [bamboo_hanging_sign bamboo_wall_hanging_sign] [birch_hanging_sign birch_wall_hanging_sign] [cherry_hanging_sign cherry_wall_hanging_sign] [crimson_hanging_sign crimson_wall_hanging_sign] [dark_oak_hanging_sign dark_oak_wall_hanging_sign] [jungle_hanging_sign jungle_wall_hanging_sign] [mangrove_hanging_sign mangrove_wall_hanging_sign] [oak_hanging_sign oak_wall_hanging_sign] [spruce_hanging_sign spruce_wall_hanging_sign] [warped_hanging_sign warped_wall_hanging_sign] ``` -------------------------------- ### Convert _camel=true to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_camel=true` with an OptiGUI JSON resource that sets the container to `camel`. ```json { "container": "camel" } ``` -------------------------------- ### Convert _minecart=true (hopper) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html Replaces the OptiFine property `_minecart=true` when `container=hopper` with an OptiGUI JSON resource that sets the container to `hopper_minecart`. ```json { "container": "hopper_minecart" } ``` -------------------------------- ### Stonecutter GUI Configuration Source: https://opekope2.dev/OptiGUI/INI.html Configures the stonecutter GUI using the [stonecutter] section. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Supports common, interaction, and independent selectors. ```ini [stonecutter] ``` -------------------------------- ### >=* matcher (case-insensitive greater than or equal) Source: https://opekope2.dev/OptiGUI/JSON.html Matches strings lexicographically after or equal to the given string, case-insensitive. Available since OptiGUI 3.0.0-alpha.1+. ```json { "@biome": { ">=*": "minecraft:cherry_grove" } } ``` -------------------------------- ### JSON deviations allowed by OptiGUI Source: https://opekope2.dev/OptiGUI/JSON.html Shows the non-standard JSON syntax that OptiGUI accepts, including comments, unquoted names, single quotes, semicolons, and other relaxed rules. ```json # Comments // are allowed /* Multi-line comments are allowed, but can't be nested */ { UnquotedNames: "are allowed", 'Single-quoted names': "are allowed", "Unquoted strings": are_allowed, "Single-quoted strings": 'are allowed', "Array elements can be separated by": ["commas", "or"; "semicolons"], "Unnecessary array separators": ["are treated as", null, /* null */, , ,], "Names and values can be separated": { "Using": "colons", "Using"= "equality signs", "Or"=> "arrows" }, "Name/value pairs can be separated": { "Using": "commas"; "Or": "semicolons" } } ``` -------------------------------- ### Convert container=_chest_boat (1.21.2+) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html For Minecraft 1.21.2 and later, replaces `container=_chest_boat` by adding the variant before `chest_boat` (without angle brackets). Replace `` with the actual variant. ```json { "container": "_chest_boat" } ``` -------------------------------- ### containers as an array of identifiers Source: https://opekope2.dev/OptiGUI/JSON.html Specifies multiple block, entity, or item identifiers for the 'containers' field. OptiGUI will change textures for any of the specified identifiers. ```json { "containers": ["minecraft:villager", "minecraft:wandering_trader"] } ``` -------------------------------- ### Convert container=_chest_boat with multiple variants (pre-1.21.2) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html For multiple variants of the chest boat before Minecraft 1.21.2, use `any_of` in the `@Type` matcher. Replace `` and `` with the actual variant names. ```json { "container": "chest_boat", "match": { "@entity": { "@Type": { "any_of": ["", ""] } } } } ``` -------------------------------- ### =* matcher (case-insensitive equal) Source: https://opekope2.dev/OptiGUI/JSON.html Matches strings equal to the given string, case-insensitive. Available since OptiGUI 3.0.0-alpha.1+. ```json { "@hand": { "=*": "Main_Hand" } } ``` -------------------------------- ### >* matcher (case-insensitive greater than) Source: https://opekope2.dev/OptiGUI/JSON.html Matches strings lexicographically after the given string, case-insensitive. Available since OptiGUI 3.0.0-alpha.1+. ```json { "@biome": { ">*": "minecraft:cherry_grove" } } ``` -------------------------------- ### Convert container=_chest_boat (pre-1.21.2) to JSON Source: https://opekope2.dev/OptiGUI/Properties-extensions.html For Minecraft versions before 1.21.2, replaces `container=_chest_boat` by adding a matcher for the `Type` NBT of the chest boat entity. Replace `` with the actual variant. ```json { "container": "chest_boat", "match": { "@entity": { "@Type": "" } } } ``` -------------------------------- ### Crafting table selector Source: https://opekope2.dev/OptiGUI/INI.html Selector for the crafting table. Requires OptiGUI 2.1.0-beta.1+ and Minecraft 1.18+. Uses the crafting_table.png texture. Supports common, interaction, and independent selectors. ```ini [crafting_table] ``` -------------------------------- ### = matcher (equal) Source: https://opekope2.dev/OptiGUI/JSON.html Matches numbers equal to the given number, or strings equal to the given string (case-sensitive). Available since OptiGUI 3.0.0-alpha.1+. ```json { "@player": { "@health": { "=": 10 } }, "@biome": { "=": "minecraft:cherry_grove" } } ```