Conditions (Requirements)

How to use loading requirements.

Requirementslink

Requirements (called Loading Requirements in some menus) show or hide content based on conditions such as hover state, window size, or whether a world is loaded.

You can use them on elements, whole layouts, and action scripts.

Adding Requirements to Elementslink

To add requirements to an element, right-click it and select Loading Requirements.

Requirements are checked while the menu is open, so elements update when a condition changes.

Layout-wide Requirementslink

You can also change the visibility of whole layouts by right-clicking the editor background and then clicking on Loading Requirements [Layout-Wide].

When a layout-wide result changes, FancyMenu rebuilds the current screen and applies the layouts whose requirements now pass.

Action Scriptslink

Requirements can also be used in action scripts.
You can add them in the action script editor screen and use them to execute specific actions only if the condition of the requirement is met.

Combining Requirementslink

  • Requirements outside groups use AND, so all of them must pass.
  • Inside a group, choose AND or OR.
  • Use IF NOT to invert one requirement.

These rules are the same for elements, layouts, and action scripts.

Requirement Valueslink

For requirements that need a value, use Edit Requirement Value and follow the description shown in the editor. Some fields support TAB completion.

If an imported requirement no longer works after changing FancyMenu or add-ons, edit it in the requirements screen and check logs/latest.log for errors.

The requirements editor supports a right-click context menu, keyboard navigation, search, undo/redo (Ctrl/Command + Z / Ctrl/Command + Y), and Ctrl/Command + S to save.

Requirements in Detaillink

This section lists FancyMenu's built-in requirements.

Is Element Hovered (fancymenu_visibility_requirement_is_element_hovered)link

Purpose: Checks if a specific element is hovered by the mouse cursor.

Value: Required — Element identifier of the target element (e.g., some_element_ID).

Is Element Focused (is_element_focused)link

Purpose: Checks if a specific element currently has keyboard focus (for example, a text field or focused button).

Value: Required — Element ID of the target element (the same ID shown in the editor)

Is Any Element Hovered (fancymenu_visibility_requirement_is_any_element_hovered)link

Purpose: Checks visible/renderable elements in the current active customization layer, including elements contributed by stacked layouts.

Value: Not required

Is Any Button Hovered (fancymenu_visibility_requirement_is_any_button_hovered)link

Purpose: Checks whether any visible/renderable vanilla or custom button in the current active customization layer is hovered, including buttons contributed by stacked layouts.

Value: Not required

Is Layout Enabled (fancymenu_visibility_requirement_is_layout_enabled)link

Purpose: Checks if a specific layout is currently enabled.

Value: Required — The name of the layout (e.g., my_cool_main_menu_layout)

Is Scheduler Running (fancymenu_visibility_requirement_is_scheduler_running)link

Purpose: Checks if a scheduler is currently running.

Value: Required — Scheduler ID (e.g., my_scheduler)

Is GUI Scale (fancymenu_loading_requirement_is_gui_scale)link

Purpose: Checks if the current GUI scale matches certain conditions.

Value: Required — Use a number for equality, > for greater than, or < for less than.

Multiple comma-separated conditions are combined with AND. For example, >1,<4 passes only when the GUI scale is greater than 1 and smaller than 4.

Is Button Active (fancymenu_visibility_requirement_is_button_active)link

Purpose: Checks if a specific button is active (clickable).

Value: Required — Element ID of the target button (e.g., "some_element_ID")

Is Screen Title (is_menu_title)link

Purpose: Checks if the screen's DISPLAY title matches a specific text or localization key. This will only check for the display name/title of the screen, like "Options" or "Pause". It will NOT check for the menu/screen identifier (like title_screen)!

Value: Required — The exact title text or localization key of the screen

Is Key Pressed (is_key_pressed)link

Purpose: Checks if a specific keyboard key is currently being pressed.

Value: Required — The key code of the target key. Selected via a UI when editing the requirement value.

Is Any Screen Open (is_any_screen_open)link

Purpose: Checks if any screen/menu is currently open (returns false if no screen is showing).

Value: Not required

Is MC Debug Overlay Enabled (is_debug_overlay_enabled)link

Purpose: Checks if the F3 debug overlay is currently visible.

Value: Not required

Is Active Cursor Type (is_active_cursor_type)link

Purpose: Checks if FancyMenu's currently active cursor type matches a specific standard cursor type.

Value: Required — Cursor type: normal, writing, crosshair, pointing_hand, resize_horizontal, resize_vertical, resize_nwse, resize_nesw, resize_all, or not_allowed

Is Customization Menu Bar Visible (is_customization_menu_bar_visible)link

