[an error occurred while processing this directive]
[an error occurred while processing this directive]

* How to stagnate growth and technology

"When you create scenarios, will you be able to stagnate growth? For example, if I wanted to create a Viking scenario would you be able to ensure the tech level remains the same for that time period as opposed to being able to develop nuclear weapons? In Civ 2 that was one of the things that bothered me most. Someone creates a WW2 scenario and it quickly turns into a Desert Storm scenario."
You can "stagnate" technology through three routes:

  1. Edit the Advance.txt and make the cost (i.e. ADVANCE_COST 20) for new technologies astronomical.
  2. Edit the govern.txt file and reduce the amount of science generated by each government. To do this, set KNOWLEDGE_COEF to 0000000.1, or some such small number.
  3. Edit the Advance.txt and remove unwanted technologies. Watch out though--you must change the index at the top of the file to reflect the new number of Advances.
These files are found in ctp_data\default\gamedata. Beware, changing these files changes the default game as well. You should make copies of your files before you edit them so that you can revert without re-installing.
When we release the scenario support, this will become considerably easier.

- William Westwater, Lead Designer

* How to edit the Great Library, Sounds, and Sprites


Great Library:
If you want to edit or create your own text entries for anything in the Great Library, you must first decide which type of entry (Unit, Wonders, etc.) you wish to change. To find the filename used in the Great Library, open the respective *ICON.TXT file in \CTP_DATA\DEFAULT\GAMEDATA\. For example, open UNITICON.TXT to find the filenames used by the Legion (Unit) in the Great Library.

Each item in the *ICON.TXT files has several filenames associated with it. The .TGA is used for the still image. The .AVI is used for the rotating image. The .TXT files beginning with "GAME" are displayed in the Gameplay section of the Great Library. The .TXT files beginning with "HIST" are displayed in the Historical section of the Great Library. The .TXT files beginning with "PREQ" are displayed in the upper-left section of the Great Library. The .TXT files beginning with "VARI" are displayed in the upper-right section of the Great Library. The .TXT files beginning with "STAT" are displayed to describe the gameplay features of the item in the Production Tab.

Once you have found the proper filename, you may create your own file using the same file type and filename as the original. Create .TGA using 160x120 pixel size. Create .AVI files with 160x120 pixel size (use 15 frames per second and Indeo 5.10 compression for best results). After creating your file, place it in the proper directory to be used in the game. Place .TGA files in \CTP_DATA\DEFAULT\GRAPHICS\PICTURES. Place .AVI files in \CTP_DATA\DEFAULT\VIDEOS. Place .TXT files in \CTP_DATA\ENGLISH\GAMEPLAY\GL. The original files are stored in the .ZFS files. Do not try to change or open those files. Any file outside of a .ZFS has priority and will be used instead of the original. To revert back to the original files, simply delete your files.

If you want to create your own sound files for Units, you must first decide the action and filename for which you wish to create a .WAV file. Refer to the SOUNDS.TXT in \CTP_DATA\DEFAULT\GAMEDATA\. Each Unit has several sounds, one for each of the actions that the Unit may perform. Match the Action and Unit to find the filename. For example, to learn the .WAV filename used for the Death of a Legion, open SOUNDS.TXT and search for "Legion". The filename "GUVV78.wav" is listed after the entry reading "SOUND_DEATH_LEGION."

Some items have different names than those displayed in the game. For example, the Mounted Archer Unit appears as "Chariot" in the text files.

To use your own .WAV file, name your file the same as the filename found in SOUNDS.TXT. Then place your .WAV in \CTP_DATA\DEFAULT\SOUND. The original .WAV files are stored in the "SOUND.ZFS" file. Do not try to change or open that file. Any file outside of the .ZFS has priority and will be used instead of the original. To revert back to the original files, simply delete your files. Use 22mHz, 16bit mono when creating .WAV files.

Unit Sprites:
To change the sprite used for a Unit, open SPRITEID.TXT, which is located in \CTP_DATA\DEFAULT\GAMEDATA. Then you decide on two things. First, decide which Unit you wish to change. Then decide which other Unit's sprite you wish to replace with the first Unit. Simply change the number of the first Unit to the same number listed after the second Unit. You should write down the original number of the Unit you are changing so that you can change it back at a later time.

* Beta Map Editor for German version

