<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://modiki.civfanatics.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TC01</id>
	<title>Civilization Modding Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://modiki.civfanatics.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TC01"/>
	<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php/Special:Contributions/TC01"/>
	<updated>2026-04-18T13:38:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=How_to_Install_the_SDK&amp;diff=8432</id>
		<title>How to Install the SDK</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=How_to_Install_the_SDK&amp;diff=8432"/>
		<updated>2011-07-01T20:11:10Z</updated>

		<summary type="html">&lt;p&gt;TC01: Revisions for the new makefile (well, I say &amp;quot;new&amp;quot;, but it&amp;#039;s been out for quite some time now)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were originally compiled by [http://forums.civfanatics.com/downloads.php?do=file&amp;amp;id=10018 Refar] for Visual Studio 2005, and have since been slightly modified for a newer version of the Makefile.  They will also work with Visual Studio 2008 and 2010. They assume the modder is compiling the Beyond the Sword (BTS) DLL.&lt;br /&gt;
&lt;br /&gt;
Once you have the SDK installed, you&#039;ll probably want to look at Xienwof&#039;s [http://forums.civfanatics.com/showthread.php?t=314201 An Idiot&#039;s Guide to Editing the DLL] to get started with editing the SDK.&lt;br /&gt;
&lt;br /&gt;
==Installing the Tools==&lt;br /&gt;
* Download and install [http://kael.civfanatics.net/files/VCToolkitSetup.exe Microsoft Visual C++ Toolkit 2003]&lt;br /&gt;
* Download the following three library files and put them in this folder: C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
** [http://kael.civfanatics.net/files/msvcrt.lib msvcrt.lib]&lt;br /&gt;
** [http://kael.civfanatics.net/files/msvcrtd.lib msvcrtd.lib]&lt;br /&gt;
** [http://kael.civfanatics.net/files/msvcprt.lib msvcprt.lib]&lt;br /&gt;
* Download and install [http://msdn.microsoft.com/vstudio/express/visualc/download/ Microsoft Visual C++ Express Edition]&lt;br /&gt;
* Download Makefile.7z from [http://forums.civfanatics.com/showthread.php?t=370861 this forum thread] and unzip it. You don&#039;t need to do anything with it yet.&lt;br /&gt;
&lt;br /&gt;
* Download and install the [http://kael.civfanatics.net/files/PSDK-x86.exe Microsoft Platform SDK]&lt;br /&gt;
&lt;br /&gt;
==Preparing the Working Folder==&lt;br /&gt;
Compiling a Civilization 4 DLL requires you to use the BtS source files as a base. To begin with locate the CvGameCoreDLL folder; it can be found in your main Beyond the Sword folder (if it is not there, you need to re-install your copy of BtS).  Copy this folder to a working directory so that you maintain the original BtS source files in their original location, and have a separate development directory to work from.  It is highly recommended that you first compile a clean BtS DLL using only the source files in the CvGameCoreDLL folder before editing the source, or merging in source from other mods.&lt;br /&gt;
&lt;br /&gt;
* Remember: make a copy of the CvGameCoreDLL folder to work with (including its subfolders) and put this copy in a location where you want to keep your working files.  &#039;&#039;&#039;From now on everything said refers to the working copy of the files. &#039;&#039;Don&#039;t ever modify the original files – you might need them&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
* Delete the files CvGameCoreDLL.vcproj and CvGameCoreDLL.rc.  &#039;&#039;If you followed the instructions so far (i.e. are using a clean copy of the SDK files released with a patched version of BTS) these 2 are all you need to delete.  If however your sources came with a mod or were edited with other programs before, there might be a few more files to get rid of. These might be: CvGameCoreDLL.vcproj.vspcc, CvGameCoreDLL.ncb, *.sln, and perhaps others.  The only files you need are: All *.h files, all *.cpp files, all (2) *.inl files and everything in the both subfolders (You don’t need to touch the subfolders at all).&#039;&#039;&lt;br /&gt;
* Put the makefile from Makefile.7z into your working folder.  The Makefile should work for all versions of Civ, including Colonization, with no modifications.&lt;br /&gt;
* Open the Makefile in your preferred editor. You can use the freshly installed Visual Studio IDE, or something else if you prefer.  &#039;&#039;Windows Notepad does not work well here.&#039;&#039;&lt;br /&gt;
* At the very top, change the line that begins with TOOLKIT to the path of your Visual C++ Toolkit 2003 directory.&lt;br /&gt;
* Change the line that begins with PSDK to the path of your Microsoft Platform SDK.&lt;br /&gt;
* Optionally, uncomment the line beginning with &amp;quot;YOURMOD&amp;quot; to point to your mod&#039;s directory. This will automatically copy the DLL to your mod&#039;s Assets directory.&lt;br /&gt;
* Save the Makefile and exit.&lt;br /&gt;
&lt;br /&gt;
==Setting up the Project==&lt;br /&gt;
Launch the IDE.  When setting up the project for the first time, do not open the existing project file in Visual C++ Express Edition.  &#039;&#039;In fact, if you followed so far, there should be no project file right now.  When compiling the same project for the second, 3rd,… time, you do not need to repeat all the steps – you can then load the project file you will create when you are through with this instructions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Click  -File- -New- -Project-. The &amp;quot;New Project&amp;quot; window will open.&lt;br /&gt;
* In the &amp;quot;Project types&amp;quot; box select  –General-. In the &amp;quot;Templates&amp;quot; box select -Makefile Project-.&lt;br /&gt;
* In the &amp;quot;Name&amp;quot; box type &amp;quot;CvGameCoreDLL&amp;quot;.&lt;br /&gt;
* In the &amp;quot;Location&amp;quot; box browse to the folder where you copied your CvGameCoreDLL folder to. This folder MUST be the last folder listed in this box. For example, if you copied CvGameCoreDLL to another folder like so:  C:\MyModsFolder\CvGameCoreDLL , then the entry in the &amp;quot;Location&amp;quot; box must read: C:\MyModsFolder&lt;br /&gt;
* UNCHECK the box that says &amp;quot;Create Directory for Solution&amp;quot;.&lt;br /&gt;
* Click -OK-. The &amp;quot;Makefile Application Wizard&amp;quot; will open.  Click –Next-. Clear all the boxes. Click –Finish-.&lt;br /&gt;
&lt;br /&gt;
You will see the IDE interface now, showing you a yet empty project. To avoid possible errors in VS 2010, we will first configure the compiler, and then add source files.&lt;br /&gt;
&lt;br /&gt;
* Click -Project- -CvGameCoreDLL Properties-. The &amp;quot;CvGameCoreDLL Properties Pages&amp;quot; window will open.&lt;br /&gt;
* In the left-hand box under &amp;quot;Configuration Properties&amp;quot; select &amp;quot;NMake&amp;quot;. &#039;&#039;Previous versions of the makefile required you to change the configuration properties here. The newer makefile does not require you to do so.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Select the &amp;quot;Release&amp;quot; configuration from the &amp;quot;Configuration:&amp;quot; drop-down-box in the top left corner.&lt;br /&gt;
* In the right-hand box under &amp;quot;General&amp;quot; it says &amp;quot;Build Command Line&amp;quot;. Click the empty box to the right of it and type nmake Release.&lt;br /&gt;
* In the next line down, to the right of where it says &amp;quot;Rebuild All Command Line&amp;quot;, click in the empty box and then click the button in the box at the right. The &amp;quot;Rebuild All Command Line&amp;quot; window will open. Type  nmake Release_clean, and then directly below it on a second line, type nmake Release. Click -OK-.&lt;br /&gt;
* In the next line down, to the right of where it says &amp;quot;Clean Command Line&amp;quot;, type nmake Release_clean.&lt;br /&gt;
* Select the &amp;quot;Debug&amp;quot; configuration from the &amp;quot;Configuration:&amp;quot; drop-down-box in the top left corner, and repeat the 3 steps above for Debug.  &#039;&#039;&#039;Note the underscores in the clean command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Close the configuration windows with –OK-. Now, we&#039;ll add the source files to the project.&lt;br /&gt;
&lt;br /&gt;
* Click -Project- -Add Existing Item…-. The &amp;quot;Add Existing Item – CvGameCoreDLL&amp;quot; window will open. This folder will contain all of the source code files, the Boost-1.32.0 folder, and the Python24 folder.  Select everything (use Ctrl-A) and click -Add-.  &#039;&#039;You only want to add: all *.h files, all (2) *.inl files, all *.cpp files and the both subfolders. If you followed the instructions so far (i.e. deleted all unneeded files) CTRL+A will give you exactly this. If you – for whatever reason – kept some of the unneeded files, you need to deselect them manually.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Save your Project. It will create a new CvGameCoreDLL.vcproj file, which you can open later. It will have your settings saved.&lt;br /&gt;
&lt;br /&gt;
You are done now. For a test you should compile the unchanged code under both Configurations (It takes a bit of time depending on your Hardware), to make sure everything does work as expected. You should use Build-&amp;gt;Build Solution to do that.&lt;br /&gt;
&lt;br /&gt;
==Compiling the Command Prompt==&lt;br /&gt;
You can also compile the project by invoking nmake from the command prompt. This might be useful if you repeatedly fail to get the configurations right, or if you want to quickly compile a 3rd party project without going through all the configurations steps. (You still need to install all the tools).&lt;br /&gt;
&lt;br /&gt;
Run the Visual Studio IDE. Do not load a project (or do so – it doesn’t matter here). From menu select  Tools-&amp;gt;Visual Studio Command Prompt. A console window will open. It has all the needed environment variables set properly (as opposed the usual command prompt Windows will give you).&lt;br /&gt;
&lt;br /&gt;
Navigate to the folder where your project is (Using cd …).  Type:  nmake /f Makefile Final_Release to compile the final Release configuration. You can use another target instead, nmake /f Makefile Clean_Debug for example.&lt;br /&gt;
&lt;br /&gt;
==Compiling a Single Source File==&lt;br /&gt;
Compiling a single file is much faster than building a full project. It does of course give you nothing actually run-able, but might still be useful when searching for code mistakes.&lt;br /&gt;
&lt;br /&gt;
I did not find a way to do it from the IDE interface, but you can compile single files by invoking nmake from the console – as described above - and calling for intermediate targets.&lt;br /&gt;
&lt;br /&gt;
nmake Debug/CvUnit.obj  &lt;br /&gt;
nmake Final_Release/CvUnit.obj  &lt;br /&gt;
for example will compile just CvUnit.cpp in the Debug or Final_Release configuration.&lt;br /&gt;
&lt;br /&gt;
==Running the Debugger==&lt;br /&gt;
After compiling your project in the Debug configuration, you can run the game using the Debug-able CvGameCoreDLL.dll. It is a good deal bigger than your normal DLL and there is also a big CVGameCoreDLL.pdb file coming with it, which will contain information the debugger might need.&lt;br /&gt;
&lt;br /&gt;
Start the IDE; load your project as switch to the debug configuration. Start the Game with the Debug-DLL.&lt;br /&gt;
&lt;br /&gt;
I recommend running Civ4 Windowed; otherwise you might not be able to access the IDE after the game freezes on a breakpoint.&lt;br /&gt;
&lt;br /&gt;
Choose  Debug-&amp;gt;Attach To Process… from the menu. Choose the Civ4 Process. You might need to re-enable some local Services – for inexplicable reasons on XP debugging with Visual Studio Express does require Terminal Services to be running. In the debugger output window you will see the List of Libraries loaded in the Process. Most of them will say &amp;quot;No Symbols Loaded&amp;quot;. This is fine. We are going to debug our CvGameCoreDLL.dll, so this is the only one we need symbols for.&lt;br /&gt;
&lt;br /&gt;
Now you can debug. For testing set a Break-point on some function. CvGame::DoHolyCity() works fine – it is called once per turn. When the Game reaches the Breakpoint it will freeze waiting for your debugging action.&lt;br /&gt;
&lt;br /&gt;
Another good test is a break-point at CvUnit::GetExperience(). When the game stops there, you can access the memory of the Unit instance that called the method and change its Experience level. The unit should be promoted on the next turn.&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=1549</id>
		<title>Civ4 Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=1549"/>
		<updated>2010-02-25T22:13:43Z</updated>

		<summary type="html">&lt;p&gt;TC01: /* General Tutorials */ New tutorial by me&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=262402 How To Create a Mod (Video Demo)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=173061 How To Design a Mod]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=187699 How To Get Your Mod To Load Faster]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=229557 A Modder&#039;s Guide to Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=168876 How To Add Custom Sounds]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=161442 How To Change the Movies]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=191978 How To Add an Intro Movie]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230567 Guide to Event Modding]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=236727 Random Events List] (Reference)&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=175005 How To Isolate Crashes]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=268759 Non-Random Events in Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=7233336 Multiplayer Compatability Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=132476 The Modder&#039;s Guide to Civ4]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=331321 How to Merge Mods]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=340885 Inno Install Script Tutorial]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=353005 The Map Making Process]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=355021 Public and Private Maps]&lt;br /&gt;
&lt;br /&gt;
== Graphics Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183568 Skinning For Beginners]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=153584 How To Skin and Add Resources and Improvements]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=5339402#post5339402 Create Noshader Units from Units With Shaders]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=167335 How To Import a Custom Model (Blender)]&lt;br /&gt;
* NifViewer Tutorial: [http://forums.civfanatics.com/showthread.php?t=163585 Part 1], [http://forums.civfanatics.com/showthread.php?t=165689 Part 2], [http://forums.civfanatics.com/showthread.php?t=176106 Part 3]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=214207 3ds Max Importing/Exporting]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=179747 Merge Animations With Your Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=184327 How to Create Units with 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=182779 3ds Max Unit Creation Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=177468 Import NIF File into 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=162118 Getting Your Units Into Civilization IV]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=171934 How To Make .dds Textures for 3ds Max Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=240956 Damage States for Custom Units (3ds Max)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=181119 How To Edit GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=278946 How To Fix GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=150275 How To Create Non-Distorted Flags]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=237832 How To Make Units Use Different Effects]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183742 How To Import/Modify/Export Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230458 How To Create Shaded Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=267233 How To Create Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304100 Working with GameFont.tga in Photoshop]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=305606 Nifskope]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=312613 Modifying the Visibility of Weapons/Unit Animations]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=271331 Making Minor Changes to Unit Animation without 3DS Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=325606 Adding Action Sounds to Unit Animations]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=332014 The Cheat&#039;s Guide to Making Units]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving XML ==&lt;br /&gt;
* For tutorials on how to use XML, see [[Civ4 XML Reference|the XML section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=148507 How To Add a Civilization]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=139721 How To Add New Units]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=176460 Adding Units to Civilizations in 6 Easy Steps]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=188708 How To Add a New Building]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=138779 How To Add a Civic]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304685 How To Add Diplomacy Text to a Leaderhead]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=234970 How To Add a Civ/Unit/Building in BtS (Modular XML Loading)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=348539 How To Create a Civilization in BtS]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving Python ==&lt;br /&gt;
* For tutorials on how to use Python, see [[Civ4 Python|the Python section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183126 How To Add Popups]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=142169 How To Save and Load Data in Your Mod]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving the SDK ==&lt;br /&gt;
* For tutorials on how to use the SDK, see [[Civ4 SDK|the SDK section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=166935 Adding New XML Values]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183339 Adding New Missions For Units]&lt;br /&gt;
* [[How To Change the Maximum Number of Players]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvCity&amp;diff=1306</id>
		<title>CvCity</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvCity&amp;diff=1306"/>
		<updated>2009-12-23T14:59:44Z</updated>

		<summary type="html">&lt;p&gt;TC01: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvCity&#039;&#039;&#039; file controls everything that occurs in each city in the game. Everything from Religion spread, Meltdowns, and city growth are controlled here.&lt;br /&gt;
&lt;br /&gt;
The SDK files are written in the C++ programming language.  They can be edited in a text editor such as notepad or in a programming editor like Microsoft&#039;s Visual Studio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders. All these functions are in the class CvCity.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Return Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::CvCity()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Initializes and creates references for the arrays for each city ID&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::~CvCity()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Clears the arrays of all data and size&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::init()&lt;br /&gt;
|int iID, PlayerTypes eOwner, int iX, int iY, bool bBumpUnits, bool bUpdatePlotGroups&lt;br /&gt;
|Void&lt;br /&gt;
|Begins the initial city setup, finds the plot the city is located on, updates the city&#039;s culture, line of sight, destroys any features the city is built on top of, adds a road underneath the city, adds any initial free buildings, etc...&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::uninit()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Clears all the arrays of size and data, for when the game is shutting down, or the city is destroyed.&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::reset()&lt;br /&gt;
|int iID, PlayerTypes eOwner, int iX, int iY, bool bConstructorCall&lt;br /&gt;
|Void&lt;br /&gt;
|Initializes all variables and arrays to their default value (usually 0 or -1)&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::setupGraphical()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Sets up the graphical display for the city&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::kill&lt;br /&gt;
|bool bUpdatePlotGroups&lt;br /&gt;
|Void&lt;br /&gt;
|Destroys the city, called when the city is razed.&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::doTurn()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Called each turn by CvGame. Does all of the standard actions a city experiences, growth, religion spread, Great People, Production... etc..&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::isCitySelected()&lt;br /&gt;
|None&lt;br /&gt;
|Boolean&lt;br /&gt;
|Called when the city is selected in-game&lt;br /&gt;
|-&lt;br /&gt;
!dCvCity::canBeSelected()&lt;br /&gt;
|None&lt;br /&gt;
|Boolean&lt;br /&gt;
|Called to see if the active team member can select the city in question or not. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Civ4_SDK_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvCity&amp;diff=1305</id>
		<title>CvCity</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvCity&amp;diff=1305"/>
		<updated>2009-12-23T14:58:53Z</updated>

		<summary type="html">&lt;p&gt;TC01: There was already an incomplete notice at the top of the page...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CvCity controls everything that occurs in each city in the game. Everything from Religion spread, Meltdowns, and city growth are controlled here.&lt;br /&gt;
&lt;br /&gt;
The SDK files are written in the C++ programming language.  They can be edited in a text editor such as notepad or in a programming editor like Microsoft&#039;s Visual Studio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders. All these functions are in the class CvCity.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Return Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::CvCity()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Initializes and creates references for the arrays for each city ID&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::~CvCity()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Clears the arrays of all data and size&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::init()&lt;br /&gt;
|int iID, PlayerTypes eOwner, int iX, int iY, bool bBumpUnits, bool bUpdatePlotGroups&lt;br /&gt;
|Void&lt;br /&gt;
|Begins the initial city setup, finds the plot the city is located on, updates the city&#039;s culture, line of sight, destroys any features the city is built on top of, adds a road underneath the city, adds any initial free buildings, etc...&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::uninit()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Clears all the arrays of size and data, for when the game is shutting down, or the city is destroyed.&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::reset()&lt;br /&gt;
|int iID, PlayerTypes eOwner, int iX, int iY, bool bConstructorCall&lt;br /&gt;
|Void&lt;br /&gt;
|Initializes all variables and arrays to their default value (usually 0 or -1)&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::setupGraphical()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Sets up the graphical display for the city&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::kill&lt;br /&gt;
|bool bUpdatePlotGroups&lt;br /&gt;
|Void&lt;br /&gt;
|Destroys the city, called when the city is razed.&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::doTurn()&lt;br /&gt;
|None&lt;br /&gt;
|Void&lt;br /&gt;
|Called each turn by CvGame. Does all of the standard actions a city experiences, growth, religion spread, Great People, Production... etc..&lt;br /&gt;
|-&lt;br /&gt;
!CvCity::isCitySelected()&lt;br /&gt;
|None&lt;br /&gt;
|Boolean&lt;br /&gt;
|Called when the city is selected in-game&lt;br /&gt;
|-&lt;br /&gt;
!dCvCity::canBeSelected()&lt;br /&gt;
|None&lt;br /&gt;
|Boolean&lt;br /&gt;
|Called to see if the active team member can select the city in question or not. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Civ4_SDK_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=1298</id>
		<title>Civ4 Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=1298"/>
		<updated>2009-12-11T11:53:14Z</updated>

		<summary type="html">&lt;p&gt;TC01: Restoring older article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=262402 How To Create a Mod (Video Demo)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=173061 How To Design a Mod]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=187699 How To Get Your Mod To Load Faster]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=229557 A Modder&#039;s Guide to Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=168876 How To Add Custom Sounds]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=161442 How To Change the Movies]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=191978 How To Add an Intro Movie]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230567 Guide to Event Modding]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=236727 Random Events List] (Reference)&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=175005 How To Isolate Crashes]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=268759 Non-Random Events in Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=7233336 Multiplayer Compatability Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=132476 The Modder&#039;s Guide to Civ4]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=331321 How to Merge Mods]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=340885 Inno Install Script Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Graphics Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183568 Skinning For Beginners]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=153584 How To Skin and Add Resources and Improvements]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=5339402#post5339402 Create Noshader Units from Units With Shaders]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=167335 How To Import a Custom Model (Blender)]&lt;br /&gt;
