Home › Engine executable functions
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.
Engine executable functions
A searchable index of the engine executable CivilizationVI.exe (DX11, July 2024 build). The Windows build has no symbols and no class information, so function names come from the Linux build of the same engine, which exports about 199,000 names; a Windows address is listed where the same function could be found there. 1565 functions exist only on Windows (no Linux symbol): the exports named by the PE export table (ForgeUI, Havok), and Lua wrappers and control thunks named by the registration code, WorldView event handlers, the engine utility vtable and the debug console handlers; their Linux address is blank.
- Search all 50641 functions: by name, Lua method, note, or by address (a Windows RVA such as
0x547000, or a Linux address).
- Category pages below list the functions that have a Windows address.
What the addresses mean
Windows addresses are RVAs (add the image base 0x140000000 for the address Ghidra shows). Linux addresses are virtual addresses in the Linux Civ6 executable. The DX12 executable has different RVAs and is not covered. Of the 52,101 functions the Windows executable contains, 7566 are named here; the rest have no Linux counterpart or could not be matched. The compiler merges identical functions on Windows, so several Linux names can share one Windows address.
Confidence
| Confidence |
Functions |
How the Windows address was found |
How reliable |
| high |
2559 |
name join with the Windows export table, a string anchor with two or more strings, hand-checked disassembly, name-matched Lua registration wrappers |
every check passed: 26 of 26 string anchors against the export ground truth, 5 of 5 Lua wrappers |
| medium |
3183 |
a single string or rare-constant anchor, call-graph propagation of non-trivial functions, neighbour scoring at a strict threshold |
about 94-97% on hold-out tests, 12 of 12 Lua wrappers |
| low |
1319 |
tiny propagated functions, a lenient neighbour threshold, order alignment |
unreliable: 1 of 19 checked Lua wrappers was right. Verify in the disassembly before using. |
| export |
505 |
the Windows export table names it (ForgeUI and Havok); no Linux counterpart |
exact |
| unmapped |
43075 |
no Windows address |
name only |
The measured accuracy per method is in the analysis notes (findings/topics/exe-analysis-tooling.md). Names come from the Linux build and can differ in spelling from the Windows build (template arguments, calling conventions).
Categories
| Category |
What it is |
Functions |
With a Windows address |
| other |
Everything not matched to a subsystem by its name: template instances, standard-library code, small helpers. |
29038 |
2771 |
| ForgeUI |
The UI toolkit: controls, input, tooltips, animation, and the Lua exposure of the controls. |
4942 |
1699 |
| GameCore bridge |
Code that talks to GameCore: the cache of game state, event translators and handlers, the engine utility interface. |
2794 |
880 |
| WorldView |
The 3D map renderer: terrain, landmarks, units, clutter, water, cameras. |
2409 |
337 |
| Lua |
Lua libraries and bindings hosted by the exe (see the Lua tables). |
1647 |
604 |
| Lua (Havok) |
Havok Script (the Lua virtual machine) functions the exe exports. |
1501 |
61 |
| FiraxisLive |
Firaxis Live / My2K online services client. |
1492 |
93 |
| VFX |
The visual effects system. |
1292 |
155 |
| base library |
Engine base classes: memory, strings, containers, utilities. |
834 |
75 |
| Network |
Multiplayer: sessions, lobbies, matchmaking, cloud turns. |
585 |
191 |
| Graphics |
The rendering back end: device, shaders, command streams. |
558 |
124 |
| Modding |
The mod framework: loading, ownership checks, content handling. |
557 |
166 |
| StrategicView |
The 2D strategic map. |
498 |
34 |
| Platform |
Operating system and platform layer. |
435 |
67 |
| Synthesis |
Terrain synthesis: ridgelines, rivers, coast splines. |
414 |
40 |
| Audio |
Audio integration and the systems that drive it. |
395 |
29 |
| FOW |
Fog of war. |
297 |
35 |
| Database |
Access to the game database. |
279 |
27 |
| Terrain |
Terrain context, cells and baking. |
185 |
15 |
| App |
The application: start-up, game states, the main loop. |
183 |
52 |
| library |
Third-party libraries. |
117 |
75 |
| GameState |
Game state objects of the application layer. |
106 |
26 |
| Events |
The event system itself (see engine events). |
64 |
5 |
| Minimap |
The minimap. |
19 |
5 |
Categories were assigned from the function names and namespaces and are approximate; descriptions are inferred from them.