Overview
This guide provides strategies and techniques for modifying existing content in Civilization VII. Instead of creating new elements from scratch, we’ll focus on how to adjust, rebalance, and extend the game’s existing civilizations, leaders, units, buildings, and gameplay systems.Prerequisites
Before modifying existing content, ensure you have:- A basic understanding of the Civilization VII modding architecture (see Modding Architecture)
- Familiarity with the relevant database schemas (see Database Schemas)
- Knowledge of the Age system (see Age Modules)
- The game’s base files for reference
- A working knowledge of creating content (see General: Creating Civilizations and General: Creating Leaders)
Planning Your Modifications
Modification Approaches
There are several approaches to modifying existing content:- Override Approach: Completely replace existing definitions
- Addition Approach: Add new attributes or abilities to existing elements
- Adjustment Approach: Alter specific values or parameters
- Removal Approach: Disable or remove existing features
- Hybrid Approach: Combine multiple approaches for comprehensive modifications
Design Principles for Modifications
When modifying existing content, consider these key principles:- Compatibility: Ensure modifications work with the base game and other mods
- Balance: Make changes that improve gameplay without creating overpowered elements
- Purpose: Have a clear goal for each modification
- Theme Consistency: Maintain the thematic integrity of the original elements
- Age Appropriateness: Respect the Age system when modifying content
Folder Structure Setup
Organize your modification mod with a clear folder structure:Implementation Process
1. Creating the Modinfo File
The.modinfo file defines your mod’s metadata and structure. Here’s a real example from Sukritact’s Inca Rework mod:
ActionCriteria to ensure certain modifications only apply during specific Ages, implementing Age-aware changes to the Inca civilization.
2. Modifying Civilizations
To modify an existing civilization, you can use either SQL or XML approaches. Many community modders prefer SQL for its efficiency. Here’s how Sukritact’s Inca Rework mod modifies the Terrace Farm improvement:3. Modifying Leaders
To modify an existing leader, create a file likeleader_overrides/trajan_modifications.xml:
4. Modifying Units
Here’s a real example from the Han Chukonu Rebalance mod showing how to modify an existing unit’s stats and functionality:5. Modifying Buildings and Infrastructure
To modify existing buildings, create a file likebuilding_overrides/building_modifications.xml:
6. Modifying Gameplay Systems
To modify core gameplay systems, create a file likegameplay_overrides/gameplay_modifications.xml:
7. Modifying Text and Localization
Create localization files intext_overrides/modified_text.xml:
Age-Aware Modifications
Civilization VII’s Age system requires special consideration when modifying content. Sukritact’s mods demonstrate best practices:SQL vs. XML Approach
While our guide has focused on both approaches, many successful community mods use SQL statements for modifications. Advantages include:- Concise Syntax: SQL modifications are often more compact than XML equivalents
- Direct Database Manipulation: SQL directly modifies the game’s internal database
- Combined Operations: Can perform updates, deletions, and insertions in a single file
- Familiar to Database Users: Those with SQL experience find this approach intuitive
- Create
.sqlfiles in your mod’s data directory - Reference them in your
.modinfofile with<UpdateDatabase>actions - Use standard SQL commands: UPDATE, DELETE, INSERT, etc.
- Organize files by category (traditions, units, constructibles, etc.)
Real-World Examples
Sukritact’s Inca Rework
This community mod reworks the Exploration Age Inca civilization:Key Files
Implementation Highlights
- Removes restrictive terrain requirements from the Terrace Farm improvement
- Rebalances yields to compensate for increased placement flexibility
- Changes Machu Pikchu wonder to require adjacent Urban District instead of biome restriction
- Implements Age-specific ActionGroups to ensure changes apply in appropriate game phases
Han Chukonu Rebalance
This focused mod rebalances the Han civilization’s unique unit:Key Files
Implementation Highlights
- Adjusts the Chukonu (Nu) unit’s combat stats, maintenance, and production costs
- Changes its tech tree progression path
- Adds a new bonus that gives +1 Combat Strength per Iron resource
- Alters the unit replacement relationship with standard units
Testing Your Modifications
-
Install the Mod:
- Place your mod folder in the Civilization VII mods directory (
<GAME_DATA>/Mods/) - Enable the mod in the game’s mod menu
- Place your mod folder in the Civilization VII mods directory (
-
Initial Testing:
- Start a new game with the civilizations/leaders you’ve modified
- Verify that your changes appear correctly
- Test that modified abilities function as intended
- Check for any unintended side effects
-
Compatibility Testing:
- Test your mod alone with the base game
- Test your mod with official DLC content
- If possible, test with popular community mods
-
Performance Testing:
- Ensure your modifications don’t introduce performance issues
- Particularly important for mods that make systemic changes
-
Troubleshooting Common Issues:
- Changes not appearing: Check XML syntax and file references
- Game crashes: Look for conflicts with base game definitions
- Balance issues: Iteratively adjust values based on testing
Best Practices for Modifying Content
- Document Your Changes: Keep detailed notes of what you’ve modified and why.
- Use Clear Commenting: Include comments in your XML files explaining your changes.
- Version Control: Use version numbers in your mod files to track iterations.
- Incremental Changes: Test small changes before making large overhauls.
- Respect Original Design: Try to understand why the original design choices were made before changing them.
- Maintain Theming: Ensure your changes fit the historical and thematic context of the elements you’re modifying.
- Gather Feedback: Share your mod with the community to get testing feedback.