• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Besuchov

Studio Manager, PDS
Paradox Staff
64 Badges
Mar 6, 2001
2.268
355
  • Ship Simulator Extremes
  • Knights of Pen and Paper +1 Edition
  • Leviathan: Warships
  • Magicka
  • Majesty 2
  • Majesty 2 Collection
  • March of the Eagles
  • Naval War: Arctic Circle
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Rome Gold
  • Semper Fi
  • Sengoku
  • Hearts of Iron Anthology
  • Sword of the Stars
  • Sword of the Stars II
  • Starvoid
  • Teleglitch: Die More Edition
  • The Showdown Effect
  • Victoria 2
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • Rome: Vae Victis
  • Warlock: Master of the Arcane
  • Warlock 2: The Exiled
  • War of the Vikings
  • Impire
  • A Game of Dwarves
  • Arsenal of Democracy
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Darkest Hour
  • Dungeonland
  • King Arthur II
  • Heir to the Throne
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • Gettysburg
  • For the Motherland
  • Europa Universalis IV: Conquest of Paradise
  • For The Glory
  • Divine Wind
  • Europa Universalis III
Avē!

Some Imperator news for you all! My name is Thomas and I’m a Studio Manager here at Paradox, some of you probably know me from the old days when I worked on EU4 among other things. Recently one of my side activities has been to coordinate a small effort around Imperator:Rome.

It’s now been a while since the release of Anniversary Patch 2.0.4 Augustus. In fact, it’s been a little over half a year now! We were thrilled by the incredible community support for that labor of love, crafted by some of our developers here at Paradox in collaboration with some exceptionally talented modders.

Building on that and a continuous collaboration with parts of our fantastic modding community, we dedicated some additional resources and we’ve got another patch for you! Patch 2.0.5 is now available on the open beta branch. Like 2.0.4, its primary focus is on providing modders with more tools and greater freedom in the game. But that’s not all—it also includes several quality-of-life improvements that should enhance your vanilla experience as well.

We’re excited to hear what you think of this patch, which we plan to release in full in the (near-ish) future. If you encounter any issues while trying out the beta, please let us know! Your feedback is invaluable in helping us fine-tune this update and ensure it’s as stable and polished as possible for its final release. Additionally, I’m not making any promises here, but don’t hesitate to suggest additional improvements for future updates if we manage to get to that point.

Special thanks to Katten & Sir Rogers who did most of the heavy lifting for this update, it would not have happened without them!. They will also hang around here and pick up on your feedback!


Credits

Imperator: (Patch name not decided yet) (2.0.5)

  • Thomas Johansson - Studio Manager
  • Niels Uiterwijk - Technical Director
  • Benjamin Larsson - Build Engineer
  • Vjola Velikaj - Build Engineer
  • Erik Jakobsson - Community Manager
  • Peter Nicholson - Game Director
  • Erik Nikko - Tech Lead
  • Milica Maricic - Producer
  • Roger Webber - Programming Consultant

Modders who supported the release
  • Joshua Lilly “Zorgoball”
  • Robbe Vander Kerken “Snowlet”
  • Izn Hasan Naqvi “LinkLuver”
  • Carlos Austin-Gonzalez
  • “Pureon”

Below you will find the list of changes….

New Defines

BATTLE_COMMANDER_ESCAPE_CAPTURE
  • If the loser army was not overrun, a random integer will do a module check against this value
  • If the rolled value is less than the charisma of the army leader, they will charm their way out of the situation and avoid capture

BATTLE_COMMANDER_CAPTURE_MARTIAL_CHECK
  • This check is done if no charming out of the situation has happened before, and is only done if the winning army has a valid leader. If there are no leaders on the winning side this check is not done
  • Mercenaries cannot be captured this way and are excluded from this check
  • If the loser army was overrun OR if a random rolled integer with a modulo against this define is smaller than half the martial value of the highest martial winning commander, the loser commander gets captured

BATTLE_MIN_CASUALTIES_IMPACT
  • Casualties impact is always the difference of tactics between the armies of the countries involved
  • This defines a minimum amount of casualties that will always happen regardless of the difference

BATTLE_NO_POPULARITY_LOSS_IF_RATIO_AS_ATTACKER
  • If the attacker has this many times more units than the defender and loses, there is no popularity loss