Purpose: Checks if FancyMenu's customization menu bar is currently visible.

Value: Not required

Is Modpack Mode Enabled (is_modpack_mode_enabled)link

Purpose: Checks if FancyMenu's Modpack Mode is enabled.

Value: Not required

Mouse Button Is Pressed (mouse_click)link

Purpose: Returns true while a specific mouse button is held. This is not a one-shot click event; use the On Mouse Button Clicked listener when an action should run once per click.

Value: Required — left or right to indicate which mouse button to check

Is Fullscreen (fancymenu_loading_requirement_is_fullscreen)link

Purpose: Checks if the game is currently in fullscreen mode.

Value: Not required

Is Window Width (fancymenu_loading_requirement_is_window_width)link

Purpose: Checks if the game window width matches specific values.

Value: Required — Window width in pixels (e.g., "1920"). Multiple values can be provided by separating with commas.

Is Window Height (fancymenu_loading_requirement_is_window_height)link

Purpose: Checks if the game window height matches specific values.

Value: Required — Window height in pixels (e.g., "1080"). Multiple values can be provided by separating with commas.

Is Window Width Bigger Than (fancymenu_loading_requirement_is_window_width_bigger_than)link

Purpose: Checks if the game window width is bigger than a specific value.

Value: Required — Window width in pixels (e.g., "1920")

Is Window Height Bigger Than (fancymenu_loading_requirement_is_window_height_bigger_than)link

Purpose: Checks if the game window height is bigger than a specific value.

Value: Required — Window height in pixels (e.g., "1080")

Is Multiplayer (fancymenu_loading_requirement_is_multiplayer)link

Purpose: Checks if the player is currently in a multiplayer world.

Value: Not required

Is Singleplayer (fancymenu_loading_requirement_is_singpleplayer)link

Purpose: Checks if the player is currently in a singleplayer world.

Value: Not required

Is World Loaded (fancymenu_loading_requirement_is_world_loaded)link

Purpose: Checks if any world is currently loaded.

Value: Not required

Is Adventure (fancymenu_visibility_requirement_is_adventure)link

Purpose: Checks if the player is currently in adventure game mode.

Value: Not required

Is Creative (fancymenu_visibility_requirement_is_creative)link

Purpose: Checks if the player is currently in creative game mode.

Value: Not required

Is Spectator (fancymenu_visibility_requirement_is_spectator)link

Purpose: Checks if the player is currently in spectator game mode.

Value: Not required

Is Survival (fancymenu_visibility_requirement_is_survival)link

Purpose: Checks if the player is currently in survival game mode.

Value: Not required

Is Game Mode (is_gamemode)link

Purpose: Checks if the player is in a specific game mode.

Value: Required — Game mode name (e.g., "creative", "survival", "adventure", "spectator")

Is Difficulty (is_difficulty)link

Purpose: Checks if the current game difficulty matches a specific value.

Value: Required — Difficulty name (e.g., "peaceful", "easy", "normal", "hard")

Is Hardcore (is_hardcore)link

Purpose: Checks if the currently loaded world is in hardcore mode.

Value: Not required

Is Camera Perspective (is_camera_perspective)link

Purpose: Checks if the current camera perspective matches a specific perspective.

Value: Required — first_person, third_person_back, or third_person_front

Is Raining (is_raining)link

Purpose: Checks if it's currently raining in the player's location.

Value: Not required

Is Thundering (is_thundering)link

Purpose: Checks if there's currently a thunderstorm in the player's world.

Value: Not required

Is Clear Weather (is_clear_weather)link

Purpose: Checks if the weather is currently clear (not raining or thundering).

Value: Not required

Is Snowing (is_snowing)link

Purpose: Checks if it's currently snowing at the player's location.

Value: Not required

Is Player Running (is_player_running)link

Purpose: Checks if the player is currently sprinting.

Value: Not required

Is Player Sneaking (is_player_sneaking)link

Purpose: Checks if the player is currently sneaking/crouching.

Value: Not required

Is Player Using Item (is_player_using_item)link

Purpose: Checks if the player is currently using an item.

Value: Not required

Is Player Swimming (is_player_swimming)link

Purpose: Checks if the player is currently swimming.

Value: Not required

Is Player Jumping or Falling (is_player_jumping)link

Purpose: Returns true while the player is airborne in a normal jumping or falling state. Swimming, fluids, elytra flight, sleeping, visual swimming, and crawling are excluded.

Value: Not required

Is Player Under Water (is_player_under_water)link

Purpose: Checks if the player is completely under water.

Value: Not required

Is Player In Water (is_player_in_water)link

Purpose: Checks if the player is in water (can be partially submerged).

