<?xml version="1.0"?>
<rss version="2.0"><channel><title>Modding Tips Latest Topics</title><link>http://www.ageofcivilizationsgame.com/forum/249-modding-tips/</link><description>Modding Tips Latest Topics</description><language>en</language><item><title>Mini-Tip: Use PNGOUT to Decrease Mod Size</title><link>http://www.ageofcivilizationsgame.com/topic/219672-mini-tip-use-pngout-to-decrease-mod-size/</link><description><![CDATA[<p>
	Using a program called <a href="http://advsys.net/ken/util/pngout.exe" rel="external nofollow">PNGOUT</a>, you can optimize the size of PNG files and save storage space. You can use this on any .png that AoH2 uses, whether it's a flag, scenario thumbnail, leader portrait, or even a map background.
</p>

<p>
	Normally you run this program in Command Prompt, but you can also just <strong>drag your .png onto PNGOUT.exe</strong> and it'll do the job. I was able to save roughly 8 MB of space by compressing every graphic in AoH2 using PNGOUT.
</p>
]]></description><guid isPermaLink="false">219672</guid><pubDate>Mon, 28 Nov 2022 07:29:52 +0000</pubDate></item><item><title>Mini-Tip: Maintaining a Single Download Link in Google Drive</title><link>http://www.ageofcivilizationsgame.com/topic/189010-mini-tip-maintaining-a-single-download-link-in-google-drive/</link><description><![CDATA[
<p>
	A lot of modders choose to upload their mods to Google Drive. Typically they post two links: one for the PC version of their mod, and one for the Android version. And on some occasions, a modder will share links to past versions as well. But having to constantly replace the download links whenever a new update rolls out can be a hassle. In fact, there's a more automated way to go about updating your mods that nobody appeared to be using until now.
</p>

<p>
	So how can you make the process of updating easier? It's so simple that even a no-good, incompetent spam-bot could do it. Simply <strong>place your mod downloads in a new folder and share the folder in the same way you would a file</strong>. You can see an example of this with The Lost Update.
</p>
<iframe allowfullscreen="" data-controller="core.front.core.autosizeiframe" data-embedauthorid="18714" data-embedcontent="" data-embedid="embed5296223297" scrolling="no" src="http://www.ageofcivilizationsgame.com/topic/187597-%F0%9F%8C%8D-the-lost-update-for-age-of-civilizations-ii-revision-4/?do=embed" style="height:397px;max-width:502px;"></iframe>

<p>
	Now whenever you want to upload a new version of your mod, you can just upload it in the new folder and it will automatically appear for everyone to download. You can also keep past versions in there as well, but make sure to mark them as old so people won't get confused trying to find the latest version. Another option is to create another folder inside of the current folder and place your old versions in there.
</p>
]]></description><guid isPermaLink="false">189010</guid><pubDate>Wed, 29 Sep 2021 02:47:14 +0000</pubDate></item><item><title>3 Tips for Creating Soundtracks</title><link>http://www.ageofcivilizationsgame.com/topic/188974-3-tips-for-creating-soundtracks/</link><description><![CDATA[
<p>
	Soundtracks! They shape the atmosphere of a mod and can control the emotion and tone of the player's game session. With many modders opting to replace the soundtrack of the base game (courtesy of Kevin MacLeod), actually getting new songs for the game can be very tedious. However, I have cracked the code of soundtrack creation and discovered 3 techniques to automate and simplify this otherwise time-consuming process.
</p>

<p>
	NOTE: This modding instruction assumes you're using Windows and have Notepad++ installed. If you don't have Notepad++, you can install it <a href="https://notepad-plus-plus.org/downloads/" rel="external nofollow"><span style="color:#3498db;">here</span></a>.
</p>

<p>
	<span style="font-size:20px;"><strong>1. Using yt-dlp and FFmpeg to Download Playlists</strong></span>
</p>

