Home › Engine executable › Files and paths

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.

Files, folders and paths in the engine executable

Every file name, folder and path that the code of CivilizationVI.exe refers to as a literal string, with the function that uses it. This tells you what the engine reads and writes: which log files it creates, which option and data files it loads, where it looks for mods and maps, and which database files it opens. It does not show names the engine builds at run time (for example %s.log), and files that GameCore (the rules library) writes are not here, such as the AI_*.csv and Game_*.csv logs.

Paths starting with ../../../ are relative to the game's binary folder; Base/ is the base game folder and DLC/ holds the expansions. All entries are verified string literals; what each file is for is inferred from the name and the function that uses it.

Log files the exe writes

45 log names appear in the exe; 23 of them are also present in a normal Logs folder of an installed game (the rest are written only in special modes, or in builds and settings that enable them, for example when a logging option in the option files is on). The Logs folder is AppData/Local/Firaxis Games/Sid Meier's Civilization VI/Logs.

Log file Written by In a normal Logs folder
/Graphics_Resources.log Civ6App::OnDebugConsoleInput —
Achievements.log GameCore::Achievements::Achievements yes
Achievements_Steam.log SteamAchievements::IncrementStatandUnlockAchievement —
ArtDef.log 0x1cdd00; 0x1ce390 (+25 more) yes
AssetCloudTuner.log AssetCloud::HotLoader::~HotLoader; AssetCloud::HotLoader::OnArtDef (+3 more) —
AutoArchive.csv FAutoArchive::editVariable; FAutoArchive::findMismatchedVariables (+1 more) —
Automation.log App::Automation::Manager::GetLogFile; App::Automation::Manager::ShutdownLogging (+1 more) —
BlockerLog.log WorldView::BlockerDatabase::ShutdownGame yes
Clutter.log WorldView::ClutterLayerManager::LogStats —
ConsoleInterfaceDebug.log 0x4b530 —
CultureBordersLog.txt OverlaySystem::BuildCultureBordersAsyncJob::Execute yes
DataErrors.log 0x49000 —
Database.log Application::Data::DatabaseLogger::DatabaseLogger; 0x702d00 yes
DynGeoLog.log WorldView::DynamicSystem::DynGeoManager::Shutdown; WorldView::DynamicSystem::Context::ShutdownGame (+1 more) yes
EOS.log App::EOS::LogEOSMessage; App::EOS::SetupService (+14 more) yes
Engine.log Civ6App::UpdateFrame; 0x702d00 (+3 more) yes
FileSystem.log File::Watcher::FolderChangeNotify —
FireFX.csv FireFX::Runtime::InstanceManager::ProcessEmitAndExternalExport; FireFX::Runtime::System::LogGlobalImports (+1 more) —
GameCoreAppConfig.log GameCore::App::Configuration::ChangedConfigurationSignalHandler::Changed; 0x100b50 (+1 more) yes
Game_%02d_GameCoreProfile.csv GameCore::App::Profile::Manager::LogTurnEnd —
LoadGameViewState.log LoadGameViewState::Begin; LoadGameViewState::End (+4 more) yes
Localization.log LocalizationLogger::LocalizationLogger yes
Lua.log 0x972590; 0x972640 yes
MapSearch.log GameCore::App::UI::Lua::IManager::lMapSearch_LogBegin; GameCore::App::UI::Lua::IManager::lMapSearch_LogEnd —
Modding.log 0x258990; 0x702d00 yes
ModelVisTypes_%u.csv ModelVisSystem::Context::LogVisTypesForFrame —
NoRenderFrame.log Civ6App::UpdateFrame —
Profile.csv GameViewState::Begin; GameViewState::End (+4 more) yes
Profile.log GameCore::App::Profile::Manager::CheckProfileSave —
Renderer.log AppHost::Host::ChangeResolution; 0x6fd850 (+100 more) yes
Serialization.log GameCore::Serializer::Manager::DoGameStateSaveRequest —
Startup.log Civ6App::DoGraphicsDeviceSelection; Civ6App::FinalShutdown (+13 more) yes
SynthesisLog.log 0x608ea0 yes
UIWarnings.csv 0x86a590 yes
UserInterface.log ForgeUI::ExtractValue; ForgeUI::ContextBase::Initialize (+15 more) yes
VFX.csv Particle::System::LogLiveEmitters —
VFXMesh.csv VisualEffectSystem::Context::LogMeshFX —
VFXSystem.log 0xa557d0; VisualEffectSystem::ErrorHandler::OnError (+1 more) yes
VisManager.log VisManager<FOWMeshVisSystem::Context::FOWVis, FOWMeshVisSystem::Context::FOWVisJob>::DispatchDeletesOnly; VisManager<FOWMeshVisSystem::Context::FOWVis, FOWMeshVisSystem::Context::FOWVisJob>::UpdateMessageJob::DoMessage (+6 more) yes
ctpHttp.log 0xb9aba0; 0xbcf750 —
ctpLog.log 0xbc34d0; 0xbca700 —
net_connection_debug.log Civ6AppSteamCallback::OnSteamRichPresenceJoinRequested; GameCore::Serializer::Manager::CheckRequest (+190 more) yes
net_message_debug.log GameViewState::ShutdownGame; LoadGameViewState::Tick (+126 more) yes
net_transport_debug.log Network::EOS::TransportThread::FlushOutputQueue; Network::EOS::TransportThread::Run (+5 more) —
webhooks.log Network::Manager::TriggerCloudTurnWebHook; Network::Manager::TriggerCloudTurnWebhooks —