Value: Not required

Is Player In Lava (is_player_in_lava)link

Purpose: Checks if the player is in lava.

Value: Not required

Is Player In Fluid (is_player_in_fluid)link

Purpose: Checks if the player is in any fluid (water, lava, etc.).

Value: Not required

Is Player Riding Entity/Vehicle (is_player_riding_entity)link

Purpose: Checks if the player is riding any entity.

Value: Not required

Is Player Riding Jumpable Entity (is_player_riding_jumpable_entity)link

Purpose: Checks if the player is riding an entity that can jump (like a horse).

Value: Not required

Is Player Riding Entity With Health (is_player_riding_entity_with_health)link

Purpose: Checks if the player is riding a living entity with health (like animals, not boats).

Value: Not required

Is Player In Powder Snow (is_player_in_powder_snow)link

Purpose: Checks if the player is currently in powder snow.

Value: Not required

Was Player In Powder Snow (was_player_in_powder_snow)link

Purpose: Checks if the player was in powder snow (used for effects that persist after leaving).

Value: Not required

Is Player Wearing Pumpkin (is_player_wearing_pumpkin)link

Purpose: Checks if the player is wearing a carved pumpkin on their head.

Value: Not required

Is Player Flying With Elytra (is_player_flying_with_elytra)link

Purpose: Checks if the player is currently flying with an elytra.

Value: Not required

Is Player Creative Flying (is_player_creative_flying)link

Purpose: Checks if the player is flying in creative mode.

Value: Not required

Has Player Absorption Hearts (has_player_absorption_hearts)link

Purpose: Checks if the player has any absorption hearts (golden hearts).

Value: Not required

Is Player Withered (is_player_withered)link

Purpose: Checks if the player is affected by the wither effect.

Value: Not required

Is Player Fully Frozen (is_player_fully_frozen)link

Purpose: Checks if the player is fully frozen (usually from powder snow).

Value: Not required

Is Player Poisoned (is_player_poisoned)link

Purpose: Checks if the player is affected by the poison effect.

Value: Not required

Is Player In Biome (is_player_in_biome)link

Purpose: Checks if the player is in a specific biome.

Value: Required — Biome identifier (e.g., minecraft:birch_forest)

Is Player In Dimension (is_player_in_dimension)link

Purpose: Checks if the player is in a specific dimension.

Value: Required — Dimension identifier (e.g., minecraft:overworld, minecraft:the_nether, minecraft:the_end)

Is Player In Structure (is_player_in_structure)link

Purpose: Checks if the player is currently inside a specific structure. Requires FancyMenu on the server for server worlds.

Value: Required — Structure identifier (e.g., minecraft:village)

Is Entity Nearby (is_entity_nearby)link

Purpose: Checks if a specific entity type is within a certain radius of the player.

Value: Required — Format: "radius:entity_id" (e.g., 10:minecraft:pig - checks for pigs within 10 blocks)

Is Effect Active (is_effect_active)link

Purpose: Checks if a specific potion effect is active on the player.

Value: Required — Effect identifier (e.g., minecraft:speed, minecraft:strength)

Is Any Effect Active (is_any_effect_active)link

Purpose: Checks if the player has any potion effect active.

Value: Not required

Is Player Left-Handed (is_left_handed)link

Purpose: Checks if the player is set to left-handed mode in the game options.

Value: Not required

Is Inventory Slot Filled (is_inventory_slot_filled)link

Purpose: Checks if a specific inventory slot contains an item.

Value: Required — Slot number (0-35 for main inventory, slots 0-8 are hotbar)

Is Item Hovered in Inventory (is_item_hovered_in_inventory)link

Purpose: Checks if the cursor is hovering any item in an inventory screen.

Value: Not required

Is Cursor Holding Inventory Item (is_cursor_holding_inventory_item)link

Purpose: Checks if the cursor is currently holding an inventory item stack.

Value: Not required

Is Hotbar Slot Selected (is_hotbar_slot_active)link

Purpose: Checks if a specific hotbar slot is currently selected.

Value: Required — Hotbar slot number (0-8)

Has Player Permission Level (fancymenu_loading_requirement_has_player_permission_level)link

Purpose: Checks if the player has at least the specified permission/OP level on the current world or server.

Value: Required — Permission level number (0-4, where 4 is server operator)

Is Attack Strength Weakened (is_attack_strength_weakened)link

Purpose: Checks if the player's attack strength is currently weakened (not fully charged).

Value: Not required

Is Real Time Day (fancymenu_visibility_requirement_is_realtime_day)link

Purpose: Checks if the current real-world day of the month matches a specific value.

Value: Required — Day number (1-31). Multiple values can be provided by separating with commas.