<p>
	Let's begin with downloading songs! You're most likely going to grab songs from YouTube, in which case there are two special tools that can speed this up. My go-to YouTube downloader is <span>yt-dlp</span> because it's feature-rich, open-source, and way faster compared to services like Kapwing or those shady online downloaders. yt-dlp works from the command-line, meaning you can only use it through Command Prompt. And trust me, it's actually way easier than it sounds.
</p>

<p>
	One of the most useful features yt-dlp has for creating a soundtrack is the ability to download entire playlists. It also works with a media framework called <span>FFmpeg</span> to convert video and audio into other formats. By using both of these tools together, we can quickly download a set of videos and then convert them to .ogg format without having to process each video one at a time. So now let's learn how to use these tools to download a playlist for use as an AoH2 soundtrack!
</p>

<ol><li>
		To get started, create a new folder on your desktop and name it whatever you want.
	</li>
	<li>
		Download the latest version of yt-dlp from <a href="https://github.com/yt-dlp/yt-dlp/releases" rel="external nofollow"><span style="color:#3498db;">here</span></a>. (scroll down and get the file named <strong>yt-dlp.exe</strong>)
	</li>
	<li>
		Download the <em>full</em> build of FFmpeg from <a href="https://www.gyan.dev/ffmpeg/builds/" rel="external nofollow"><span style="color:#3498db;">here</span></a>. 7-Zip File Manager is required to extract the builds.
	</li>
	<li>
		Once you've downloaded yt-dlp and FFmpeg, place everything in the folder you just created and rename the extracted FFmpeg folder to "ffmpeg".
	</li>
	<li>
		Open Command Prompt and run this command:<br /><strong>cd Desktop\[folder name]</strong><br />
		Replace [folder name] with the name of the folder you created.
	</li>
	<li>
		Now, you need to find a playlist. For an AoH2 mod, I recommend search terms like "epic trailer music" or "strategy game soundtrack" since it's what most modders usually go for.
	</li>
	<li>
		Go back into Command Prompt and run this command:<br /><strong>yt-dlp -U -f ba -o "%(title)s.%(ext)s" --restrict-filenames --no-abort-on-error -x --audio-format "vorbis" --ffmpeg-location ffmpeg\bin [playlist-url]</strong><br />
		Replace [playlist url] with the link to the playlist you've chosen. Once you run the command, all the files from the playlist you chose will be downloaded and converted into a music file you can use in AoH2.
	</li>
</ol><p>
	<span style="font-size:20px;"><strong>2. Editing an Age_of_Civilizations File</strong></span>
</p>