Files found in a normal Logs folder that no string in the exe names: AI_ChokePoint.csv, AI_Diplomacy.csv, AI_Governors.csv, AI_GovtPolicies.csv, AI_Knowledge.csv, AI_Military.csv, AI_Operation_Eval.csv, AI_Planning.csv, AI_Religious.csv, AI_Research.csv, AI_UnitEfficiency.csv, AI_Victories.csv, AStar_APP.log, AStar_GC.log, DiplomacySummary.csv, FiraxisLive.log, ForgeUI_BLPTextureLoader.log, GameCore.log, Game_Boosts.csv, Game_Emergencies.csv, Game_GreatPeople.csv, Game_HeroesManager_HeroStats.csv, Game_HeroesManager_PlayerStats.csv, Game_PlayerScores.csv, Player_Stats.csv, Player_Stats_2.csv, RandCalls.csv, UnitOperations.log, World_Congress.csv. They are written by GameCore (the AI and game statistics csv files, GameCore.log, UnitOperations.log, AStar_*.log), or their names are built from parts at run time (FiraxisLive.log, ForgeUI_BLPTextureLoader.log).

Option, user and runtime files

Files in the user data folder or next to the game that the exe loads or creates. The four *Options.txt files are described in the option files reference.

Name Used by
AppOptions.txt Civ6App::ApplyGraphicsOptionsChanges; Civ6App::DoGraphicsDeviceSelection (+6 more)
Banks.ini 0x2600d0; 0xa2b7b0
CurrentPackage.zip 0xa7cb0
EOSOptions.txt Civ6App::ProcessEOSOptionSet
GraphicsOptions.txt Civ6App::ProcessGraphicsOptionSet
Init.bnk Audio::ReadSoundBankXML; 0xa2b7b0
InputSettings.json Civ6App::SetupInput
SoundOpts.txt 0x6d870; 0x77cd0
UserContext.bin 0x418f0; 0x41a40 (+2 more)
UserOptions.txt 0x6dd10; Civ6App::SetupUI (+1 more)

Folders and sub-folders

Folder names the code uses: the user data sub-folders (Logs, Dumps, Saves, Temp), the save sub-folders (auto, quick, Hotseat, Multi, Single, WorldBuilder), the content roots (Base, DLC) and UI context names.

