This is a historic page, please remove the {{historic}} tag if you plan to revive it.

Civilization II® from Microprose® initially did not start with a macro(event)language. Civilization II started out with scenario (.scn) files . These are basically savegames with the initial setup (maps, units, city placements, civs in place etc..). The macro(event)language was gradually added to Civilization II by the developers in later releases. The first use of events started with the release of the datadisk Conflicts in Civilization. This was further improved in Fantastic Worlds and finally in Civilization II - Multiplayer Gold Edition.

All the text which follows pertains to Civilization II - Multiplayer Gold Edition events.


There are two distinct components of the event system, a trigger and an action. A trigger argument must be satisfied to cause an action to happen. Consider that the input. An action is what happens after the trigger is satisfied. Consider that the output.

An event declaration starts with an @IF statement and ends with a @ENDIF statement. An event looks like so:

 city=New York
 New York has been captured by the British! France declares war on the British!

Explanations of the trigger or action will be written in parentheses.

A (***) sign signifies a quirk with an explanation at the bottom of this post.

Triggers (@IF Triggers:)

1) Unit Killed:

 unit=Settlers (the unit that is to be killed to trigger)
 attacker=ANYBODY (***) (which civ is attacking the unit)
 defender=Romans (the defending civ)

2) City Taken:

 city=New York (the city captured)

3) Turn Number: (Cannot be used in the same Trigger as "Turn Interval")

 turn=1 (Actual turn in the game, not the date.)

4) Turn Interval:

 interval=5 (Number of turns elapsed before the trigger is triggered)

5) Negotiation:

 talker=British (the civ who would be contacting)
 talkertype=HumanOrComputer (whether the civ "talker" is human or AI)
 listener=Americans (the civ who would be contacted)
 listenertype=HumanOrComputer (whether the civ "listener" is human or AI)

6) Scenario Loaded:

 SCENARIOLOADED (Upon loading the scenario Trigger will set off Event)

7) Random Turn:

 denominator=10 (random number that must be picked to cause an event)

8) No Schism:

 defender=Romans (Prevents a civil war in the defender civ. The "ANYBODY" value may be used just once here to prevent all civs from having civil wars - usually caused by their capital falling***)

9) Received Technology

 technology=0 (Numerical line in the rules.txt file that denotes a certain tech)
 receiver=ANYBODY (Who has received the tech)

Actions (@THEN Events:)

1) Text Pop Up Window

 Test Text (Text that will pop up when Event is Triggered)

2) Move Unit

 unit=Settlers (the unit that will be moved)
 owner=Romans (the owner of the "to be moved" unit)
 15,15,0,0,0,0,0,0 (The coordinates of the tile that the unit is standing on)
 20,25 (the destination tile coordinates)
 numbertomove=2 (The number of identical units to move)

3) Create Unit:

 unit=Warriors (the unit to be created)
 owner=Romans (the owner of the "to be created" unit)
 veteran=no (Whether or not it will be a veteran)
 homecity=New York (The created unit's home city)
 15,50 (1st and only location that it will be created)
 15,10 (2nd location it will be created if 1st location is occupied by enemy)
 15,12 (3rd location it will be created if 2nd location is occupied by enemy etc...)

4) Change Money:

 receiver=Romans (The civ who will have the amount added into the treasury)
 amount=100 (the amount of the additional funds - can be negative to subtract funds)

5) Play Sound:

 TEST.WAV (the wave file to be played)

6) Make Aggression:

 who=Babylonians (who will be attacking or just declaring war)
 whom=Romans (who will be attacked or declared war on)

7) Just Once:

 JUSTONCE (signifies that the event will be triggered only once in the game)

8) Play CD track:

 15 (Track number to be played on CD in CD-ROM drive - used with Civ2 CDs mostly)

9) Don't Play the Wonder Movies:

 DONTPLAYWONDERS (Used if the Wonders have been changed and the author doesn't want the .avi moviews to be played)

10) Change an area of terrain tiles to another kind of terrain:

 terraintype=0 (Line number of terrain type in rules.txt)
 15,20,0,0,0,0,0,0 (Coordinates of the area that will be changed. Each of the four sets designates a corner of a polygon on the map - Use the coordinates of one tile four times to designate that only one tile will be changed.)

