# Hexis Public Lua Documentation > Public context for people and AI models that author Hexis Lua scripts. Use only calls present in the generated API bundle. Do not invent Hexis calls. ## Runnable Lua API - [Implemented API bundle](https://docs.usehexis.com/llms-api.txt): compact public contract - [Structured API contract](https://docs.usehexis.com/api.json): public members and evidence - [LuaLS definitions](https://docs.usehexis.com/hexis.d.lua): editor completion and diagnostics - [Public documentation manifest](https://docs.usehexis.com/docs-manifest.json): status and retrieval metadata ## Api - [hexis.chat.command](https://docs.usehexis.com/api/chat/command): Supported Hexis Lua function: Command - [Chat API](https://docs.usehexis.com/api/chat): Current public Hexis Lua bindings for chat. - [hexis.chat.send_as_hexis](https://docs.usehexis.com/api/chat/send-as-hexis): Supported Hexis Lua function: Send with Hexis prefix - [hexis.chat.send](https://docs.usehexis.com/api/chat/send): Supported Hexis Lua function: Send - [Client API](https://docs.usehexis.com/api/client): Current public Hexis Lua bindings for client. - [hexis.client.play_sound](https://docs.usehexis.com/api/client/play-sound): Supported Hexis Lua function: Play client-side sound - [hexis.combat.attack](https://docs.usehexis.com/api/combat/attack): Supported Hexis Lua function: Single attack - [hexis.combat.blacklist](https://docs.usehexis.com/api/combat/blacklist): Experimental Hexis Lua function: Ignore entity for duration - [hexis.combat.can_attack](https://docs.usehexis.com/api/combat/can-attack): Supported Hexis Lua function: Check if attack cooldown is ready - [hexis.combat.clear_camera_lock](https://docs.usehexis.com/api/combat/clear-camera-lock): Supported Hexis Lua function: Release camera lock - [hexis.combat.distance_to](https://docs.usehexis.com/api/combat/distance-to): Experimental Hexis Lua function: Euclidean distance to entity - [hexis.combat.engage](https://docs.usehexis.com/api/combat/engage): Supported Hexis Lua function: Single-target combat (Lua provides entity) - [hexis.combat.find_boss](https://docs.usehexis.com/api/combat/find-boss): Experimental Hexis Lua function: Find Boss - [hexis.combat.find_target](https://docs.usehexis.com/api/combat/find-target): Experimental Hexis Lua function: Find Target - [hexis.combat.get_targets](https://docs.usehexis.com/api/combat/get-targets): Experimental Hexis Lua function: Get entities within distance - [hexis.combat.has_los_strict](https://docs.usehexis.com/api/combat/has-los-strict): Experimental Hexis Lua function: Strict LOS (3+ rays must pass) - [hexis.combat.has_los](https://docs.usehexis.com/api/combat/has-los): Experimental Hexis Lua function: Check LOS to entity (lenient, any ray) - [hexis.combat.has_target](https://docs.usehexis.com/api/combat/has-target): Experimental Hexis Lua function: Check if we have a valid target - [hexis.combat.hunt](https://docs.usehexis.com/api/combat/hunt): Experimental Hexis Lua function: Hunt mode - [hexis.combat.in_range](https://docs.usehexis.com/api/combat/in-range): Supported Hexis Lua function: Check if entity is in attack range - [Combat API](https://docs.usehexis.com/api/combat): Current public Hexis Lua bindings for combat. - [hexis.combat.is_active](https://docs.usehexis.com/api/combat/is-active): Experimental Hexis Lua function: Check if combat is running - [hexis.combat.is_alive](https://docs.usehexis.com/api/combat/is-alive): Experimental Hexis Lua function: Check if entity exists and has health > 0 - [hexis.combat.is_async_active](https://docs.usehexis.com/api/combat/is-async-active): Experimental Hexis Lua function: Check if async combat is running - [hexis.combat.is_blacklisted](https://docs.usehexis.com/api/combat/is-blacklisted): Experimental Hexis Lua function: Check if entity is blacklisted - [hexis.combat.is_pursuing](https://docs.usehexis.com/api/combat/is-pursuing): Experimental Hexis Lua function: Check if pursuing - [hexis.combat.is_valid](https://docs.usehexis.com/api/combat/is-valid): Experimental Hexis Lua function: Check if entity is still valid - [hexis.combat.pursue_stop](https://docs.usehexis.com/api/combat/pursue-stop): Supported Hexis Lua function: Stop pursuit - [hexis.combat.pursue](https://docs.usehexis.com/api/combat/pursue): Supported Hexis Lua function: Start non-blocking pursuit - [hexis.combat.pursuit_distance](https://docs.usehexis.com/api/combat/pursuit-distance): Experimental Hexis Lua function: Get distance to target - [hexis.combat.pursuit_tick](https://docs.usehexis.com/api/combat/pursuit-tick): Supported Hexis Lua function: Update pursuit (call every frame) - [hexis.combat.set_behavior](https://docs.usehexis.com/api/combat/set-behavior): Supported Hexis Lua function: Set movement behavior - [hexis.combat.set_camera_lock](https://docs.usehexis.com/api/combat/set-camera-lock): Supported Hexis Lua function: Lock camera on target - [hexis.combat.set_kite_range](https://docs.usehexis.com/api/combat/set-kite-range): Experimental Hexis Lua function: Configure kiting distances - [hexis.combat.set_target](https://docs.usehexis.com/api/combat/set-target): Experimental Hexis Lua function: Set current target for async combat Entity table should have: {x, y, z, type, name, id} from get_nearby_entities - [hexis.combat.start_async](https://docs.usehexis.com/api/combat/start-async): Experimental Hexis Lua function: call tick() every frame - [hexis.combat.start](https://docs.usehexis.com/api/combat/start): Supported Hexis Lua function: Start - [hexis.combat.stop_async](https://docs.usehexis.com/api/combat/stop-async): Experimental Hexis Lua function: Stop async combat and release camera - [hexis.combat.stop](https://docs.usehexis.com/api/combat/stop): Supported Hexis Lua function: Stop combat - [hexis.combat.swing](https://docs.usehexis.com/api/combat/swing): Supported Hexis Lua function: Swing weapon (single attack) - [hexis.conditions.always](https://docs.usehexis.com/api/conditions/always): Advanced Hexis Lua function: Always true (useful for testing) - [hexis.conditions.distance_from_marked](https://docs.usehexis.com/api/conditions/distance-from-marked): Advanced Hexis Lua function: Distance from marked pos - [hexis.conditions.entity_within](https://docs.usehexis.com/api/conditions/entity-within): Advanced Hexis Lua function: Entity within range for duration seconds - [hexis.conditions.gui_closed](https://docs.usehexis.com/api/conditions/gui-closed): Advanced Hexis Lua function: GUI is closed - [hexis.conditions.gui_open](https://docs.usehexis.com/api/conditions/gui-open): Advanced Hexis Lua function: GUI with title is open - [Conditions API](https://docs.usehexis.com/api/conditions): Current public Hexis Lua bindings for conditions. - [hexis.conditions.inventory_full](https://docs.usehexis.com/api/conditions/inventory-full): Advanced Hexis Lua function: Inventory is full - [hexis.conditions.mob_within](https://docs.usehexis.com/api/conditions/mob-within): Supported Hexis Lua function: Mob within range for duration seconds - [hexis.conditions.no_players_nearby](https://docs.usehexis.com/api/conditions/no-players-nearby): Advanced Hexis Lua function: No players within distance - [hexis.conditions.player_health](https://docs.usehexis.com/api/conditions/player-health): Advanced Hexis Lua function: Health check operator: "lt", "gt", "eq", "le", "ge" - [hexis.conditions.player_nearby](https://docs.usehexis.com/api/conditions/player-nearby): Supported Hexis Lua function: Any player within distance - [hexis.conditions.player_sneaking](https://docs.usehexis.com/api/conditions/player-sneaking): Supported Hexis Lua function: Player is sneaking nearby - [hexis.conditions.player_visible](https://docs.usehexis.com/api/conditions/player-visible): Supported Hexis Lua function: Player visible for duration seconds - [hexis.conditions.player_within](https://docs.usehexis.com/api/conditions/player-within): Supported Hexis Lua function: Player lingering for duration seconds - [hexis.conditions.player_y](https://docs.usehexis.com/api/conditions/player-y): Advanced Hexis Lua function: Y coordinate check - [hexis.conditions.random](https://docs.usehexis.com/api/conditions/random): Supported Hexis Lua function: Random chance (0.0 to 1.0) - [hexis.conditions.tablist_contains](https://docs.usehexis.com/api/conditions/tablist-contains): Advanced Hexis Lua function: Tablist has matching entry - [hexis.config](https://docs.usehexis.com/api/config/declaration): Supported Hexis Lua callable-table: Define user-editable script settings - [hexis.config.dropdown](https://docs.usehexis.com/api/config/dropdown): Supported Hexis Lua function: Dropdown - [Configuration API](https://docs.usehexis.com/api/config): Current public Hexis Lua bindings for configuration. - [hexis.config.item_selector](https://docs.usehexis.com/api/config/item-selector): Experimental Hexis Lua function: Item Selector - [hexis.config.route](https://docs.usehexis.com/api/config/route): Supported Hexis Lua function: Route - [hexis.config.slider](https://docs.usehexis.com/api/config/slider): Supported Hexis Lua function: Slider - [hexis.config.stepper](https://docs.usehexis.com/api/config/stepper): Supported Hexis Lua function: Stepper - [hexis.config.text_input](https://docs.usehexis.com/api/config/text-input): Experimental Hexis Lua function: Text Input - [hexis.config.toggle](https://docs.usehexis.com/api/config/toggle): Supported Hexis Lua function: Toggle - [Core API](https://docs.usehexis.com/api/core): Current public Hexis Lua bindings for core. - [hexis.notify](https://docs.usehexis.com/api/core/notify): Supported Hexis Lua function: Show a Hexis notification - [hexis.wait](https://docs.usehexis.com/api/core/wait): Supported Hexis Lua function: Pause script execution for a duration - [hexis.events.after](https://docs.usehexis.com/api/events/after): Experimental Hexis Lua function: One-time delayed event - [hexis.events.clear](https://docs.usehexis.com/api/events/clear): Experimental Hexis Lua function: Remove all event listeners - [hexis.events.every](https://docs.usehexis.com/api/events/every): Experimental Hexis Lua function: Timer event - [Events API](https://docs.usehexis.com/api/events): Current public Hexis Lua bindings for events. - [hexis.events.on](https://docs.usehexis.com/api/events/on): Supported Hexis Lua function: Register event listener - [hexis.events.remove](https://docs.usehexis.com/api/events/remove): Supported Hexis Lua function: Remove event listener - [hexis.format.coins](https://docs.usehexis.com/api/format/coins): Supported Hexis Lua function: Alias for number (explicit abbreviation) - [hexis.format.duration](https://docs.usehexis.com/api/format/duration): Experimental Hexis Lua function: Format seconds to "1h 23m 45s" - [Formatting API](https://docs.usehexis.com/api/format): Current public Hexis Lua bindings for formatting. - [hexis.format.number](https://docs.usehexis.com/api/format/number): Supported Hexis Lua function: Format number with abbreviations (k/m/b) like YAML's | coins - [hexis.format.percent](https://docs.usehexis.com/api/format/percent): Experimental Hexis Lua function: Format as percentage - [hexis.format.raw](https://docs.usehexis.com/api/format/raw): Experimental Hexis Lua function: Format number with commas (no abbreviation) - [hexis.gui.click_item_by_lore](https://docs.usehexis.com/api/gui/click-item-by-lore): Experimental Hexis Lua function: Find and click item by lore - [hexis.gui.click_item](https://docs.usehexis.com/api/gui/click-item): Supported Hexis Lua function: Find and click item - [hexis.gui.click](https://docs.usehexis.com/api/gui/click): Supported Hexis Lua function: Click a slot - [hexis.gui.close](https://docs.usehexis.com/api/gui/close): Supported Hexis Lua function: Close current GUI (delegates to gui_close command) - [hexis.gui.debug](https://docs.usehexis.com/api/gui/debug): Experimental Hexis Lua function: Debug GUI info - [hexis.gui.find_by_relation](https://docs.usehexis.com/api/gui/find-by-relation): Experimental Hexis Lua function: Find item by position relation - [hexis.gui.find](https://docs.usehexis.com/api/gui/find): Experimental Hexis Lua function: Find item in GUI - [hexis.gui.get_container_size](https://docs.usehexis.com/api/gui/get-container-size): Experimental Hexis Lua function: Returns number of container slots (excludes player inv) - [hexis.gui.get_hovered_item](https://docs.usehexis.com/api/gui/get-hovered-item): Experimental Hexis Lua function: Get item under cursor (moved from actions) - [hexis.gui.get_slot_info](https://docs.usehexis.com/api/gui/get-slot-info): Supported Hexis Lua function: Returns a Lua table with full slot details - [hexis.gui.get_slots](https://docs.usehexis.com/api/gui/get-slots): Supported Hexis Lua function: Bulk scan returning array of slot info tables - [hexis.gui.get_title](https://docs.usehexis.com/api/gui/get-title): Supported Hexis Lua function: Get current GUI title - [hexis.gui.has_title](https://docs.usehexis.com/api/gui/has-title): Supported Hexis Lua function: Check if current GUI title contains pattern - [GUI API](https://docs.usehexis.com/api/gui): Current public Hexis Lua bindings for gui. - [hexis.gui.is_open](https://docs.usehexis.com/api/gui/is-open): Supported Hexis Lua function: Check if any GUI is open - [hexis.gui.open](https://docs.usehexis.com/api/gui/open): Experimental Hexis Lua function: Open inventory - [hexis.gui.poll_slot_changes](https://docs.usehexis.com/api/gui/poll-slot-changes): Supported Hexis Lua function: Returns array of {slot, type, name, has_foil} changes - [hexis.gui.safe_mode](https://docs.usehexis.com/api/gui/safe-mode): Supported Hexis Lua function: STOP ALL activity before GUI interaction CRITICAL: Call this before ANY GUI operation to ensure player is completely still - [hexis.gui.stop_watching](https://docs.usehexis.com/api/gui/stop-watching): Supported Hexis Lua function: Stop the slot watcher - [hexis.gui.switch_hotbar](https://docs.usehexis.com/api/gui/switch-hotbar): Experimental Hexis Lua function: Switch hotbar slot - [hexis.gui.wait_for](https://docs.usehexis.com/api/gui/wait-for): Supported Hexis Lua function: Wait for GUI - [hexis.gui.watch_slots](https://docs.usehexis.com/api/gui/watch-slots): Supported Hexis Lua function: Start watching slots on main thread for changes - [hexis.http.get](https://docs.usehexis.com/api/http/get): Supported Hexis Lua function: Get - [HTTP API](https://docs.usehexis.com/api/http): Current public Hexis Lua bindings for http. - [hexis.hud.add_state](https://docs.usehexis.com/api/hud/add-state): Supported Hexis Lua function: Add a HUD state - [hexis.hud.create](https://docs.usehexis.com/api/hud/create): Supported Hexis Lua function: Initialize HUD with config - [hexis.hud.hide](https://docs.usehexis.com/api/hud/hide): Experimental Hexis Lua function: Hide the HUD - [HUD API](https://docs.usehexis.com/api/hud): Current public Hexis Lua bindings for hud. - [hexis.hud.is_visible](https://docs.usehexis.com/api/hud/is-visible): Experimental Hexis Lua function: Check if HUD is visible - [hexis.hud.set_state](https://docs.usehexis.com/api/hud/set-state): Supported Hexis Lua function: Switch to a HUD state (triggers animation) - [hexis.hud.set_var](https://docs.usehexis.com/api/hud/set-var): Experimental Hexis Lua function: Set a variable for interpolation - [hexis.hud.set](https://docs.usehexis.com/api/hud/set): Supported Hexis Lua function: Simple HUD definition (updates on each call) - [hexis.hud.show](https://docs.usehexis.com/api/hud/show): Experimental Hexis Lua function: Show the HUD - [hexis.hud.start_timer](https://docs.usehexis.com/api/hud/start-timer): Supported Hexis Lua function: Start the session timer - [hexis.hud.stop_timer](https://docs.usehexis.com/api/hud/stop-timer): Experimental Hexis Lua function: Stop the session timer - [Lua API Reference](https://docs.usehexis.com/api): Complete public reference for the current Hexis Lua binding snapshot. - [Input API](https://docs.usehexis.com/api/input): Current public Hexis Lua bindings for input. - [hexis.input.is_key_just_pressed](https://docs.usehexis.com/api/input/is-key-just-pressed): Advanced Hexis Lua function: Check if key was just pressed this frame - [hexis.input.is_key_pressed](https://docs.usehexis.com/api/input/is-key-pressed): Advanced Hexis Lua function: Check if key is currently pressed - [hexis.inventory.close](https://docs.usehexis.com/api/inventory/close): Experimental Hexis Lua function: close current GUI (delegates to gui_close command) - [hexis.inventory.contains](https://docs.usehexis.com/api/inventory/contains): Supported Hexis Lua function: check if hotbar contains item - [hexis.inventory.count_items](https://docs.usehexis.com/api/inventory/count-items): Supported Hexis Lua function: count total items matching pattern across entire inventory - [hexis.inventory.find_slot](https://docs.usehexis.com/api/inventory/find-slot): Supported Hexis Lua function: find hotbar slot matching pattern - [hexis.inventory.get_hotbar_items](https://docs.usehexis.com/api/inventory/get-hotbar-items): Supported Hexis Lua function: get all hotbar item names - [hexis.inventory.held_item](https://docs.usehexis.com/api/inventory/held-item): Experimental Hexis Lua property: Held Item - [hexis.inventory.held_slot](https://docs.usehexis.com/api/inventory/held-slot): Experimental Hexis Lua property: Held Slot - [Inventory API](https://docs.usehexis.com/api/inventory): Current public Hexis Lua bindings for inventory. - [hexis.inventory.is_full](https://docs.usehexis.com/api/inventory/is-full): Supported Hexis Lua function: check if inventory is full (moved from conditions) - [hexis.inventory.open](https://docs.usehexis.com/api/inventory/open): Experimental Hexis Lua function: open player inventory - [hexis.inventory.select_slot](https://docs.usehexis.com/api/inventory/select-slot): Supported Hexis Lua function: select hotbar slot (moved from world.select_hotbar_slot) - [hexis.log.debug](https://docs.usehexis.com/api/log/debug): Supported Hexis Lua function: Debug - [hexis.log.error](https://docs.usehexis.com/api/log/error): Supported Hexis Lua function: Error - [Logging API](https://docs.usehexis.com/api/log): Current public Hexis Lua bindings for logging. - [hexis.log.info](https://docs.usehexis.com/api/log/info): Supported Hexis Lua function: Info - [hexis.log.warn](https://docs.usehexis.com/api/log/warn): Supported Hexis Lua function: Warn - [hexis.mining.aim_tick](https://docs.usehexis.com/api/mining/aim-tick): Experimental Hexis Lua function: Perform one frame of aiming toward async mining target. - [hexis.mining.break_block](https://docs.usehexis.com/api/mining/break-block): Experimental Hexis Lua function: Break Block - [hexis.mining.cancel_precomputation](https://docs.usehexis.com/api/mining/cancel-precomputation): Experimental Hexis Lua function: Cancel any ongoing precomputation - [hexis.mining.check_current_reach](https://docs.usehexis.com/api/mining/check-current-reach): Experimental Hexis Lua function: Quick check if we can reach block now Returns vantage point info for current position, or nil if not reachable - [hexis.mining.check_reach](https://docs.usehexis.com/api/mining/check-reach): Supported Hexis Lua function: Pre-filter unreachable blocks before mining - Custom reach scoring algorithms - Cache reach data for batch optimization - Filter by score threshold (e.g., only mine blocks with score > 0.7). IMPORTANT: Results are from CURRENT player position - cache invalidates when player moves! - [hexis.mining.end_session](https://docs.usehexis.com/api/mining/end-session): Supported Hexis Lua function: End multi-block mining session, release everything - [hexis.mining.find_ground_vantage_points](https://docs.usehexis.com/api/mining/find-ground-vantage-points): Experimental Hexis Lua function: Find GROUND-LEVEL positions for mining overhead blocks. Only returns positions at/below player Y that can jump-reach the target. - [hexis.mining.find_immediate_target](https://docs.usehexis.com/api/mining/find-immediate-target): Experimental Hexis Lua function: Find Immediate Target - [hexis.mining.find_nearest_reachable](https://docs.usehexis.com/api/mining/find-nearest-reachable): Experimental Hexis Lua function: Find Nearest Reachable - [hexis.mining.find_vantage_points](https://docs.usehexis.com/api/mining/find-vantage-points): Experimental Hexis Lua function: Find positions to mine from Returns array of vantage points sorted by quality - [hexis.mining.get_aim_point](https://docs.usehexis.com/api/mining/get-aim-point): Experimental Hexis Lua function: Get optimal aim angles - [hexis.mining.get_all_aim_points](https://docs.usehexis.com/api/mining/get-all-aim-points): Experimental Hexis Lua function: Get all visible aim points on block Returns array of {x, y, z} for retry logic - [hexis.mining.get_blocks_mined](https://docs.usehexis.com/api/mining/get-blocks-mined): Supported Hexis Lua function: Get count of blocks mined in current loop - [hexis.mining.get_crosshair_target](https://docs.usehexis.com/api/mining/get-crosshair-target): Experimental Hexis Lua function: Get the block the crosshair is currently targeting Returns {x, y, z, side} table or nil if not targeting a block CRITICAL: - [hexis.mining.get_distance](https://docs.usehexis.com/api/mining/get-distance): Experimental Hexis Lua function: Get distance to block - [hexis.mining.get_mining_progress](https://docs.usehexis.com/api/mining/get-mining-progress): Experimental Hexis Lua function: Get Mining Progress - [hexis.mining.get_precomputed_target](https://docs.usehexis.com/api/mining/get-precomputed-target): Experimental Hexis Lua function: Get and clear the precomputed next target Returns table with target info or nil if not ready - [hexis.mining.get_smart_aim_point](https://docs.usehexis.com/api/mining/get-smart-aim-point): Experimental Hexis Lua function: Get best visible point on block Returns {x, y, z} aim coordinates (may be off-center!) or nil if no visible point - [hexis.mining.has_line_of_sight](https://docs.usehexis.com/api/mining/has-line-of-sight): Supported Hexis Lua function: Has Line Of Sight - [Mining API](https://docs.usehexis.com/api/mining): Current public Hexis Lua bindings for mining. - [hexis.mining.is_block_obstructed](https://docs.usehexis.com/api/mining/is-block-obstructed): Supported Hexis Lua function: Is Block Obstructed - [hexis.mining.is_block_reachable](https://docs.usehexis.com/api/mining/is-block-reachable): Experimental Hexis Lua function: Quick check if block can be reached from anywhere Returns true if at least one good vantage point exists - [hexis.mining.is_breakable](https://docs.usehexis.com/api/mining/is-breakable): Experimental Hexis Lua function: Check if block can be broken - [hexis.mining.is_entity_obstructing](https://docs.usehexis.com/api/mining/is-entity-obstructing): Experimental Hexis Lua function: Is Entity Obstructing - [hexis.mining.is_loop_active](https://docs.usehexis.com/api/mining/is-loop-active): Experimental Hexis Lua function: Check if mining loop is running - [hexis.mining.is_mining_async](https://docs.usehexis.com/api/mining/is-mining-async): Experimental Hexis Lua function: Check if async mining is active - [hexis.mining.is_mining](https://docs.usehexis.com/api/mining/is-mining): Experimental Hexis Lua function: Check if currently mining - [hexis.mining.is_precomputing](https://docs.usehexis.com/api/mining/is-precomputing): Experimental Hexis Lua function: Check if precomputation is running - [hexis.mining.is_session_jump_active](https://docs.usehexis.com/api/mining/is-session-jump-active): Experimental Hexis Lua function: Check if session jump is currently active - [hexis.mining.is_targeting_block](https://docs.usehexis.com/api/mining/is-targeting-block): Experimental Hexis Lua function: Check if crosshair is targeting specific block Returns true if the crosshair is currently aimed at the specified block - [hexis.mining.mine_block](https://docs.usehexis.com/api/mining/mine-block): Supported Hexis Lua function: Mine Block - [hexis.mining.mine_nearest](https://docs.usehexis.com/api/mining/mine-nearest): Supported Hexis Lua function: Mine Nearest - [hexis.mining.peek_precomputed_target](https://docs.usehexis.com/api/mining/peek-precomputed-target): Experimental Hexis Lua function: Peek at precomputed target without clearing Useful for visual highlighting of next target - [hexis.mining.precompute_next_target](https://docs.usehexis.com/api/mining/precompute-next-target): Experimental Hexis Lua function: by the time you finish, the next target is ready. - [hexis.mining.recalculate_aim](https://docs.usehexis.com/api/mining/recalculate-aim): Experimental Hexis Lua function: Re-run aim point calculation from current eye position - [hexis.mining.select_target_smart](https://docs.usehexis.com/api/mining/select-target-smart): Experimental Hexis Lua function: Select Target Smart - [hexis.mining.set_session_jump](https://docs.usehexis.com/api/mining/set-session-jump): Supported Hexis Lua function: Enable/disable continuous jump during mining session When enabled, jump is held across multiple mine_block calls until disabled or session ends - [hexis.mining.start_loop](https://docs.usehexis.com/api/mining/start-loop): Experimental Hexis Lua function: Start async mining loop - [hexis.mining.start_mining_async](https://docs.usehexis.com/api/mining/start-mining-async): Experimental Hexis Lua function: Start mining a block (non-blocking). Lua must poll aim_tick() and call stop_mining_async when done. - [hexis.mining.start_mining_smart](https://docs.usehexis.com/api/mining/start-mining-smart): Experimental Hexis Lua function: Start async mining with smart aim Uses SmartAimPointFinder to target visible part of block Same as start_mining_async but auto-finds best aim point - [hexis.mining.start_session](https://docs.usehexis.com/api/mining/start-session): Supported Hexis Lua function: Begin multi-block mining session - [hexis.mining.stop_loop](https://docs.usehexis.com/api/mining/stop-loop): Experimental Hexis Lua function: Stop async mining loop - [hexis.mining.stop_mining_async](https://docs.usehexis.com/api/mining/stop-mining-async): Supported Hexis Lua function: Stop non-blocking mining - [hexis.mining.stop](https://docs.usehexis.com/api/mining/stop): Experimental Hexis Lua function: Stop current mining - [hexis.movement.get_owner](https://docs.usehexis.com/api/movement/get-owner): Advanced Hexis Lua function: Get current control owner - [hexis.movement.get_state](https://docs.usehexis.com/api/movement/get-state): Advanced Hexis Lua function: Get current movement state - [Movement API](https://docs.usehexis.com/api/movement): Current public Hexis Lua bindings for movement. - [hexis.movement.is_controlled](https://docs.usehexis.com/api/movement/is-controlled): Advanced Hexis Lua function: Check if we have movement control - [hexis.movement.release_control](https://docs.usehexis.com/api/movement/release-control): Supported Hexis Lua function: Release movement control - [hexis.movement.set_allow_jumping](https://docs.usehexis.com/api/movement/set-allow-jumping): Advanced Hexis Lua function: Set Allow Jumping - [hexis.movement.set_allow_sprinting](https://docs.usehexis.com/api/movement/set-allow-sprinting): Advanced Hexis Lua function: Set Allow Sprinting - [hexis.movement.set_backward](https://docs.usehexis.com/api/movement/set-backward): Advanced Hexis Lua function: Set Backward - [hexis.movement.set_forward](https://docs.usehexis.com/api/movement/set-forward): Supported Hexis Lua function: Set Forward - [hexis.movement.set_state](https://docs.usehexis.com/api/movement/set-state): Advanced Hexis Lua function: Set State - [hexis.movement.set_strafe_intensity](https://docs.usehexis.com/api/movement/set-strafe-intensity): Advanced Hexis Lua function: Set Strafe Intensity - [hexis.movement.set_strafe_left](https://docs.usehexis.com/api/movement/set-strafe-left): Advanced Hexis Lua function: Set Strafe Left - [hexis.movement.set_strafe_right](https://docs.usehexis.com/api/movement/set-strafe-right): Advanced Hexis Lua function: Set Strafe Right - [hexis.movement.set_tap_mode](https://docs.usehexis.com/api/movement/set-tap-mode): Advanced Hexis Lua function: Enable precision approach mode - [hexis.movement.stop](https://docs.usehexis.com/api/movement/stop): Advanced Hexis Lua function: Stop all movement immediately - [hexis.movement.take_control](https://docs.usehexis.com/api/movement/take-control): Advanced Hexis Lua function: Take exclusive control of movement - [hexis.navigate.arrived](https://docs.usehexis.com/api/navigate/arrived): Experimental Hexis Lua function: Check if navigation completed - [hexis.navigate.blacklist](https://docs.usehexis.com/api/navigate/blacklist): Experimental Hexis Lua function: Manually blacklist a position - [hexis.navigate.check_location](https://docs.usehexis.com/api/navigate/check-location): Experimental Hexis Lua function: Check if at location - [hexis.navigate.clear_blacklist](https://docs.usehexis.com/api/navigate/clear-blacklist): Supported Hexis Lua function: Remove a position from blacklist - [hexis.navigate.clear_camera_lock](https://docs.usehexis.com/api/navigate/clear-camera-lock): Supported Hexis Lua function: Clear Camera Lock - [hexis.navigate.drop](https://docs.usehexis.com/api/navigate/drop): Experimental Hexis Lua function: Drop down from current location - [hexis.navigate.etherwarp](https://docs.usehexis.com/api/navigate/etherwarp): Supported Hexis Lua function: Teleport using etherwarp - [hexis.navigate.find_ground_position](https://docs.usehexis.com/api/navigate/find-ground-position): Experimental Hexis Lua function: Find Ground Position - [hexis.navigate.get_blacklist_count](https://docs.usehexis.com/api/navigate/get-blacklist-count): Experimental Hexis Lua function: Get count of blacklisted positions - [hexis.navigate.get_wasd_stuck_reason](https://docs.usehexis.com/api/navigate/get-wasd-stuck-reason): Experimental Hexis Lua function: Get reason WASD mode got stuck (resets after read) - [hexis.navigate.get_water_surface_y](https://docs.usehexis.com/api/navigate/get-water-surface-y): Experimental Hexis Lua function: Get Y level of water surface at position - [hexis.navigate.has_camera_lock](https://docs.usehexis.com/api/navigate/has-camera-lock): Experimental Hexis Lua function: Has Camera Lock - [Navigation API](https://docs.usehexis.com/api/navigate): Current public Hexis Lua bindings for navigation. - [hexis.navigate.is_blacklisted](https://docs.usehexis.com/api/navigate/is-blacklisted): Experimental Hexis Lua function: Check if a position is blacklisted - [hexis.navigate.is_in_water](https://docs.usehexis.com/api/navigate/is-in-water): Experimental Hexis Lua function: Check if player is currently in water - [hexis.navigate.is_navigating](https://docs.usehexis.com/api/navigate/is-navigating): Supported Hexis Lua function: Check if currently navigating - [hexis.navigate.is_swim_navigating](https://docs.usehexis.com/api/navigate/is-swim-navigating): Experimental Hexis Lua function: Check if currently swim navigating - [hexis.navigate.is_swimming](https://docs.usehexis.com/api/navigate/is-swimming): Experimental Hexis Lua function: Check if player is in swim mode - [hexis.navigate.is_underwater](https://docs.usehexis.com/api/navigate/is-underwater): Experimental Hexis Lua function: Check if a position is underwater - [hexis.navigate.near](https://docs.usehexis.com/api/navigate/near): Supported Hexis Lua function: Near - [hexis.navigate.set_camera_lock](https://docs.usehexis.com/api/navigate/set-camera-lock): Supported Hexis Lua function: navigation uses strafe only. - [hexis.navigate.smart_etherwarp](https://docs.usehexis.com/api/navigate/smart-etherwarp): Experimental Hexis Lua function: Smart etherwarp with LOS check - [hexis.navigate.start_async](https://docs.usehexis.com/api/navigate/start-async): Supported Hexis Lua function: Start navigation (path compute is synchronous). Returns immediately after pathfinding starts. - [hexis.navigate.stop](https://docs.usehexis.com/api/navigate/stop): Supported Hexis Lua function: Stop navigation - [hexis.navigate.swim_to](https://docs.usehexis.com/api/navigate/swim-to): Experimental Hexis Lua function: Swim To - [hexis.navigate.to](https://docs.usehexis.com/api/navigate/to): Supported Hexis Lua function: Navigate to a location - [hexis.player.attack](https://docs.usehexis.com/api/player/attack): Experimental Hexis Lua function: Attack - [hexis.player.can_reach_block](https://docs.usehexis.com/api/player/can-reach-block): Experimental Hexis Lua function: Check if block is within mining range Returns true if block is within 4.5 blocks and has line of sight - [hexis.player.distance_to](https://docs.usehexis.com/api/player/distance-to): Supported Hexis Lua function: Get 3D distance to position - [hexis.player.drop_item](https://docs.usehexis.com/api/player/drop-item): Experimental Hexis Lua function: drop current held item - [hexis.player.equip](https://docs.usehexis.com/api/player/equip): Supported Hexis Lua function: Equip - [hexis.player.find_hotbar_slot](https://docs.usehexis.com/api/player/find-hotbar-slot): Experimental Hexis Lua function: find slot with item matching pattern (-1 if not found) - [hexis.player.get_air_control_factor](https://docs.usehexis.com/api/player/get-air-control-factor): Experimental Hexis Lua function: Get air control effectiveness (0.0-1.0). Returns multiplier for strafe effectiveness when airborne With high Jump Boost, this can be as low as 0.05 (5%) - [hexis.player.get_effect](https://docs.usehexis.com/api/player/get-effect): Supported Hexis Lua function: Get info about an active potion effect Returns table {active, level, amplifier, duration, ambient} or nil if not active - [hexis.player.get_hotbar_items](https://docs.usehexis.com/api/player/get-hotbar-items): Experimental Hexis Lua function: get table of all hotbar item names - [hexis.player.get_jump_boost_level](https://docs.usehexis.com/api/player/get-jump-boost-level): Experimental Hexis Lua function: Get jump boost level (0 = none, 1-5 = Jump Boost I-V) - [hexis.player.get_max_jump_height](https://docs.usehexis.com/api/player/get-max-jump-height): Experimental Hexis Lua function: Get max jump height in blocks Takes into account Jump Boost effect - [hexis.player.get_nearest](https://docs.usehexis.com/api/player/get-nearest): Supported Hexis Lua function: returns name of nearest player - [hexis.player.health_percent](https://docs.usehexis.com/api/player/health-percent): Supported Hexis Lua property: Health Percent - [hexis.player.health](https://docs.usehexis.com/api/player/health): Experimental Hexis Lua property: Health - [hexis.player.held_item](https://docs.usehexis.com/api/player/held-item): Experimental Hexis Lua property: Held Item - [hexis.player.held_slot](https://docs.usehexis.com/api/player/held-slot): Experimental Hexis Lua property: Held Slot - [hexis.player.horizontal_distance](https://docs.usehexis.com/api/player/horizontal-distance): Supported Hexis Lua function: returns horizontal distance to location - [hexis.player.hotbar_contains](https://docs.usehexis.com/api/player/hotbar-contains): Experimental Hexis Lua function: check if item matching pattern is in hotbar - [hexis.player.hunger](https://docs.usehexis.com/api/player/hunger): Experimental Hexis Lua property: Hunger - [Player API](https://docs.usehexis.com/api/player): Current public Hexis Lua bindings for player. - [hexis.player.interact_block](https://docs.usehexis.com/api/player/interact-block): Supported Hexis Lua function: right-click a specific block Looks at block center first, then sends use-item-on interaction - [hexis.player.interact_entity](https://docs.usehexis.com/api/player/interact-entity): Experimental Hexis Lua function: Interact Entity - [hexis.player.is_flying](https://docs.usehexis.com/api/player/is-flying): Experimental Hexis Lua property: Is Flying - [hexis.player.is_on_ground](https://docs.usehexis.com/api/player/is-on-ground): Experimental Hexis Lua property: Is On Ground - [hexis.player.is_rotation_locked](https://docs.usehexis.com/api/player/is-rotation-locked): Experimental Hexis Lua function: Is Rotation Locked - [hexis.player.is_sneaking](https://docs.usehexis.com/api/player/is-sneaking): Experimental Hexis Lua property: Is Sneaking - [hexis.player.is_sprinting](https://docs.usehexis.com/api/player/is-sprinting): Experimental Hexis Lua property: Is Sprinting - [hexis.player.jump](https://docs.usehexis.com/api/player/jump): Supported Hexis Lua function: Jump - [hexis.player.look_at](https://docs.usehexis.com/api/player/look-at): Supported Hexis Lua function: Look At - [hexis.player.max_health](https://docs.usehexis.com/api/player/max-health): Experimental Hexis Lua property: Max Health - [hexis.player.name](https://docs.usehexis.com/api/player/name): Supported Hexis Lua property: Name - [hexis.player.pitch](https://docs.usehexis.com/api/player/pitch): Supported Hexis Lua property: Pitch - [hexis.player.position](https://docs.usehexis.com/api/player/position): Supported Hexis Lua property: Position - [hexis.player.raycast](https://docs.usehexis.com/api/player/raycast): Experimental Hexis Lua function: Raycast - [hexis.player.sneak](https://docs.usehexis.com/api/player/sneak): Supported Hexis Lua function: Sneak - [hexis.player.sprint](https://docs.usehexis.com/api/player/sprint): Experimental Hexis Lua function: Sprint - [hexis.player.swing_hand](https://docs.usehexis.com/api/player/swing-hand): Experimental Hexis Lua function: Swing Hand - [hexis.player.use_item](https://docs.usehexis.com/api/player/use-item): Supported Hexis Lua function: Use Item - [hexis.player.x](https://docs.usehexis.com/api/player/x): Supported Hexis Lua property: X - [hexis.player.y](https://docs.usehexis.com/api/player/y): Supported Hexis Lua property: Y - [hexis.player.yaw](https://docs.usehexis.com/api/player/yaw): Supported Hexis Lua property: Yaw - [hexis.player.z](https://docs.usehexis.com/api/player/z): Supported Hexis Lua property: Z - [route:get_available_block_count](https://docs.usehexis.com/api/route-handle/get-available-block-count): Experimental Hexis Lua handle-method: Get Available Block Count - [route:get_blocks](https://docs.usehexis.com/api/route-handle/get-blocks): Supported Hexis Lua handle-method: Get Blocks - [route:get_group_for_zone](https://docs.usehexis.com/api/route-handle/get-group-for-zone): Supported Hexis Lua handle-method: Get Group For Zone - [route:get_nearest_block](https://docs.usehexis.com/api/route-handle/get-nearest-block): Experimental Hexis Lua handle-method: Get Nearest Block - [route:get_ungrouped_zones](https://docs.usehexis.com/api/route-handle/get-ungrouped-zones): Experimental Hexis Lua handle-method: Get Ungrouped Zones - [route:get_zone_at_player](https://docs.usehexis.com/api/route-handle/get-zone-at-player): Supported Hexis Lua handle-method: Get Zone At Player - [route:get_zone_groups](https://docs.usehexis.com/api/route-handle/get-zone-groups): Experimental Hexis Lua handle-method: Get Zone Groups - [route:get_zone](https://docs.usehexis.com/api/route-handle/get-zone): Experimental Hexis Lua handle-method: Get Zone - [route:get_zones_in_group](https://docs.usehexis.com/api/route-handle/get-zones-in-group): Experimental Hexis Lua handle-method: Get Zones In Group - [route:get_zones](https://docs.usehexis.com/api/route-handle/get-zones): Experimental Hexis Lua handle-method: Get Zones - [Route Handles API](https://docs.usehexis.com/api/route-handle): Current public Hexis Lua bindings for route handles. - [route:is_in_zone](https://docs.usehexis.com/api/route-handle/is-in-zone): Experimental Hexis Lua handle-method: Is In Zone - [route:mark_complete](https://docs.usehexis.com/api/route-handle/mark-complete): Supported Hexis Lua handle-method: Mark Complete - [hexis.routes.exists](https://docs.usehexis.com/api/routes/exists): Experimental Hexis Lua function: Exists - [hexis.routes.get_capabilities](https://docs.usehexis.com/api/routes/get-capabilities): Experimental Hexis Lua function: Get Capabilities - [Routes API](https://docs.usehexis.com/api/routes): Current public Hexis Lua bindings for routes. - [hexis.routes.list_with](https://docs.usehexis.com/api/routes/list-with): Experimental Hexis Lua function: List With - [hexis.routes.list](https://docs.usehexis.com/api/routes/list): Experimental Hexis Lua function: List - [hexis.routes.load](https://docs.usehexis.com/api/routes/load): Supported Hexis Lua function: Load - [hexis.script](https://docs.usehexis.com/api/script/declaration): Supported Hexis Lua declaration: Declare script metadata - [Script Lifecycle API](https://docs.usehexis.com/api/script): Current public Hexis Lua bindings for script lifecycle. - [hexis.script.is_paused](https://docs.usehexis.com/api/script/is-paused): Experimental Hexis Lua function: Check if script is paused - [hexis.script.is_running](https://docs.usehexis.com/api/script/is-running): Supported Hexis Lua function: Check if script is running - [hexis.script.name](https://docs.usehexis.com/api/script/name): Experimental Hexis Lua function: Get script name - [hexis.script.pause](https://docs.usehexis.com/api/script/pause): Experimental Hexis Lua function: Pause the script - [hexis.script.resume](https://docs.usehexis.com/api/script/resume): Experimental Hexis Lua function: Resume the script - [hexis.script.stop](https://docs.usehexis.com/api/script/stop): Supported Hexis Lua function: Stop the script completely - [hexis.script.version](https://docs.usehexis.com/api/script/version): Experimental Hexis Lua function: Get script version - [hexis.sidebar.get_lines](https://docs.usehexis.com/api/sidebar/get-lines): Advanced Hexis Lua function: Read scoreboard sidebar text lines - [hexis.sidebar.hide](https://docs.usehexis.com/api/sidebar/hide): Advanced Hexis Lua function: Hide the scoreboard sidebar - [Sidebar API](https://docs.usehexis.com/api/sidebar): Current public Hexis Lua bindings for sidebar. - [hexis.sidebar.is_hidden](https://docs.usehexis.com/api/sidebar/is-hidden): Advanced Hexis Lua function: Check if sidebar is hidden - [hexis.sidebar.show](https://docs.usehexis.com/api/sidebar/show): Advanced Hexis Lua function: Show the scoreboard sidebar - [hexis.tablist.contains](https://docs.usehexis.com/api/tablist/contains): Supported Hexis Lua function: Check if tablist contains pattern - [hexis.tablist.find_all](https://docs.usehexis.com/api/tablist/find-all): Experimental Hexis Lua function: Find all display names matching pattern - [hexis.tablist.find](https://docs.usehexis.com/api/tablist/find): Experimental Hexis Lua function: Find first display name matching pattern - [hexis.tablist.get_all](https://docs.usehexis.com/api/tablist/get-all): Supported Hexis Lua function: Get all tablist entries - [hexis.tablist.get_footer](https://docs.usehexis.com/api/tablist/get-footer): Experimental Hexis Lua function: Get tab list footer text - [hexis.tablist.get_header](https://docs.usehexis.com/api/tablist/get-header): Experimental Hexis Lua function: Get tab list header text - [Tab List API](https://docs.usehexis.com/api/tablist): Current public Hexis Lua bindings for tab list. - [hexis.timer.elapsed_ms](https://docs.usehexis.com/api/timer/elapsed-ms): Experimental Hexis Lua function: Get elapsed time in milliseconds - [hexis.timer.elapsed](https://docs.usehexis.com/api/timer/elapsed): Supported Hexis Lua function: Get elapsed time in seconds - [hexis.timer.formatted](https://docs.usehexis.com/api/timer/formatted): Experimental Hexis Lua function: Get formatted elapsed time - [Timers API](https://docs.usehexis.com/api/timer): Current public Hexis Lua bindings for timers. - [hexis.timer.is_running](https://docs.usehexis.com/api/timer/is-running): Experimental Hexis Lua function: Check if timer is running - [hexis.timer.reset](https://docs.usehexis.com/api/timer/reset): Experimental Hexis Lua function: Reset the timer - [hexis.timer.start](https://docs.usehexis.com/api/timer/start): Supported Hexis Lua function: Start the timer - [hexis.timer.stop](https://docs.usehexis.com/api/timer/stop): Experimental Hexis Lua function: Stop the timer - [hexis.var.exists](https://docs.usehexis.com/api/var/exists): Experimental Hexis Lua function: Check if a runtime variable exists - [hexis.var.get](https://docs.usehexis.com/api/var/get): Supported Hexis Lua function: Get a runtime variable - [Variables API](https://docs.usehexis.com/api/var): Current public Hexis Lua bindings for variables. - [hexis.var.set](https://docs.usehexis.com/api/var/set): Supported Hexis Lua function: Set a runtime variable - [hexis.world.highlight.block](https://docs.usehexis.com/api/world-highlight/block): Advanced Hexis Lua function: Block - [hexis.world.highlight.clear_blocks](https://docs.usehexis.com/api/world-highlight/clear-blocks): Advanced Hexis Lua function: Clear Blocks - [hexis.world.highlight.clear_entities](https://docs.usehexis.com/api/world-highlight/clear-entities): Advanced Hexis Lua function: delegates to existing clear_entity_highlight - [hexis.world.highlight.clear_glow](https://docs.usehexis.com/api/world-highlight/clear-glow): Advanced Hexis Lua function: Clear all glow highlights - [hexis.world.highlight.clear_text](https://docs.usehexis.com/api/world-highlight/clear-text): Advanced Hexis Lua function: Clear Text - [hexis.world.highlight.clear_tree](https://docs.usehexis.com/api/world-highlight/clear-tree): Advanced Hexis Lua function: delegates to existing clear_tree_highlight - [hexis.world.highlight.clear_zones](https://docs.usehexis.com/api/world-highlight/clear-zones): Advanced Hexis Lua function: Clear all zones - [hexis.world.highlight.clear](https://docs.usehexis.com/api/world-highlight/clear): Advanced Hexis Lua function: clear ALL highlight types - [hexis.world.highlight.entity](https://docs.usehexis.com/api/world-highlight/entity): Advanced Hexis Lua function: delegates to existing highlight_entity - [hexis.world.highlight.glow_rainbow](https://docs.usehexis.com/api/world-highlight/glow-rainbow): Advanced Hexis Lua function: Rainbow cycling glow - [hexis.world.highlight.glow](https://docs.usehexis.com/api/world-highlight/glow): Advanced Hexis Lua function: Model-contour glow - [World Highlights API](https://docs.usehexis.com/api/world-highlight): Current public Hexis Lua bindings for world highlights. - [hexis.world.highlight.remove_zone](https://docs.usehexis.com/api/world-highlight/remove-zone): Advanced Hexis Lua function: Remove specific zone - [hexis.world.highlight.set_esp](https://docs.usehexis.com/api/world-highlight/set-esp): Advanced Hexis Lua function: Toggle ESP for animated highlights - [hexis.world.highlight.text](https://docs.usehexis.com/api/world-highlight/text): Advanced Hexis Lua function: Text - [hexis.world.highlight.tree](https://docs.usehexis.com/api/world-highlight/tree): Advanced Hexis Lua function: delegates to existing set_tree_highlight - [hexis.world.highlight.unglow](https://docs.usehexis.com/api/world-highlight/unglow): Advanced Hexis Lua function: Remove glow - [hexis.world.highlight.zone](https://docs.usehexis.com/api/world-highlight/zone): Advanced Hexis Lua function: Zone box rendering - [hexis.world.clear_animated_highlight](https://docs.usehexis.com/api/world/clear-animated-highlight): Experimental Hexis Lua function: Clear the animated highlight - [hexis.world.clear_entity_highlight](https://docs.usehexis.com/api/world/clear-entity-highlight): Experimental Hexis Lua function: Clear all entity highlights - [hexis.world.clear_entity_text](https://docs.usehexis.com/api/world/clear-entity-text): Experimental Hexis Lua function: Clear Entity Text - [hexis.world.clear_glow](https://docs.usehexis.com/api/world/clear-glow): Experimental Hexis Lua function: Clear all glow highlights - [hexis.world.clear_secondary_highlight](https://docs.usehexis.com/api/world/clear-secondary-highlight): Experimental Hexis Lua function: Clear secondary/preview highlight - [hexis.world.clear_text](https://docs.usehexis.com/api/world/clear-text): Supported Hexis Lua function: clear all world text for this script - [hexis.world.clear_tree_highlight](https://docs.usehexis.com/api/world/clear-tree-highlight): Experimental Hexis Lua function: Clear tree highlights - [hexis.world.clear_watches](https://docs.usehexis.com/api/world/clear-watches): Experimental Hexis Lua function: Clear all block watches - [hexis.world.clear_zone_highlights](https://docs.usehexis.com/api/world/clear-zone-highlights): Supported Hexis Lua function: Clear all zone highlights for this script - [hexis.world.find_los_stand_pos](https://docs.usehexis.com/api/world/find-los-stand-pos): Experimental Hexis Lua function: Find a position with LOS to target block target: {x, y, z} options: {max_range=20, search_radius=15} - [hexis.world.find_water](https://docs.usehexis.com/api/world/find-water): Supported Hexis Lua function: Find nearest water block within radius - [hexis.world.get_block_state](https://docs.usehexis.com/api/world/get-block-state): Supported Hexis Lua function: Get block with all state properties - [hexis.world.get_block](https://docs.usehexis.com/api/world/get-block): Supported Hexis Lua function: Get block info at position - [hexis.world.get_connected_blocks](https://docs.usehexis.com/api/world/get-connected-blocks): Supported Hexis Lua function: Flood-fill to find connected blocks Returns array of {x, y, z} positions for all connected blocks of matching type Options: {match_patterns = {"log", "wood"}, max_blocks = 200, include_diagonals = true} - [hexis.world.get_crosshair_target](https://docs.usehexis.com/api/world/get-crosshair-target): Experimental Hexis Lua function: moved from actions - [hexis.world.get_nearby_entities](https://docs.usehexis.com/api/world/get-nearby-entities): Supported Hexis Lua function: Get non-player entities within radius options: {type = "tadpole", exclude_types = {"armor_stand", "item"}} - [hexis.world.get_nearby_players](https://docs.usehexis.com/api/world/get-nearby-players): Supported Hexis Lua function: Get players within radius - [hexis.world.glow_entity](https://docs.usehexis.com/api/world/glow-entity): Supported Hexis Lua function: Add model-contour glow + tint to entity options: {outline={r,g,b}, tint={r,g,b,a}} or just {r,g,b} for both - [hexis.world.glow_rainbow](https://docs.usehexis.com/api/world/glow-rainbow): Experimental Hexis Lua function: Set rainbow cycling glow on entity - [hexis.world.has_exposed_face](https://docs.usehexis.com/api/world/has-exposed-face): Experimental Hexis Lua function: Check if a block has at least one non-solid neighbor - [hexis.world.highlight_block_animated](https://docs.usehexis.com/api/world/highlight-block-animated): Experimental Hexis Lua function: Animated highlight with smooth lerp pos: {x, y, z} color: {r, g, b, a} (optional, defaults to cyan) speed: number (optional, default 15.0) - [hexis.world.highlight_entity](https://docs.usehexis.com/api/world/highlight-entity): Experimental Hexis Lua function: Highlight an entity by ID color: {r, g, b, a} (optional, defaults to cyan) - [hexis.world.highlight_secondary_target](https://docs.usehexis.com/api/world/highlight-secondary-target): Experimental Hexis Lua function: Secondary/preview highlight Used for "next target" indication - more transparent, slower animation - [hexis.world.highlight_zone](https://docs.usehexis.com/api/world/highlight-zone): Supported Hexis Lua function: Render a box between two corners min/max: {x, y, z} corners options: {fill={r,g,b,a}, border={r,g,b,a}, thickness=0.04} - [World API](https://docs.usehexis.com/api/world): Current public Hexis Lua bindings for world. - [hexis.world.is_block_air](https://docs.usehexis.com/api/world/is-block-air): Supported Hexis Lua function: Quick check if block is air - [hexis.world.is_highlight_active](https://docs.usehexis.com/api/world/is-highlight-active): Experimental Hexis Lua function: Check if animated highlight is active - [hexis.world.is_in_water](https://docs.usehexis.com/api/world/is-in-water): Supported Hexis Lua function: Check if player is currently in water - [hexis.world.is_water_at](https://docs.usehexis.com/api/world/is-water-at): Experimental Hexis Lua function: Check if block at position is water - [hexis.world.on_block_pattern](https://docs.usehexis.com/api/world/on-block-pattern): Supported Hexis Lua function: Listen for any block change matching pattern globally - [hexis.world.players_in_zone](https://docs.usehexis.com/api/world/players-in-zone): Supported Hexis Lua function: Count players in a zone AABB zone: table with {min={x,y,z}, max={x,y,z}} or {id, min, max} options: {filter_tablist=false, exclude_self=true} - [hexis.world.remove_block_pattern](https://docs.usehexis.com/api/world/remove-block-pattern): Supported Hexis Lua function: Remove a pattern listener by ID - [hexis.world.remove_entity_text](https://docs.usehexis.com/api/world/remove-entity-text): Supported Hexis Lua function: Remove Entity Text - [hexis.world.remove_text](https://docs.usehexis.com/api/world/remove-text): Experimental Hexis Lua function: remove specific world text by ID - [hexis.world.remove_zone_highlight](https://docs.usehexis.com/api/world/remove-zone-highlight): Supported Hexis Lua function: Remove a specific zone by ID - [hexis.world.scan_blocks](https://docs.usehexis.com/api/world/scan-blocks): Supported Hexis Lua function: Scan blocks in a radius and return matches options: {radius, match_patterns, center={x,y,z}, max_results, sort} - [hexis.world.select_hotbar_slot](https://docs.usehexis.com/api/world/select-hotbar-slot): Experimental Hexis Lua function: Select a specific hotbar slot (0-8) - [hexis.world.set_highlight_esp](https://docs.usehexis.com/api/world/set-highlight-esp): Experimental Hexis Lua function: Toggle ESP for animated highlights enabled: boolean (true = visible through walls, false = normal depth testing) - [hexis.world.set_rainbow_target](https://docs.usehexis.com/api/world/set-rainbow-target): Experimental Hexis Lua function: Set rainbow target for current combat target - [hexis.world.set_tree_highlight](https://docs.usehexis.com/api/world/set-tree-highlight): Experimental Hexis Lua function: Highlight all blocks in a tree blocks: array of {x, y, z} color: {r, g, b, a} (optional, defaults to green) - [hexis.world.text_at_entity](https://docs.usehexis.com/api/world/text-at-entity): Supported Hexis Lua function: NanoVG text that follows an entity - [hexis.world.text_at](https://docs.usehexis.com/api/world/text-at): Supported Hexis Lua function: NanoVG text at world position - [hexis.world.unglow_entity](https://docs.usehexis.com/api/world/unglow-entity): Supported Hexis Lua function: Remove glow from entity - [hexis.world.unwatch_block](https://docs.usehexis.com/api/world/unwatch-block): Experimental Hexis Lua function: Stop watching a block position - [hexis.world.watch_block](https://docs.usehexis.com/api/world/watch-block): Experimental Hexis Lua function: Watch a block position for state changes ## Concepts - [API Status and Evidence](https://docs.usehexis.com/concepts/api-status): Understand Supported, Advanced, Experimental, and internal Hexis Lua members. - [Script Lifecycle](https://docs.usehexis.com/concepts/script-lifecycle): Understand metadata parsing, configuration, execution, waiting, events, and stopping. ## Getting Started - [Installation](https://docs.usehexis.com/getting-started/installation): Install Hexis and place user-authored Lua scripts in the correct directory. ## Guides - [Authoring with AI](https://docs.usehexis.com/guides/ai-assisted-authoring): Give an AI model the current Hexis contract and prevent invented Lua APIs. - [Script Authoring Workflow](https://docs.usehexis.com/guides/authoring-workflow): Turn a game goal into a reviewable Hexis Lua script without inventing API calls. - [Events and Cleanup](https://docs.usehexis.com/guides/events-recipe): Register an event listener, keep its identifier, and remove it safely. - [Your First Script](https://docs.usehexis.com/guides/first-script): Create a runnable Hexis Lua script with metadata, configuration, logging, and a safe loop. - [Inspecting a GUI Safely](https://docs.usehexis.com/guides/gui-recipe): Stop conflicting activity, wait for a screen, inspect slots, and close it. - [Navigation with a Timeout](https://docs.usehexis.com/guides/navigation-recipe): Start navigation, monitor it, and stop safely when a deadline expires. - [Script Safety](https://docs.usehexis.com/guides/script-safety): Review permissions, provenance, cancellation, and data handling before running Lua. ## Start - [Hexis Lua Documentation](https://docs.usehexis.com/): Public documentation for people and AI models that author Hexis Lua scripts.