* NifViewer Tutorial: [http://forums.civfanatics.com/showthread.php?t=163585 Part 1], [http://forums.civfanatics.com/showthread.php?t=165689 Part 2], [http://forums.civfanatics.com/showthread.php?t=176106 Part 3]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=214207 3ds Max Importing/Exporting]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=179747 Merge Animations With Your Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=184327 How to Create Units with 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=182779 3ds Max Unit Creation Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=177468 Import NIF File into 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=162118 Getting Your Units Into Civilization IV]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=171934 How To Make .dds Textures for 3ds Max Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=240956 Damage States for Custom Units (3ds Max)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=181119 How To Edit GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=278946 How To Fix GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=150275 How To Create Non-Distorted Flags]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=237832 How To Make Units Use Different Effects]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183742 How To Import/Modify/Export Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230458 How To Create Shaded Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=267233 How To Create Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304100 Working with GameFont.tga in Photoshop]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=305606 Nifskope]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=312613 Modifying the Visibility of Weapons/Unit Animations]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=271331 Making Minor Changes to Unit Animation without 3DS Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=325606 Adding Action Sounds to Unit Animations]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=332014 The Cheat&#039;s Guide to Making Units]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving XML ==&lt;br /&gt;
* For tutorials on how to use XML, see [[Civ4 XML Reference|the XML section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=148507 How To Add a Civilization]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=139721 How To Add New Units]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=176460 Adding Units to Civilizations in 6 Easy Steps]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=188708 How To Add a New Building]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=138779 How To Add a Civic]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304685 How To Add Diplomacy Text to a Leaderhead]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=234970 How To Add a Civ/Unit/Building in BtS (Modular XML Loading)]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving Python ==&lt;br /&gt;
* For tutorials on how to use Python, see [[Civ4 Python|the Python section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183126 How To Add Popups]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=142169 How To Save and Load Data in Your Mod]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving the SDK ==&lt;br /&gt;
* For tutorials on how to use the SDK, see [[Civ4 SDK|the SDK section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=166935 Adding New XML Values]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183339 Adding New Missions For Units]&lt;br /&gt;
* [[How To Change the Maximum Number of Players]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Template:Civ4_XML_Files&amp;diff=1297</id>
		<title>Template:Civ4 XML Files</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Template:Civ4_XML_Files&amp;diff=1297"/>
		<updated>2009-12-11T11:52:46Z</updated>

		<summary type="html">&lt;p&gt;TC01: Restoring older article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: #dcdce7; border: 1px solid #dcdce7; border-radius: 20px; -moz-border-radius: 20px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #bebed1; border-radius: 20px; -moz-border-radius: 20px; padding: 2px;&amp;quot; |&lt;br /&gt;
{| class=&amp;quot;toccolours&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;text-align: center; line-height: 19px; border: 3px solid #88a; border-radius: 20px; -moz-border-radius: 20px; padding: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;padding-bottom: 1px; -moz-padding-start: 20px; -moz-padding-end: 20px;&amp;quot; | &amp;lt;div style=&amp;quot;background: #ccf; border-radius: 15px 15px 0px 0px; -moz-border-radius: 15px 15px 0px 0px; padding: 2px 15px;&amp;quot;&amp;gt;[[Civ4_XML_Reference|Civ4 XML Files]]&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; border-radius-topleft: 10px; -moz-border-radius-topleft: 10px; padding: 2px 15px;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; border-radius-topright: 10px; -moz-border-radius-topright: 10px; padding: 2px 10px;&amp;quot; | &lt;br /&gt;
[[GlobalDefines]] • [[GlobalDefinesAlt]] • [[GlobalTypes]] • [[PythonCallbackDefines]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Art:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4ArtDefines_Bonus]] • [[Civ4ArtDefines_Building]] • [[Civ4ArtDefines_Civilization]] • [[Civ4ArtDefines_Feature]] • [[Civ4ArtDefines_Improvement]] • [[Civ4ArtDefines_Interface]] • [[Civ4ArtDefines_Leaderhead]] • [[Civ4ArtDefines_Misc]] • [[Civ4ArtDefines_Movie]] • [[Civ4ArtDefines_Terrain]] • [[Civ4ArtDefines_Unit]] • &#039;&#039;[[Civ4MainMenus]]&#039;&#039; • [[Civ4RiverModelInfos]] • [[Civ4RouteModelInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Audio; Buildings:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Audio2DScripts]] • [[Audio3DScripts]] • [[AudioDefines]] • [[AudioSoundscapeScripts]] • [[Civ4BuildingClassInfos]] • [[Civ4BuildingInfos]] • [[Civ4CityLSystem]] • [[Civ4PlotLSystem]] • [[Civ4SpecialBuildingInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | BasicInfos:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
&#039;&#039;[[Civ4AttitudeInfos]]&#039;&#039; • [[Civ4BasicInfos]] • &#039;&#039;[[Civ4CalendarInfos]]&#039;&#039; • &#039;&#039;[[Civ4CityTabInfos]]&#039;&#039; • &#039;&#039;[[Civ4DenialInfos]]&#039;&#039; • &#039;&#039;[[Civ4DomainInfos]]&#039;&#039; • &#039;&#039;[[Civ4InvisibleInfos]]&#039;&#039; • &#039;&#039;[[Civ4MemoryInfos]]&#039;&#039; • &#039;&#039;[[Civ4MonthInfos]]&#039;&#039; • &#039;&#039;[[Civ4NewConceptInfos]]&#039;&#039; • &#039;&#039;[[Civ4SeasonInfos]]&#039;&#039; • &#039;&#039;[[Civ4UnitAIInfos]]&#039;&#039; • &#039;&#039;[[Civ4UnitCombatInfos]]&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Civilizations; Events:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4CivilizationInfos]] • [[Civ4LeaderHeadInfos]] • [[Civ4TraitInfos]] • [[Civ4UnitArtStyleTypeInfos]] • &#039;&#039;[[Civ4EventInfos]]&#039;&#039; • &#039;&#039;[[Civ4EventTriggerInfos]]&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | GameInfo:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4CivicInfos]] • [[Civ4CivicOptionInfos]] • [[Civ4ClimateInfo]] • [[Civ4CommerceInfo]] • &#039;&#039;[[Civ4CorporationInfo]]&#039;&#039; • [[Civ4CultureLevelInfo]] • [[Civ4CursorInfo]] • [[Civ4DiplomacyInfos]] • [[Civ4EmphasizeInfos]] • &#039;&#039;[[Civ4EspionageMissionInfo]]&#039;&#039; • [[Civ4EraInfos]] • [[Civ4ForceControlInfos]] • [[Civ4GameOptionInfos]] • [[Civ4GameSpeedInfo]] • [[Civ4GoodyInfo]] • [[Civ4GraphicOptionInfos]] • [[Civ4HandicapInfo]] • [[Civ4Hints]] • [[Civ4MPOptionInfos]] • [[Civ4PlayerOptionInfos]] • [[Civ4ProcessInfo]] • [[Civ4ReligionInfo]] • [[Civ4SeaLevelInfo]] • [[Civ4SpecialistInfos]] • [[Civ4TurnTimerInfo]] • [[Civ4UpKeepInfo]] • [[Civ4VictoryInfo]] • [[Civ4VoteInfo]] • &#039;&#039;[[Civ4VoteSourceInfos]]&#039;&#039; • [[Civ4WorldInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Interface:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4AdvisorInfos]] • [[Civ4CameraInfos]] • [[Civ4ColorVals]] • [[Civ4InterfaceModeInfos]] • [[Civ4PlayerColorInfos]] • &#039;&#039;[[Civ4SlideShowRandomInfos]]&#039;&#039; • &#039;&#039;[[Civ4SpaceShipInfos]]&#039;&#039; • [[Civ4ThroneRoomeInfos]] • &#039;&#039;[[Civ4ThroneRoomCameraInfos]]&#039;&#039; • [[Civ4ThroneRoomStyleInfos]] • [[Civ4WorldPickerInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Misc:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4AttachableInfos]] • &#039;&#039;[[Civ4CameraOverlayInfos]]&#039;&#039; • [[Civ4DetailManager]] • [[Civ4EffectInfos]] • [[Civ4QuestInfos]] • [[Civ4RiverInfos]] • [[Civ4RouteInfos]] • &#039;&#039;[[Civ4TerrainPlainInfos]]&#039;&#039; • [[Civ4TutorialInfos]] • [[Civ4WaterPlaneInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Terrain:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4BonusClassInfos]] • [[Civ4BonusInfos]] • [[Civ4FeatureInfos]] • [[Civ4ImprovementInfos]] • [[Civ4SymbolMeshPaths]] • [[Civ4TerrainInfos]] • [[Civ4TerrainSettings]] • [[Civ4YieldInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Units:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4AnimationInfos]] • &#039;&#039;[[Civ4AnimationPathInfos]]&#039;&#039; • [[Civ4AutomateInfos]] • [[Civ4BuildInfos]] • [[Civ4CommandInfos]] • [[Civ4ControlInfos]] • &#039;&#039;[[Civ4EntityEventInfos]]&#039;&#039; • [[Civ4FormationInfos]] • [[Civ4MissionInfos]] • [[Civ4PromotionInfos]] • [[Civ4SpecialUnitInfos]] • [[Civ4UnitClassInfos]] • [[Civ4UnitInfos]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Other:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Civ4TechInfos]] • [[Format_for_new_XML_pages|XML Page Format]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; border-radius-bottomleft: 10px; -moz-border-radius-bottomleft: 10px; padding: 2px 15px;&amp;quot; | [[Schema Files|Schemas]]:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; border-radius-bottomright: 10px; -moz-border-radius-bottomright: 0px; padding: 2px 10px;&amp;quot; | &lt;br /&gt;
[[Civ4GlobalDefinesSchema]] • [[Civ4GlobalTypesSchema]] • [[Civ4ArtDefinesSchema]] • [[AudioDefinesSchema]] • [[AudioScriptSchema]] • [[Civ4BasicInfoSchema]] • [[Civ4BuildingSchema]] • [[Civ4LSystemSchema]] • [[Civ4CivilizationSchema]] • &#039;&#039;[[Civ4EventSchema]]&#039;&#039; • [[Civ4GameInfoSchema]] • [[Civ4InterfaceSchema]] • [[Civ4MiscSchema]] • [[Civ4TutorialSchema]] • [[Civ4DetailManagerSchema]] • [[Civ4TechnologiesSchema]] • [[Civ4TerrainSchema]] • [[Civ4FormationSchema]] • [[Civ4UnitSchema]]&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;padding-top: 1px; -moz-padding-start: 0px; -moz-padding-end: 0px;&amp;quot; | &amp;lt;div style=&amp;quot;font-weight:normal;background: #e6e6ff; border-radius: 0px 0px 15px 15px; -moz-border-radius: 0px 0px 15px 15px; padding: 2px 15px;&amp;quot;&amp;gt;&#039;&#039;Italics: Beyond the Sword only&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
|} &amp;lt;includeonly&amp;gt;[[Category:Civ4 XML Files]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Based on a template from [http://bulbapedia.bulbagarden.net Bulbapedia].[[Category:Reference templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventInterface&amp;diff=1236</id>
		<title>CvEventInterface</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventInterface&amp;diff=1236"/>
		<updated>2009-12-09T22:16:50Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;The &amp;#039;&amp;#039;&amp;#039;CvEventInterface&amp;#039;&amp;#039;&amp;#039; file calls the event functions in the Event Manager. By editing this file, it becomes possible to create custom event managers. As w...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventInterface&#039;&#039;&#039; file calls the event functions in the [[CvEventManager|Event Manager]]. By editing this file, it becomes possible to create custom event managers. As with all interface files, it should not be imported, the function names should not be changed, and the functions in this file should not be placed into a class.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE. &lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders. These four functions are not in any class.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def getEventManager&lt;br /&gt;
|(No paramaters)&lt;br /&gt;
|Gets the event manager file (normally CvEventManager)&lt;br /&gt;
|-&lt;br /&gt;
!def onEvent&lt;br /&gt;
|argsList&lt;br /&gt;
|Called when a gave event happens and calls the event manager&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent&lt;br /&gt;
|argsList(context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies events from the event manager&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent&lt;br /&gt;
|context, argsList=-1&lt;br /&gt;
|Begins an event in the event manager&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do in this file. While the four functions themselves should not be altered, you can add a custom event manager to the game by editing the top of the file, above the functions.&lt;br /&gt;
&lt;br /&gt;
  import CvEventManager&lt;br /&gt;
  from CvPythonExtensions import *&lt;br /&gt;
  &lt;br /&gt;
  normalEventManager = CvEventManager.CvEventManager()&lt;br /&gt;
&lt;br /&gt;
If you create and then import a &amp;quot;CvCustomEventManager&amp;quot; file and then make normalEventManager point to that instead, the game will not read CvEventManager as the event manager but instead your custom file, like so.&lt;br /&gt;
&lt;br /&gt;
  import CvEventManager&lt;br /&gt;
  from CvPythonExtensions import *&lt;br /&gt;
  &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;import CvCustomEventManager&amp;lt;/font color&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  normalEventManager = &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;CvCustomEventManager.CvCustomEventManager()&amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=1235</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=1235"/>
		<updated>2009-12-09T21:22:27Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring. Some of the functions in this file are disabled in Beyond the Sword with [[PythonCallbackDefines]].xml- for a list of which functions, see that page.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders. All these functions are in the class CvEventManager.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_()&lt;br /&gt;
|self&lt;br /&gt;
|Initializes variables in file&lt;br /&gt;
|-&lt;br /&gt;
!def handleEvent()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Event Manager entry point&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent()&lt;br /&gt;
|self, context, argsList=-1&lt;br /&gt;
|Begins an event&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent()&lt;br /&gt;
|self, argsList (context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies the effects of an event&lt;br /&gt;
|-&lt;br /&gt;
!def reportEvent()&lt;br /&gt;
|self, entry, context, argsList&lt;br /&gt;
|Records an event to Events.log&lt;br /&gt;
|-&lt;br /&gt;
!def onKdbEvent()&lt;br /&gt;
|self, argsList (eventType, key, mx, my, px, py)&lt;br /&gt;
|Handles the pressing of a key&lt;br /&gt;
|-&lt;br /&gt;
!def onModNetMessage()&lt;br /&gt;
|self, argsList (iData1, iData2, iData3, iData4, iData5)&lt;br /&gt;
|Called whenever CyMessageControl().sendModNetMessage is called&lt;br /&gt;
|-&lt;br /&gt;
!def onInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called whenever Civilization starts up&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogCalc()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogHit()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementBuilt()&lt;br /&gt;
|self, argsList (iImprovement, iX, iY)&lt;br /&gt;
|Called when an improvement is built&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementDestroyed()&lt;br /&gt;
|self, argsList (iImprovement, iOwner, iX, iY)&lt;br /&gt;
|Called when an improvement is destroyed&lt;br /&gt;
|-&lt;br /&gt;
!def onRouteBuilt()&lt;br /&gt;
|self, argsList (iRoute, iX, iY)&lt;br /&gt;
|Called when a route is built&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotRevealed()&lt;br /&gt;
|self, argsList (pPlot, iTeam)&lt;br /&gt;
|Called when a plot is revealed to a team&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotFeatureRemoved()&lt;br /&gt;
|self, argsList (pPlot, iFeatureType, pCity)&lt;br /&gt;
|Called when a feature is removed on a plot&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotPicked()&lt;br /&gt;
|self, argsList (pPlot)&lt;br /&gt;
|Called when a plot is picked&lt;br /&gt;
|-&lt;br /&gt;
!def onNukeExplosion()&lt;br /&gt;
|self, argsList (pPlot, pNukeUnit)&lt;br /&gt;
|Called when a nuke explodes or a meltdown occurs&lt;br /&gt;
|-&lt;br /&gt;
!def onGotoPlotSet()&lt;br /&gt;
|self, argsList (pPlot, iPlayer)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onBuildingBuilt()&lt;br /&gt;
|self, argsList (pCity, iBuildingType)&lt;br /&gt;
|Called when a building is built&lt;br /&gt;
|-&lt;br /&gt;
!def onProjectBuilt()&lt;br /&gt;
|self, argsList (pCity, iProjectType)&lt;br /&gt;
|Called when a project is completed&lt;br /&gt;
|-&lt;br /&gt;
!def onSelectionGroupPushMission()&lt;br /&gt;
|self, argsList (eOwner, eMission, iNumUnits, listUnitIDs)&lt;br /&gt;
|Called when a mission is pushed for a unit or group of units&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitMove()&lt;br /&gt;
|self, argsList (pPlot, pUnit, pOldPlot)&lt;br /&gt;
|Called when a unit moves onto a new plot&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSetXY()&lt;br /&gt;
|self, argsList (pPlot, pUnit)&lt;br /&gt;
|Called when a unit&#039;s coords are set manually&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitCreated()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is created&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuilt()&lt;br /&gt;
|self, argsList (city, unit, player)&lt;br /&gt;
|Called when a unit is built in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitKilled()&lt;br /&gt;
|self, argsList (unit, iAttacker)&lt;br /&gt;
|Called when a unit is killed by another unit&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitLost()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit dies&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPromoted()&lt;br /&gt;
|self, argsList (pUnit, iPromotion)&lt;br /&gt;
|Called when a unit is promoted&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSelected()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is selected&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitRename()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is renamed&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPillage()&lt;br /&gt;
|self, argsList(pUnit, iImprovement, iRoute, iOwner)&lt;br /&gt;
|Called when a unit pillages an improvement or route&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSpreadReligionAttempt()&lt;br /&gt;
|self, argsList(pUnit, iReligion, bSuccess)&lt;br /&gt;
|Called when a unit attempts to spread a religion to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitGifted()&lt;br /&gt;
|self, argsList(pUnit, iGiftingPlayer, pPlotLocation)&lt;br /&gt;
|Called when a unit is gifted from a player to another&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuildImprovement()&lt;br /&gt;
|self, argsList(pUnit, iBuild, bFinished)&lt;br /&gt;
|Called when a unit begins to build an improvement&lt;br /&gt;
|-&lt;br /&gt;
!def onGoodyReceived()&lt;br /&gt;
|self, argsList(iPlayer, pPlot, pUnit, iGoodyType)&lt;br /&gt;
|Called when a unit gets something at a goody hut&lt;br /&gt;
|-&lt;br /&gt;
!def onGreatPersonBorn()&lt;br /&gt;
|self, argsList(pUnit, iPlayer, pCity)&lt;br /&gt;
|Called when a Great Person is born in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onTechAcquired()&lt;br /&gt;
|self, argsList(iTechType, iTeam, iPlayer, bAnnounce)&lt;br /&gt;
|Called when a player acquires a tech&lt;br /&gt;
|-&lt;br /&gt;
!def onTechSelected()&lt;br /&gt;
|self, argsList(iTechType, iPlayer)&lt;br /&gt;
|Called when a player selects a tech to research&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionFounded()&lt;br /&gt;
|self, argsList(iReligion, iFounder)&lt;br /&gt;
|Called when a player founds a religion&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionSpread()&lt;br /&gt;
|self, argsList(iReligion, iOwner, pSpreadCity)&lt;br /&gt;
|Called when a religion spreads to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionRemove()&lt;br /&gt;
|self, argsList(iReligion, iOwner, pRemoveCity)&lt;br /&gt;
|Called when a religion is removed from a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporationFounded()&lt;br /&gt;
|self, argsList(iCorporation, iFounder)&lt;br /&gt;
|Called when a player founds a corporation&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporatationSpread()&lt;br /&gt;
|self, argsList(iCorporation, iOwner, pSpreadCity)&lt;br /&gt;
|Called when a corporation spreads to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporationRemove()&lt;br /&gt;
|self, argsList(iCorporation, iOwner, pRemoveCity)&lt;br /&gt;
|Called when a corporation is removed from a city&lt;br /&gt;
|-&lt;br /&gt;
!def onGoldenAge()&lt;br /&gt;
|self, argsList(iPlayer)&lt;br /&gt;
|Called when a player begins a golden age&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGoldenAge()&lt;br /&gt;
|self, argsList(iPlayer)&lt;br /&gt;
|Called when a player ends a golden age&lt;br /&gt;
|-&lt;br /&gt;
!def onChangeWar()&lt;br /&gt;
|self, argsList(bIsWar, iTeam, iRivalTeam)&lt;br /&gt;
|Called when either war or peace is declared between two teams&lt;br /&gt;
|-&lt;br /&gt;
!def onChat()&lt;br /&gt;
|self, argsList(chatMessage)&lt;br /&gt;
|Called when a chat message is sent&lt;br /&gt;
|-&lt;br /&gt;
!def onSetPlayerAlive()&lt;br /&gt;
|self, argsList(iPlayerID, bNewValue)&lt;br /&gt;
|Called when a player&#039;s status is set to &amp;quot;alive&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!def onPlayerChangeStateReligion&lt;br /&gt;
|self, argsList(iPlayer, iNewReligion, iOldReligion)&lt;br /&gt;
|Called when a player changes the state religion&lt;br /&gt;
|-&lt;br /&gt;
!def onPlayerGoldTrade&lt;br /&gt;
|self, argsList(iFromPlayer, iToPlayer, iGoldAmount)&lt;br /&gt;
|Called when a player trades gold with another player&lt;br /&gt;
|-&lt;br /&gt;
!def onCityBuilt&lt;br /&gt;
|self, argsList(city)&lt;br /&gt;
|Called when a player builds a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCityRazed&lt;br /&gt;
|self, argsList(city, iPlayer)&lt;br /&gt;
|Called when a player razes a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCityAcquired&lt;br /&gt;
|self, argsList(iPreviousOwner, iNewOwner, pCity, bConquest, bTrade)&lt;br /&gt;
|Called when a player acquires a city through any means&lt;br /&gt;
|-&lt;br /&gt;
!def onCityAcquiredAndKept&lt;br /&gt;
|self, argsList(iOwner, pCity)&lt;br /&gt;
|Called when a player acquires a city and keeps it&lt;br /&gt;
|-&lt;br /&gt;
!def onCityLost&lt;br /&gt;
|self, argsList(city, player)&lt;br /&gt;
|Called when a player loses a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCultureExpansion&lt;br /&gt;
|self, argsList(pCity, iPlayer)&lt;br /&gt;
|Called when a city&#039;s culture expands&lt;br /&gt;
|-&lt;br /&gt;
!def onCityGrowth&lt;br /&gt;
|self, argsList(pCity, iPlayer)&lt;br /&gt;
|Called when a city grows&lt;br /&gt;
|-&lt;br /&gt;
!def onCityDoTurn&lt;br /&gt;
|self, argsList(pCity, iPlayer)&lt;br /&gt;
|Called every turn for every city&lt;br /&gt;
|-&lt;br /&gt;
!def onCityBuildingUnit&lt;br /&gt;
|self, argsList(pCity, iUnitType)&lt;br /&gt;
|Called when a city begins building a unit&lt;br /&gt;
|-&lt;br /&gt;
!def onCityBuildingBuilding&lt;br /&gt;
|self, argsList(pCity, iBuildingType)&lt;br /&gt;
|Called when a city begins building a building&lt;br /&gt;
|-&lt;br /&gt;
!def onCityRename&lt;br /&gt;
|self, argsList(pCity)&lt;br /&gt;
|Called when a city is renamed&lt;br /&gt;
|-&lt;br /&gt;
!def onCityHurry&lt;br /&gt;
|self, argsList(pCity, iHurryType)&lt;br /&gt;
|Called when a city hurries production&lt;br /&gt;
|-&lt;br /&gt;
!def onVictory&lt;br /&gt;
|self, argsList(iTeam, iVictory)&lt;br /&gt;
|Called when a team wins the game&lt;br /&gt;
|-&lt;br /&gt;
!def onVassalState&lt;br /&gt;
|self, argsList(iMaster, iVassal, bVassal)&lt;br /&gt;
|Called when a team is vassalized or gains independence&lt;br /&gt;
|-&lt;br /&gt;
!def onGameUpdate&lt;br /&gt;
|self, argsList(genericArgs[turnSlice])&lt;br /&gt;
|Called on every &amp;quot;game turn slice&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!def onMouseEvent&lt;br /&gt;
|self, argsList(eventType, mx, my, px, py, interfaceConsumed, screens)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEventCityNameBegin&lt;br /&gt;
|self, city, bRename&lt;br /&gt;
|Creates a popup to name or rename a city&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEventCityNameApply&lt;br /&gt;
|self, playerID, userData(iCityID, bRename), popupReturn&lt;br /&gt;
|Changes the name of a city&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEditCityBegin&lt;br /&gt;
|self, argsList(px, py)&lt;br /&gt;
|Begins the editing of a city in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEditCityApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|The edit city event in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventPlaceObjectBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Begins the place object function in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventPlaceObjectApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|The place object event in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventAwardTechsAndGoldBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|An event that awards gold and technologies&lt;br /&gt;
|-&lt;br /&gt;
!def _eventAwardTechsAndGoldApply&lt;br /&gt;
|self, playerId, netUserData, popupReturn&lt;br /&gt;
|An event that awards gold and technologies&lt;br /&gt;
|-&lt;br /&gt;
!def _eventShowWonderBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Shows the wonder movie after building a wonder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventShowWonderApply&lt;br /&gt;
|self, playerID, netUserData, popupReturn)&lt;br /&gt;
|Shows the wonder movie after building a wonder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEditUnitNameBegin&lt;br /&gt;
|self, argsList(pUnit)&lt;br /&gt;
|Creates a popup to rename a unit&lt;br /&gt;
|-&lt;br /&gt;
!def _eventEditUnitNameApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|The event to let you rename a unit&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBAllPlotsPopupBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|An event that reveals all plots in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBAllPlotsPopupApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|An event that reveals all plots in Worldbuilder&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBLandmarkPopupBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Creates a popup to label a plot with a landmark tag&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBLandmarkPopupApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|Labels a plot with a landmark tag&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBScriptPopupBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBScriptPopupApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBStartYearPopupBegin&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def _eventWBStartYearPopupApply&lt;br /&gt;
|self, playerID, userData, popupReturn&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It causes the &amp;quot;Do you want to change civics&amp;quot; popup to occur.&lt;br /&gt;
&lt;br /&gt;
 	def onEndPlayerTurn(self, argsList):&lt;br /&gt;
 		&#039;Called at the end of a players turn&#039;&lt;br /&gt;
 		iGameTurn, iPlayer = argsList&lt;br /&gt;
 		&lt;br /&gt;
 		if (gc.getGame().getElapsedGameTurns() == 1):&lt;br /&gt;
 			if (gc.getPlayer(iPlayer).isHuman()):&lt;br /&gt;
 				if (gc.getPlayer(iPlayer).canRevolution(0)):&lt;br /&gt;
 					popupInfo = CyPopupInfo()&lt;br /&gt;
 					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)&lt;br /&gt;
 					popupInfo.addPopup(iPlayer)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Category:Civ4_SDK_Files&amp;diff=1232</id>
		<title>Category:Civ4 SDK Files</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Category:Civ4_SDK_Files&amp;diff=1232"/>
		<updated>2009-12-07T23:48:20Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;Category:Civilization 4&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Template:Civ4_SDK_Files&amp;diff=1231</id>
		<title>Template:Civ4 SDK Files</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Template:Civ4_SDK_Files&amp;diff=1231"/>
		<updated>2009-12-07T23:47:20Z</updated>

		<summary type="html">&lt;p&gt;TC01: Again, pointing SDK files created with this template to Civ4 SDK Files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: #dcdce7; border: 1px solid #dcdce7; border-radius: 20px; -moz-border-radius: 20px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #bebed1; border-radius: 20px; -moz-border-radius: 20px; padding: 2px;&amp;quot; |&lt;br /&gt;
{| class=&amp;quot;toccolours&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;text-align: center; line-height: 19px; border: 3px solid #88a; border-radius: 20px; -moz-border-radius: 20px; padding: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;padding-bottom: 1px; -moz-padding-start: 20px; -moz-padding-end: 20px;&amp;quot; | &amp;lt;div style=&amp;quot;background: #ccf; border-radius: 15px 15px 0px 0px; -moz-border-radius: 15px 15px 0px 0px; padding: 2px 15px;&amp;quot;&amp;gt;[[Civ4_SDK|Civ4 SDK Files]]&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|- style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | CvFiles:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[CvArea]] • [[CvArtFileMgr]] • [[CvCity]] • [[CvCityAI]] • [[CvDeal]] • [[CvDefines]] • [[CvDiploParameters]] • [[CvDLLButtonPopup]] • [[CvDLLDataStreamIFaceBase]] • [[CvDLLEngineIFaceBase]] • [[CvDllEntity]] • [[CvDLLEntityIFaceBase]] • [[CvDLLEventReporterIFaceBase]] • [[CvDLLFAStarIFaceBase]] • [[CvDLLFlagEntityIFaceBase]] • [[CvDLLIniParserIFaceBase]] • [[CvDLLInterfaceIFaceBase]] • [[CvDLLPlotBuilderIFaceBase]] • [[CvDLLPython]] • [[CvDLLPythonEvents]] • [[CvDLLPythonIFaceBase]] • [[CvDLLSymbolIFaceBase]] • [[CvDllTranslator]] • [[CvDLLUtilityIFaceBase]] • [[CvDLLWidgetData]] • [[CvDLLXMLIFaceBase]] • [[CvEnums]] • [[CvEventReporter]] • [[CvFractal]] • [[CvGame]] • [[CvGameAI]] • [[CvGameCoreDLL]] • [[CvGameCoreDLLDefNew]] • [[CvGameCoreDLLUndefNew]] • [[CvGameCoreUtils]] • [[CvGameInterface]] • [[CvGameTextMgr]] • [[CvGlobals]] • [[CvHallOfFameInfo]] • [[CvInfos]] • [[CvInfoWater]] • [[CvInitCore]] • [[CvMap]] • [[CvMapGenerator]] • [[CvMessageControl]] • [[CvMessageData]] • [[CvPlayer]] • [[CvPlayerAI]] • [[CvPlot]] • [[CvPlotGroup]] • [[CvPopupInfo]] • [[CvPopupReturn]] • [[CvRandom]] • [[CvReplayInfo]] • [[CvReplayMessage]] • [[CvSelectionGroup]] • [[CvSelectionGroupAI]] • [[CvStatistics]] • [[CvString]] • [[CvStructs]] • [[CvTalkingHeadMessage]] • [[CvTeam]] • [[CvTeamAI]] • [[CvTextScreens]] • [[CvUnit]] • [[CvUnitAI]] • [[CvXMLLoadUtility]] • [[CvXMLLoadUtilityGet]] • [[CvXMLLoadUtilityInit]] • [[CvXMLLoadUtilitySet]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | CyFiles:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[CyArea]] • [[CyAreaInterface]] • [[CyArgsList]] • [[CyArtFileMgr]] • [[CyArtFileMgrInterface]] • [[CyCity]] • [[CyCityInterface1]] • [[CyDeal]] • [[CyEnumsInterface]] • [[CyGame]] • [[CyGameCoreUtils]] • [[CyGameCoreUtilsInterface]] • [[CyGameInterface]] • [[CyGameTextMgr]] • [[CyGameTextMgrInterface]] • [[CyGlobalContext]] • [[CyGlobalContextInterface1]] • [[CyGlobalContextInterface2]] • [[CyGlobalContextInterface3]] • [[CyGlobalContextInterface4]] • [[CyHallOfFameInfo]] • [[CyHallOfFameInterface]] • [[CyInfoInterface1]] • [[CyInfoInterface2]] • [[CyInfoInterface3]] • [[CyMap]] • [[CyMapGenerator]] • [[CyMapGeneratorInterface]] • [[CyMapInterface]] • [[CyMessageControl]] • [[CyMessageControlInterface]] • [[CyPlayer]] • [[CyPlayerInterface1]] • [[CyPlayerInterface2]] • [[CyPlot]] • [[CyPlotInterface1]] • [[CyRandomInterface]] • [[CyReplayInfo]] • [[CySelectionGroup]] • [[CySelectionGroupInterface]] • [[CyStructsInterface1]] • [[CyTeam]] • [[CyTeamInterface]] • [[CyUnit]] • [[CyUnitInterface1]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Other Files:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[_precompile]] • [[AI_Defines]] • [[FAssert]] • [[FAStarNode]] • [[FDataStreamBase]] • [[FDialogTemplate]] • [[FFreeListArray]] • [[FFreeListArrayBase]] • [[FFreeListTrashArray]] • [[FInputDevice]] • [[FProfiler]] • [[FVariableSystem]] • [[LinkedList]] • [[resource]]&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;padding-top: 1px; -moz-padding-start: 0px; -moz-padding-end: 0px;&amp;quot; | &amp;lt;div style=&amp;quot;font-weight:normal;background: #e6e6ff; border-radius: 0px 0px 15px 15px; -moz-border-radius: 0px 0px 15px 15px; padding: 2px 15px;&amp;quot;&amp;gt;&#039;&#039;Note: this file list is for Beyond the Sword 3.19; other versions/patches may have slightly different files.&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
|} &amp;lt;includeonly&amp;gt;[[Category:Civ4 SDK Files]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Based on a template from [http://bulbapedia.bulbagarden.net Bulbapedia].[[Category:Reference templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=1230</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=1230"/>
		<updated>2009-12-07T23:09:13Z</updated>

		<summary type="html">&lt;p&gt;TC01: Adding more info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring. Some of the functions in this file are disabled in Beyond the Sword with [[PythonCallbackDefines]].xml- for a list of which functions, see that page.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_()&lt;br /&gt;
|self&lt;br /&gt;
|Initializes variables in file&lt;br /&gt;
|-&lt;br /&gt;
!def handleEvent()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Event Manager entry point&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent()&lt;br /&gt;
|self, context, argsList=-1&lt;br /&gt;
|Begins an event&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent()&lt;br /&gt;
|self, argsList (context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies the effects of an event&lt;br /&gt;
|-&lt;br /&gt;
!def reportEvent()&lt;br /&gt;
|self, entry, context, argsList&lt;br /&gt;
|Records an event to Events.log&lt;br /&gt;
|-&lt;br /&gt;
!def onKdbEvent()&lt;br /&gt;
|self, argsList (eventType, key, mx, my, px, py)&lt;br /&gt;
|Handles the pressing of a key&lt;br /&gt;
|-&lt;br /&gt;
!def onModNetMessage()&lt;br /&gt;
|self, argsList (iData1, iData2, iData3, iData4, iData5)&lt;br /&gt;
|Called whenever CyMessageControl().sendModNetMessage is called&lt;br /&gt;
|-&lt;br /&gt;
!def onInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called whenever Civilization starts up&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogCalc()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogHit()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementBuilt()&lt;br /&gt;
|self, argsList (iImprovement, iX, iY)&lt;br /&gt;
|Called when an improvement is built&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementDestroyed()&lt;br /&gt;
|self, argsList (iImprovement, iOwner, iX, iY)&lt;br /&gt;
|Called when an improvement is destroyed&lt;br /&gt;
|-&lt;br /&gt;
!def onRouteBuilt()&lt;br /&gt;
|self, argsList (iRoute, iX, iY)&lt;br /&gt;
|Called when a route is built&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotRevealed()&lt;br /&gt;
|self, argsList (pPlot, iTeam)&lt;br /&gt;
|Called when a plot is revealed to a team&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotFeatureRemoved()&lt;br /&gt;
|self, argsList (pPlot, iFeatureType, pCity)&lt;br /&gt;
|Called when a feature is removed on a plot&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotPicked()&lt;br /&gt;
|self, argsList (pPlot)&lt;br /&gt;
|Called when a plot is picked&lt;br /&gt;
|-&lt;br /&gt;
!def onNukeExplosion()&lt;br /&gt;
|self, argsList (pPlot, pNukeUnit)&lt;br /&gt;
|Called when a nuke explodes or a meltdown occurs&lt;br /&gt;
|-&lt;br /&gt;
!def onGotoPlotSet()&lt;br /&gt;
|self, argsList (pPlot, iPlayer)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onBuildingBuilt()&lt;br /&gt;
|self, argsList (pCity, iBuildingType)&lt;br /&gt;
|Called when a building is built&lt;br /&gt;
|-&lt;br /&gt;
!def onProjectBuilt()&lt;br /&gt;
|self, argsList (pCity, iProjectType)&lt;br /&gt;
|Called when a project is completed&lt;br /&gt;
|-&lt;br /&gt;
!def onSelectionGroupPushMission()&lt;br /&gt;
|self, argsList (eOwner, eMission, iNumUnits, listUnitIDs)&lt;br /&gt;
|Called when a mission is pushed for a unit or group of units&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitMove()&lt;br /&gt;
|self, argsList (pPlot, pUnit, pOldPlot)&lt;br /&gt;
|Called when a unit moves onto a new plot&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSetXY()&lt;br /&gt;
|self, argsList (pPlot, pUnit)&lt;br /&gt;
|Called when a unit&#039;s coords are set manually&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitCreated()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is created&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuilt()&lt;br /&gt;
|self, argsList (city, unit, player)&lt;br /&gt;
|Called when a unit is built in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitKilled()&lt;br /&gt;
|self, argsList (unit, iAttacker)&lt;br /&gt;
|Called when a unit is killed by another unit&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitLost()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit dies&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPromoted()&lt;br /&gt;
|self, argsList (pUnit, iPromotion)&lt;br /&gt;
|Called when a unit is promoted&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSelected()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is selected&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitRename()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is renamed&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPillage()&lt;br /&gt;
|self, argsList(pUnit, iImprovement, iRoute, iOwner)&lt;br /&gt;
|Called when a unit pillages an improvement or route&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSpreadReligionAttempt()&lt;br /&gt;
|self, argsList(pUnit, iReligion, bSuccess)&lt;br /&gt;
|Called when a unit attempts to spread a religion to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitGifted()&lt;br /&gt;
|self, argsList(pUnit, iGiftingPlayer, pPlotLocation)&lt;br /&gt;
|Called when a unit is gifted from a player to another&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuildImprovement()&lt;br /&gt;
|self, argsList(pUnit, iBuild, bFinished)&lt;br /&gt;
|Called when a unit begins to build an improvement&lt;br /&gt;
|-&lt;br /&gt;
!def onGoodyReceived()&lt;br /&gt;
|self, argsList(iPlayer, pPlot, pUnit, iGoodyType)&lt;br /&gt;
|Called when a unit gets something at a goody hut&lt;br /&gt;
|-&lt;br /&gt;
!def onGreatPersonBorn()&lt;br /&gt;
|self, argsList(pUnit, iPlayer, pCity)&lt;br /&gt;
|Called when a Great Person is born in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onTechAcquired()&lt;br /&gt;
|self, argsList(iTechType, iTeam, iPlayer, bAnnounce)&lt;br /&gt;
|Called when a player acquires a tech&lt;br /&gt;
|-&lt;br /&gt;
!def onTechSelected()&lt;br /&gt;
|self, argsList(iTechType, iPlayer)&lt;br /&gt;
|Called when a player selects a tech to research&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionFounded()&lt;br /&gt;
|self, argsList(iReligion, iFounder)&lt;br /&gt;
|Called when a player founds a religion&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionSpread()&lt;br /&gt;
|self, argsList(iReligion, iOwner, pSpreadCity)&lt;br /&gt;
|Called when a religion spreads to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onReligionRemove()&lt;br /&gt;
|self, argsList(iReligion, iOwner, pRemoveCity)&lt;br /&gt;
|Called when a religion is removed from a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporationFounded()&lt;br /&gt;
|self, argsList(iCorporation, iFounder)&lt;br /&gt;
|Called when a player founds a corporation&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporatationSpread()&lt;br /&gt;
|self, argsList(iCorporation, iOwner, pSpreadCity)&lt;br /&gt;
|Called when a corporation spreads to a city&lt;br /&gt;
|-&lt;br /&gt;
!def onCorporationRemove()&lt;br /&gt;
|self, argsList(iCorporation, iOwner, pRemoveCity)&lt;br /&gt;
|Called when a corporation is removed from a city&lt;br /&gt;
|-&lt;br /&gt;
!def onGoldenAge()&lt;br /&gt;
|self, argsList(iPlayer)&lt;br /&gt;
|Called when a player begins a golden age&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGoldenAge()&lt;br /&gt;
|self, argsList(iPlayer)&lt;br /&gt;
|Called when a player ends a golden age&lt;br /&gt;
|-&lt;br /&gt;
!def onChangeWar()&lt;br /&gt;
|self, argsList(bIsWar, iTeam, iRivalTeam)&lt;br /&gt;
|Called when either war or peace is declared between two teams&lt;br /&gt;
|-&lt;br /&gt;
!def onChat()&lt;br /&gt;
|self, argsList(chatMessage)&lt;br /&gt;
|Called when a chat message is sent&lt;br /&gt;
|-&lt;br /&gt;
!def onSetPlayerAlive()&lt;br /&gt;
|self, argsList(iPlayerID, bNewValue)&lt;br /&gt;
|Called when a player&#039;s status is set to &amp;quot;alive&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It causes the &amp;quot;Do you want to change civics&amp;quot; popup to occur.&lt;br /&gt;
&lt;br /&gt;
 	def onEndPlayerTurn(self, argsList):&lt;br /&gt;
 		&#039;Called at the end of a players turn&#039;&lt;br /&gt;
 		iGameTurn, iPlayer = argsList&lt;br /&gt;
 		&lt;br /&gt;
 		if (gc.getGame().getElapsedGameTurns() == 1):&lt;br /&gt;
 			if (gc.getPlayer(iPlayer).isHuman()):&lt;br /&gt;
 				if (gc.getPlayer(iPlayer).canRevolution(0)):&lt;br /&gt;
 					popupInfo = CyPopupInfo()&lt;br /&gt;
 					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)&lt;br /&gt;
 					popupInfo.addPopup(iPlayer)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvDawnOfMan&amp;diff=1229</id>
		<title>CvDawnOfMan</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvDawnOfMan&amp;diff=1229"/>
		<updated>2009-12-07T22:05:40Z</updated>

		<summary type="html">&lt;p&gt;TC01: No missing information that I can see.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvDawnOfMan&#039;&#039;&#039; file is a python interface file that controls the appearance of the screen you get after first starting a game, called the &amp;quot;Dawn of Man&amp;quot; screen. It defines the popup screen and everything in it.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE. &lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_&lt;br /&gt;
|self, screenID&lt;br /&gt;
|Initializes variables, including screen dimensions&lt;br /&gt;
|-&lt;br /&gt;
!def interfaceScreen&lt;br /&gt;
|self&lt;br /&gt;
|Creates a popup to display the opening text&lt;br /&gt;
|-&lt;br /&gt;
!def handleInput&lt;br /&gt;
|self, inputClass&lt;br /&gt;
|Called when you get input like a button being clicked&lt;br /&gt;
|-&lt;br /&gt;
!def update&lt;br /&gt;
|self, fDelta&lt;br /&gt;
|Updates the screen (every frame?)&lt;br /&gt;
|-&lt;br /&gt;
!def onClose&lt;br /&gt;
|self&lt;br /&gt;
|Called when you close the screen&lt;br /&gt;
|-&lt;br /&gt;
!def calculateSizesAndPositions&lt;br /&gt;
|self&lt;br /&gt;
|Calculates size and position of screen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It adds your leaderhead art to the screen. &lt;br /&gt;
&lt;br /&gt;
 # Leaderhead graphic&lt;br /&gt;
 szLeaderPanel = &amp;quot;DawnOfManLeaderPanel&amp;quot;&lt;br /&gt;
 screen.addPanel( szLeaderPanel, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, false,&lt;br /&gt;
 	 self.X_LEADER_ICON - 3, self.Y_LEADER_ICON - 5, self.W_LEADER_ICON + 6, self.H_LEADER_ICON + 8, PanelStyles.PANEL_STYLE_DAWNTOP )&lt;br /&gt;
 screen.addLeaderheadGFC(&amp;quot;LeaderHead&amp;quot;, self.player.getLeaderType(), AttitudeTypes.ATTITUDE_PLEASED,&lt;br /&gt;
 	 self.X_LEADER_ICON + 5, self.Y_LEADER_ICON + 5, self.W_LEADER_ICON - 10, self.H_LEADER_ICON - 10, WidgetTypes.WIDGET_GENERAL, -1, -1)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Category:Civ4_Python_Files&amp;diff=1228</id>
		<title>Category:Civ4 Python Files</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Category:Civ4_Python_Files&amp;diff=1228"/>
		<updated>2009-12-07T21:57:18Z</updated>

		<summary type="html">&lt;p&gt;TC01: Oops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Template:Civ4_Python_Files&amp;diff=1227</id>
		<title>Template:Civ4 Python Files</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Template:Civ4_Python_Files&amp;diff=1227"/>
		<updated>2009-12-07T21:55:21Z</updated>

		<summary type="html">&lt;p&gt;TC01: The Python template should not categorize files in the XML Files category, should it?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: #dcdce7; border: 1px solid #dcdce7; border-radius: 20px; -moz-border-radius: 20px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #bebed1; border-radius: 20px; -moz-border-radius: 20px; padding: 2px;&amp;quot; |&lt;br /&gt;
{| class=&amp;quot;toccolours&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;text-align: center; line-height: 19px; border: 3px solid #88a; border-radius: 20px; -moz-border-radius: 20px; padding: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;background: transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;padding-bottom: 1px; -moz-padding-start: 20px; -moz-padding-end: 20px;&amp;quot; | &amp;lt;div style=&amp;quot;background: #ccf; border-radius: 15px 15px 0px 0px; -moz-border-radius: 15px 15px 0px 0px; padding: 2px 15px;&amp;quot;&amp;gt;[[Civ4_Python|Civ4 Python Files]]&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; border-radius-topleft: 10px; -moz-border-radius-topleft: 10px; padding: 2px 15px;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; border-radius-topright: 10px; -moz-border-radius-topright: 10px; padding: 2px 10px;&amp;quot; | &lt;br /&gt;
[[CvAdvisorUtils]] • [[CvCameraControls]] • [[CvDebugTools]] • [[CvDefineEditor]] • [[CvDiplomacy]] • [[CvEventManager]] • [[CvGameUtils]] • [[CvMagGeneratorUtil]] • [[CvPerfTest]] • [[CvQuestManager]] • [[CvScreenUtils]] • [[CvUtil]] • &#039;&#039;[[DomPyHelpers]]&#039;&#039; • [[PyHelpers]] • [[ScreenImput]] • [[vector]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | _DebugTools; PitBoss:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[AudioLogParser]] • [[PbAdmin]] • [[PbWizard]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | EntryPoints:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[CvAppInterface]] • [[CvDebugInterface]] • [[CvDiplomacyInterface]] • [[CvEventInterface]] • [[CvGameInterface]] • &#039;&#039;&#039;[[CvGameInterfaceFile]]&#039;&#039;&#039; • [[CvMapScriptInterface]] • [[CvOptionScreenCallbackInterface]] • [[CvPopupInterface]] • &#039;&#039;[[CvRandomEventInterface]]&#039;&#039; • [[CvScreensInterface]] • [[CvScreenUtilsInterface]] • [[CvTranslator]] • [[CvUnitControlInterface]] • [[CvWBInterface]] • [[PbMain]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | pyHelper; pyUnit; pyWB:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[Popup]] • [[Unit]] • [[UnitEntity]] • [[CvUnitController]] • [[CvWBDesc]] • [[CvWBPopups]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; height=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #ddf; padding: 2px 15px;&amp;quot; | Screens:&lt;br /&gt;
| style=&amp;quot;background: #e6e6ff; padding: 2px 10px;&amp;quot; |&lt;br /&gt;
[[CvAdvisorScreen]] • [[CvCivicsScreen]] • &#039;&#039;[[CvCorporationAdvisor]]&#039;&#039; • [[CvDanQuayle]] • [[CvDawnOfMan]] • [[CvDebugInfoScreen]] • [[CvDomesticAdvisor]] • [[CvEraMovieScreen]] • &#039;&#039;[[CvEspionageAdvisor]]&#039;&#039; • &#039;&#039;[[CvExoticForeignAdvisor]]&#039;&#039; • [[CvFinanceAdvisor]] • [[CvForeignAdvisor]] • [[CvGFCScreen]] • [[CvHallOfFameScreen]] • [[CvInfoScreen]] • [[CvIntroMovieScreen]] • [[CvMainInterface]] • [[CvMilitaryAdvisor]] • [[CvOptionsScreen]] • [[CvPediaBonus]] • [[CvPediaBuilding]] • [[CvPediaCivic]] • [[CvPediaCivilization]] • &#039;&#039;[[CvPediaCorporation]]&#039;&#039; • [[CvPediaFeature]] • [[CvPediaHistory]] • [[CvPediaImprovement]] • [[CvPediaLeader]] • [[CvPediaMain]] • [[CvPediaProject]] • [[CvPediaPromotion]] • [[CvPediaReligion]] • [[CvPediaScreen]] • [[CvPediaSpecialist]] • [[CvPediaTech]] • [[CvPediaTerrain]] • [[CvPediaUnit]] • [[CvPediaUnitChart]] • [[CvRelitonScreen]] • [[CvReplayScreen]] • [[CvScreen]] • [[CvScreenEnums]] • &#039;&#039;[[CvSpaceShipScreen]]&#039;&#039; • [[CvTechChooser]] • [[CvTechSplashScreen]] • [[CvTopCivs]] • [[CvTutorialQuestScreen]] • [[CvUNVictoryScreen]] • [[CvVictoryMovieScreen]] • [[CvVictoryScreen]] • [[CvWonderMovieScreen]] • [[CvWorldBuilderDiplomacyScreen]] • [[CvWorldBuilderScreen]] • &#039;&#039;[[IconGrid]]&#039;&#039; • &#039;&#039;[[TechTree]]&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;font-size: 90%;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;padding-top: 1px; -moz-padding-start: 0px; -moz-padding-end: 0px;&amp;quot; | &amp;lt;div style=&amp;quot;font-weight:normal;background: #e6e6ff; border-radius: 0px 0px 15px 15px; -moz-border-radius: 0px 0px 15px 15px; padding: 2px 15px;&amp;quot;&amp;gt;&#039;&#039;&#039;Bold: Warlords/Beyond the Sword only&#039;&#039;&#039;, &#039;&#039;Italics: Beyond the Sword only&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
|} &amp;lt;includeonly&amp;gt;[[Category:Civ4 Python Files]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Based on a template from [http://bulbapedia.bulbagarden.net Bulbapedia].[[Category:Reference templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=1093</id>
		<title>User:TC01</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=1093"/>
		<updated>2009-10-28T02:01:55Z</updated>

		<summary type="html">&lt;p&gt;TC01: Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m [http://forums.civfanatics.com/member.php?u=165196 TC01] on CFC forums, you can PM me in the link I just gave. I mod, and often when I have time, and thus have many projects and ideas for projects. All for Civilization IV, though. Below follows a list of them.&lt;br /&gt;
&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Fall from Heaven 2&#039;&#039;&#039;&lt;br /&gt;
**Blizzards v1.1 (Available for Fall Further [http://forums.civfanatics.com/showthread.php?t=337440 here]): [http://forums.civfanatics.com/downloads.php?do=file&amp;amp;id=13355 Link]&lt;br /&gt;
**Frozen v0.8 (Available for Fall Further [http://forums.civfanatics.com/showthread.php?t=334381 here]): [http://forums.civfanatics.com/showthread.php?t=331912 Link]&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Final Frontier&#039;&#039;&#039;&lt;br /&gt;
**Final Frontier Worldbuilder v0.9: [http://forums.civfanatics.com/showthread.php?t=335880 Link]&lt;br /&gt;
**Wormholes v1.2 (Available for Star Trek Mod [http://forums.civfanatics.com/showthread.php?t=328114 here]): [http://forums.civfanatics.com/showthread.php?t=330307 Link]&lt;br /&gt;
**Cloaking Devices v1.2 (Only available for Star Trek): [http://forums.civfanatics.com/showthread.php?t=330947 Link]&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Colonization&#039;&#039;&#039;&lt;br /&gt;
**Continents Mapscript: [http://forums.civfanatics.com/showthread.php?t=333396 Link]&lt;br /&gt;
**NorthAfrica Mapscript: [http://forums.civfanatics.com/showthread.php?t=332482 Link]&lt;br /&gt;
**Westward Ho v0.31: [http://forums.civfanatics.com/showthread.php?t=329909 Link]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=1092</id>
		<title>User:TC01</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=1092"/>
		<updated>2009-10-27T00:57:49Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m [http://forums.civfanatics.com/member.php?u=165196 TC01] on CFC forums, you can PM me in the link I just gave. I mod, and often when I have time, and thus have many projects and ideas for projects. All for Civilization IV, though. Below follows a list of them.&lt;br /&gt;
&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Fall from Heaven 2&#039;&#039;&#039;&lt;br /&gt;
**Blizzards v1.0 (Available for Fall Further [http://forums.civfanatics.com/showthread.php?t=337440 here]): [http://forums.civfanatics.com/downloads.php?do=file&amp;amp;id=13355 Link]&lt;br /&gt;
**Frozen v0.8 (Available for Fall Further [http://forums.civfanatics.com/showthread.php?t=334381 here]): [http://forums.civfanatics.com/showthread.php?t=331912 Link]&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Final Frontier&#039;&#039;&#039;&lt;br /&gt;
**Final Frontier Worldbuilder v0.9: [http://forums.civfanatics.com/showthread.php?t=335880 Link]&lt;br /&gt;
**Wormholes v1.2 (Available for Star Trek Mod [http://forums.civfanatics.com/showthread.php?t=328114 here]): [http://forums.civfanatics.com/showthread.php?t=330307 Link]&lt;br /&gt;
**Cloaking Devices v1.2 (Only available for Star Trek): [http://forums.civfanatics.com/showthread.php?t=330947 Link]&lt;br /&gt;
*For &#039;&#039;&#039;Civilization IV: Colonization&#039;&#039;&#039;&lt;br /&gt;
**Continents Mapscript: [http://forums.civfanatics.com/showthread.php?t=333396 Link]&lt;br /&gt;
**NorthAfrica Mapscript: [http://forums.civfanatics.com/showthread.php?t=332482 Link]&lt;br /&gt;
**Westward Ho v0.31: [http://forums.civfanatics.com/showthread.php?t=329909 Link]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Civ4CorporationInfo&amp;diff=848</id>
		<title>Civ4CorporationInfo</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Civ4CorporationInfo&amp;diff=848"/>
		<updated>2009-08-25T21:15:46Z</updated>

		<summary type="html">&lt;p&gt;TC01: Added stuff from template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Civ4CorporationInfos file&#039;&#039;&#039; defines all of the game&#039;s corporations as well as their effects, like providing extra resources and gold.&lt;br /&gt;
&lt;br /&gt;
All tags must be opened and closed; the first is the &amp;quot;open&amp;quot;, the second the &amp;quot;close&amp;quot; tag. If nothing goes inside a &amp;quot;list tag&amp;quot;, then it should just be the opening tag with a &amp;quot;/&amp;quot; before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information.&lt;br /&gt;
Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
===Text===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!BonusProduced&lt;br /&gt;
|This is the resource that the Corporation produces. Can be &amp;quot;NONE&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
!Civilopedia&lt;br /&gt;
|Refers to the TXT_KEY files that keeps the civilopedia information for the Corporation.&lt;br /&gt;
|-&lt;br /&gt;
!Description&lt;br /&gt;
|Refers to the TXT_KEY files that keeps the name of the Corporation.&lt;br /&gt;
|-&lt;br /&gt;
!FreeUnitClass&lt;br /&gt;
|Unknown. Is &amp;quot;NONE&amp;quot; for all corporations.&lt;br /&gt;
|-&lt;br /&gt;
!TechPrereq&lt;br /&gt;
|The Tech that is required to found this Corporation.&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
|Defines the Corporations number.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integers===&lt;br /&gt;
&lt;br /&gt;
All of these tags have a numerical value.  Though it sometimes can be negative, it usually is not.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!iMaintenance&lt;br /&gt;
|The base percent maintenance that the corporation costs. (Default is &amp;quot;100&amp;quot; percent. &amp;quot;0&amp;quot; would make it so that corporation costs no maintenance, &amp;quot;200&amp;quot; would double corporation maintenance.)&lt;br /&gt;
|-&lt;br /&gt;
!iSpreadCost&lt;br /&gt;
|The base cost that a player must pay to spread the Corporation to a new city.&lt;br /&gt;
|-&lt;br /&gt;
!iSpreadFactor&lt;br /&gt;
|Unknown (The rate at which corporations spread?), Is &amp;quot;200&amp;quot; for all Corporations.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lists (Multi-line)===&lt;br /&gt;
&lt;br /&gt;
All List tags consist of an opening/closing tag, which is shown here, and then each entry within it is another tag with the same name as the parent tag, minus the &amp;quot;s&amp;quot; (i.e. singular, rather than plural).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!CommercesProduced&lt;br /&gt;
|This defines the extra commerce that the corporation provides, per resource the corporation consumes, using the iCommerceProduced integer tag. (Ex. 100 = one extra beaker, gold, culture. 25 = .25 extra beakers, gold, culture.)&lt;br /&gt;
|-&lt;br /&gt;
!HeadquarterCommerces&lt;br /&gt;
|This defines the changes in commerce that are given to the founding city in the corporation. The tags affect the increases in beakers, gold, culture per turn that the corporation provides, using the iHeadquarterCommerce integer tag.&lt;br /&gt;
|-&lt;br /&gt;
!PrereqBonuses&lt;br /&gt;
|A city must have at least one of these resources for the city to experience the benefits that the corporation provides. The more of the resources the city has, the more bonuses the corporation provides.&lt;br /&gt;
|-&lt;br /&gt;
!YieldsProduced&lt;br /&gt;
|This defines the extra yields that the corporation provides, per resource the corporation consumes, using the iYieldProduced integer tag. iYieldProduced controls the extra changes in food, hammer, and commerce production in each city with the corporation present. (Ex. 100 = one extra Food, Gold, or Hammer. 25 = .25 extra Food, Gold, or Hammer)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
In the following example of code, please note that there is a specific order of all of the tags.  You &#039;&#039;must&#039;&#039; list the tags in this order for the game to properly interpret your file.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;insert code example from actual XML file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_XML_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=843</id>
		<title>Talk:Civ3 Expanded Editor Guide</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=843"/>
		<updated>2009-08-22T20:36:40Z</updated>

		<summary type="html">&lt;p&gt;TC01: Undo revision 841 by 194.44.240.74 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=840</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=840"/>
		<updated>2009-08-22T01:11:44Z</updated>

		<summary type="html">&lt;p&gt;TC01: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring. Some of the functions in this file are disabled in Beyond the Sword with [[PythonCallbackDefines]].xml.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information.&lt;br /&gt;
Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_()&lt;br /&gt;
|self&lt;br /&gt;
|Initializes variables in file&lt;br /&gt;
|-&lt;br /&gt;
!def handleEvent()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Event Manager entry point&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent()&lt;br /&gt;
|self, context, argsList=-1&lt;br /&gt;
|Begins an event&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent()&lt;br /&gt;
|self, argsList (context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies the effects of an event&lt;br /&gt;
|-&lt;br /&gt;
!def reportEvent()&lt;br /&gt;
|self, entry, context, argsList&lt;br /&gt;
|Records an event to Events.log&lt;br /&gt;
|-&lt;br /&gt;
!def onKdbEvent()&lt;br /&gt;
|self, argsList (eventType, key, mx, my, px, py)&lt;br /&gt;
|Handles the pressing of a key&lt;br /&gt;
|-&lt;br /&gt;
!def onModNetMessage()&lt;br /&gt;
|self, argsList (iData1, iData2, iData3, iData4, iData5)&lt;br /&gt;
|Called whenever CyMessageControl().sendModNetMessage is called&lt;br /&gt;
|-&lt;br /&gt;
!def onInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called whenever Civilization starts up&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogCalc()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogHit()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementBuilt()&lt;br /&gt;
|self, argsList (iImprovement, iX, iY)&lt;br /&gt;
|Called when an improvement is built&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementDestroyed()&lt;br /&gt;
|self, argsList (iImprovement, iOwner, iX, iY)&lt;br /&gt;
|Called when an improvement is destroyed&lt;br /&gt;
|-&lt;br /&gt;
!def onRouteBuilt()&lt;br /&gt;
|self, argsList (iRoute, iX, iY)&lt;br /&gt;
|Called when a route is built&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotRevealed()&lt;br /&gt;
|self, argsList (pPlot, iTeam)&lt;br /&gt;
|Called when a plot is revealed to a team&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotFeatureRemoved()&lt;br /&gt;
|self, argsList (pPlot, iFeatureType, pCity)&lt;br /&gt;
|Called when a feature is removed on a plot&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotPicked()&lt;br /&gt;
|self, argsList (pPlot)&lt;br /&gt;
|Called when a plot is picked&lt;br /&gt;
|-&lt;br /&gt;
!def onNukeExplosion()&lt;br /&gt;
|self, argsList (pPlot, pNukeUnit)&lt;br /&gt;
|Called when a nuke explodes or a meltdown occurs&lt;br /&gt;
|-&lt;br /&gt;
!def onGotoPlotSet()&lt;br /&gt;
|self, argsList (pPlot, iPlayer)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onBuildingBuilt()&lt;br /&gt;
|self, argsList (pCity, iBuildingType)&lt;br /&gt;
|Called when a building is built&lt;br /&gt;
|-&lt;br /&gt;
!def onProjectBuilt()&lt;br /&gt;
|self, argsList (pCity, iProjectType)&lt;br /&gt;
|Called when a project is completed&lt;br /&gt;
|-&lt;br /&gt;
!def onSelectionGroupPushMission()&lt;br /&gt;
|self, argsList (eOwner, eMission, iNumUnits, listUnitIDs)&lt;br /&gt;
|Called when a mission is pushed for a unit or group of units&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitMove()&lt;br /&gt;
|self, argsList (pPlot, pUnit, pOldPlot)&lt;br /&gt;
|Called when a unit moves onto a new plot&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSetXY()&lt;br /&gt;
|self, argsList (pPlot, pUnit)&lt;br /&gt;
|Called when a unit&#039;s coords are set manually&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitCreated()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is created&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuilt()&lt;br /&gt;
|self, argsList (city, unit, player)&lt;br /&gt;
|Called when a unit is built in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitKilled()&lt;br /&gt;
|self, argsList (unit, iAttacker)&lt;br /&gt;
|Called when a unit is killed by another unit&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitLost()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit dies&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPromoted()&lt;br /&gt;
|self, argsList (pUnit, iPromotion)&lt;br /&gt;
|Called when a unit is promoted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It causes the &amp;quot;Do you want to change civics&amp;quot; popup to occur.&lt;br /&gt;
&lt;br /&gt;
 	def onEndPlayerTurn(self, argsList):&lt;br /&gt;
 		&#039;Called at the end of a players turn&#039;&lt;br /&gt;
 		iGameTurn, iPlayer = argsList&lt;br /&gt;
 		&lt;br /&gt;
 		if (gc.getGame().getElapsedGameTurns() == 1):&lt;br /&gt;
 			if (gc.getPlayer(iPlayer).isHuman()):&lt;br /&gt;
 				if (gc.getPlayer(iPlayer).canRevolution(0)):&lt;br /&gt;
 					popupInfo = CyPopupInfo()&lt;br /&gt;
 					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)&lt;br /&gt;
 					popupInfo.addPopup(iPlayer)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=839</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=839"/>
		<updated>2009-08-22T01:09:57Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring. Some of the functions in this file are disabled in Beyond the Sword with [[PythonCallbackDefines]].xml.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information.&lt;br /&gt;
Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_()&lt;br /&gt;
|self&lt;br /&gt;
|Initializes variables in file&lt;br /&gt;
|-&lt;br /&gt;
!def handleEvent()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Event Manager entry point&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent()&lt;br /&gt;
|self, context, argsList=-1&lt;br /&gt;
|Begins an event&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent()&lt;br /&gt;
|self, argsList (context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies the effects of an event&lt;br /&gt;
|-&lt;br /&gt;
!def reportEvent()&lt;br /&gt;
|self, entry, context, argsList&lt;br /&gt;
|Records an event to Events.log&lt;br /&gt;
|-&lt;br /&gt;
!def onKdbEvent()&lt;br /&gt;
|self, argsList (eventType, key, mx, my, px, py)&lt;br /&gt;
|Handles the pressing of a key&lt;br /&gt;
|-&lt;br /&gt;
!def onModNetMessage()&lt;br /&gt;
|self, argsList (iData1, iData2, iData3, iData4, iData5)&lt;br /&gt;
|Called whenever CyMessageControl().sendModNetMessage is called&lt;br /&gt;
|-&lt;br /&gt;
!def onInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called whenever Civilization starts up&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogCalc()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogHit()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementBuilt()&lt;br /&gt;
|self, argsList (iImprovement, iX, iY)&lt;br /&gt;
|Called when an improvement is built&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementDestroyed()&lt;br /&gt;
|self, argsList (iImprovement, iOwner, iX, iY)&lt;br /&gt;
|Called when an improvement is destroyed&lt;br /&gt;
|-&lt;br /&gt;
!def onRouteBuilt()&lt;br /&gt;
|self, argsList (iRoute, iX, iY)&lt;br /&gt;
|Called when a route is built&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotRevealed()&lt;br /&gt;
|self, argsList (pPlot, iTeam)&lt;br /&gt;
|Called when a plot is revealed to a team&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotFeatureRemoved()&lt;br /&gt;
|self, argsList (pPlot, iFeatureType, pCity)&lt;br /&gt;
|Called when a feature is removed on a plot&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotPicked()&lt;br /&gt;
|self, argsList (pPlot)&lt;br /&gt;
|Called when a plot is picked&lt;br /&gt;
|-&lt;br /&gt;
!def onNukeExplosion()&lt;br /&gt;
|self, argsList (pPlot, pNukeUnit)&lt;br /&gt;
|Called when a nuke explodes or a meltdown occurs&lt;br /&gt;
|-&lt;br /&gt;
!def onGotoPlotSet()&lt;br /&gt;
|self, argsList (pPlot, iPlayer)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onBuildingBuilt()&lt;br /&gt;
|self, argsList (pCity, iBuildingType)&lt;br /&gt;
|Called when a building is built&lt;br /&gt;
|-&lt;br /&gt;
!def onProjectBuilt()&lt;br /&gt;
|self, argsList (pCity, iProjectType)&lt;br /&gt;
|Called when a project is completed&lt;br /&gt;
|-&lt;br /&gt;
!def onSelectionGroupPushMission()&lt;br /&gt;
|self, argsList (eOwner, eMission, iNumUnits, listUnitIDs)&lt;br /&gt;
|Called when a selection group mission occurs (?)&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitMove()&lt;br /&gt;
|self, argsList (pPlot, pUnit, pOldPlot)&lt;br /&gt;
|Called when a unit moves onto a new plot&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSetXY()&lt;br /&gt;
|self, argsList (pPlot, pUnit)&lt;br /&gt;
|Called when a unit&#039;s coords are set manually&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitCreated()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is created&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuilt()&lt;br /&gt;
|self, argsList (city, unit, player)&lt;br /&gt;
|Called when a unit is built in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitKilled()&lt;br /&gt;
|self, argsList (unit, iAttacker)&lt;br /&gt;
|Called when a unit is killed by another unit&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitLost()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit dies&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPromoted()&lt;br /&gt;
|self, argsList (pUnit, iPromotion)&lt;br /&gt;
|Called when a unit is promoted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It causes the &amp;quot;Do you want to change civics&amp;quot; popup to occur.&lt;br /&gt;
&lt;br /&gt;
 	def onEndPlayerTurn(self, argsList):&lt;br /&gt;
 		&#039;Called at the end of a players turn&#039;&lt;br /&gt;
 		iGameTurn, iPlayer = argsList&lt;br /&gt;
 		&lt;br /&gt;
 		if (gc.getGame().getElapsedGameTurns() == 1):&lt;br /&gt;
 			if (gc.getPlayer(iPlayer).isHuman()):&lt;br /&gt;
 				if (gc.getPlayer(iPlayer).canRevolution(0)):&lt;br /&gt;
 					popupInfo = CyPopupInfo()&lt;br /&gt;
 					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)&lt;br /&gt;
 					popupInfo.addPopup(iPlayer)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvDawnOfMan&amp;diff=838</id>
		<title>CvDawnOfMan</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvDawnOfMan&amp;diff=838"/>
		<updated>2009-08-21T23:57:53Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;The &amp;#039;&amp;#039;&amp;#039;CvDawnOfMan&amp;#039;&amp;#039;&amp;#039; file is a python interface file that controls the appearance of the screen you get after first starting a game, called the &amp;quot;Dawn of Man&amp;quot; screen. It defines ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvDawnOfMan&#039;&#039;&#039; file is a python interface file that controls the appearance of the screen you get after first starting a game, called the &amp;quot;Dawn of Man&amp;quot; screen. It defines the popup screen and everything in it.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_&lt;br /&gt;
|self, screenID&lt;br /&gt;
|Initializes variables, including screen dimensions&lt;br /&gt;
|-&lt;br /&gt;
!def interfaceScreen&lt;br /&gt;
|self&lt;br /&gt;
|Creates a popup to display the opening text&lt;br /&gt;
|-&lt;br /&gt;
!def handleInput&lt;br /&gt;
|self, inputClass&lt;br /&gt;
|Called when you get input like a button being clicked&lt;br /&gt;
|-&lt;br /&gt;
!def update&lt;br /&gt;
|self, fDelta&lt;br /&gt;
|Updates the screen (every frame?)&lt;br /&gt;
|-&lt;br /&gt;
!def onClose&lt;br /&gt;
|self&lt;br /&gt;
|Called when you close the screen&lt;br /&gt;
|-&lt;br /&gt;
!def calculateSizesAndPositions&lt;br /&gt;
|self&lt;br /&gt;
|Calculates size and position of screen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. It adds your leaderhead art to the screen. &lt;br /&gt;
&lt;br /&gt;
 # Leaderhead graphic&lt;br /&gt;
 szLeaderPanel = &amp;quot;DawnOfManLeaderPanel&amp;quot;&lt;br /&gt;
 screen.addPanel( szLeaderPanel, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, false,&lt;br /&gt;
 	 self.X_LEADER_ICON - 3, self.Y_LEADER_ICON - 5, self.W_LEADER_ICON + 6, self.H_LEADER_ICON + 8, PanelStyles.PANEL_STYLE_DAWNTOP )&lt;br /&gt;
 screen.addLeaderheadGFC(&amp;quot;LeaderHead&amp;quot;, self.player.getLeaderType(), AttitudeTypes.ATTITUDE_PLEASED,&lt;br /&gt;
 	 self.X_LEADER_ICON + 5, self.Y_LEADER_ICON + 5, self.W_LEADER_ICON - 10, self.H_LEADER_ICON - 10, WidgetTypes.WIDGET_GENERAL, -1, -1)&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:PythonCallbackDefines&amp;diff=837</id>
		<title>Talk:PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:PythonCallbackDefines&amp;diff=837"/>
		<updated>2009-08-21T21:35:23Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We should probably list all of the disabled callbacks here too.  Additionally there are a LOT more of them in the default BtS file than the Final Frontier one, and the ones in the Final Frontier one are used in Final Frontier or were planned to be used, so the file might be modular.&lt;br /&gt;
--[[User:Deanej|Deanej]] 02:16, 17 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:That would be a good idea. I&#039;ve been saying in the Event Manager &amp;quot;(Disabled in BTS with PythonCallbackDefines.xml)&amp;quot;, but it&#039;s probably easier to list them all here.&lt;br /&gt;
&lt;br /&gt;
:Based on a quick examination of the SDK, the &amp;quot;use ______ python callback&amp;quot; variables are all set to false by default (all booleans are). So I think if you don&#039;t have a callback in your mod file, it doesn&#039;t matter, since the callback is auto-set to false. But if you want to use it, you need to have it there. [[User:TC01|TC01]] 21:14, 17 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Okay, so I&#039;ve added the list. But what&#039;s FINISH_TEXT_CALLBACK? It doesn&#039;t seem to appear in any python file. [[User:TC01|TC01]] 21:35, 21 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=836</id>
		<title>PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=836"/>
		<updated>2009-08-21T21:34:31Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;PythonCallbackDefines.xml&#039;&#039;&#039; file was added in the Beyond the Sword expansion to disable some unnecessary callbacks. A callback is a python function called from the SDK, and some callbacks were called often but did not actually do anything. This file allows you to disable or enable the callbacks listed in it.&lt;br /&gt;
&lt;br /&gt;
All tags must be opened and closed; the first is the &amp;quot;open&amp;quot;, the second the &amp;quot;close&amp;quot; tag. If nothing goes inside a &amp;quot;list tag&amp;quot;, then it should just be the opening tag with a &amp;quot;/&amp;quot; before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values. &lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
===Headers===&lt;br /&gt;
&lt;br /&gt;
These tags typically bracket other tags, sometimes the entire file, and are generally used to specify more than one piece of data.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!Civ4Defines&lt;br /&gt;
|Begins and ends the file. Everything must go between these two tags&lt;br /&gt;
|-&lt;br /&gt;
!Define&lt;br /&gt;
|Begins and ends an individual python callback define&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Text===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!DefineName&lt;br /&gt;
|The python callback that is being defined in each entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integers===&lt;br /&gt;
&lt;br /&gt;
All of these tags have a numerical value.  Though it sometimes can be negative, it usually is not.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!iDefineIntValue&lt;br /&gt;
|Defines whether the game will use the callback, acts like a boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Callbacks Disabled==&lt;br /&gt;
&lt;br /&gt;
All of the callbacks listed below are disabled in Beyond the Sword&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Calllback Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Python File&lt;br /&gt;
|-&lt;br /&gt;
!cannotFoundCity&lt;br /&gt;
|[[CvGameUtils]]&lt;br /&gt;
|-&lt;br /&gt;
!canFoundCitiesOnWater&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!isPlayerResearch&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canResearch&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotDoCivic&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canDoCivic&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotConstruct&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canConstruct&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canDeclareWar&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotResearch&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!getUnitCostMod&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!getBuildingCostMod&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!getCityFoundValue&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!getBuildingCostMod&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotHandleAction&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canBuild&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotTrain&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!canTrain&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!unitCannotMoveInto&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!getBuildingCostMod&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!cannotSpreadReligion&lt;br /&gt;
|CvGameUtils&lt;br /&gt;
|-&lt;br /&gt;
!finishText&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
!onUnitSetXY&lt;br /&gt;
|[[CvEventManager]]&lt;br /&gt;
|-&lt;br /&gt;
!onUnitSelected&lt;br /&gt;
|CvEventManager&lt;br /&gt;
|-&lt;br /&gt;
!onUnitSelected&lt;br /&gt;
|CvEventManager&lt;br /&gt;
|-&lt;br /&gt;
!onUpdate&lt;br /&gt;
|CvEventManager&lt;br /&gt;
|-&lt;br /&gt;
!onUnitCreated&lt;br /&gt;
|CvEventManager&lt;br /&gt;
|-&lt;br /&gt;
!onUnitLost&lt;br /&gt;
|CvEventManager&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
In the following example of code, please note that there is a specific order of all of the tags.  You &#039;&#039;must&#039;&#039; list the tags in this order for the game to properly interpret your file.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Define&amp;gt;&lt;br /&gt;
   &amp;lt;DefineName&amp;gt;USE_CAN_TRAIN_CALLBACK&amp;lt;/DefineName&amp;gt;&lt;br /&gt;
   &amp;lt;iDefineIntVal&amp;gt;0&amp;lt;/iDefineIntVal&amp;gt;&lt;br /&gt;
  &amp;lt;/Define&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_XML_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=829</id>
		<title>Talk:Civ3 Expanded Editor Guide</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=829"/>
		<updated>2009-08-19T00:09:28Z</updated>

		<summary type="html">&lt;p&gt;TC01: Undo revision 828 by 203.86.186.73 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:PythonCallbackDefines&amp;diff=827</id>
		<title>Talk:PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:PythonCallbackDefines&amp;diff=827"/>
		<updated>2009-08-17T21:14:58Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We should probably list all of the disabled callbacks here too.  Additionally there are a LOT more of them in the default BtS file than the Final Frontier one, and the ones in the Final Frontier one are used in Final Frontier or were planned to be used, so the file might be modular.&lt;br /&gt;
--[[User:Deanej|Deanej]] 02:16, 17 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:That would be a good idea. I&#039;ve been saying in the Event Manager &amp;quot;(Disabled in BTS with PythonCallbackDefines.xml)&amp;quot;, but it&#039;s probably easier to list them all here.&lt;br /&gt;
&lt;br /&gt;
:Based on a quick examination of the SDK, the &amp;quot;use ______ python callback&amp;quot; variables are all set to false by default (all booleans are). So I think if you don&#039;t have a callback in your mod file, it doesn&#039;t matter, since the callback is auto-set to false. But if you want to use it, you need to have it there. [[User:TC01|TC01]] 21:14, 17 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=824</id>
		<title>PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=824"/>
		<updated>2009-08-16T18:52:42Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;PythonCallbackDefines.xml&#039;&#039;&#039; file was added in the Beyond the Sword expansion to disable some unnecessary callbacks. A callback is a python function called from the SDK, and some callbacks were called often but did not actually do anything. This file allows you to disable or enable the callbacks listed in it.&lt;br /&gt;
&lt;br /&gt;
All tags must be opened and closed; the first is the &amp;quot;open&amp;quot;, the second the &amp;quot;close&amp;quot; tag. If nothing goes inside a &amp;quot;list tag&amp;quot;, then it should just be the opening tag with a &amp;quot;/&amp;quot; before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values. &lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
===Headers===&lt;br /&gt;
&lt;br /&gt;
These tags typically bracket other tags, sometimes the entire file, and are generally used to specify more than one piece of data.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!Civ4Defines&lt;br /&gt;
|Begins and ends the file. Everything must go between these two tags&lt;br /&gt;
|-&lt;br /&gt;
!Define&lt;br /&gt;
|Begins and ends an individual python callback define&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Text===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!DefineName&lt;br /&gt;
|The python callback that is being defined in each entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integers===&lt;br /&gt;
&lt;br /&gt;
All of these tags have a numerical value.  Though it sometimes can be negative, it usually is not.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!iDefineIntValue&lt;br /&gt;
|Defines whether the game will use the callback, acts like a boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
In the following example of code, please note that there is a specific order of all of the tags.  You &#039;&#039;must&#039;&#039; list the tags in this order for the game to properly interpret your file.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Define&amp;gt;&lt;br /&gt;
   &amp;lt;DefineName&amp;gt;USE_CAN_TRAIN_CALLBACK&amp;lt;/DefineName&amp;gt;&lt;br /&gt;
   &amp;lt;iDefineIntVal&amp;gt;0&amp;lt;/iDefineIntVal&amp;gt;&lt;br /&gt;
  &amp;lt;/Define&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_XML_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=823</id>
		<title>PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=823"/>
		<updated>2009-08-16T18:52:15Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;PythonCallbackDefines.xml&#039;&#039;&#039; file was added in the Beyond the Sword expansion to disable some unnecessary callbacks. A callback is a python function called from the SDK, and some callbacks were called often but did not actually do anything. This file allows you to disable or enable the callbacks listed in it.&lt;br /&gt;
&lt;br /&gt;
All tags must be opened and closed; the first is the &amp;quot;open&amp;quot;, the second the &amp;quot;close&amp;quot; tag. If nothing goes inside a &amp;quot;list tag&amp;quot;, then it should just be the opening tag with a &amp;quot;/&amp;quot; before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
===Headers===&lt;br /&gt;
&lt;br /&gt;
These tags typically bracket other tags, sometimes the entire file, and are generally used to specify more than one piece of data.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!Civ4Defines&lt;br /&gt;
|Begins and ends the file. Everything must go between these two tags&lt;br /&gt;
|-&lt;br /&gt;
!Define&lt;br /&gt;
|Begins and ends an individual python callback define&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Text===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!DefineName&lt;br /&gt;
|The python callback that is being defined in each entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integers===&lt;br /&gt;
&lt;br /&gt;
All of these tags have a numerical value.  Though it sometimes can be negative, it usually is not.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!iDefineIntValue&lt;br /&gt;
|Defines whether the game will use the callback, acts like a boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
In the following example of code, please note that there is a specific order of all of the tags.  You &#039;&#039;must&#039;&#039; list the tags in this order for the game to properly interpret your file.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Define&amp;gt;&lt;br /&gt;
   &amp;lt;DefineName&amp;gt;USE_CAN_TRAIN_CALLBACK&amp;lt;/DefineName&amp;gt;&lt;br /&gt;
   &amp;lt;iDefineIntVal&amp;gt;0&amp;lt;/iDefineIntVal&amp;gt;&lt;br /&gt;
  &amp;lt;/Define&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_XML_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=822</id>
		<title>PythonCallbackDefines</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=PythonCallbackDefines&amp;diff=822"/>
		<updated>2009-08-16T18:51:53Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;The &amp;#039;&amp;#039;&amp;#039;PythonCallbackDefines.xml&amp;#039;&amp;#039;&amp;#039; file was added in the Beyond the Sword expansion to disable some unnecessary callbacks. A callback is a python function called from the SDK, a...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;PythonCallbackDefines.xml&#039;&#039;&#039; file was added in the Beyond the Sword expansion to disable some unnecessary callbacks. A callback is a python function called from the SDK, and some callbacks were called often but did not actually do anything. This file allows you to disable or enable the callbacks listed in it.&lt;br /&gt;
&lt;br /&gt;
All tags must be opened and closed; the first is the &amp;quot;open&amp;quot;, the second the &amp;quot;close&amp;quot; tag. If nothing goes inside a &amp;quot;list tag&amp;quot;, then it should just be the opening tag with a &amp;quot;/&amp;quot; before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information. Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
===Headers===&lt;br /&gt;
&lt;br /&gt;
These tags typically bracket other tags, sometimes the entire file, and are generally used to specify more than one piece of data.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!Civ4Defines&lt;br /&gt;
|Begins and ends the file. Everything must go between these two tags&lt;br /&gt;
|-&lt;br /&gt;
!Define&lt;br /&gt;
|Begins and ends an individual python callback define&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Text===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!DefineName&lt;br /&gt;
|The python callback that is being defined in each entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Integers===&lt;br /&gt;
&lt;br /&gt;
All of these tags have a numerical value.  Though it sometimes can be negative, it usually is not.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Tag Name&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!iDefineIntValue&lt;br /&gt;
|Defines whether the game will use the callback, acts like a boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
In the following example of code, please note that there is a specific order of all of the tags.  You &#039;&#039;must&#039;&#039; list the tags in this order for the game to properly interpret your file.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Define&amp;gt;&lt;br /&gt;
   &amp;lt;DefineName&amp;gt;USE_CAN_TRAIN_CALLBACK&amp;lt;/DefineName&amp;gt;&lt;br /&gt;
   &amp;lt;iDefineIntVal&amp;gt;0&amp;lt;/iDefineIntVal&amp;gt;&lt;br /&gt;
  &amp;lt;/Define&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_XML_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=821</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=821"/>
		<updated>2009-08-16T18:41:11Z</updated>

		<summary type="html">&lt;p&gt;TC01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information.&lt;br /&gt;
Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def _init_()&lt;br /&gt;
|self&lt;br /&gt;
|Initializes variables in file&lt;br /&gt;
|-&lt;br /&gt;
!def handleEvent()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Event Manager entry point&lt;br /&gt;
|-&lt;br /&gt;
!def beginEvent()&lt;br /&gt;
|self, context, argsList=-1&lt;br /&gt;
|Begins an event&lt;br /&gt;
|-&lt;br /&gt;
!def applyEvent()&lt;br /&gt;
|self, argsList (context, playerID, netUserData, popupReturn)&lt;br /&gt;
|Applies the effects of an event&lt;br /&gt;
|-&lt;br /&gt;
!def reportEvent()&lt;br /&gt;
|self, entry, context, argsList&lt;br /&gt;
|Records an event to Events.log&lt;br /&gt;
|-&lt;br /&gt;
!def onKdbEvent()&lt;br /&gt;
|self, argsList (eventType, key, mx, my, px, py)&lt;br /&gt;
|Handles the pressing of a key&lt;br /&gt;
|-&lt;br /&gt;
!def onModNetMessage()&lt;br /&gt;
|self, argsList (iData1, iData2, iData3, iData4, iData5)&lt;br /&gt;
|Called whenever CyMessageControl().sendModNetMessage is called&lt;br /&gt;
|-&lt;br /&gt;
!def onInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called whenever Civilization starts up&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame (disabled in BTS with [[PythonCallbackDefines]].xml)&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogCalc()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatLogHit()&lt;br /&gt;
|self, argsList (genericArgs)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementBuilt()&lt;br /&gt;
|self, argsList (iImprovement, iX, iY)&lt;br /&gt;
|Called when an improvement is built&lt;br /&gt;
|-&lt;br /&gt;
!def onImprovementDestroyed()&lt;br /&gt;
|self, argsList (iImprovement, iOwner, iX, iY)&lt;br /&gt;
|Called when an improvement is destroyed&lt;br /&gt;
|-&lt;br /&gt;
!def onRouteBuilt()&lt;br /&gt;
|self, argsList (iRoute, iX, iY)&lt;br /&gt;
|Called when a route is built&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotRevealed()&lt;br /&gt;
|self, argsList (pPlot, iTeam)&lt;br /&gt;
|Called when a plot is revealed to a team&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotFeatureRemoved()&lt;br /&gt;
|self, argsList (pPlot, iFeatureType, pCity)&lt;br /&gt;
|Called when a feature is removed on a plot&lt;br /&gt;
|-&lt;br /&gt;
!def onPlotPicked()&lt;br /&gt;
|self, argsList (pPlot)&lt;br /&gt;
|Called when a plot is picked&lt;br /&gt;
|-&lt;br /&gt;
!def onNukeExplosion()&lt;br /&gt;
|self, argsList (pPlot, pNukeUnit)&lt;br /&gt;
|Called when a nuke explodes or a meltdown occurs&lt;br /&gt;
|-&lt;br /&gt;
!def onGotoPlotSet()&lt;br /&gt;
|self, argsList (pPlot, iPlayer)&lt;br /&gt;
|Not sure&lt;br /&gt;
|-&lt;br /&gt;
!def onBuildingBuilt()&lt;br /&gt;
|self, argsList (pCity, iBuildingType)&lt;br /&gt;
|Called when a building is built&lt;br /&gt;
|-&lt;br /&gt;
!def onProjectBuilt()&lt;br /&gt;
|self, argsList (pCity, iProjectType)&lt;br /&gt;
|Called when a project is completed&lt;br /&gt;
|-&lt;br /&gt;
!def onSelectionGroupPushMission()&lt;br /&gt;
|self, argsList (eOwner, eMission, iNumUnits, listUnitIDs)&lt;br /&gt;
|Called when a selection group mission occurs (?)&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitMove()&lt;br /&gt;
|self, argsList (pPlot, pUnit, pOldPlot)&lt;br /&gt;
|Called when a unit moves onto a new plot&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitSetXY()&lt;br /&gt;
|self, argsList (pPlot, pUnit)&lt;br /&gt;
|Called when a unit&#039;s coords are set manually (disabled in BTS with PythonCallbackDefines.xml)&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitCreated()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit is created (disabled in BTS with PythonCallbackDefines.xml)&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitBuilt()&lt;br /&gt;
|self, argsList (city, unit, player)&lt;br /&gt;
|Called when a unit is built in a city&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitKilled()&lt;br /&gt;
|self, argsList (unit, iAttacker)&lt;br /&gt;
|Called when a unit is killed by another unit&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitLost()&lt;br /&gt;
|self, argsList (unit)&lt;br /&gt;
|Called when a unit dies (disabled in BTS with PythonCallbackDefines.xml)&lt;br /&gt;
|-&lt;br /&gt;
!def onUnitPromoted()&lt;br /&gt;
|self, argsList (pUnit, iPromotion)&lt;br /&gt;
|Called when a unit is promoted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;insert code example from actual Python file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=819</id>
		<title>Talk:Civ3 Expanded Editor Guide</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=819"/>
		<updated>2009-08-16T01:55:15Z</updated>

		<summary type="html">&lt;p&gt;TC01: Undo revision 812 by 196.0.18.163 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=818</id>
		<title>Talk:Civ3 Expanded Editor Guide</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:Civ3_Expanded_Editor_Guide&amp;diff=818"/>
		<updated>2009-08-16T01:55:06Z</updated>

		<summary type="html">&lt;p&gt;TC01: Undo revision 813 by 190.14.254.162 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;yofun.neet http://www.daisyanthon.xdir.fr/nasty-stinger-fir.html nasty stinger firwww.verizon.neet http://www.daisyanthon.xdir.fr/schurter-4300.0603.html schurter 4300.0603192.168.168.109 8080 http://www.daisyanthon.xdir.fr/8080.ne.html 8080.nepmi stinger paintballs.com http://www.daisyanthon.xdir.fr/8080.ent.html 8080.entwww.netscape.neet http://www.daisyanthon.xdir.fr/www.-8080.net.html www. 8080.netvil.nai.com stinger http://www.daisyanthon.xdir.fr/8080-purnell-dr.html 8080 purnell drwebmail.att.neet http://www.daisyanthon.xdir.fr/optimun.neet.html optimun.neet195.175.37.8 8080 http://www.daisyanthon.xdir.fr/pussy.org.uk.html pussy.org.ukstinger 3.0.6 download http://www.daisyanthon.xdir.fr/192.168.1.1-8080.html 192.168.1.1 8080stinger v 2.6.0 http://www.daisyanthon.xdir.fr/ww.stinger.com.html ww.stinger.com&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=817</id>
		<title>Civ4 Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Civ4_Modding_Tutorials&amp;diff=817"/>
		<updated>2009-08-16T01:53:48Z</updated>

		<summary type="html">&lt;p&gt;TC01: Undo revision 816 by 97.74.75.227 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=262402 How To Create a Mod (Video Demo)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=173061 How To Design a Mod]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=187699 How To Get Your Mod To Load Faster]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=229557 A Modder&#039;s Guide to Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=168876 How To Add Custom Sounds]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=161442 How To Change the Movies]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=191978 How To Add an Intro Movie]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230567 Guide to Event Modding]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=236727 Random Events List] (Reference)&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=175005 How To Isolate Crashes]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=268759 Non-Random Events in Beyond the Sword]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=7233336 Multiplayer Compatability Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=132476 The Modder&#039;s Guide to Civ4]&lt;br /&gt;
&lt;br /&gt;
== Graphics Tutorials ==&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183568 Skinning For Beginners]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=153584 How To Skin and Add Resources and Improvements]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?p=5339402#post5339402 Create Noshader Units from Units With Shaders]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=167335 How To Import a Custom Model (Blender)]&lt;br /&gt;
* NifViewer Tutorial: [http://forums.civfanatics.com/showthread.php?t=163585 Part 1], [http://forums.civfanatics.com/showthread.php?t=165689 Part 2], [http://forums.civfanatics.com/showthread.php?t=176106 Part 3]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=214207 3ds Max Importing/Exporting]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=179747 Merge Animations With Your Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=184327 How to Create Units with 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=182779 3ds Max Unit Creation Guide]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=177468 Import NIF File into 3ds Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=162118 Getting Your Units Into Civilization IV]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=171934 How To Make .dds Textures for 3ds Max Models]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=240956 Damage States for Custom Units (3ds Max)]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=181119 How To Edit GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=278946 How To Fix GameFont.tga]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=150275 How To Create Non-Distorted Flags]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=237832 How To Make Units Use Different Effects]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183742 How To Import/Modify/Export Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=230458 How To Create Shaded Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=267233 How To Create Leaderheads]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304100 Working with GameFont.tga in Photoshop]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=305606 Nifskope]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=312613 Modifying the Visibility of Weapons/Unit Animations]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=271331 Making Minor Changes to Unit Animation without 3DS Max]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=325606 Adding Action Sounds to Unit Animations]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving XML ==&lt;br /&gt;
* For tutorials on how to use XML, see [[Civ4 XML Reference|the XML section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=148507 How To Add a Civilization]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=139721 How To Add New Units]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=176460 Adding Units to Civilizations in 6 Easy Steps]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=188708 How To Add a New Building]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=138779 How To Add a Civic]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=304685 How To Add Diplomacy Text to a Leaderhead]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=234970 How To Add a Civ/Unit/Building in BtS (Modular XML Loading)]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving Python ==&lt;br /&gt;
* For tutorials on how to use Python, see [[Civ4 Python|the Python section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183126 How To Add Popups]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=142169 How To Save and Load Data in Your Mod]&lt;br /&gt;
&lt;br /&gt;
== Tutorials Involving the SDK ==&lt;br /&gt;
* For tutorials on how to use the SDK, see [[Civ4 SDK|the SDK section]].&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=166935 Adding New XML Values]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=183339 Adding New Missions For Units]&lt;br /&gt;
* [[How To Change the Maximum Number of Players]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Talk:Civ4_Python&amp;diff=800</id>
		<title>Talk:Civ4 Python</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Talk:Civ4_Python&amp;diff=800"/>
		<updated>2009-08-08T18:16:18Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;Why is this page in the Civ 4 XML Files category? And the SDK page? ~~~~&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why is this page in the Civ 4 XML Files category? And the SDK page? [[User:TC01|TC01]] 18:16, 8 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=799</id>
		<title>User:TC01</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=User:TC01&amp;diff=799"/>
		<updated>2009-08-08T16:19:52Z</updated>

		<summary type="html">&lt;p&gt;TC01: Created page with &amp;#039;I&amp;#039;m [http://forums.civfanatics.com/member.php?u=165196 TC01] on CFC forums, you can PM me in the link I just gave.&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m [http://forums.civfanatics.com/member.php?u=165196 TC01] on CFC forums, you can PM me in the link I just gave.&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=798</id>
		<title>CvEventManager</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=CvEventManager&amp;diff=798"/>
		<updated>2009-08-08T16:18:25Z</updated>

		<summary type="html">&lt;p&gt;TC01: Started file, added a few functions- from my BTS event manager&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CvEventManager&#039;&#039;&#039; file controls what happens during events that occur in the game. These aren&#039;t events like Beyond the Sword random events but rather events like a unit moving, a turn beginning, or a nuclear explosion occuring.&lt;br /&gt;
&lt;br /&gt;
The Python files are written in the python programming language.  They can be edited in a text editor such as notepad or in a programming editor like Python&#039;s IDLE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;This page is missing information.&lt;br /&gt;
Do not remove this notice until it is complete.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
Below is a list of all the functions in the file. Each function has a quick description attached to it. Note that there are comments strewn throughout some of these files, direct from the developers in order to aid the potential modders.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Function &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Parameters&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
!def onUpdate()&lt;br /&gt;
|self, argsList (fDeltaTime)&lt;br /&gt;
|Called every frame (disabled in BTS with PythonCallbackDefines.xml)&lt;br /&gt;
|-&lt;br /&gt;
!def onWindowActivation()&lt;br /&gt;
|self, argsList (bActive)&lt;br /&gt;
|Called when the game window activates or deactivates&lt;br /&gt;
|-&lt;br /&gt;
!def onUnInit()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before Civ shuts down&lt;br /&gt;
|-&lt;br /&gt;
!def onPreSave()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called before the game is saved&lt;br /&gt;
|-&lt;br /&gt;
!def onSaveGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Returns the name of the save game&lt;br /&gt;
|-&lt;br /&gt;
!def onLoadGame()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the loading of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameStart()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called on the start of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onGameEnd()&lt;br /&gt;
|self, argsList&lt;br /&gt;
|Called at the end of the game&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the beginning of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndGameTurn()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called at the end of the end of each turn&lt;br /&gt;
|-&lt;br /&gt;
!def onBeginPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the beginning of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndPlayerTurn()&lt;br /&gt;
|self, argsList (iGameTurn, iPlayer)&lt;br /&gt;
|Called at the end of a player&#039;s turn&lt;br /&gt;
|-&lt;br /&gt;
!def onEndTurnReady()&lt;br /&gt;
|self, argsList (iGameTurn)&lt;br /&gt;
|Called when the turn is ready to end&lt;br /&gt;
|-&lt;br /&gt;
!def onFirstContact()&lt;br /&gt;
|self, argsList (iTeamX, iHasMetTeamY)&lt;br /&gt;
|Called when one team meets another team&lt;br /&gt;
|-&lt;br /&gt;
!def onCombatResult()&lt;br /&gt;
|self, argsList (iWinner, iLoser)&lt;br /&gt;
|Called after combat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
This example is a quick idea of what you can do with functions in this file. &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;insert code example from actual Python file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Civ4_Python&amp;diff=797</id>
		<title>Civ4 Python</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Civ4_Python&amp;diff=797"/>
		<updated>2009-08-08T15:47:12Z</updated>

		<summary type="html">&lt;p&gt;TC01: Added a tutorial I just made&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Template ==&lt;br /&gt;
Please use the following template for python files.&lt;br /&gt;
* [[Format for new Python pages]]&lt;br /&gt;
&lt;br /&gt;
== Tutorials and Reference ==&lt;br /&gt;
&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=154130 TGA&#039;s Python Tutorial]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=163848 How to Call a Function at the End of a Turn]&lt;br /&gt;
* [http://apolyton.net/forums/showthread.php?s=&amp;amp;threadid=167960 Jon Shafer&#039;s Guide to Python in Civ4]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=152856 Sample Python Code]&lt;br /&gt;
* BTS Python API&lt;br /&gt;
** [http://civ4bug.sourceforge.net/PythonAPI/index.html View]&lt;br /&gt;
** [http://code.google.com/p/civ4-python-api/ Project @ Google Code]&lt;br /&gt;
** [http://forums.civfanatics.com/showthread.php?t=238839 Forum Discussion]&lt;br /&gt;
* [http://civilization4.net/files/modding/PythonAPI/ Warlords Python API]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=323805 Modding CvGameUtils]&lt;br /&gt;
* [http://forums.civfanatics.com/showthread.php?t=331001 How to Make Python Action Buttons]&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Warlords/BtS only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; BtS Only&lt;br /&gt;
=== Assets\Python ===&lt;br /&gt;
* [[CvAdvisorUtils]]&lt;br /&gt;
* [[CvCameraControls]]&lt;br /&gt;
* [[CvDebugTools]]&lt;br /&gt;
* [[CvDefineEditor]]&lt;br /&gt;
* [[CvDiplomacy]]&lt;br /&gt;
* [[CvEventManager]]&lt;br /&gt;
* [[CvGameUtils]]&lt;br /&gt;
* [[CvMagGeneratorUtil]]&lt;br /&gt;
* [[CvPerfTest]]&lt;br /&gt;
* [[CvQuestManager]]&lt;br /&gt;
* [[CvScreenUtils]]&lt;br /&gt;
* [[CvUtil]]&lt;br /&gt;
* [[DomPyHelpers]]**&lt;br /&gt;
* [[PyHelpers]]&lt;br /&gt;
* [[ScreenImput]]&lt;br /&gt;
* [[vector]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\_DebugTools ===&lt;br /&gt;
* [[AudioLogParser]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\EntryPoints ===&lt;br /&gt;
* [[CvAppInterface]]&lt;br /&gt;
* [[CvDebugInterface]]&lt;br /&gt;
* [[CvDiplomacyInterface]]&lt;br /&gt;
* [[CvEventInterface]]&lt;br /&gt;
* [[CvGameInterface]]&lt;br /&gt;
* [[CvGameInterfaceFile]]*&lt;br /&gt;
* [[CvMapScriptInterface]]&lt;br /&gt;
* [[CvOptionScreenCallbackInterface]]&lt;br /&gt;
* [[CvPopupInterface]]&lt;br /&gt;
* [[CvRandomEventInterface]]**&lt;br /&gt;
* [[CvScreensInterface]]&lt;br /&gt;
* [[CvScreenUtilsInterface]]&lt;br /&gt;
* [[CvTranslator]]&lt;br /&gt;
* [[CvUnitControlInterface]]&lt;br /&gt;
* [[CvWBInterface]]&lt;br /&gt;
* [[PbMain]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\PitBoss ===&lt;br /&gt;
* [[PbAdmin]]&lt;br /&gt;
* [[PbWizard]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\pyHelper ===&lt;br /&gt;
* [[Popup]]&lt;br /&gt;
* [[Unit]]&lt;br /&gt;
* [[UnitEntity]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\pyUnit ===&lt;br /&gt;
* [[CvUnitController]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\pyWB ===&lt;br /&gt;
* [[CvWBDesc]]&lt;br /&gt;
* [[CvWBPopups]]&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\Screens ===&lt;br /&gt;
* [[CvAdvisorScreen]]&lt;br /&gt;
* [[CvCivicsScreen]]&lt;br /&gt;
* [[CvCorporationAdvisor]]**&lt;br /&gt;
* [[CvDanQuayle]]&lt;br /&gt;
* [[CvDawnOfMan]]&lt;br /&gt;
* [[CvDebugInfoScreen]]&lt;br /&gt;
* [[CvDomesticAdvisor]]&lt;br /&gt;
* [[CvEraMovieScreen]]&lt;br /&gt;
* [[CvEspionageAdvisor]]**&lt;br /&gt;
* [[CvExoticForeignAdvisor]]**&lt;br /&gt;
* [[CvFinanceAdvisor]]&lt;br /&gt;
* [[CvForeignAdvisor]]&lt;br /&gt;
* [[CvGFCScreen]]&lt;br /&gt;
* [[CvHallOfFameScreen]]&lt;br /&gt;
* [[CvInfoScreen]]&lt;br /&gt;
* [[CvIntroMovieScreen]]&lt;br /&gt;
* [[CvMainInterface]]&lt;br /&gt;
* [[CvMilitaryAdvisor]]&lt;br /&gt;
* [[CvOptionsScreen]]&lt;br /&gt;
* [[CvPediaBonus]]&lt;br /&gt;
* [[CvPediaBuilding]]&lt;br /&gt;
* [[CvPediaCivic]]&lt;br /&gt;
* [[CvPediaCivilization]]&lt;br /&gt;
* [[CvPediaCorporation]]**&lt;br /&gt;
* [[CvPediaFeature]]&lt;br /&gt;
* [[CvPediaHistory]]&lt;br /&gt;
* [[CvPediaImprovement]]&lt;br /&gt;
* [[CvPediaLeader]]&lt;br /&gt;
* [[CvPediaMain]]&lt;br /&gt;
* [[CvPediaProject]]&lt;br /&gt;
* [[CvPediaPromotion]]&lt;br /&gt;
* [[CvPediaReligion]]&lt;br /&gt;
* [[CvPediaScreen]]&lt;br /&gt;
* [[CvPediaSpecialist]]&lt;br /&gt;
* [[CvPediaTech]]&lt;br /&gt;
* [[CvPediaTerrain]]&lt;br /&gt;
* [[CvPediaUnit]]&lt;br /&gt;
* [[CvPediaUnitChart]]&lt;br /&gt;
* [[CvRelitonScreen]]&lt;br /&gt;
* [[CvReplayScreen]]&lt;br /&gt;
* [[CvScreen]]&lt;br /&gt;
* [[CvScreenEnums]]&lt;br /&gt;
* [[CvSpaceShipScreen]]**&lt;br /&gt;
* [[CvTechChooser]]&lt;br /&gt;
* [[CvTechSplashScreen]]&lt;br /&gt;
* [[CvTopCivs]]&lt;br /&gt;
* [[CvTutorialQuestScreen]]&lt;br /&gt;
* [[CvUNVictoryScreen]]&lt;br /&gt;
* [[CvVictoryMovieScreen]]&lt;br /&gt;
* [[CvVictoryScreen]]&lt;br /&gt;
* [[CvWonderMovieScreen]]&lt;br /&gt;
* [[CvWorldBuilderDiplomacyScreen]]&lt;br /&gt;
* [[CvWorldBuilderScreen]]&lt;br /&gt;
* [[IconGrid]]**&lt;br /&gt;
* [[TechTree]]**&lt;br /&gt;
&lt;br /&gt;
=== Assets\Python\System ===&lt;br /&gt;
* These files are mostly compiled python files that cannot be modified.&lt;br /&gt;
&lt;br /&gt;
{{Civ4_Python_Files}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Civilization 4]]&lt;/div&gt;</summary>
		<author><name>TC01</name></author>
	</entry>
</feed>