<p>
	This step deals with making your music files play in AoH2 itself. See, Age of History 2 uses files named "Age_of_Civilizations" (a relic of the game's previous identity) to store lists of game elements like civilizations and scenarios. If something doesn't appear in Age_of_Civilizations, it won't show up when you go to play the game. AoH2's music folder contains 3 files of interest: an Age_of_Civilizations file, Impact_Allegretto.ogg, and Scheming_Weasel.ogg. Impact_Allegretto.ogg is the music you hear whenever you start the game, while Scheming_Weasel.ogg is the music you hear while using the console. Here's how to use your downloaded music files in AoH2!
</p>

<ol><li>
		Start by deleting all the files in the AoH2 music folder except for the 3 files I just mentioned.
	</li>
	<li>
		Drag all the audio files you got from YouTube into the music folder.
	</li>
	<li>
		Open the Age_of_Civilizations file in Notepad++ and delete everything in it.
	</li>
	<li>
		After that, you'll want to open Command Prompt again. This time, you'll want to run this command:<br /><strong>cd C:\Program Files (x86)\Steam\steamapps\common\AoCII\music</strong><br />
		This is the location for vanilla AoH2. A lot of mods will rename "AoCII" to something different, so just replace "AoCII" to whatever the mod directory is named.
	</li>
	<li>
		<span>Once you've done that, run the </span><strong>dir</strong><span> command. This will list each file in the music folder and allow you to copy all the file names at once.</span>
	</li>
	<li>
		<span>Hold down ALT and drag over each file name until all the file names are selected, then copy them and paste them into Notepad++.</span>
	</li>
	<li>
		<span>In Notepad++, delete Age_of_Civilizations, Impact_Allegretto.ogg, and Scheming_Weasel.ogg from the list.</span>
	</li>
	<li>
		<span>On the very last item in the list, add a semicolon at the end.</span>
	</li>
	<li>
		<span>Hit Ctrl+A to select the list, Ctrl+J to join all the items into one line, and Ctrl+F to bring up the Find and Replace tool.</span>
	</li>
	<li>
		<span>Click on Replace, put a space in the "Find what" box and a semicolon in the "Replace with", hit Replace All, and you're all set to use your new soundtrack in AoH2. Just don't forget to save!</span>
	</li>
</ol><p>
	<span style="font-size:20px;"><strong>3. The Hidden Power of .obb Files</strong></span>
</p>

<p>
	This one is specific to Android, but it can save your players a ton of storage space, which is a big deal for people who have issues installing mods on their phones. Open MT Manager, tap on "Android", and then on "obb". You'll notice a folder named "age.of.civilizations2.jakowski.lukasz". If you have mods installed, you'll see a similarly named folder for each mod you have. If there aren't any folders, you can create one and name it age.of.civilizations2.jakowski.lukasz. If you open the folder, you may see an .obb file which contain the soundtrack for your mod. If not, that's OK! You can download <a href="https://drive.google.com/file/d/1mWrjSYCEjYk_-nwskE2lhTuFTSMoCNTj/view?usp=drivesdk" rel="external nofollow"><span style="color:#3498db;">my recreation of HoI4's Sabaton Soundtrack</span></a> and use that. But if you see an .obb already in the folder, take note of the file name, "<strong>main.4.age.of.civilizations2.jakowski.lukasz</strong>". You can swap the .obb that gets loaded by renaming it to that string.
</p>

<p>
	Now comes the part where you add your soundtrack to an .obb file.
</p>

<ol><li>
		Have an .obb file ready. Again, you can use <span>my Sabaton Soundtrack</span> if you haven't already found the one AoH2 actually uses.
	</li>
	<li>
		Open the .obb with "ZIP Viewer", open the "music" folder inside it, and delete everything except Age_of_Civilizations.
	</li>
	<li>
		Download your AoH2 music folder from your PC to your phone.
	</li>
	<li>
		Open your downloaded music folder and select everything inside.
	</li>
	<li>
		Prepare to add everything from your own music folder to the music folder in the .obb. Set the level to "Storage" and keep "Replace all" as the update mode, and then hit OK.
	</li>
	<li>
		Once that's finished, exit the .obb and rename it to <strong>main.4.age.of.civilizations2.jakowski.lukasz</strong> if needed. Or if you're working with a mod, name the .obb file main.4.[whatever the folder for the mod is called].
	</li>
</ol><p>
	And with that, you've successfully ported your soundtrack to Android without touching any ay-pea-kays! If the songs don't play, try setting the level to "AРK mode" instead of "Storage". If you want to use someone else's .obb file in AoH2, simply go to Android/obb/age.of.civilizations2.jakowski.lukasz and overwrite the .obb in there with the one you downloaded.
</p>
]]></description><guid isPermaLink="false">188974</guid><pubDate>Tue, 21 Sep 2021 00:26:34 +0000</pubDate></item><item><title>You Can Give Provinces Unique Names</title><link>http://www.ageofcivilizationsgame.com/topic/186856-you-can-give-provinces-unique-names/</link><description><![CDATA[
<p>
	AoH2 typically names a province after its city. But you can actually change the province name to whatever you want. And even without a city in the province, you can still give it a name other than "Fokus". This is done through a map's <strong>province_names</strong> folder. In the base game, this is how the sea provinces get their names.
</p>

<p>
	<strong>How to add a unique province name:</strong>
</p>