Is Real Time Hour (fancymenu_visibility_requirement_is_realtime_hour)link

Purpose: Checks if the current real-world hour matches a specific value.

Value: Required — Hour in 24-hour format (0-23). Multiple values can be provided by separating with commas.

Is Real Time Minute (fancymenu_visibility_requirement_is_realtime_minute)link

Purpose: Checks if the current real-world minute matches a specific value.

Value: Required — Minute (0-59). Multiple values can be provided by separating with commas.

Is Real Time Month (fancymenu_visibility_requirement_is_realtime_month)link

Purpose: Checks if the current real-world month matches a specific value.

Value: Required — Month number (1-12, where 1 is January). Multiple values can be provided by separating with commas.

Is Real Time Second (fancymenu_visibility_requirement_is_realtime_second)link

Purpose: Checks if the current real-world second matches a specific value.

Value: Required — Second (0-59). Multiple values can be provided by separating with commas.

Is Real Time Week Day (fancymenu_visibility_requirement_is_realtime_week_day)link

Purpose: Checks if the current real-world day of the week matches a specific value.

Value: Required — Day of week as number (1-7, where 1 is Sunday). Multiple values can be provided by separating with commas.

Is Real Time Year (fancymenu_visibility_requirement_is_realtime_year)link

Purpose: Checks if the current real-world year matches a specific value.

Value: Required — Full year (e.g., "2023"). Multiple values can be provided by separating with commas.

File/Folder Exists (fancymenu_loading_requirement_file_exists)link

Purpose: Checks whether a file or directory exists.

Value: Required — A path relative to the active game directory, or a path beginning with .minecraft/ for the conventional Minecraft directory. Files and directories both count as existing.

Is OS Linux (fancymenu_loading_requirement_is_os_linux)link

Purpose: Checks whether the current platform is neither Windows nor macOS. This normally corresponds to Linux environments.

Value: Not required

Is OS macOS (fancymenu_loading_requirement_is_os_macos)link

Purpose: Checks if the operating system is macOS.

Value: Not required

Is OS Windows (fancymenu_loading_requirement_is_os_windows)link

Purpose: Checks if the operating system is Windows.

Value: Not required

Is Internet Connection Available (is_internet_connection_available)link

Purpose: Checks if an active internet connection is available.

Value: Not required

Is Game Language (fancymenu_loading_requirement_is_language)link

Purpose: Checks if the current game language matches a specific value.

Value: Required — Language code (e.g., en_us for English)

Is Mod Loaded (fancymenu_loading_requirement_is_mod_loaded)link

Purpose: Checks if a specific mod is loaded.

Value: Required — Mod ID (e.g., fancymenu, jei). You can also check for OptiFine with optifine. Multiple comma-separated mod IDs are supported; all listed mods must be loaded.

Is MCEF Loaded (is_mcef_loaded)link

Purpose: Checks if MCEF (Minecraft Chromium Embedded Framework) is installed and initialized. MCEF is required for the Browser element and deprecated MCEF-based video types; native Video features use Watermedia.

Value: Not required

Is Number (fancymenu_visibility_requirement_is_number)link

Purpose: Provides advanced number comparison with different comparison modes.

Value: Required — Complex format: ["mode":"comparison_mode","number":"value1","compare_with":"value2"]$ where comparison_mode can be equals, bigger-than, smaller-than, bigger-than-or-equals, or smaller-than-or-equals

Is Text (fancymenu_visibility_requirement_is_text)link

Purpose: Provides advanced text comparison with different comparison modes.

Value: Required — Complex format: ["mode":"comparison_mode","text":"text1","compare_with":"text2"]$ where comparison_mode can be equals, contains, starts-with, or ends-with

Is Server IP (fancymenu_visibility_requirement_is_server_ip)link

Purpose: Checks if the current server IP matches a specific value.

Value: Required — Server IP address (with or without port)

Is Server Online (fancymenu_loading_requirement_is_server_online)link

Purpose: Checks if a specific server is online and reachable.

Value: Required — Server IP address (with or without port)

Is Resource Pack Enabled (is_resource_pack_enabled)link

Purpose: Checks if a specific resource pack is currently selected/active.

Value: Required — Resource pack title or pack ID (e.g., Programmer Art or the pack's ID)

Is Variable Value (FM Variable) (fancymenu_visibility_requirement_is_variable_value)link

Purpose: Checks if a FancyMenu variable has a specific value.

Value: Required — Format: "variable_name:expected_value"

Only Once Per Session (once_per_session)link

Purpose: Each configured instance returns true once per game session. Different instances are tracked independently.

Value: Not required