-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
ghost-ng edited this page Jan 28, 2026
·
2 revisions
This guide will help you set up your modding environment and create your first Civilization VII mod.
- Civilization VII installed via Steam
- Civilization VII Development Tools (available on Steam as free DLC)
- A Code Editor - Visual Studio Code recommended
| Location | Path |
|---|---|
| Game Files | C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VII\ |
| Dev Tools | C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VII Development Tools\ |
| User Mods | %LOCALAPPDATA%\Firaxis Games\Sid Meier's Civilization VII\Mods\ |
| Debug Logs | %LOCALAPPDATA%\Firaxis Games\Sid Meier's Civilization VII\Logs\ |
| Location | Path |
|---|---|
| User Mods | ~/Library/Application Support/Civilization VII/Mods/ |
| Location | Path |
|---|---|
| User Mods | ~/My Games/Sid Meier's Civilization VII/Mods/ |
Edit AppOptions.txt in your user data folder:
; Enable database export for debugging
CopyDatabasesToDisk 1
; Enable FireTuner debugging tool
EnableTuner 1
; Enable in-game debug panels (backtick key)
EnableDebugPanels 1
; Enable Chrome DevTools for UI debugging
UIDebugger 1
; Auto-reload UI files when edited
UIFileWatcher 1
The game content is organized into modules:
Base/modules/
├── core/ # Core game systems
│ ├── data/ # Core data definitions
│ ├── scripts/ # JavaScript helpers
│ ├── ui/ # UI components
│ └── core.modinfo # Module metadata
├── base-standard/ # Standard game rules
│ ├── data/ # Game data (units, buildings, etc.)
│ ├── text/ # Localization
│ └── base-standard.modinfo
├── age-antiquity/ # Antiquity Age content
├── age-exploration/ # Exploration Age content
└── age-modern/ # Modern Age content
Create a new folder in your Mods directory:
%LOCALAPPDATA%\Firaxis Games\Sid Meier's Civilization VII\Mods\my-first-mod\
Create my-first-mod.modinfo in your mod folder:
<?xml version="1.0" encoding="utf-8"?>
<Mod id="my-first-mod" version="1" xmlns="ModInfo">
<Properties>
<Name>My First Mod</Name>
<Description>This is my first Civ VII mod.</Description>
<Authors>Your Name</Authors>
<AffectsSavedGames>1</AffectsSavedGames>
</Properties>
<Dependencies>
</Dependencies>
<ActionCriteria>
</ActionCriteria>
<ActionGroups>
</ActionGroups>
</Mod>See the following guides for adding specific content:
- Creating a Unit - Add custom units with abilities
- Creating a Civilization - Add civs with leaders
- Modifier System - Add game effects
- modinfo Files - Configure your mod
| Aspect | Civilization VI | Civilization VII |
|---|---|---|
| Scripting | Lua | JavaScript |
| UI | Lua + XML panels | HTML/CSS/JavaScript |
| Ages | Single era progression | Distinct Ages (Antiquity, Exploration, Modern) |
| Database Scopes | GameplayDatabase | Shell (frontend) + Game (gameplay) |
| Effects System | Modifiers | Modifiers (similar, with GameEffects XML) |
-
Check the Logs -
Database.login the Logs folder shows errors - Use FireTuner - Connect to running game for live debugging
-
Export Database - With
CopyDatabasesToDisk 1, view SQLite files in debug folder - Validate XML - XML syntax errors will prevent mod loading
- modinfo Files - Complete modinfo reference
- The Modifier System - How game effects work
- XML Reference - All XML elements documented