<ol><li>
		Find the ID of the province you want to name by going into "Edit Connections And Provinces".
	</li>
	<li>
		In your AoH2 directory, go to <strong>map/&lt;map name&gt;/province_names</strong>. If you don't have a <strong>province_names</strong> folder, copy the one from the AoH1 map into your map.
	</li>
	<li>
		Open the <strong>names</strong> file in a text editor, preferably <a href="https://notepad-plus-plus.org" rel="external nofollow">Notepad++</a>.
	</li>
	<li>
		Add your province name on the line with a value one higher than the province ID. (ex. province ID 1821 = line 1822)
	</li>
	<li>
		Save your changes and reload the map.
	</li>
</ol><p>
	And now whenever you hover over the province in-game, you'll see the name you gave it regardless of how many cities are in it!
</p>
]]></description><guid isPermaLink="false">186856</guid><pubDate>Sat, 29 May 2021 22:49:44 +0000</pubDate></item><item><title>Mods on Android</title><link>http://www.ageofcivilizationsgame.com/topic/186375-mods-on-android/</link><description><![CDATA[
<p>
	Do you know if someone can create a mod working on Android? If yes can you tell It ti me here? I have a lot of ideas but playing on Android...it's difficoult.
</p>

<p>
	Thanks
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">186375</guid><pubDate>Tue, 11 May 2021 19:45:31 +0000</pubDate></item><item><title>How to Use cities.json</title><link>http://www.ageofcivilizationsgame.com/topic/186441-how-to-use-citiesjson/</link><description><![CDATA[
<p>
	When it comes to adding cities to a map, you have two methods for how to do it. The first method is to use the in-game city editor, and while this does work in adding new cities, it doesn't let you change existing cities. It also displays new cities at the incorrect level. The worst part is that it leaves a file for each city, therefore forcing Android modders to add these and bringing their mods closer to the 65,536 resource limit.
</p>

<p>
	The second method is by using the <strong>cities.json</strong> files in the map's <strong>cities</strong> folder. This method requires you to have the map editor open, but the process for adding cities is still quite easy. It also lets you change existing cities and displays cities correctly while only using 1-5 files. Let's go through the steps for using <strong>cities.json</strong> in a map.
</p>

<ol><li>
		Go into your map's directory and go into the <strong>cities</strong> folder. If it does not exist, create it.
	</li>
	<li>
		Add a file for each level of city you plan to create: <strong>cities.json</strong> for capitals, <strong>cities_1.json</strong> for major cities, <strong>cities_2.json</strong> for towns, <strong>cities_3.json</strong> for villages, and <strong>cities_4.json</strong> for hamlets.
	</li>
	<li>
		<span>For each new file you created, copy the below example into it. Replace City 1 with your city name, and copy the parts in bold for each city you plan to create on the same level.</span>
	</li>
</ol><pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">{
	cities:
	[
		{
			Name: "City 1",
			x: 0,
			y: 0
		},
	],
	name: Earth
}</span></pre>

<p>
	       4. This is the part where you need the map editor: click the point on your map where you want each city to appear. For each point, you will get a<br />
	           set of coordinates in the top-right corner. Replace the "zero coordinates" for each city with the corresponding set you got from the map editor.
</p>

<p>
	And now you're done! Unless you recreated some cities you made with the in-game city editor, in which case you'll need to delete the city editor versions. But now you can reload your map and see your new cities appear!
</p>
]]></description><guid isPermaLink="false">186441</guid><pubDate>Fri, 14 May 2021 20:37:15 +0000</pubDate></item><item><title>Event Localization (and how to do it)</title><link>http://www.ageofcivilizationsgame.com/topic/186358-event-localization-and-how-to-do-it/</link><description><![CDATA[<p>
	If you've seen or created an event before, you'd understand the various issues behind the event text. <em>Why can I only see part of the text in the event creator? Why did the description I just wrote get deleted when I added a trigger? Why are all the events in a different language?</em> For many mods, these issues are common in scenarios with events. Luckily, there's a better way to display event text: <strong>event localization!</strong> Inspired by the system in <em>Hearts of Iron IV</em>, and originally demonstrated in <em>The Reaper's Collection (rest in lack of content and peace)</em> before being used in <em>Norrvä</em><em>gen</em> and <em>The Second Great War</em>, event localization alleviates all of the issues present with the standard way of event writing.