BATTLE_NO_POPULARITY_LOSS_IF_RATIO_AS_DEFENDER
  • If the defender has this many times more units than the attacker and loses, there is no popularity loss

END_OF_COMBAT_STRENGTH_RATIO_MODIFIER
  • This amplifies the strength ratio by the given define, so it increases or decreases the impact that the ratio has for end of combat morale boost

END_OF_COMBAT_MORALE_BOOST_MAX
  • This defines up to how much of the total morale a unit can regain at the end of combat

MINIMUM_LOSS_RATIO_THRESHOLD_FOR_BATTLE_RESULT
  • The battle result is only stored if this number is surpassed for losses in combat

OVERRUN_FACTOR_FOR_INITIAL_CHECK
  • This is checked once at the start of combat, if the difference is equal to or bigger than this the enemy army is instantly overrun

These defines were previously hardcoded and inaccessible to be changed. They have now been exposed for you to play around with. The explanations for this are also present as comments in 00_defines.txt

New Effects

Scope: Character

set_can_inherit = bool

- The game plays as usual when this is set to true for a character. However when set to false the character cannot inherit anything anymore unless it is set to true again. This includes worldly possessions as well as leadership of a country. When this is set to false successors for the country are instantly recalculated.

set_can_marry = bool

- The game plays as usual when this is set to true for a character. However this allows modders to play around with marriage, as setting this to false means the character can never marry, unless it is set to true again.

Scope: Country

allow_trade_goods = goods
disallow_trade_goods = goods


- These two allow/disallow the AI from trading away the goods specified. This allows modders to add more interesting gameplay elements around trade.

Trade goods can be found in common/trade_goods. A valid example is grain

call_omen = deity_category

- This instantly calls an omen for the given deity category. The same way a player would do it from the UI, but there is no cost associated with it.
Deity categories can be found in common/deity_categories. A valid example is economy

end_truce = country

- This instantly ends the truce that the scope country has with the target country. Truces are unilateral in nature, so both countries may have a truce with one another or it is possible for only one if the countries involved to have a truce with the other.

start_character_interaction = { type = character_interaction, character = character }

- This allows you to start an interaction with the target character, as a player usually would via the UI. This allows mods to further customize the experience without necessarily having to touch the UI, or by making actions available that were previously only available through UI or with cumbersome scripts.

Character interactions can be found in common/character_interactions. A valid example is adopt_to_family

Scope: CountryCulture

set_levy_template = template
- This allows you to change the levy template for a culture in a specific country without touching the same culture in other countries, allowing you to reward players for specific behavior. It is important to note here that there are various tooltips in the game that show a culture´s composition that will not properly reflect changes from this, as they have no context for which country the composition is being displayed. The Raise Levy tooltip will always reflect the proper value.

Levy templates can be found in common/levy_templates. A valid example is levy_anatolian

Scope: Province

start_building_construction = building
cancel_building_construction = building


- These two start/cancel the construction of a building in the given province.

Buildings can be found in common\buildings. A valid example is fortress_building

change_climate = climate

- You can change the climate of the province to one of the following: mild_winter, normal_winter, severe_winter, arid and none

Scope: War

war_score_value = { target = country, local_var = name }

- This will save the war score of the target country that is a participant in the war scope that you are in to the local variable with the name provided. The variable does not have to exist yet. So if you are ROM, fighting against TRE, and you fetch the war score value of TRE, it will save their war score against the enemy war leader (ROM in this case if you are the war leader). So it will be the inverse of what you see as a player of ROM.

New Triggers

Scope: Character

can_inherit = bool

- Simple trigger that returns the value previously set by can_inherit. It returns true by default.

can_marry = bool

- This checks against the value that has previously been set by set_can_marry, but it also checks the default marriage conditions. This has allowed us to improve some of the script for the game, to simplify the marriage checks and unify them. To make it easier for modders to adopt the changes, here is a document that has all of the relevant script changes from the base game:
https://docs.google.com/document/d/1Ft_BPHm-dWB-IuJ9o8UG4cAutb79tP7jzsVffxvsCXA


Scope: Country

has_claim = province

- Checks if the country has a claim on the given province.

