Home › Lua API › CityManager

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

CityManager

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

Community reference for this object: CityManager (Sukrit Tan, external).

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
CanStartCommand CityManager.CanStartCommand(arg1?: any, arg2: string/number[TypeHash], arg3: boolean) → boolean ⚠
args: arg2 — A constant from the Lua table CityCommandTypes.
ui-cache yes ↗ 0x690a20 0x691000
CanStartOperation CityManager.CanStartOperation(arg1?: any, arg2?: number, arg3: table, arg4?: any) → boolean ⚠
args: arg2 — A constant from the Lua table CityOperationTypes.; arg4 — A boolean flag (true/false).
ui-cache yes ↗ 0x690c50 0x691230
DestroyCity CityManager:DestroyCity(toStayCity?: number) (or nothing) ⚠ gameplay yes ↗ 0x6cc240 0x6cc900
DestroyDistrict CityManager:DestroyDistrict(toStayCity?: number) (or nothing) ⚠
args: toStayCity — A District object (the scripts pass a variable named pDistrict). (inferred)
gameplay yes ↗ 0x6cc350 0x6cca10
GetCity CityManager.GetCity(arg1?: number, arg2?: number) → City (or nothing) ⚠ ui-cache, gameplay yes ↗ 0x690f40 0x691520
GetCityAt CityManager.GetCityAt(x: integer/Plot, y?: integer) → City (or nothing)
args: x — Plot x coordinate (plot:GetX()).; y — Plot y coordinate (plot:GetY()).
ui-cache, gameplay yes ↗ 0x691040 0x691620
GetCommandTargets CityManager.GetCommandTargets(arg1?: any, arg2: string/number[TypeHash], arg3: table) → 1 values (or nothing) ⚠
args: arg1 — A City object (the scripts pass a variable named pCity).; arg2 — A constant from the Lua table CityCommandTypes.
ui-cache yes ↗ 0x6910b0 0x691690
GetDistrict CityManager.GetDistrict(arg1?: number, arg2?: number) → District (or nothing) ⚠ gameplay yes ↗ 0x6cc5d0 0x6ccc90
GetDistrictAt CityManager.GetDistrictAt(x: integer/Plot, y?: integer) → District (or nothing)
args: y — A plot coordinate (named x / y / plotX / plotY in the scripts). (inferred)
ui-cache, gameplay yes ↗ 0x6911f0 0x6917d0
GetFreeCityAt CityManager.GetFreeCityAt(x: integer/Plot, y?: integer) → FreeCities (or nothing) gameplay yes ↗ 0x713a90 0x714300
GetOperationTargets CityManager.GetOperationTargets(arg1?: any, arg2?: number, arg3: table) → 1 values (or nothing) ⚠
args: arg1 — A City object (the scripts pass a variable named pCity).; arg2 — A constant from the Lua table CityOperationTypes.
ui-cache yes ↗ 0x691260 0x691840
IsCity CityManager.IsCity() → boolean ui-cache yes ↗ 0x691430 —
IsDistrict CityManager.IsDistrict() → boolean ui-cache yes ↗ 0x691490 —
RequestCommand CityManager.RequestCommand(kCityOrDistrict?: any, arg2: string/number[TypeHash], arg3: table) (or nothing) ⚠
args: arg2 — A constant from the Lua table CityCommandTypes.
ui-cache yes ↗ 0x6914f0 0x691ad0
RequestOperation CityManager.RequestOperation(arg1?: any, arg2?: number, arg3: table) (or nothing) ⚠
args: arg2 — A constant from the Lua table CityOperationTypes.
ui-cache yes ↗ 0x6915a0 0x691b80
SetAsCapital CityManager:SetAsCapital() (or nothing)
touches (inferred from the code): writes City::Instance::m_bCapital; reads City::Instance::m_bCapital, City::Instance::m_eOwner, City::Instance::m_id
gameplay yes ↗ 0x6cc740 0x6cce00
SetAsOriginalCapital CityManager:SetAsOriginalCapital() (or nothing)
touches (inferred from the code): writes City::Instance::m_bOriginalCapital; reads City::Instance::m_eOwner, City::Instance::m_id
gameplay yes ↗ 0x6cc770 0x6cce30
TransferCity CityManager:TransferCity(arg1?: number, arg2?: any[HksObject]) (or nothing) gameplay yes ↗ 0x6cc7a0 0x6cce60
TransferCityToFreeCities CityManager:TransferCityToFreeCities() (or nothing) gameplay yes ↗ 0x6cc870 0x6ccf30