Home › Lua API › GameHeroesManager

Available out of the box. Usable from Lua in the unmodified game.

GameHeroesManager

9 methods. Symbol/current columns are function addresses (RVA) of the native wrapper.

Signatures are recovered from the game code. ⚠ = partly understood (arguments may be missing or approximate). ? after a name = optional argument. Types: integer/number are Lua numbers, enum-typed arguments show the C++ type in brackets. Two signatures mean the method is registered separately for the UI and the gameplay state and each wrapper was decoded on its own. "same code as" in the Symbol column means the compiler merged identical functions: those methods share one wrapper and cannot be told apart by address.

Method Signature Where Reference Symbol Current
CreateHero GameHeroesManager.CreateHero(arg1?: any, eRecipient: number/string[PlayerTypes], eHeroClass: number/string[HeroClassTypes], eUnitType?: number, arg5?: number) (or nothing) ⚠
args: eRecipient — Id of a player (as in Players[id]).; eHeroClass — Value of the HeroClassTypes enum (a type index).
touches (inferred from the code): reads Game::HeroesManager::m_abHeroClaimPlayers
gameplay — 0x6dfdc0 0x6e04f0
GetHeroClaimPlayer GameHeroesManager:GetHeroClaimPlayer(eHeroClassType: integer[HeroClassTypes]) → number (PlayerTypes)
args: eHeroClassType — Value of the HeroClassTypes enum (a type index).
touches (inferred from the code): reads Cache::Game::HeroesManager::m_kValues+0x30, Cache::Game::HeroesManager::m_kValues+0x28
returns: Id of a player (as in Players[id]).
ui-cache — 0x69e610 0x69ebe0
GetHeroClassBaseCharges GameHeroesManager:GetHeroClassBaseCharges(eHeroClassType?: number) → number ui-cache — 0x69e680 0x69ec50
GetHeroOriginCityID GameHeroesManager:GetHeroOriginCityID(arg1?: number) → 1 values ⚠
touches (inferred from the code): reads Cache::Game::HeroesManager::m_kValues+0x30, Cache::Game::HeroesManager::m_kValues+0x28
ui-cache — 0x69e6f0 0x69ecc0
GetPlayerHeroOriginBuildingType GameHeroesManager:GetPlayerHeroOriginBuildingType(ePlayer?: number) → number
args: ePlayer — Id of a player (the scripts name the argument playerID / owner). (inferred)
touches (inferred from the code): reads Cache::Game::HeroesManager::m_kValues+0x10, Cache::Game::HeroesManager::m_kValues+0x8
returns: Key of a row of the Buildings table: the scripts look it up with GameInfo.Buildings[result].
ui-cache — 0x69e7a0 0x69ed70
GetUnitHeroClass GameHeroesManager:GetUnitHeroClass(arg1: integer[UnitTypes]) → number
args: arg1 — Index of a row of the Units table (the value of GameInfo.Units[...].Index).
returns: Key of a row of the HeroClasses table: the scripts look it up with GameInfo.HeroClasses[result].
ui-cache — 0x69e820 0x69edf0
IsHeroDiscovered UI state: GameHeroesManager:IsHeroDiscovered(arg1: integer[PlayerTypes], arg2: integer[HeroClassTypes]) → boolean
gameplay state: GameHeroesManager.IsHeroDiscovered(arg1?: any, arg2: number/string, eHeroClass: number/string[HeroClassTypes]) → boolean ⚠
args: arg1 — Id of a player (as in Players[id]).; arg2 — Value of the HeroClassTypes enum (a type index).
touches (inferred from the code): reads Cache::Game::HeroesManager::m_kValues+0x10, Cache::Game::HeroesManager::m_kValues+0x8
ui-cache, gameplay — 0x69e890 0x69ee60
PlayerDiscoverNextHero GameHeroesManager.PlayerDiscoverNextHero(arg1?: any, ePlayer: number/string[PlayerTypes]) (or nothing) ⚠
args: ePlayer — Id of a player (as in Players[id]).
touches (inferred from the code): reads Game::IInstance::m_kComponents
gameplay — 0x6dff50 0x6e0680
SetHeroDiscovered GameHeroesManager.SetHeroDiscovered(arg1?: any, arg2: number/string, eHeroClass: number/string[HeroClassTypes]) (or nothing) ⚠
args: eHeroClass — Value of the HeroClassTypes enum (a type index).
touches (inferred from the code): reads Player::Heroes::m_aeHeroDiscoveryOrder, Player::Instance::m_id, Player::Heroes::m_abHeroesDiscovered
gameplay — 0x6e0010 0x6e0740