Hello.
My original tutorial is found in the citadel since about the time M2TW was released, but I figured I should repost it in this part of the forum where people actually look for modding tutorials.
As such, find a slightly modified version of it here:
Introduction:
Have you ever been frustrated at the way turns to years is handled in M2TW, leaving your original royal family still reigning over your lands when the mongols invade or even when the black plague hits?
Do you find it unrealistic how characters age by 0.5 years every winter but each turn makes 2 years pass?
Have you thus changed your timescale to another value (i.e. 0.5 or 1.0 or any other) for more immersion factor?
Have you wondered or been annoyed that this change then made mongols, timurids and all the other late game goodies never appear or appear when you already conquered the world?
Or do you simply want to make things happen when you want them to?
If so, this tutorial is for you.
Please note that this only has an effect on new campaigns, not currently running ones due to the nature of the files involved
The method:
For this purpose, you want to be looking at the following files, that are found in your imperial_campaign folder, where your descr_strat.txt is also found.
The files you need to change are the following:
descr_events.txt
campaign_script.txt
desc_mercenaries.txt
Note that all of these are read-only, so to fix that, just right-click, properties, uncheck read-only.
Each of these files controls a different aspect of the events. The descr_events.txt is the main culprit and decides when what happens. The campaign script is mainly for when the actual mongol/timurid invasions occur and their waves, and descr_mercenaries controls when you get to hire certain mercenaries.
descr_events.txt
You will find a lot of words and numbers in that file. The numbers after the word "date" mean when those events appear.
Note that date here refers to years, not turns. That means if you play under timescale 2.0 (the default), those dates mean [turns played]/2 and for timescale 1.0 means [turns played].
Sometimes there is a second date given: this is the last date that this event will possibly occur (boundary)
That is really the interesting part as you can modify those numbers to fit your needs and thus determine when you want which events to occur!
Example:
Code:
event historic mongols_invasion_warn
date 128 144
This means that you get the mongol invasion warning (not the actual invasion) after playing 128 to 144 years. That on default timescale means 64 to 72 turns. If you were playing on timescale 0.5, you'd have to play 256 to 288 turns, which is probably never.
Thus, if you play on 0.5 for instance, you want it to look like this:
Code:
event historic mongols_invasion_warn
date 32 36
If you play on 1.0, like this:
Code:
event historic mongols_invasion_warn
date 64 72
Note you can use any numbers there really and can make them appear wherever you want. Just keep in mind that the number is in years passed, not turns played and you need to use the appropriate conversion factor if any.
campaign_script.txt
This file controls when after the mongol_invasion_warn (or timurid warn) the actual invasion occurs. The format is the same as above, so date means years. As you can see, the first batch of mongols will invade:
Code:
event counter mongols_invasion
date 4 8
4 to 8 years after the warn event occurs. Thus, if you play on 0.5 timescale, that is 8 to 16 years after the warning. To change this, do as above:
For 0.5:
Code:
event counter mongols_invasion
date 1 2
For 1.0:
Code:
event counter mongols_invasion
date 2 4
Or again, any number you wish. For extra challenge you'd want to have them all appear 1 turn away from each other. Note that you not only change this single counter in this file but need to change all occurences of the various dates. The simplest way to do this is to continuously search for the word "date" and then change the numbers accordingly.
descr_mercenaries.txt
When you look at this file, you may feel slightly intimidated by the structure. It is fairly simple however, don't worry. Basically, you can see several things of importance. Some mercs become available as soon as gunpowder is developed. Those have the following tag:
Code:
events { gunpowder_discovered }
Then some mercenaries are only available at certain times:
Code:
unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1250 end_year 1450
Which means this unit becomes available (i.e. starts pooling) at year 1250 and will no longer be available at 1450. Note that it refers to the game year, not years played.
Considering the default start year is 1080 and the default timescale is 2.0, 1250 for instance means 85 turns played. So if you are playing on timescale 1.0 for instance, you want to change the above to this:
Code:
unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1165 end_year 1265
Note that you simply add the turn to year conversion onto 1080 to give the desired year number.
Of course you might not even want mercenaries to disappear, so in this case simply delete that part of the code to make it look like this:
Code:
unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1250
Or you might want them to appear when the game starts, in which case you can also delete the start_year similar to the end_year.
Further, you don't have to make it historical and as such you could just set the year you want them to appear. The game doesn't mind either way.
Notes:
I hope you enjoyed the more detailed rewrite of my original tutorial and if you have any questions or problems with this tutorial, please let me know by posting here or PMing me.
If you are too lazy to make those changes, I am willing to send you my personal copy (for timescale 1.0) which is more modified than the above but fun to play. In that case PM me your email address so I can send it to you.
Bookmarks