Name Used by
ArtDefs 0x1d43d0
AutoConfig 0x173c00
AutoSave 0x1742b0
Base 0x1d38a0
Challenges 0xb35a0
DLC AppModdingFramework::GetDLLPathFromConfig
Dumps Civ6App::OverrideAppOptions
FrontEnd MainMenuState::LoadUI
Hotseat 0x175ac0
InGame Civ6App::SetupUI; Audio::ReadSoundBankINI (+1 more)
LoadScreen LoadGameViewState::LoadUI
Logs Civ6App::OverrideAppOptions
Multi 0x175ac0
Profile GameCore::App::Profile::Manager::CheckProfileSave
Saves GameCore::App::Profile::Manager::CheckProfileSave; 0x173740 (+2 more)
Single 0x175ac0
Subtitles/ Movie::OpenClip
Temp 0x176280
WorldBuilder AppModdingFramework::AppModdingFramework; GameModeInUseCriterion::Check (+2 more)
\Challenges\ 0xa6af0
\Challenges\RootPackage.zip 0xa6c00
\CivTechLogs AppHost::RunApp
\Firaxis Games\Sid Meier's Civilization VI 0x64110; 0x69860 (+4 more)
auto 0x175ac0
auto/prev 0x175ac0
c:/windows/fonts/ ForgeUI::TextControl::Initialize
quick 0x175ac0

Database files

The databases the exe opens or creates: gameplay, configuration, localization and modding databases in the install, Mods.sqlite and HallofFame.sqlite in the user folder, and the debug dumps under Cache/.

Name Used by
../../../Base/Assets/Database/Configuration.sqlite 0xbce80; Application::Data::ConfigurationDatabase::RollBack
../../../Base/Assets/Database/Gameplay.sqlite 0xbfcc0; Application::Data::GameplayDatabase::RollBack
../../../Base/Assets/Database/Modding.sql 0xc1fe0
../../../Base/Assets/Database/Modding.sqlite 0xc1fe0
../../../Base/Assets/Text/Localization.sqlite 0xc1ab0; Application::Data::LocalizationDatabase::RollBack
../../../Base/Assets/Text/LocalizationDatabase_Data.sql Application::Data::LocalizationDatabase::Bootstrap
../../../Base/Assets/Text/LocalizationDatabase_PostProcessing.sql Application::Data::LocalizationDatabase::Bootstrap
../../../Base/Assets/Text/LocalizationDatabase_Schema.sql Application::Data::LocalizationDatabase::Bootstrap
.sql 0xbd1f0; GameCore::Color::Manager::PopulateDatabase (+1 more)
/Cache/DebugConfiguration.sqlite Application::Data::ConfigurationDatabase::DebugDump
/Cache/DebugGameplay.sqlite Application::Data::GameplayDatabase::DebugDump
/Cache/DebugLocalization.sqlite Application::Data::LocalizationDatabase::DebugDump
/HallofFame.sqlite Application::Data::GameSummaryDatabase::Initialize; 0xc0f00
/Mods.sqlite AppModdingFramework::AppModdingFramework
Database/ColorManager.sql GameCore::Color::Manager::GenerateDatabase
Database/IconManager.sql 0x4fed70
WorldBuilderTemp.db GameCore::Serializer::Manager::ApplyModdingState; 0x16d870 (+1 more)

File masks and extensions

Patterns used when the exe scans folders for content; the first four are how mods, maps and scenarios are discovered.

Name Used by
*.civ6map Modding::ModDiscoveryService::DiscoverMods
*.csv 0x702d00
*.dep 0x1d38a0
*.flCache 0xb57e00
*.log 0x702d00
*.lua 0x4d4db0
*.modfragment Modding::XmlModLoader::Load
*.modinfo Modding::ModDiscoveryService::DiscoverMods
*.png 0x52f90
*.sql Application::Data::LocalizationDatabase::Bootstrap
*.xml 0x69140; 0x69270 (+4 more)
.Civ6Cfg 0x173670; 0x173740 (+3 more)
.Civ6Map 0xadf70; 0x173670 (+3 more)
.Civ6Save 0x173670; 0x173740 (+3 more)
.XML ForgeUI::ContextBase::LoadXML_File
.civ6map ModdingMapSettingHandler::ApplySettings; ModdingWorldBuilderSettingHandler::ApplySettings (+2 more)
.csv BenchmarkSystem::Stop
.fpk File::CatalogInstance::DoAddFile; 0x7eb600
.lua 0x4f2650; ForgeUI::LuaContext::Initialize
.modinfo Modding::ModLoaderService::LoadMod; 0xb46320