is_trade_goods_allowed = goods

- Checks if the given trade goods are allowed to be traded away by the scope country. This can be modified with the effects listed above.

Trade goods can be found in common/trade_goods. A valid example is grain


Scope: Province

is_holy_site_of_deity = deity

-Checks if the given province is a holy site for the given deity.

Deities can be found in common/deities. A valid example is deity_alilat

is_holy_site_of_religion = religion

- Checks if the given province is a holy site for the given religion.

Religions can be found in common/religions. A valid example is roman_pantheon

General Modding

  • Added modifier script access, on the scopes that have modifiers: country, character & province. Accessible via modifier:modifier_name
  • Added MakeScopeBool, MakeScopeFlag, MakeScopeValue
  • Added SetVariableIf, SetOrToggle, ClearVariableIf, ClearMultipleVariables to the VariableSystem
  • Added support for optional exists equality operator ?=
  • Added support for save_scope_value_as and save_temporary_scope_value_as
  • Added script list region_governorship
  • The automatic legacy character setup conversion has been moved to a console command: legacy_character_setup_conversion
  • The setup editor no longer automatically saves every time a province is selected. It now uses the console command only.
  • Made religion_category customizable, so mods can add new categories. Also made it localizable: religion_category_X and religion_pantheon_X where X is the category name
  • Religions can now also be customized with is_monotheistic
  • Added error logs to the set_party_leader effect
  • Fixed every_province, random_province and any_province: they now work properly

GUI

  • SetHighlightGovernorship = governorship and SetHighlightState = state have been added
  • PdxGuiWidget.CountVisibleChildren and PdxGuiWidget.GetChildrenCount have been added
  • GetGlobalVariable and GetGlobalList have been added
  • AddList has been added
  • Added GetLevyTemplate to CountryCulture, as unlike the one from a country, this takes into account the one set via set_levy_template

Other

  • has_culture_group and set_country_religion now support more than just hardcoded values, they now have scope support
  • Added Log.ClearAll & Log.ClearErrorLog console commands
  • Overlords can now construct buildings in certain subject types, set with can_build in the subject type


The Rest:

AI

  • The AI now disbands units created via create_unit effect and will no longer keep them around forever and unnecessarily hurt its own economy

Multiplayer

  • Moving pops too quickly, like mass moving slaves would previously cause you to pay for the move but not actually move any pops. This has been fixed, it will now always move the pop if it can, and if it cannot, like if the player clicked more often than pops are available to move, then no cost will be deducted

Combat Simulator

Fixed up combat simulator crashes. Also enhanced functionality:
  • location = province has moved to being defined once per simulation instead of per unit.
  • is_player_attacker = bool has been added so choosing a battle side is now possible that way.
  • enemy = country has been added. This means you can simulate combat against other nations. If those are non-barbarian nations and no war exists, a war will be declared automatically.

GUI

  • The Find dialog will now also return governorships and states in addition to the previous result types
  • Added climate map mode

Other

  • Overlords can now construct buildings in certain subject types
  • Holdings are now removed properly when characters move countries or the province changes owners. This fixes an issue where third party country provinces are dragged into an unrelated war. Also only owner-controlled provinces join civil wars now.
  • Fixed location of Sparta so that it does not visually disappear when a road is built through the province
  • Various script fixes related to marriage checks, and adjusted to the new can_marry trigger
  • Arrange marriage now available in countries with custom ruler setups, it is now allowed for the ruler family instead of just close relatives
  • Mercenaries can no longer be marriage targets
  • Fixed a crash that would occur for players using mods that do not have certain gfx assets available, for example from the free DLC
  • Revolt countries now instantly recalculate their cached data, this fixes various issues like integrated cultures and levies now being correct instead of only being at the right value at the next monthly tick
  • Fixed tooltip that stated achievements would only work with no mods enabled. The tooltips now represent the correct state, which was changed with 2.0.4, as they can be gained with mods
  • Fixed 3D map objects like forts and ports not being removed when a province is decolonized. Also now instantly recalculates province dominant culture, religion and modifiers when pops are removed
  • Fixed governor policies script bug with country cultures
  • Fixed befriending script bug not being removed properly on ruler change
  • Fixed DECLWAROTHER_MAP being displayed unlocalized on the map, this only worked correctly in the French language before
  • When switching from a government with a co-ruler to a government without one. The existing co-ruler is now removed properly, and will no longer stick around forever causing issues
  • Fixed crash on peace offer, when the country to receive a state was not the same as the one making the offer, and the offering country had no province in the area
  • Secondary war participants now also see peace deals as popups