The Beta Map editor is intended for use with the English version of Civilization: Call to Power only. When the final version is released, it will be localized into other languages. If you simply can't wait to try the Map Editor, the following tip has been submitted to make it run with the German version (Thanks Lars3loff). Note that Activision technical support will not help you with any problems that are encountered in this process. It is highly recommeded that you backup all files prior to attempting this hack:
  1. Rename the cctpbetamapeditor.exe into cctpbetamapeditor.zip
  2. Unzip cctpbetamapeditor.zip
  3. Rename the directory ../ctp_data/german/ into ../ctp_data/english/
  4. Copy all files in the correct directory structure overwrite!
  5. Open ../ctp_data/english/gamedata/strings.txt and delete the third line (import "add_str.txt" # Addon: String additions should temporarily reside here. Strings should be moved from here to where they belong. This file should be gone by the time we CR.)
  6. Now it shold work. please make a backup of all files that the patch will replace

* Reviving unused functions

Which of the unused functions would still work and are bug free? How can I revive them? I have noticed the following in CTP's files:
Unfortunately, while the code is still in there for most of them, there's no way to actually do them from the interface. The buttons and keyboard shortcuts were removed from the code. But SLIC (our scripting language) is just slightly shy of being able to activate them, so there's a chance some of them will be possible to use via slic messages after the patch.
HEAR_GOSSIP may actually still do something as is, but we stopped tesing it long ago. DEFUSE_MINES is totally gone. PATROL is totally gone. TERROR_HACK is gone. The rest are action we may look into reviving in the future.

- Joe Rumsey, CTP programmer

* Unused flags

"Are there any additional unused flags that have been programmed in but don't appear in any files (for wonders and units and such that didn't make the cut)? For instance "ignore city walls" and "ignore terrain" were important Civ2 flags that appear to be missing from CTP."


- Joe Rumsey, CTP programmer

* New flags

"Can I make my own flags for wonders and so on? It would appear that the .slc files used in making the tutorial are some kind of event language written in C programming. Perhaps this could be used to make new flags?"

Yes, in fact, if you are clever, you can do some interesting things with SLIC. I'll throw this one out as an example. These two objects should create a nuclear missile in every one of your cities when you build the Sphinx (assuming that Sphinx is wonder index #1, which it is in the released wonder.txt):

trigger 'GiveFreeNukes' when (wonder.finished && wonder == 1) {
   aCity = 0;
   while(aCity < player.1.cities) {
      // Loop through all cities belonging to the player that
      // built the wonder.
      Message(player.1, 'GiveFreeNukeToACity');
      aCity = aCity + 1;

// Put a nuclear missile in the city with index from the variable aCity
// Note that putting this code inside the while loop above WON'T WORK.
// Why not is something I'll leave for actual SLIC documentation.
messagebox 'GiveFreeNukeToACity' {
   Abort(); // Means this "message" doesn't actually display anything
   AddCityByIndex(player.1, aCity);
   CreateUnit(player.1, UnitType("UNIT_NUKE"), city.2.location, 0);

I'll say a few things about this. The messagebox with an immediate Abort() is a pretty ugly hack, but it's something that's going to be used a lot to overcome the lack of real functions. It should be possible to create wonders with lasting effects by setting a variable when a wonder is built and then making use of city.beginturn and player.beginturn triggers.

- Joe Rumsey, CTP programmer

* Do I need to program in C to make events?

It isn't C. It is C-like in the bodies of its objects, but really implements only a very small number of constructs: function calls (of built in functions only - can't write your own functions), expressions, while loops, if statements, button descriptions for messages. The stuff you can put in the "when (...)" for triggers and all the various functions are what need the most documentation.

It does help to know C, but I think with a few more examples (and the tutorial is one enormous example, though it doesn't quite use everything in the language) most non-C-programmers will be able to get started and mostly just work by filling in the blanks.

- Joe Rumsey, CTP programmer

* Is it possible to have more than one Caravan type unit?

Yes, but they will all be the same thing. The only marginally useful thing this would get you would be making caravans cost a different amount to build after certain advances are discovered.

- Joe Rumsey, CTP programmer

* How does the ELECTRONIC_COMBAT_FACTOR flag it uses work?

I doesn't.

- Joe Rumsey, CTP programmer

* What's the difference between the orders PILLAGE and PILLAGE_UNCONDITIONALLY?

PILLAGE_UNCONDITIONALLY is a special order that's called from one of the alertboxes in script.slc when you try to pillage tile improvements on your own land. It avoids asking you the question about whether you really want to pillage your own land and just does it.

- Joe Rumsey, CTP programmer

Back to main Modification page

[an error occurred while processing this directive]