Home › Engine events
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 events
The engine executable runs its own event buses. They are separate from the Lua events scripts subscribe to: they connect the exe's own systems (map renderer, audio, UI, telemetry, network) to each other and to GameCore. This section lists every event on every bus, which GameCore event it carries, and which exe systems handle it.
How a GameCore event reaches the exe (verified in the exe, Windows addresses inferred)
- GameCore reports an event (
Reporting::Event::Send). The exe receives it in GameCore::EngineUtility::SendEvent.
- A translator looks the event up by its hash (
Events::Translate::Register holds 309 hash-to-translator entries) and converts it into a numbered GameCore bus event (GameCoreEvent_Template<N, ...>).
- The bus delivers it to every registered handler: renderer, strategic view, minimap, audio, telemetry, UI manager, network manager, and the Lua layer. A GameCore event without a translator never reaches this bus.
The GameCore bus id N is not the hash and not the order of the engine event ids; it was read from the translator code (the translator calls the constructor of GameCoreEvent_Template<N,...>). The Lua event, where one exists, is listed with its parameters in the GameCore reference.
Buses
| Bus |
Events |
Handler registrations |
What it carries |
| GameCore |
321 |
322 |
Events from GameCore (the game rules library), translated by the exe and delivered to the UI, renderer, audio and telemetry systems. |
| LocalMachine |
57 |
77 |
App-local UI events: resolution changed, show leader screen, toggle grid, exit to menu, and similar. Not part of the game state. |
| Serial |
55 |
91 |
Ordered UI and state events published in sequence: loads, saves, selection changes, option changes, network state. |
| UIEvent |
13 |
33 |
Input and debug console events (UIE_DebugConsoleInput is id 15) and UI system updates. |
| Sequencer |
8 |
20 |
Start-up and shutdown sequencing of the application states (init complete, main menu done, game view done). |
| MovieEvent |
2 |
5 |
Movie playback events (clip finished, clip frame). |
Numbers. The GameCore bus has 321 events: 317 have a translator (the exe can receive them), 153 have at least one static handler in the exe, and 264 map to a Lua event of the Modding Companion list. Events with a translator but no static handler are consumed only by the Lua layer or dynamically; the exe code alone does not show who reads them.
See also exe systems and the events they handle and the event data fields the handlers read.