11) Kill a civ:

 whom=Aztecs (The civ that will be destroyed. Can be used in the context of "Kill the first vampire, kill all the vampires" sort of way.)

12) Give tech:

 receiver=Romans (Who will receive the tech)
 technology=2 (the line number that the tech is on in rules.txt)

A few quirks in the Civilization II event engine.Edit

  1. The ANYBODY value: The ANYBODY value allows a Trigger or Event to be satisfied by any civ in the game. The first civ to satisfy the ANYBODY value will thereafter be the only civ able to satisfy the Trigger or Event.
    The ANYBODY value allows for a "who gets it first gets it always" Trigger or Event. If you want every civ in the game to continually be able to use Trigers or Events that employ the ANYBODY value then you must make an ANYBODY Trigger or Event for each civ. An exception to this rule is the NOSCHISM Trigger where ANYBODY can be used to signify all civs without having to have multiple Triggers.
  2. The MOVEUNIT command doesn't always work right, especially over long distances.
  3. The NEGOTIATION command works like the ANYBODY value. If you want to prevent diplomacy between a civ and multiple civs then the NEGOTIATION command must be used in multiple, civ specific Triggers/Events.

Quick reference sheetEdit

UNITKILLED          unit=                unit name or ANYUNIT*
                    attacker=            civilization name or ANYBODY*
                    defender=            civilization name or ANYBODY*

NEGOTIATION         talker=              civilization name or ANYBODY*
                    talkertype=          HUMAN, COMPUTER, HUMANORCOMPUTER
                    listener=            civilization name or ANYBODY*
                    listenertype=        HUMAN, COMPUTER, HUMANORCOMPUTER

CITYTAKEN           city=                name of city
                    attacker=            civilization name or ANYBODY*
                    defender=            civilization name or ANYBODY*

TURN                turn=                number or EVERY

TURNINTERVAL        interval=            number

RANDOMTURN          denominator=         number

SCENARIOLOADED      none                 none

NOSCHISM            defender=            civilization name or ANYBODY*

RECEIVEDTECHNOLOGY  receiver=            civilization name or ANYBODY*
                    technology=          tech index number

TEXT                  TEXT                 text follows on next line
                      ENDTEXT              none

CREATEUNIT            owner=               civilization name or ANYBODY* or trigger wildcard**
                      unit=                unit name
                      veteran=             yes,no,false,true
                      homecity=            name of home city, or "none"
                      locations            n x,y coordinates on next line(s)

CHANGEMONEY           receiver=            civilization name or trigger wildcard**
                      amount=              number

MAKEAGGRESSION        who=                 civilization name or trigger wildcard**
                      whom=                civilization name or trigger wildcard**

JUSTONCE              none                 none

MOVEUNIT              unit=                unit name
                      owner=               civilization name or trigger wildcard**
                      maprect              4 x,y coordinates follow on next line
                      moveto               1 x,y coordinate follow on next line
                      numbertomove=        number or ALL

PLAYWAVEFILE                               filename

PLAYCDTRACK                                number

GIVETECHNOLOGY        technology=          technology index number
                      receiver=            civilization name or trigger wildcard**

DESTROYACIVILIZATION  whom=                civilization name or trigger wildcard**

CHANGETERRAIN         terraintype=         terrain index number
                      maprect              4 x,y coordinates follow on next line

* NOTE: ANYBODY means all civilizations meet requirements
        ANYUNIT means all units meet requirements

** NOTE: In actions linked to certain triggers, you can use the trigger wildcards to
         represent the name of a civilization that was involved in triggering the action.
         They are as follows:

TRIGGERATTACKER     specifies the civilization that is the aggressor in a conflict trigger
                    (UNITKILLED or CITYTAKEN)
TRIGGERDEFENDER     specifies the civilization that is the defender in a conflict trigger
                    (UNITKILLED or CITYTAKEN)
TRIGGERRECEIVER     specifies the civilization that has the technology named in a
                    RECEIVEDTECHNOLOGY trigger