</p>

<p>
	<span style="font-size:24px;"><strong>So how do you use event localization?</strong></span><br />
	Event localization is a process that's simple for even a first-time modder.
</p>

<ol><li>
		Go into your AoH2 directory, go to <strong>game/languages/</strong>, and open <strong>Bundle.properties</strong>. (the English language file for AoH2)
	</li>
	<li>
		Write your event's title, description (if you plan to add one), and outcomes under a tag for each piece of text. Be careful not to use the same tag for more than one event.<br />
		Here's an example with the Turkish defensive pact event from TCBC. In this example, <strong>_t</strong> corresponds to <strong>_title</strong>, <strong>_d</strong> is for <strong>_description</strong>, and <strong>_o1</strong> and <strong>_o2</strong> are for <b>_outcome1</b> and <strong>_outcome2</strong> respectively. Replace each tag and description with your own, and <em><strong>make sure to save your changes!</strong></em>
	</li>
</ol><pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">tur_azeripactexp_t = Defensive Pact with Azerbaijan Expiring
tur_azeripactexp_d = Our agreement for mutual security with Azerbaijan is set to expire on the 16th of August. However, we have the option to renew the agreement and extend it until 2030. The only catch: both parties must agree to a renewal. What should we do?
tur_azeripactexp_o1 = Appeal for a renewal.
tur_azeripactexp_o2 = Let it expire.</span></pre>

<p>
	       3. In the AoH2 event creator, instead of writing your event text like you normally would, write the tags corresponding to the ones you added in<br />
	           <strong>Bundle.properties</strong>.
</p>

<p>
	And that's it! You've just set up an event using event localization! During gameplay, if your event pops up and you see the event tags instead of your text, go into the settings and reselect your game language. This reloads the <strong>Bundle</strong> files so that your text will appear the next time you see the event.
</p>

<p>
	<span style="font-size:24px;"><strong>Now how does this solve the issues with normal event text?</strong></span><br />
	Let's go over that, shall we?
</p>

<p>
	<strong><em>Why can I only see part of the text in the event creator?</em></strong> By writing your event text in <strong>Bundle.properties</strong>, you are relieving yourself of this issue by using a text editor instead of the event creator. Unlike the event creator which doesn't let you scroll through your text, a text editor will let you see your text in full, allowing for longer descriptions and clear writing.
</p>

<p>
	<strong><em>Why did the description I just wrote get deleted when I added a trigger?</em></strong> It is frustrating to spend a few minutes writing an event description only to lose it upon adding a new trigger. But with event localization, you don't have to spend another few minutes retyping your description from the beginning. The next time you lose your description, you can simply retype the description's <em>tag</em> rather than the description itself, saving you some precious time in the event creator.
</p>

<p>
	<strong><em>Why are all the events in a different language?</em></strong> Ah yes, the classic "events only support one language" issue. This is probably the biggest advantage of using event localization: events can support multiple languages! Let's say that you want your event to support Turkish and English. By writing your English event text in <strong>Bundle.properties</strong> and your Turkish text in <strong>Bundle_tr.properties</strong>, players will see the event text in the correct language whether they're playing in English or Turkish. No more confusion or duplicate scenarios for each language!
</p>

<p>
	Now that you know the steps and advantages of using event localization, I hope you consider using it the next time you add events to a mod or scenario!
</p>
]]></description><guid isPermaLink="false">186358</guid><pubDate>Mon, 10 May 2021 02:38:10 +0000</pubDate></item><item><title>Things You Should Do When Making a Mod</title><link>http://www.ageofcivilizationsgame.com/topic/169740-things-you-should-do-when-making-a-mod/</link><description><![CDATA[
<p>
	<span style="color:#4e5f70;"><span style="font-size:28px;"><strong>Things You Should Do When Making a Mod</strong></span></span>
