Skip to content
ghost-ng edited this page Jan 28, 2026 · 4 revisions

Civilization VII Modding API Reference

Welcome to the comprehensive API reference for Civilization VII modding.

What's Different in Civ VII?

JavaScript Instead of Lua

Unlike Civilization VI which used Lua for scripting, Civilization VII uses JavaScript for:

  • UI modifications
  • Gameplay scripting
  • Map generation scripts

Age-Based Content System

Content in Civ VII is organized by Ages:

  • Antiquity Age - Ancient civilizations (Rome, Egypt, Greece, Han, etc.)
  • Exploration Age - Medieval/Renaissance (Spain, Ming, Mongolia, etc.)
  • Modern Age - Industrial to future (America, Prussia, Meiji, etc.)

Mods must specify which Age(s) their content applies to using ActionCriteria in the .modinfo file.

Two Database Scopes

  • Shell/Frontend - Main menu and game setup screens
  • Game - Active gameplay database

Quick Start

  1. Setting Up Your Mod - Create your first .modinfo file
  2. modinfo Files Reference - Complete .modinfo documentation

Tutorials

Step-by-step guides for common modding tasks:

Tutorial Description
Adding Policies Create new traditions with modifiers
Creating a Unit Add custom units with combat abilities
Creating a Building Add buildings, wonders, and unique buildings
Creating a Civilization Build complete civs with leaders and abilities
Creating a Narrative Event Create pop-up events with choices and rewards
Creating a Map Generator Write JavaScript map scripts
Creating UI Extensions Add custom panels and hotkeys

Core Documentation

Database Reference

Topic Description
Types and Kinds The type system that powers all game entities
Units Unit definitions, stats, and abilities
Buildings Buildings, improvements, and wonders
Civilizations Civilization definitions and traits
Leaders Leader definitions and abilities
Map & Terrain Terrain types, biomes, features, natural wonders

Modifier System

The modifier system is how all game effects work in Civ VII.

Topic Description
Overview How modifiers work
Effect Types All available effects
Collection Types Target subject collections
Requirement Types Conditional requirements

JavaScript API

Civ VII uses JavaScript for scripting instead of Lua.

Topic Description
Overview Global objects, events, and API reference

Narrative Events

Pop-up events with choices and quests.

Topic Description
Overview Event structure, triggers, and rewards

Examples

See the Examples page for quick reference templates and code snippets.

Official Resources

The Civilization VII Development Tools (available on Steam) includes:

  • Official documentation
  • Example mods (fxs-new-policies, fxs-new-narrative-events, etc.)
  • FireTuner debug console

Location: Steam\steamapps\common\Sid Meier's Civilization VII Development Tools\

File Locations

Content Path
Game Files Steam\steamapps\common\Sid Meier's Civilization VII\
Dev Tools Steam\steamapps\common\Sid Meier's Civilization VII Development Tools\
User Mods %LOCALAPPDATA%\Firaxis Games\Sid Meier's Civilization VII\Mods\
Logs %LOCALAPPDATA%\Firaxis Games\Sid Meier's Civilization VII\Logs\

Contributing

This documentation is community-maintained. Found an error or have additions? The source is available for contributions.

Clone this wiki locally