Open Beta Update - 2025/04/16
  • Changed local_fort_limit to state_fort_limit (affects mods, but they basically used it wrong anyway, because the name implied it's different from what it is)
  • Updated script_docs to report the proper modifier categories, and this also supports showing multiple categories now that they are used for
  • Tag limit now customizable as a define (!). This lets mods create their own limits based on how much they need, as higher limits have a performance impact.
  • Omen and construction costs have been removed when called from script, so that custom costs may be assigned by modders.
  • Added GetLevyTemplate to CountryCulture promote
  • Prevented the game from crashing when exceeding tag limit
  • Fixed all tag issues with the formable Crete tag because the tag started with an invalid character
  • OOS fixed that was introduced
  • More than 1 instance per building can be added to the construction queue again
 
Last edited by a moderator:
  • 192Love
  • 53Like
  • 3
  • 3
  • 2
Reactions:
Long leave the leaders who distribute free grain patches to the masses!
 
  • 41Like
  • 11Haha
  • 2Love
Reactions:
Scope: CountryCulture

set_levy_template = template
- This allows you to change the levy template for a culture in a specific country without touching the same culture in other countries, allowing you to reward players for specific behavior. It is important to note here that there are various tooltips in the game that show a culture´s composition that will not properly reflect changes from this, as they have no context for which country the composition is being displayed. The Raise Levy tooltip will always reflect the proper value.

Levy templates can be found in common/levy_templates. A valid example is levy_anatolian

Will this also update the default levy Primary/Secondary/Flank for that culture?
 
  • 2Like
  • 1
Reactions:
is_trade_goods_allowed = goods

- Checks if the given trade goods are allowed to be traded away by the scope country. This can be modified with the effects listed above.

In our MP mod, I added a feature that allows players to "Embargo" other countries; it works well, but the main downside is that that automatic trade function on a governorship works on its own internal logic that cannot be touched. Curious if there's anything that can be done about this? I would also love to change the trade logic to, say, prioritize more expensive goods.
 
  • 1
  • 1Like
Reactions:
While I'm on a roll, would it be at all possible to add the ability to adjust some of the mechanics to Primary/Secondary/Flank? I'd love to be able to limit what units can be assigned to a flank/primary/secondary position; furthermore, I'd also like to be able to adjust the penalty units not being in the correct position - for example, there's a mechanic where if a unit that is not in the primary/secondary/flank block comes into battle, it has lower morale; I'd like to be able to adjust that value at the least.

It would be even more amazing if there were penalties for primary/secondary/non-assigned units for being introduced into Flank slots! This would allow us to craft metas that encourage balance army unit compositions versus just buffing one unit and building that one above all else.

We've been in a constant battle in our MP mod to encourage players to not just build HI or whatever in every single game. More tools at our disposal to accomplish this would be most appreciated.
 
  • 3Like
Reactions:
Honestly pleasantly surprised in seeing devs taking care of their product after all these years without a direct way to earn from it. Thank you!
 
  • 8Like
  • 2
  • 1Love
Reactions:
are there still jewish citizen pops in rome with full patricius status? i remember threads on this forum about it since day one and no one from the various IR devs even cared to even address the issue
 
  • 4Like
Reactions:
One of the best games about ancient Rome; the new patch and Invictus mod keep the game alive. It has less content than other Paradox games, but besides that, it is one of the best Paradox games.
 
  • 5Like
Reactions:
Hey, would it be possible to add a tab to I:R, that let's you see total amount of modifiers reduction (similar to EUIV)? As far as i know, it's not possible to check that.
Really happy to see that the game is still receiving some patches :)
 
  • 5Like
  • 1
Reactions:
Really amazing. Thanks a lot for the patch. Imperator Rome is a really good game that deserves some love. Keep up the good work!
 
  • 4Like
  • 1
Reactions: