Extended WMD Framework
I. Introduction
This mod introduces a complete Weapons of Mass Destruction system into Civilization VI, allowing players to produce, stockpile, and deploy various types of strategic nuclear weapons. Built on an independent database architecture, it supports highly customizable weapon definitions and effect configurations.
II. Core Features
• Multi-type weapon definitions (range, damage, fallout radius, VFX, self-damage, etc.)
• Concentric damage rings (multiple rings with different effects)
• MIRV and cluster munitions (random spread or manual target selection)
• Weapon prerequisites (tech, building, trait, unit type, unit ability, etc.)
• Weapon production (city projects and per-turn automatic generation)
• Terrain restrictions (e.g., water-only)
• Ranged attack mode: Units can fire WMDs via ranged attack or airstrike, with configurable HP threshold
• Population affects system: WMDs can kill or add population to target cities
• Damage multiplier system: Adjust damage based on unit abilities
• New warhead selection UI (only one action slot, no panel flooding)
• Easy configuration (SQL/XML, no Lua required)
• Hot update support (no game restart needed)
• Customizable appearance (name, description, icon)
III. Preset Weapon Examples (Development Reference Only – Disabled in Official Release)
The following configurations are for demonstration only. They are commented out in the official release and will NOT take effect. Mod creators can use these as reference templates.
1. Tactical Strike – Small-scale precision strike
– Range 16, radius 0, damage 100/80/80 (unit/garrison/wall)
– +1 per turn for each Industrial Zone
2. Tsar Bomb – Massive hydrogen bomb
– Range 32, three damage rings (inner: remove all +30 fallout / mid: pillage all +20 fallout / outer: 80 dmg +10 fallout)
– Jet bomber only
3. Topol Missile (MIRV)
– Range 32, splits into 8 sub-warheads, spread radius 4
– Sub-warhead: 100% damage + pillage all +10 fallout, manual target selection
4. Nuclear Torpedo – Underwater nuclear weapon
– Range 6, water tiles only, requires Nuclear Submarine, uses ranged attack
5. FAB-3000 Heavy Bomb
– Range 16, 80 unit damage / 100 wall damage, requires Jet Fighter, uses ranged attack
IV. Database Tables
| Table Name | Description |
|————|————-|
| Kocmoca_WMD_Weapon_Types | Weapon type definitions |
| Kocmoca_WMD_Damage_Effects | Damage effect definitions |
| Kocmoca_WMD_Weapon_Effects | Weapon effect links (damage + radius) |
| Kocmoca_WMD_Prerequisites | Weapon prerequisites |
| Kocmoca_WMD_Split_Warheads | Split warhead configurations |
| Kocmoca_WMD_Number_For_Project | City project outputs |
| Kocmoca_WMD_Turn_Produce | Per-turn automatic outputs |
| Kocmoca_WMD_Valid_TerrainClasses | Valid target terrain types |
| Kocmoca_WMD_Weapon_VFX | Explosion VFX |
| Kocmoca_Force_WMD_Capable_Units | Forced WMD units |
| Kocmoca_WMD_Damage_Multiplier | Damage multiplier table |
V. Damage Multiplier Table (Kocmoca_WMD_Damage_Multiplier) Usage
| Column | Type | Description |
|——–|——|————-|
| DamageEffectType | TEXT | Associated damage effect type |
| UnitAbilityType | TEXT | Unit ability type |
| Multiplier | FLOAT | Multiplier value (>1 increase, 0-1 decrease, negative heals) |
Example: Units with anti-nuclear armor take 50% damage from nuclear strikes
INSERT INTO Kocmoca_WMD_Damage_Multiplier
(DamageEffectType, UnitAbilityType, Multiplier)
VALUES (‘DAMAGE_NUCLEAR’, ‘ABILITY_ANTI_NUCLEAR_ARMOR’, 0.5);
VI. Population Affects System Usage
When AffectesPopulation = 1 is set in Kocmoca_WMD_Damage_Effects:
– If UnitDamage > 0: Kills population working on the target plot (each worker counts as 1 population)
– If UnitDamage < 0: Adds population to the city owning the target plot (each worker counts as 1 population)
Note: Population change is based on the number of citizens working on the plot, not direct value modification.
VII. Ranged Attack Mode Usage
Set the following in Kocmoca_WMD_Weapon_Types or Kocmoca_Force_WMD_Capable_Units:
– UseRangedAttack = 1: Unit fires WMD via ranged attack or airstrike
– RangedAttackMinHPLeft: Minimum HP required after ranged attack (default 25)
– In this mode, units can only fire at plots with valid targets
VIII. Lua API (ExposedMembers.KocmocaWeaponScript)
• GetWeaponListForUnit(playerID, unitID) – Get available weapons for a unit
• GetWeaponNumber(playerID, weaponType) – Get weapon stockpile count
• GetPlotsIndexInWeaponRange(…) – Get valid target plots within range
• DoWeaponEffect(…) – Execute weapon effect
• PrepareForStrike(…) – Prepare for launch (deduct ammunition)
• PrepareForGuidedClusters(…) – Prepare guided cluster warheads
• PrepareForRangedAttackWMD(…) – Prepare ranged attack mode launch
• ChangeWeaponStackNumber(…) – Modify weapon stockpile
• ClearUnitMovement(…) – Clear unit movement points
• AddToExcludedPlayers/Units – Manage exclusion lists
• IsForceWMD(unitIndex) – Check if unit is forced WMD capable
• IsPlotBelongsToAlly(…) – Check if plot belongs to an ally
IX. Data Insertion Order
1. Damage_Effects → 2. Weapon_Effects → 3. Weapon_Types → 4. Other tables
X. Important Notes
• Add prefix to Weapon_Effects.WeaponEffectType to avoid conflicts
• If Infinite = 1, project and per-turn outputs are ignored
• Negative damage values can heal/repair
• Ensure Weapon_Effects is not referenced before deletion
XI. Version History
v1.3 – Added population affects system and damage multiplier table
v1.2 – Added ranged attack mode and HP threshold check
v1.1 – Added custom VFX and fire WMD without unit
v1.0 – Initial release