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., forselectItem
andinvokeInventoryAction
),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
, andTradeMyOfferedItems
are likely used in network packets (e.g., viaItemManager.emitInventoryItemActionPacket
) to specify the context of item actions.
Usage Context¶
- Inventory Management: Used in
ItemManager
to differentiate actions inInventory
,Bank
, orLoadout
menus. - Trading: Types like
TradeInventory
,TradeMyOfferedItems
, andTradeOtherPlayerOfferedItems
support player-to-player trading mechanics. - Skill Interfaces: Types like
Smelting
,Smithing
, andPotionMaking
tie into skill-based activities. - UI Navigation: Types like
Settings
,CameraSettings
, andChatSettings
facilitate game configuration.
Ethical and Legal Notes¶
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.