<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://modiki.civfanatics.com/index.php?action=history&amp;feed=atom&amp;title=Events.SerialEventImprovementCreated_%28Civ5_API%29</id>
	<title>Events.SerialEventImprovementCreated (Civ5 API) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://modiki.civfanatics.com/index.php?action=history&amp;feed=atom&amp;title=Events.SerialEventImprovementCreated_%28Civ5_API%29"/>
	<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Events.SerialEventImprovementCreated_(Civ5_API)&amp;action=history"/>
	<updated>2026-04-17T20:19:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://modiki.civfanatics.com/index.php?title=Events.SerialEventImprovementCreated_(Civ5_API)&amp;diff=10917&amp;oldid=prev</id>
		<title>DonQuich: Bot update</title>
		<link rel="alternate" type="text/html" href="https://modiki.civfanatics.com/index.php?title=Events.SerialEventImprovementCreated_(Civ5_API)&amp;diff=10917&amp;oldid=prev"/>
		<updated>2012-09-19T18:48:53Z</updated>

		<summary type="html">&lt;p&gt;Bot update&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Civ5 API Beta Banner}}&lt;br /&gt;
&amp;#039;&amp;#039;This page is a part of the [[Lua and UI Reference (Civ5)]].&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TypeInfos5|Function.png|This function is a member of {{Type5|Events}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a static method, invoke it with a dot.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This event is triggered whenever an improvement appears on a player&amp;#039;s map &amp;amp;mdash; not when an improvement is created on the general game map. This will be the result of an improvement being created on a tile already been discovered by the active player, or a tile being discovered that already hosts an improvement. Barbarian camps and ancient ruins count as improvements, as indexed in the Improvements table. In the course of building an improvement in the standard game, this event will fire twice, once when the game places the graphic for the improvement in progress of being built, and then again when the improvement is built and the graphic changes to indicate that. The GetImprovementType method on a Plot object, however, will only return improvements that are complete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;void&amp;#039;&amp;#039;&amp;#039; Events.SerialEventImprovementCreated&amp;lt;b&amp;gt;(&amp;lt;/b&amp;gt;&amp;#039;&amp;#039;&amp;#039;float&amp;#039;&amp;#039;&amp;#039; hexX, &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; hexY, {{Type5|ArtStyleType}} continent1, {{Type5|ArtStyleType}} continent2, {{Type5|PlayerID}} player, &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; createImprovementType, {{Type5|ImprovementType}} createImprovementRRType, &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; createImprovementEra, &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; createImprovementState, &amp;#039;&amp;#039;&amp;#039;unknown&amp;#039;&amp;#039;&amp;#039; ImprovementEra = nil&amp;lt;b&amp;gt;)&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Event Type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Regular event: you can subscribe to it through &amp;lt;code&amp;gt;Events.SerialEventImprovementCreated.Add(&amp;#039;&amp;#039;&amp;lt;function handler&amp;gt;&amp;#039;&amp;#039;)&amp;lt;/code&amp;gt; or invoke it directly through &amp;lt;code&amp;gt;Events.SerialEventImprovementCreated(&amp;#039;&amp;#039;&amp;lt;arguments list&amp;gt;&amp;#039;&amp;#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parameters&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|hexX:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|hexY:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;Hex y-coordinate of the tile the road was built on which can be converted to map grid coordinates with the {{Type5|ToGridFromHex}} function (see example)&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|continent1:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;These values appear to always be the same and also seem to refer to the continent on which the improvement was built. Different land masses will have different numbers corresponding to their graphic set, and oceans will be marked as 0.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|continent2:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|player:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|createImprovementType:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|createImprovementRRType:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|createImprovementEra:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|createImprovementState:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-right:6px;&amp;quot;|ImprovementEra:&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;#039;&amp;#039;No description available.&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Examples=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; class=&amp;quot;civ5-example&amp;quot;&amp;gt;&lt;br /&gt;
function onImprovementCreated(iHexX, iHexY, iContinent1, iContinent2)&lt;br /&gt;
local pPlot = Map.GetPlot(ToGridFromHex(iHexX, iHexY))&lt;br /&gt;
local sImprovement = Map.GetImprovementType() &amp;gt; -1 and GameInfo.Improvements{Map.GetImprovementType()}().Type or &amp;quot;Improvement in progress&amp;quot;&lt;br /&gt;
local plotOwner = pPlot:GetOwner() &amp;gt; -1 and Players[pPlot:GetOwner()]:GetName() or &amp;quot;nobody&amp;quot;&lt;br /&gt;
print(string.format(&amp;quot;%s built on tile %d, %d by player %d. Plot owned by %s&amp;quot;, sImprovement, pPlot:GetX(), pPlot:GetY(), iPlayerID, plotOwner))&lt;br /&gt;
end&lt;br /&gt;
Events.SerialEventImprovementCreated.Add(onImprovementCreated)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Source code samples=&lt;br /&gt;
&amp;#039;&amp;#039;Redundant occurences have been removed.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{PseudoH4|DebugMode.lua}}&lt;br /&gt;
:&amp;lt;code&amp;gt;UI/InGame/DebugMode.lua&amp;lt;/code&amp;gt;&lt;br /&gt;
:{{CodeBegin5}}&lt;br /&gt;
{{CodeLine5|0452}}&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;Events.SerialEventImprovementCreated( iHexX, iHexY, continent,   continent,     playerID,   g_iCreateImprovementType, g_iCreateImprovementRRType, g_iCreateImprovementEra, g_iCreateImprovementState );&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{CodeEnd5}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{PseudoH4|TutorialChecks.lua}}&lt;br /&gt;
:&amp;lt;code&amp;gt;Tutorial/TutorialChecks.lua&amp;lt;/code&amp;gt;&lt;br /&gt;
:{{CodeBegin5}}&lt;br /&gt;
{{CodeLine5|2714}}&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;Events.SerialEventImprovementCreated.Add( OnImprovementCreated );&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{CodeEnd5}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Civ5 API Footer}}&lt;br /&gt;
[[Category:Civ5 Methods and Functions|SerialEventImprovementCreated]]&lt;br /&gt;
[[Category:Civ5 Improvements API|SerialEventImprovementCreated]]&lt;/div&gt;</summary>
		<author><name>DonQuich</name></author>
	</entry>
</feed>