Install layout paths

Paths inside the game folders, grouped by their first folders. They show where the engine expects its data: databases under Base/Assets/Database, text under Base/Assets/Text, UI definitions under Base/Assets/UI, and per-platform folders for every platform the engine has ever targeted (the exe lists them, including some that never shipped).

(game root and root files) (10)
Path Used by
../../../ Civ6App::InitialInit; Civ6App::GUIInit (+2 more)
../../../LOGO_2KFiraxis.bk2 IntroState::LoadFMVBanks
../../../civ6_cinematic.bk2 IntroState::NextState
../../../logos.bk2 IntroState::LoadFMVBanks
/AppOptions.txt 0x4d2b30; 0x4d2fb0 (+1 more)
/GameInfo.xml 0xa1c30
/GraphicsOptions.txt 0x4d2b30; 0x4d2fb0 (+1 more)
/Keymap.txt 0x4d2b30; 0x4d2fb0 (+1 more)
/SoundOpts.txt 0x4d2b30; 0x4d2fb0 (+1 more)
/UserOptions.txt 0x4d2b30; 0x4d2fb0 (+2 more)
Assets (1)
Path Used by
../../../Assets/UI/Subtitles/ Movie::OpenClip
Base (1)
Path Used by
../../../Base 0x2fb80
Base/ArtDefs (1)
Path Used by
../../../Base/ArtDefs 0x2e9d0
Base/Assets (31)
Path Used by
../../../Base/Assets 0x2e9d0; Civ6App::SetupUI
../../../Base/Assets/ARX/ 0x52d30; 0x53180
../../../Base/Assets/Configuration/Data/ 0xbce80; Application::Data::ConfigurationDatabase::RollBack
../../../Base/Assets/Gameplay/Data/ 0xbfcc0; Application::Data::GameplayDatabase::RollBack
../../../Base/Assets/Gameplay/UI/Text/ Application::Data::LocalizationDatabase::Bootstrap
../../../Base/Assets/HallofFame/ Application::Data::GameSummaryDatabase::Initialize
../../../Base/Assets/Maps/ AppModdingFramework::AppModdingFramework
../../../Base/Assets/Mods/ AppModdingFramework::AppModdingFramework
../../../Base/Assets/Scenarios/ AppModdingFramework::AppModdingFramework
../../../Base/Assets/Text/ Application::Data::LocalizationDatabase::Bootstrap
../../../Base/Assets/Text/StartupErrorMessages.xml Civ6App::SetupErrorHandling
../../../Base/Assets/Text/icudt56l.dat Civ6App::SetupLocalization
../../../Base/Assets/UI/Accessibility/PlayerDeuteranopiaColors.xml GameCore::Color::Manager::PopulateDatabase
../../../Base/Assets/UI/Accessibility/PlayerProtanopiaColors.xml GameCore::Color::Manager::PopulateDatabase
../../../Base/Assets/UI/Accessibility/PlayerTritanopiaColors.xml GameCore::Color::Manager::PopulateDatabase
../../../Base/Assets/UI/Civ6_BenchmarkContext 0x54440; BenchmarkSystem::Start
../../../Base/Assets/UI/Civ6_ColorAtlas.xml 0x502a0
../../../Base/Assets/UI/Civ6_Styles.xml 0x502a0
../../../Base/Assets/UI/Civ6_TutorialOverlay.xml 0x502a0
../../../Base/Assets/UI/Colors 0x69140
../../../Base/Assets/UI/ControllerIconAliases.xml 0x3b9c0
../../../Base/Assets/UI/Debug/Civ6_DebugContext 0x4cff0
../../../Base/Assets/UI/FrontEnd/InitScreen 0x818e0
../../../Base/Assets/UI/FrontEnd/StartupScreen IntroState::LoadEULAUI
../../../Base/Assets/UI/Icons 0x69270
../../../Base/Assets/UI/SubtitleContext IntroState::LoadSubtitleUI
../../../Base/Assets/UI/Text/ Application::Data::LocalizationDatabase::Bootstrap
../../../Base/Assets/WorldBuilder/Data/ AppModdingFramework::GetPathList
Base/Assets/Automation/Saves 0x175790
Base/Assets/Benchmark/Saves 0x175790
Base/Assets/Demo/Saves 0x175790
Base/Platforms (1)
Path Used by
../../../Base/Platforms/Windows/ARX 0x2e9d0
DLC/ (1)
Path Used by
../../../DLC/ AppModdingFramework::AppModdingFramework
DLC/Expansion1 (1)
Path Used by
../../../DLC/Expansion1/Platforms/Windows/Movies/Expansion1Intro.bk2 IntroState::NextState
DLC/Expansion2 (1)
Path Used by
../../../DLC/Expansion2/Platforms/Windows/Movies/XP2_Opening.bk2 IntroState::NextState
DLC/WeGame (1)
Path Used by
../../../DLC/WeGame/ AppModdingFramework::AppModdingFramework
UI (3)
Path Used by
../../../UI/Debug/DebugViewer AppUIDebugViewer::Startup
../../../UI/Subtitles/ Movie::OpenClip
UI/Art/Controls/MeterTest.dds ForgeUI::MeterControl::BuildCoreFromXML
App (3)
Path Used by
App/FiraxisLive/Configuration AppFiraxisLiveClient::DoDataPushNotify
App/FiraxisLive/MarketingMessage AppFiraxisLiveClient::DoDataPushNotify
App/FiraxisLive/OnlineTelemetryConfiguration.xml AppFiraxisLiveClient::OnOnlineConfigUpdated
ForgeUI_Assets (7)
Path Used by
ForgeUI_Assets/ColorAtlas.xml ForgeUI::ForgeUI_UIManager::InitializeStyles
ForgeUI_Assets/ControlArt/Buttons/CheckMark.dds 0x90a220
ForgeUI_Assets/CoreStyles.xml ForgeUI::ForgeUI_UIManager::InitializeStyles
ForgeUI_Assets/DebugContext 0x8e3120
ForgeUI_Assets/Fonts/ ForgeUI::TextControl::Initialize
ForgeUI_Assets/NumberPadContext ForgeUI::ForgeUI_UIManager::BuildNumpadControl
ForgeUI_Assets/ToolTips 0x8e5980
GameConfig (2)
Path Used by
GameConfig/GameConfig.xml 0xadf70
GameConfig/GameInfo.xml 0xadf70
Platforms/Durange (2)
Path Used by
Platforms/Durange/Assets/UI 0x2ebc0
Platforms/Durange/Phone/Assets/UI 0x2ebc0
Platforms/Linux (1)
Path Used by
Platforms/Linux/BLPs 0x2ebc0
Platforms/MacOS (3)
Path Used by
Platforms/MacOS/Assets/UI 0x2ebc0
Platforms/MacOS/BLPs 0x2ebc0
Platforms/MacOS/Desktop/Assets/UI 0x2ebc0
Platforms/Orbis (2)
Path Used by
Platforms/Orbis/Assets/UI 0x2ebc0
Platforms/Orbis/Phone/Assets/UI 0x2ebc0
Platforms/Stadia (6)
Path Used by
Platforms/Stadia/Assets/UI 0x2ebc0
Platforms/Stadia/Audio 0x2ebc0
Platforms/Stadia/BLPs 0x2ebc0
Platforms/Stadia/Desktop/Assets/UI 0x2ebc0
Platforms/Stadia/Phone/Assets/UI 0x2ebc0
Platforms/Stadia/Tablet/Assets/UI 0x2ebc0
Platforms/Switch (5)
Path Used by
Platforms/Switch/Assets/UI 0x2ebc0
Platforms/Switch/Audio 0x2ebc0
Platforms/Switch/BLPs 0x2ebc0
Platforms/Switch/Movies 0x2ebc0
Platforms/Switch/Phone/Assets/UI 0x2ebc0
Platforms/Windows (3)
Path Used by
Platforms/Windows/Audio 0x2ebc0
Platforms/Windows/BLPs 0x2ebc0; 0x1d43d0
Platforms/Windows/Movies 0x2ebc0
Platforms/iOS (6)
Path Used by
Platforms/iOS/Assets/UI 0x2ebc0
Platforms/iOS/Audio 0x2ebc0
Platforms/iOS/BLPs 0x2ebc0
Platforms/iOS/Movies 0x2ebc0
Platforms/iOS/Phone/Assets/UI 0x2ebc0
Platforms/iOS/Tablet/Assets/UI 0x2ebc0

