Home › Reflected data types

Engine executable. Settings and tools of the game program (CivilizationVI.exe), usable without a mod. Mostly undocumented debug and configuration functionality; descriptions come from analysis of the executable and have not all been tried in the running game.

Reflected data types

The exe describes many of its own data structures to a reflection system (GetTypeInfo and GetEnumInfo functions): every field gets a name, a type and a byte offset, every enum member a name and a value. They are the layouts of the serialized formats the game loads: the artdef object model, the blueprint (.blp) packages (775 .blp files ship with the game), leader, landmark and terrain packages, model and effect data. This section lists 264 struct layouts (1104 fields) and 14 enums. Verified: field names, offsets and enum values are constants in the code; Inferred: what a structure is used for (from its name). Field types are the type functions the code calls; where the function had no name in the function map its own type-name string is used, and 51 fields remain "(not resolved)".

Cross-check. The artdef XML files name their elements after these fields: 29 of the 32 distinct m_... element names in the shipped .artdef files (base game and DLC) are field names of the reflected types (not matched: m_b, m_g, m_r).

These are in-memory layouts of the 64-bit Windows exe (offsets include pointers of 8 bytes and the alignment the compiler chose); they are not the on-disk byte layouts of the files, which can differ.

Namespaces

Namespace Types Fields Enums Meaning (inferred) Page
AssetObjects 111 400 3 asset and artdef object model (artdef sets, collections, elements, values, instances) assetobjects
LeaderHeadPackageEntry 5 58 0 leader head package: wig (hair) passes, textures, bones leaderheadpackageentry
BLP 16 54 2 blueprint package format (the .blp files under Platforms/Windows/BLPs) blp
LeaderPackageEntryV2 3 38 0 leader package, version 2 leaderpackageentryv2
FOWMeshVisSystem 4 35 0 fog-of-war mesh packages fowmeshvissystem
FGXModelFramework 5 33 1 model framework: timelines, triggers, behaviours, mesh bindings fgxmodelframework
ModelMaterialData_VFX 1 29 0 material data for effects models modelmaterialdata_vfx
DecalDesc2 1 23 0 decal descriptions, version 2 decaldesc2
FireFX 7 23 0 particle effect (FireFX) data firefx
DecalDesc 1 22 0 decal descriptions decaldesc
TimelineSet 8 19 0 model timelines timelineset
FireVM 5 18 0 effect virtual machine data firevm
FGXModel 5 17 0 model data fgxmodel
TerrainEditDesc3 1 17 0 terrain edit descriptions, version 3 terraineditdesc3
TextureExport 1 17 3 texture export settings textureexport
ForgeUI 4 16 0 UI types forgeui
TerrainEditDesc2 1 16 0 terrain edit descriptions, version 2 terraineditdesc2
TerrainEditDesc 1 16 0 terrain edit descriptions terraineditdesc
TypeInfoStripe 4 14 0 other
ModelWaterMaterialData 1 14 0 other
ModelMaterialData 1 13 0 model materials other
ModelBurnMaterialData 1 10 0 other
LandmarkPackageEntry 9 9 0 landmark (building and district model) packages other
Granny 3 8 0 Granny animation file wrapper other
TerrainElementPackageEntry 1 8 0 other
TerrainMaterialPackageEntry 1 8 0 other
RouteDecalMaterialPackageEntry 1 8 0 other
UILensModelData 1 8 1 lens model data (see the lenses page) other
CoastlineWaves 1 7 0 coastline wave settings other
Leader_LightRig_PackageEntry 2 7 0 other
Types 1 7 0 other
ModelPrimGroupData 1 6 0 other
LeaderComputeData 1 6 0 other
WaterPackageEntry 2 5 0 other
AssetSnowMaterialData 1 5 0 other
ModelPackageEntry 3 5 0 other
ModelSnowMaterialData 1 5 0 other
FireFXSpotLight 1 5 0 other
WonderMoviePackageEntry 3 5 0 other
WaterMaterialConst 1 4 0 other
UILensModelMaterial 1 4 0 other
GameEnvironmentPackageEntry 1 4 0 other
FireFXMaterial 1 4 0 other
FireFXPackageEntry 1 4 0 other
ObstructionProfileGeometry 1 4 0 other
FGXMatrixRow 1 4 0 other
LeanMapData 1 3 0 other
RiverWaterPackageEntry 1 3 0 other
WaterMaterialData 1 3 0 other
AssetBurnMaterialData 1 3 0 other
FireFXPointLight 1 3 0 other
FireFXTextureSlot 1 3 0 other
BaseWaterMaterialConst 1 2 0 other
AssetMaterialData 1 2 0 other
AssetTextureOverride 1 2 0 other
UILensMaterialData 1 2 0 other
StrategicView_DirectedAssetPackageEntry 1 2 0 other
StrategicView_RoutePackageEntry 1 2 0 other
StrategicView_TerrainBlendPackageEntry 1 2 1 other
FireFXAnalyticLight 1 2 0 other
LightPackageEntry 1 2 0 other
ByteCodeBlob 1 2 0 other
FGXInt2 1 2 0 other
FGXRect 1 2 0 other
FGXVector2 1 2 0 other
RiverWaterMaterialConst 1 1 0 other
AttachmentPointList 1 1 0 other
BezierSplineTrack 1 1 0 other
ModelMiscParams_EntryV1 1 1 0 other
ModelPackage 1 1 0 other
ModelPrimGroupDetailLevelData 1 1 0 other
ModelSplineSet 1 1 0 other
SplineCookParams 1 1 0 other
CityBlockPackageEntry 1 1 0 other
StrategicView_TerrainBlendCornersPackageEntry 1 1 0 other
VFXPackage 1 1 0 other
FireFXAnalyticLightSet 1 1 0 other
FireFXMaterialSet 1 1 0 other
FireFXPackage 1 1 0 other
CameraAnimationPackageEntry 1 1 0 other
UILensModelPackageEntry 1 1 0 other
LeaderMotionBlurSettings 1 1 0 other
String 1 1 1 other
DDT 0 0 2 other