Home › Lua API › ImprovementBuilder

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

ImprovementBuilder

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

Community reference for this object: ImprovementBuilder (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
CanHaveImprovement ImprovementBuilder:CanHaveImprovement(eImprovement: integer[ImprovementTypes], ePlayer: integer[PlayerTypes]) → boolean
args: eImprovement — Index of a row of the Improvements table (the value of GameInfo.Improvements[...].Index).; ePlayer — Id of a player (as in Players[id]).
gameplay yes ↗ 0x19dc0 0x1a2a0
SetImprovementPillaged ImprovementBuilder:SetImprovementPillaged(arg1?: boolean) (or nothing)
args: arg1 — Plot index (named plotIndex / plotID in the scripts). (inferred)
gameplay yes ↗ 0x19e60 0x1a340
SetImprovementType ImprovementBuilder:SetImprovementType(iY: integer[ImprovementTypes], eNewValue: integer[PlayerTypes]) (or nothing)
args: iY — Index of a row of the Improvements table (the value of GameInfo.Improvements[...].Index).; eNewValue — Id of a player (as in Players[id]).
gameplay yes ↗ 0x19ee0 0x1a3c0