Skip to content

MenuTypesEnumOriginal Documentation

Overview

The MenuTypesEnumOriginal enum defines a set of menu types used in the HighSpell game to categorize different UI interfaces and contexts for player interactions. It is referenced by classes like ItemManager and MainPlayer to specify the context of actions, such as inventory management, trading, or settings. Each menu type is assigned a unique numeric value and a corresponding string identifier, facilitating both client-side logic and server communication.

Usefulness for Botting

The MenuTypesEnumOriginal enum is critical for identifying the context of item-related actions, such as accessing the Inventory, Bank, or Loadout menus. For botting, it allows precise targeting of specific UI contexts (e.g., Inventory for item usage, TradeMyOfferedItems for trading) when interacting with methods like ItemManager.invokeInventoryAction. Understanding these menu types enables automation of tasks like inventory management, banking, or trading.

Enum Definition

The MenuTypesEnumOriginal enum (aliased as MenuTypesEnum) is defined as a JavaScript IIFE (Immediately Invoked Function Expression) that populates an object with menu type constants. Each entry maps a numeric value to a string key, and vice versa, enabling bidirectional lookup.

Enum Values

The enum defines the following menu types, listed with their numeric values and string identifiers:

  • Inventory = 0: The player’s main inventory interface for managing carried items.
  • Bank = 1: The bank interface for storing and withdrawing items.
  • Shop = 2: The shop interface for buying and selling items with NPCs.
  • TradeInventory = 3: The inventory interface during a trade with another player.
  • TradeMyOfferedItems = 4: The interface for items offered by the player in a trade.
  • TradeOtherPlayerOfferedItems = 5: The interface for items offered by another player in a trade.
  • Loadout = 6: The equipment interface for managing worn items (e.g., weapons, armor).
  • ChangeAppearance = 7: The interface for customizing the player’s appearance.
  • Smelting = 8: The interface for smelting ores into bars.
  • Smithing = 9: The interface for smithing items at an anvil.
  • Magic = 10: The interface for casting spells.
  • QuestDetail = 11: The interface for viewing detailed quest information.
  • PotionMaking = 12: The interface for brewing potions.
  • Welcome = 13: The welcome screen or initial game interface.
  • SmeltingKiln = 14: The interface for smelting at a kiln (variant of smelting).
  • CameraSettings = 15: The interface for adjusting camera settings.
  • SkillGuide = 16: The interface for viewing skill information and progression.
  • Loot = 17: The interface for looting items from defeated enemies or containers.
  • FriendList = 18: The interface for managing the player’s friends list.
  • Stats = 19: The interface for viewing player statistics and skills.
  • Quests = 20: The interface for managing active and completed quests.
  • Settings = 21: The general settings interface for game configuration.
  • TextInput = 22: The interface for text input prompts (e.g., entering quantities).
  • Confirmation = 23: The interface for confirmation dialogs (e.g., for destructive actions).
  • Chat = 24: The main chat interface for public communication.
  • PrivateChat = 25: The interface for private messaging with other players.
  • TradeMenu = 26: The main trade interface for player-to-player trading.
  • TreasureMap = 27: The interface for viewing or interacting with treasure maps.
  • GraphicsSettings = 28: The interface for adjusting graphical settings.
  • ChatSettings = 29: The interface for configuring chat options.
  • CraftingTable = 30: The interface for crafting items at a workbench.
  • Moderation = 31: The interface for moderation tools (e.g., for Pmods).

Technical Observations

  • Bidirectional Mapping: Each menu type is assigned both a numeric value (e.g., 0) and a string key (e.g., "Inventory"), allowing lookup by either number or name.
  • Dependencies: Used by classes like ItemManager (e.g., for selectItem and invokeInventoryAction), MainPlayer (e.g., for _inventory and _bankItems), and UI controllers.
  • UI Context: The enum covers a wide range of UI contexts, from inventory management (Inventory, Bank) to skill-based interactions (Smelting, PotionMaking) and social features (Chat, TradeMenu).
  • Network Implications: Menu types like Inventory, Bank, and TradeMyOfferedItems are likely used in network packets (e.g., via ItemManager.emitInventoryItemActionPacket) to specify the context of item actions.

Usage Context

  • Inventory Management: Used in ItemManager to differentiate actions in Inventory, Bank, or Loadout menus.
  • Trading: Types like TradeInventory, TradeMyOfferedItems, and TradeOtherPlayerOfferedItems support player-to-player trading mechanics.
  • Skill Interfaces: Types like Smelting, Smithing, and PotionMaking tie into skill-based activities.
  • UI Navigation: Types like Settings, CameraSettings, and ChatSettings facilitate game configuration.

Per the HighSpell Botting Resources ethos: - This documentation is for educational purposes, analyzing observable game client behavior. - Using this information to create bots violates HighSpell’s terms of service, risking account bans.