Skip to content

Game classes

Every class the game loads (3143 in 12 packages), with its properties, functions, structs, enums, constants, states and default values. Everything listed here can be reached from Lua: read and write properties, call functions and hook them (see the modding guide and the API reference).

Package Classes
MMH7Game 1431 Heroes VII gameplay: heroes, creatures, towns, combat, abilities, the adventure map, GUI controllers
MMH7Engine 32 Heroes VII additions to the engine: map data holders, terrain and editor support
Core 46 Unreal base classes: Object, structs and math used everywhere
Engine 1392 Unreal Engine 3 (as modified for Heroes VII): actors, components, controllers, rendering, sound
GameFramework 105 Unreal game framework classes
GFxUI 17 Scaleform (Flash) UI: GFxMoviePlayer, GFxObject
IpDrv 82 Networking and online services
OnlineSubsystemUPlay 11 Ubisoft Connect (Uplay) online subsystem
WinDrv 7 Windows platform layer
AkAudio 18 Wwise audio (native only)
XAudio2 1 XAudio2 audio device (native only)
UnrealEd 1 Editor classes the game loads

Reading these pages

  • Names are the game's real object names, as h7.find, h7.hook and dumps\objects.txt use them. A function's hook path is Package.Class.Function.
  • Declarations come from the game's decompiled UnrealScript and are checked against the objects that exist in the running game (v2.2.1): members the game doesn't have are left out, and members it has without a declaration are marked no declaration, with the engine's property kind as type.
  • private / protected don't restrict Lua: mods can read and write every property and call every function.
  • native functions are implemented in C++: hooks on them get no arguments and can't block (see h7.hook).
  • Optional parameters' default values are not applied when you call a function from Lua; pass them explicitly.
  • Function bodies are not included. To see what a function does, read the decompiled sources or hook it and log its arguments.