</p>

<p>
	<span style="font-size:20px;"><strong>General Issues</strong></span>
</p>

<ul><li>
		<strong>Consider the mod you want to make.</strong> Are you going for a story-driven mod with diverging paths? Or maybe you want to focus on a certain era of human history? The first thing you should always consider before making a mod is what kind of mod you're going to make.
	</li>
	<li>
		<b>Know your limits.</b> Try to refrain from having too many projects going at the same time. If you have 3 mods in the works and you're trying to focus your attention on one mod at a time, players who were looking forward to the other mods might be disappointed with having to wait longer.
	</li>
	<li>
		<strong>Don't steal!</strong> Stealing content from another mod is one of the worst things you could do in development. You could get into some serious trouble with the developer of the mod you stole from, or with the players if they recognize whatever got stolen.
	</li>
	<li>
		<strong>Consider using The Lost Update.</strong> <a href="http://www.ageofcivilizationsgame.com/topic/187597-the-lost-update/" rel="">The Lost Update is an unofficial update for AoH2 that includes various fixes and improvements.</a>
	</li>
</ul><p>
	<span style="font-size:20px;"><strong>Scenarios</strong></span>
</p>

<ul><li>
		<strong>Do your research!</strong> If you're making a historical scenario, do some research on the year or era your scenario is set in. What was going on in each continent? Which nations existed? Which cities were capitals? Historical scenarios should be as accurate as possible to ensure high quality.
	</li>
	<li>
		<b>Fill in all the necessary provinces.</b> Sometimes a tiny province like Monaco or Hong Kong gets left unclaimed by any country in some scenarios. Make sure to double-check all the provinces and make sure that they are claimed.
	</li>
</ul><p>
	<span style="font-size:20px;"><strong>Custom Maps</strong></span>
</p>

<ul><li>
		<strong>After completing a map, check the province settings.</strong> Did you set the growth rates up? How about the terrain types? The continents and regions? Details like that can make or break a map, no matter how many provinces it has.
	</li>
</ul><p>
	<span style="font-size:20px;"><strong>Events</strong></span>
</p>

<ul><li>
		<strong>DO NOT use the "Decision taken" trigger.</strong> This mistake killed my #1 mod and effectively puts every event-driven mod at risk of breaking. There is a bug in AoH2 where if you take a decision on an event and then save and reload your game, the game won't remember that you made that decision, thereby disabling any events that were supposed to trigger from the decision.
	</li>
	<li>
		<strong>Don't use the "Have army" and "Have a core" triggers.</strong> Those are broken and will cause the event to always fire.
	</li>
</ul><p>
	<span style="font-size:20px;"><strong>On the Forums</strong></span>
</p>

<ul><li>
		<strong>Bump your thread every once in a while.</strong> Players might not try your mod if they don't see the thread. Posting something in your mod thread will "bump" your mod to the first page of the mod list, where more people will see it. It will also let players know that you are still active.
	</li>
	<li>
		<strong>Watch out for spam-bots!</strong> We all know those casino and drug loving spam-bots that flood the forums with nonsense and bury people's threads. If your mod gets buried by spam-bots and Łukasz isn't there to beat them with his shoe, you should wait until the spam-bots stop posting and then bump your thread.
	</li>
	<li>
		<strong>Keep your players updated!</strong> Don't leave them in the dark for long periods of time! This may make the players think that your mod is stuck somewhere in development, or even <strong>dead</strong>! Every now and then, try giving them a little update on your mod's development. It doesn't have to be a big teaser. Even a simple "this mod is alive" will work.
	</li>
</ul>]]></description><guid isPermaLink="false">169740</guid><pubDate>Sun, 13 Dec 2020 09:35:47 +0000</pubDate></item></channel></rss>