Other files

Remaining file names the code mentions: UI art, fonts, cursors, telemetry configuration, benchmark saves, and similar.

Name Used by
%s.bs 0xdc4f80
%s_reflect.txt FSL::HLSL_Precompile
%u.bnk 0x762900
.txt Audio::LoadSoundBank
.xml 0xbd1f0; ForgeUI::ContextBase::LoadXML_File (+1 more)
AIBenchmark.Civ6Save BenchmarkSystem::ParseArguments
Airbomb.ani Civ6App::SetupUI
Brightness.txt Particle::System::LoadShaderPackageInstanceView
CISL_%s_%s.txt void GeneratePackages<FSL::ShaderPackage>; 0xdec9f0 (+1 more)
Challenges/CustomMap.Civ6Map GameCore::App::Telemetry::Listener::OnPostLoadBegin
Challenges\CustomMap.Civ6Map GameCore::App::Telemetry::Listener::OnPostLoadBegin
Civ6_FontStyles_EFIGS.xml AppUIManager::GetStyleSheetAndDefaultFont
Continents.lua GameCore::App::Configuration::Game::SetToDefaultValues
CurrentPackage.bin 0xa7cb0
CustomMap.Civ6Map 0xa2c60
FakeVolume.txt Particle::System::LoadShaderPackageInstanceView; 0xc23670
Glow.txt Particle::System::LoadShaderPackageInstanceView
GraphicsBenchmark.Civ6Save BenchmarkSystem::ParseArguments
HLSL_Readable_%s.txt FSL::HLSL_Precompile
HelveticaNeue.ttf AppUIManager::GetStyleSheetAndDefaultFont; Civ6App::SetupUI
Images/Badge.png 0xafbb0
Mask.txt Particle::System::LoadShaderPackageInstanceView
Metal_%s_%s_metal.txt void GeneratePackages<FSL::ShaderPackage>
MinionPro-Semibold.otf 0x236a70
Move.ani Civ6App::SetupUI
PRODUCTION.txt 0xa7cb0
Pangaea.lua GameCore::App::Configuration::Game::SetToDefaultValues
Pointer.ani Civ6App::SetupUI
STAGING.txt 0xa7cb0
ShaderAutoGen_Windows_DX11_FinalRelease.bs 0xdc11b0; 0xdc3f10
Waiting.ani Civ6App::SetupUI
XP2Benchmark.Civ6Save BenchmarkSystem::ParseArguments
carousel_listing.json 0xaded0
challenge_info.json 0xadf70
challenge_sandbox.json 0xa6530; 0xa7300
clickout_info.json 0xae730
etc/ctpConfig.json 0xbc9ee0
hall_of_fame_info.json 0xb0450; 0xb0690
header.json AppHost::BugSubmissionPackager::SubmitBug

Asset ownership check

One function (App::Ownership::Local::Startup) lists a set of hash-named asset files under Base/Assets and tests whether they exist, which is how the exe decides which content packages are present.

Name Used by
../../../Base/Assets/Civ6_<16 hex digits>.xml 0x43e90