This page focuses on the key updates and features added with the 2.0.4 patch.
- New Game Features in 2.0.4
- New UX Features
- New full size info panels for units and buildings.
- Add region names underneath settlement names in the campaign tags
- Add population and public order to settlement captured screen
- Add "Previously Seen" Fog Of War stage to the minimap.
- Show religion percentage on the settlement icon tooltip
- Let players see religion in non-owned settlements if they can also see population loyalty
- Add tooltips specifying the rebel sub-type for characters and settlements.
- Improvements to card order when grouping/ungrouping units
- Minor fixes to avoid text clipping on some screens
- Building Browser, Info Panels & Tooltips - Improved Requirements Information.
- Smaller Miscellaneous UX Improvements
- Factions
- Religion
- General Gameplay
- Fix the trigger for Achievement 'My Trade Goods Bring all the Boys to the Yard'
- Fix rebel merchants generating income for the settlement they are sitting in
- Allow Assassins to queue up a move for next turn even if they have already conducted an action this turn.
- Armies can no longer construct sap points if they physically cannot use them with their current units
- Improve and simplify ram & chariot outlines and hitboxes
- Sound - Miscellaneous minor fixes and improvements
- New Campaign Features
- Support Multiple Family Trees & Other Improvements
- Prevent the AI from requesting a trade agreement with a faction they have an embargo with.
- Prevent being able to simultaneously declare a trade embargo and offer trade rights in the same diplomatic proposition
- Improve the chance of AI attacking forts especially when they are occupied in their own territory.
- New Battle Features
- Battle AI Enhancements
- Improve placement of units in enclosed areas
- Block invalid formations
- Improve a number of aspects of wall pathing logic over original.
- Pathing improvement when choosing first point on a path.
- Tighten conditions for stopping a charge so units can close gaps better.
- Fix and optimise grouping algorithm for wall units.
- Add implementation of "Hungarian Algorithm" that solves the assignment problem.
- Improve defensive AI for walls
- Improve UI path logic for attacking siege towers.
- Fix problems with climbing siege towers while being attacked.
- Make AI more consistently aggressive.
- Improve pathing for large units passing through gates.
- Treat Cavalry that is getting further away as an invalid target for Infantry units.
- Minor improvements to settlement layouts
- Make defending AI artillery follow units.
- Make AI more dynamic when defending the plaza.
- For cities with no walls, consider the city and the outside as the same area (improves AI behaviour in these situations).
- Make units rotate to the correct direction when defending junctions.
- Make soldiers move around rams when they run into them.
- Improve behaviour of AI reinforcements
- Battle AI Enhancements
- Crash Fixes
- Multiplayer Stability Improvements
- New UX Features
- New Modding Specific Features in 2.0.4
- New UX Features
- Better support for displaying negative capabilities in the UI
- Allow mods to specify custom loading screens per map / location
- Allow hex values to be used in UX .pos files for font colours.
- Building Browser, Info Panels & Tooltips - Rework item requirements to display conditional strings.
- Smaller Miscellaneous UX Improvements
- Factions
- Factions have been updated to support virtually unlimited numbers of factions.
- Support for multiple Super Factions
- Improvements to Shadow Factions & Loyalty
- Shadowed factions won't automatically shadow back
- Prevent shadow factions from stealing revolts while they're still alive
- Allow shadowed factions to have captain portraits
- Player factions can trigger shadow faction switchback
- Shadow faction resurrection has improved behaviour
- Shadow - Shadow Max Provinces Definition
- Emergent Faction Improvements
- Line of sight correctly disables when the Roman Civil War starts
- Added Rebel portraits for roman rebels as mods might need it in certain circumstances.
- Allow ai_do_not_attack_faction to target multiple factions
- Make pirate and brigand spawn rates at 0 disable spawns
- Allow rebel subfactions (as in, slave cosplay, not shadow factions) to have their own custom faction logos to match the banners.
- Allow setting faction aggression levels in the descr_strat
- Allow Slave faction to have a functioning family in mods
- Various minor improvements to Faction behaviour
- Culture
- Religion
- Religion has been updated to support virtually unlimited numbers of religions.
- Religions can now specify a group
- Religions can have different unrest multipliers against other religions
- Define the amount of unrest relative to the settlement population
- Changes to appropriate UX & data files to allow for extra religions
- Support new religious conditions for buildings
- Support new religious conversion logs for modders
- Allow Traits & Followers to have more than one religious effect
- Smaller Miscellaneous improvements
- Buildings
- Buildings have been updated to support virtually unlimited numbers of Buildings.
- Allow building_factions condition to be used for upgrade lines
- Allow grouping buildings in multiple groups of mutual exclusivity
- The building_factions condition now works for recruitment lines
- Allow the building_factions condition to be used in the upgrades block
- Add factionwide keyword to building condition resource checks
- Support for new Religious based conditions
- Add agent number limits for all agent types, modifiable through building effects
- Added "ai_destruction_hint" option to building definitions
- Remove limit of 32 effects per building level
- Added can_player_effect_this
- Remove the implicitly decided "temple" type, which prevented building other temples while one existed, and replace it with a system of tags and the no_building_tagged condition
- Allow specifying factionwide condition to check across the entire faction
- Make unit availability restrictions in building definitions file implicit
- Add scripting conditions for checking diplomacy status between two factions
- Make CAPABILITY_TRADE_FLEET moddable
- Allow using the "capability" settlement condition on capabilities and recruitment
- Add the ability to specify custom strings in building capabilities
- Allow specifying building slot guards using tags
- Support 'building_factions' condition for recruitment options
- Miscellaneous minor fixes and improvements
- Combat_Vs effects are now fully moddable
- New Traits and Follower Features
- General Gameplay
- Sound - Miscellaneous minor fixes and improvements
- New Campaign Features
- New Settlement Features
- Squalor & Distance From Capital penalties are now moddable
- Minimum & Upgrade Population levels are now moddable
- Make major events completely moddable (i.e. Marion Reforms)
- Religious unrest penalties can now be modded (per religion)
- Override the default religion of a settlement
- Support for per settlement custom models on the Campaign Map
- Allow settlement name to be used as a character surname
- Allow use of settlement loyalty/public order as a multiplier to region income
- Add Ambient Models on Campaign Map
- Allow defining of specific brigand and pirate factions per region
- Option to have Opaque Fog Of War in mods (hides undiscovered areas completely)
- Allow overlapping mercenary pools
- Fort plans are now consistent
- Add support for unit-specific AI recruitment bias using recruit_priority_offset
- Removed 32 variation cap on AI Personalities
- New Battle Features
- Allow aspects of Battle AI to be moddable via data files
- Increase maximum number of officers
- Add the ability to vary unit models including based on armour and weapon levels
- Implement Field Of View slider for the Remastered and Classic camera modes
- Allow setting tattoo_colour per faction
- Additional Battle Map Sky modding options
- Allow Mods to control when torches and night lighting is triggered
- Add a flag for globally disabling friendly fire
- New Settlement Features
- Enhanced Tweaks Mode - Expose Game Engine Settings For Mods
- Save Games Record Enabled Mods
- Refactored Name Lists for better modding control
- Logging Features
- Scripting Features
- Add go_to_char command for Campaign.
- Add ```go_to_capital`` command for Campaign.
- Add scripting command to alter a region's religious profile
- Removed unit limits create_unit command (was 5 in original game)
- Added destroy_unit and swap_unit to scripting and romeshell.
- Added commands for setting the Faction Leader and Heir.
- Allow a faction to be passed into capture_settlement
- Add HasOffice command
- Add MajorEventActive command
- Add change_character_faction to move a name character to another faction.
- Add a new event start_turn trigger for the start of a round.
- Add a new event FactionDestroyed trigger for when a faction is destroyed
- Enabled diplomatic_stance
- Enabled faction command
- Added give_everything Command
- Support Local scope access for a number of script and console commands
- Add commands for adding and extracting counters from local scopes
- Added support for mods adding their own income/expenditures
- Allow setting senate standing directly from script
- Allow set_counter to use another counter instead of a constant value and add counter_operation command
- Add scripting conditions for checking diplomacy status between two factions
- Allow I_CompareCounter to compare two counters, instead of just one counter against one constant
- Add "break" command to exit scopes
- Additional Miscellaneous Improvements
- RomeShell Features
- Add support for pasting clipboard into RomeShell
- Display whether achievements are enabled or not in RomeShell (and if disabled, why)
- Add the ability to middle mouse scroll RomeShell while its in focus.
- Add verify_building_units to check for duplicate units in buildings
- Added a number of previous scripting only commands to RomeShell
- Auto generate documentation for RomeShell commands in preferences folder
- Fixed transitioning between previous commands
- Can use this instead of using settlement or character names
- Fixed issues loading specific assets from mod folders
- Crash Fixes
- New UX Features
These can be accessed by expanding the smaller info panel on the left side of the screen. When in campaign mode this will hide the smaller panel and instead expand a new larger middle panel. The panel settings will be saved so once a user selects the larger view all future info panels will be large until they toggle the setting back to the smaller mode. This larger panel doesn't exist in 3D battles.
These can be disabled in mods if preferred by modding the data/data_controlled_features.json
file.
You can look at the example mod here to see it in action.
This addition gives players more useful information prior to making their decision on how to capture the settlement. This feature could be disabled by modding the .pos file for this screen.
We were already doing this for the fullscreen version, but not for the minimap.
AN example of this in practise is if the player has a spy in the city
- Maintain the card order when grouping/ungrouping. Previously we were adding all the cards to a set, so we lost the ordering. We would then sort them within the group so they somewhat made sense.
- Decrease the max width of the post-battle results screen title text to avoid spillage
- Increase the width of the merchant tooltip so we don't get text clipping in some languages.
- Fix the positioning of the scroll bar in the building info panel.
We now display all the requirements for buildings and units across the UI making it easier to see the status of buildings that have more complex requirements for example the Blacksmith building for the Julii.
- Add the ability to mouse wheel scroll the unit list menu
- Remove income gained from a settlement's merchants from the "merchants" display in the settlement income panel.
- Always display faction name regardless of if a faction is rebels to keep tooltips consistent.
- Remove the
Rebels (<rebel type>)
format from slaves, since in the base game slaves are named in the manner, "Galician rebels" so it is redundant to include that info. We also make sure we properly set surname based origin so we can detect when agents come from rebels - Fix missing dividing line on agent tooltips under certain circumstances
- Only display the "Move Followers" button when in the "Traits and Followers" tab
- Update the left UI panel when characters gain/lose trait points
- Fix gladiator revolts not using the trident banner
- Fix rebel settlements always being angry all the time because rebel settlements would always use the world dominant religion if no temple building was present so you'd get 90% christian settlements being officially pagan
This achievement can now be triggered.
Allow Assassins to queue up a move for next turn even if they have already conducted an action this turn.
The original game could already handle this if the action required multiple turns to reach the target, but couldn't if they could reach it on the same turn.
Armies can no longer construct sap points if they physically cannot use them with their current units
Add a way of cycling between the various family trees within a faction. Modders are able to add multiple families in descr_strat.txt, but previously the game would only display the family tree of the current faction leader. Now, if multiple families are present, buttons will be made visible in the full screen family tree window allowing the user to cycle between them.
- When opening the large family tree, we will now centre the tree on the selected character.
- When exiting the large family tree, we will now scroll the family list so that the selected character is visible.
This also exists for the Family tree lists in the same Factions Overview tabs.
Prevent being able to simultaneously declare a trade embargo and offer trade rights in the same diplomatic proposition
Bump the priority of AI attacking forts so it's equal to the priority of engaging armies and as high as possible when the fort is in our own territory
Improvements to the Battle AI.
Allow both drawing and placement of units in enclosed areas (such as roads) even if the unit size is too large. The placement of individual soldier has also been changed. If a soldiers ideal formation position is blocked, they will now first attempt to stand next to another formation position.
If all these alternate positions are either already in use or blocked, then we fall back to the original logic of just placing them as close to their ideal position as possible.
- Dont allow users to input formations that are invalid. This still allows users to right-click units into somewhat-invalid positions, but no longer allows right-click drag formation positioning in such areas.
- Units will form up in the correct orientation when climbing off walls
- Unit sub-groups will follow the main group when pathing off of walls whenever possible.
- Unit sub-groups can now navigate wall->ground->wall correctly without getting stuck.
- Fix issue where units would take weirdly long paths when climbing on to a wall.
- Reduce colliders for some types of wall movement.
- Add further improvements to pathing and make transition up walls smoother.
- When placing units on walls, if we run out of space, attempt to traverse left to find more space.
- Check both directions when looping through wall slots as formations can now go to the left.
- Fix problem where the a certain action would make units march to the start of a line instead of to the nearest point.
- Make units form up into a square before climbing towers.
- Fix problem where units would only use 1 ladder when climbing down walls.
- When a building changes damage level, run additional logic. This prevents paths from constantly being invalidated when buildings are being damaged.
- Fix issue with entrance formations.
- Fix issue where the unit had different actions assigned to different soldiers, which lead to the formation being split.
Old conditions for stopping a charge:
- 10% of soldiers have finished charging
New conditions:
- 33% of soldiers have finished charging
- 33% of soldiers are within 25m of the enemy unit's centre.
- Reformat
AI_TACTIC_DEFEND_WALLS
so that the threats are saved between updates. - Threats are saved between updates. This helps with making the AI more decisive, and also means that units that were assigned to deal with a threat will be kept on the same threat for the next update if it hasn't changed sufficiently.
- Re-work wall deployment algorithm to order unit to more optimal places.
The problem instance has a number of agents and a number of tasks. Any agent can be assigned to perform any task, incurring some cost that may vary depending on the agent-task assignment. It is required to perform as many tasks as possible by assigning at most one agent to each task and at most one task to each agent, in such a way that the total cost of the assignment is minimized.
- AI is better at recognizing units that are climbing up the walls and docked siege engines as threats.
- AI doesn't consider slows unavailable for placement if an enemy also wants to go there.
- Improve logic surrounding merging new wall threats.
- Reduce potential for units to get stuck on walls - Include units on walls as "inside the settlement" and order them directly to the plaza when retreating.
- When reforming from wall->wall, go straight to the destination without waiting for all the other units within the reform group
- Reduce colliders from units in the same alliance on walls to avoid units getting stuck.
- Units assigned to the flank sub-objective will attempt to continue until the end whenever possible.
- When they are finished they will be assigned the attack objective on the next update.
- Units attacking will be more likely to keep the same target instead of switching.
This should prevent infantry chasing cavalry for way too long when it has other options and doesn't have a chance to catch up.
- Create modified path finding cas for barbarian towns.
- Create modified street plan for huge egyptian cities.
For cities with no walls, consider the city and the outside as the same area (improves AI behaviour in these situations).
AI reinforcements (human and AI sides) should now be more consistent. Previously in some cases the AI could enter with strange formations or be slow to enter the battlefield when playing in campaign.
- Fix crash seen when the game tries to remove the last trait in a character's trait list.
- Crash fix - Make sure the contents of the active mods file is valid before continuing. If its not valid, we will just delete the file as it will be regenerated.
- Fix Rare crash - Ensure there's a settlement before getting the number of visiting agents.
- Fixed Crash - Make sure the army pointer is valid before getting the general from it.
- Fix rare crash when loading settlement order pips while MAX_BELIEF_COUNT was 0
- Force "base_map.rwm" to update when opening the multiplayer menu if its outdated
- Display the compatibility status on the end of the incompatible multiplayer lobby report string.
The game now selects if + or - is needed using the value provided. This prevents us from displaying strings such as "...bonus: +-5" when we expected the bonus to be positive, but a mod has made it negative.
The value itself is expected to always be positive, so for detrimental/reduction capabilities we were always adding "-" before them in the string, resulting in modded strings being displayed like "... reduction: --5%".
To solve this, we now use the absolute value for the UI, and handle whether there should be a "+" or "-" before it ourselves. Also, instead of always using the positive green arrow, we now decide whether that or the red arrow should be used based on the capabilities value.
- Allow a unit's morale bonus to be negative
- Display current unit morale (including morale bonuses) instead of the base unit morale.
- Allow population growth bonus, population health bonus, law bonus and happiness bonus to support negative values
- Allow building cost modifiers to be negative
- Allow trade level bonus to have a negative value. It won't go any lower than 0 which will make the trade in the settlement drop to zero.
- Display a different string when trade level bonus is negative and give a couple of other trade effects signs
- Allow Tax Level bonus to be negative
- Please note, the tax level multiplier for tax levels doesn't apply to buildings bonuses so if you have a huge negative tax income bonus it will still be overall negative value but increasing the taxation rate won't make it more negative.
We now optionally allow modders to specify the loading screen to be displayed for a given custom map. The loading screen is either defined in the battles "descr_battle.txt", or for maps that dont have that, its defined in "custom_locations.txt".
e.g.
battle Macedonian_Ruins
playable
end
nonplayable
end
start_date 500 summer
end_date 500 summer
loading_screen data/loading_screen/MRuins_loading_screen.dds
------------------------- OR -------------------------
custom_location British Grassland
{
location 123 96
image data/menu/grass1.tga
sett_locked no
summer no
sandstorm no
loading_screen
data/loading_screen/battle3_loading_screen.dds
}
We now allow hex values to be used in place of our pre-defined colours in .pos files for font colours. Should still be entered as a string, and start with a #
E.G. "font_colour": "#0a85ab",
This feature allows you to display information about items that have multiple complex conditions surrounding them and have this information appear clearly in the UI.
- Split the single "localised_string" method into several more granular methods to make the system a lot more clear
- the existing "evaluate" method can be used to detect if a condition is currently true or not
- the "get_requirements_string" method will get the localised requirement string for the condition
- the "get_requirements_list" method will return a list of pairs of strings and the status of each condition the string corresponds to, so we can do nice text colouring to make it easier for the player to realise what they have to do
- Add condition aliases, which are just sets of regular conditions which are defined as part of and can mask them
You can look at the example mod here to see it in action.
- Added the ability to define the max line count for multiline strings in pos files
- Added more areas of the game fonts (tooltips etc) to be modded with custom colours
In doing so certain features linked to factions have been extended or improved.
- All line-of-sight updates to a super faction member are propagated via the superfaction leader. This means all super factions have their own shared line of sight.
- Rewrite parts of the senate AI to make them be able to handle more than 3 children that are in places other than the first 3 faction slots
You can look at the example mod here to see it in action.
- When superfaction members get kicked out of the superfaction they get outlawed to avoid additional complexity.
- Make the entire system for checking against outlaws simpler by just kicking outlaws from the superfaction.
- Remove all references to a single monolithic superfaction and instead use references to our local superfaction.
-
Make shadowing logistically simpler - shadowed factions won't automatically shadow their shadow back, that's explicit now
;;shadow faction (NOTE: shadow factions now have to be explicitly circular, ;; if your shadow faction is not shadowing you the revolt order will be you->shadow->rebels instead of you->shadow->you) "shadow faction": "empire_east_rebels",
- Replace
can_spawn_a_faction
with a toggle which prevents shadow factions from stealing revolts while they're still alive
- Remove block preventing shadowed factions from having captain portraits, since they absolutely could need them under certain circumstances
- Improved shadow switchback so it can also effect players, this means if you're playing as western roman rebels, and then defeat the western empire, you then become the western empire instead of remaining as rebels
- When generating a faction leader, give them the religion of their current settlement
- When taking a revolt, give them 1.5 turns worth of the settlement's income up front
This gives them a little bit of breathing room when they take a settlement, since they usually start with 0 denarii and more units than they can handle - so they immediately go into debt, and then every time they take a settlement they go even further into debt - this has the effect of essentially making them act like regular rebels, as they can't afford to build new units or fix their unrest problems - the above is even more devastating because their revolt garrisons are weaker than regular rebels would get - with this change they should hopefully be able to put up more of a fight and occasionally actually win
You can now define the maximum number of provinces a shadow faction can have before it stops taking revolts.
;;the maximum amount of provinces the shadow faction can have before it stops taking revolts
"shadow max provinces": -1,
- Allow spawning conditions for factions like the Romano British to be encoded into user-editable scripts rather than hardcoded
- Change ostrogoths to work as an emergent faction that triggers on revolts instead of being a shadow faction
- Allow users to define the unit lists used by emergent factions when they spawn - (
descr_sm_factions.txt
)
Factions should now go into a dormant state instead of dying under if BOTH following conditions are TRUE:
- They are flagged as re-emergent
- They are shadowing another faction, and that faction is still alive
-
Implementation is very simple: at the end of the descr_strat (but before the main script), declare the name of the script like so:
spawn_script romano_british, capture, romano_british_spawn_script_capture.txt
spawn_script
just indicates that we're declaring a new spawning conditionromano_british
indicates the faction this applies tocapture
means that this script should only be checked when a settlement is captured- current possible triggers are
end_of_turn
,capture
, andrevolt
romano_british_spawn_script_capture.txt
is just the name of the script
-
The only return values are true/false, the faction either spawns or it doesn't
-
Spawning on a revolt will cause the faction to take over the revolting settlement, the other two will do a romano british horde thing
-
Also if you want a faction to have loyalty revolts even after they are defeated you can add
re_emergent
in thedescr_strat
before thesuperfaction
anddenarii
but after theai_do_not_attack
ordead_until_resurrected
-
We use a new
return
command to communicate with the script, if no return value is set, we assume the check failed
- Spawned on event declaration in faction_db removed, we now display the emergent faction tooltip on the faction select if the faction is declared dead_until_resurrected in the descr_strat
- Allow any faction to load in spawning scripts given the file has a correctly formatted name
- Don't force all settlements to revolt if the player is playing an emergent faction that shadows the settlement owner
- Add rebel portraits for the roman rebels because under certain circumstances mods may need to have a roman rebel rebel banner.
- Allow
ai_do_not_attack_faction
to target multiple factions, for example:ai_do_not_attack romans_julii, romans_brutii, romans_senate, romans_scipii
This allows mods to disable rebels spawning, the original game allowed you to lower this but you could never stop it completely.
Allow rebel subfactions (as in, slave cosplay, not shadow factions) to have their own custom faction logos to match the banners.
- Works exactly the same as
faction_relationships
andcore_attitudes
, and is defined after them - Ranges from 0 to 1000
Allow Slave faction to have a functioning family tree, they can be assigned family members in the beginning, and they can produce offspring. This needs to be enabled in the mod specifically.
- Combine rebel and normal banner icons into the same array, as that makes attaching them to the faction definitions easier.
- Add new
descr_sm_faction_icons
file to allow us to add faction icons into the sprite sheet after it's been initialised which makes dealing with the UI easier - Remove the greener gaul hardcode and just change the value in the descr_sm_factions.txt file
- Add rebel type to admirals
- Allow adding traits to character records in
descr_strat
- just add a line for traits after the record like you do for characters
In doing so certain features linked to culture have been extended or improved.
- Users can also control the special AI assist* which was given to the other roman factions in the base game to keep them competitive with the player
- Users can now control settlement population mechanics, including the amount of squalor generated and the distance from capital unrest multiplier*
- This also includes being able to modify settlement upgrade levels and minimum population
- Users can also specify which cultures are barbarian-like, without having to have a single culture named "barbarian"
- Rewrite culture descriptions to allow users better control over certain parts of the game
- Multiple parts of the above were modified to make them not apply specifically between shadow factions and the faction they shadowed, as things like disabled aggression would cause issues.
- Move strategy map model definitions into the settlement plan, which allows for per-settlement model definitions
- Fix "faction" command line option not working to help with testing
- Couple of UI/trait related fixes linked to culture triggers.
This depends on if they're heretics or heathens.
- Add the ability to define the amount of unrest a religion will create relative to it's population.
- Reformated the religion file to make it easier to maintain with larger numbers of religions.
- Change every instance of the religion pips from the sprite sheet to use external TGAs to allow mods to easily add in as many religions as they want.
- Allow religions with no influence to be hidden from the overview panel.
- Modify religion overview UI to allow scrolling when more than 3 religions are defined and leave empty spaces when less then 3 are present in a settlement.
- Allow religions to automatically create a trait for themselves if one doesn't exist.
- We always show the dominant commitment, not the official one in the settlement religion panel. Instead, official religion will be shown in a tooltip (assuming it's different from the dominant religion) with a reason for why it's like that (i.e. set by temple or by the governor).
- Add 4 conditions to the building db:
religion <religion> <comparison> <number>
(i.e. "religion christian < 60") to test the influence of a religionmajority_religion <religion>
to check if a given religion is the majority religion of this settlementofficial_religion <religion>
to check if a given religion is the official religion of this settlement- Allow adding
religious_order
religious unrest suppression to buildings, which was previously limited to only character traits.
- Add log_conversion_calc command line option to log end-of-turn settlement religious conversion to the command line.
- Allow traits and ancillaries to have more than one religious conversion and order effect
- Fix the problem with some characters in BI getting stuck with zero commitment
- Allow adding a
religion
section to settlement definitions in descr_strat.txt to override the religious profile defined in descr_regions.txt if needed. - If a faction has no default religion and the
descr_strat
fails to give them one, just give them the first defined religion and place a warning in the debug logs.
Buildings have been updated to support virtually unlimited numbers of buildings and items.
Read the EDB page for more information.
Read the EDB page for more information.
Read the EDB page for more information.
Read the EDB page for more information.
building_present <building name> [queued] [factionwide]
- checks if a building exists at any level. 2.0.4 Feature: The game now supports:queued
- will also check the building queue not just constructed buildingsfactionwide
- will check for the existence of a building across all settlments controlled by the faction allowing for buildings that can only be built once per faction.
building_present_min_level <building name> <level> [queued] [factionwide]
- checks if the building exists at at least the specified level.factionwide
- will check for the existence of a building across all settlments controlled by the faction allowing for buildings that can only be built once per faction.
resource <resource name> [factionwide]
2.0.4 Feature: checks if the settlement has that resource can also usefactionwide
as a check to check if the resource is found withing the empire.no_building_tagged <tag name> [queued] [factionwide]
2.0.4 Feature: As explained in more detail in the prior section (TODO link) this checks that no building with this tag exists (lower levels of this building within the same settlement are not counted). This is used in the base game to restrict temples to only one type.factionwide
- will check for the existence of a building across all settlments
Read the EDB page for more information.
We have added 4 conditions to the building db:
religion <religion> <comparison> <number>
(i.e. "religion christian < 60") to test the influence of a religionmajority_religion <religion>
to check if a given religion is the majority religion of this settlementofficial_religion <religion>
to check if a given religion is the official religion of this settlement- Allow adding
religious_order
religious unrest suppression to buildings, which was previously limited to only character traits.
This system piggybacks on the existing system put in place to limit merchant numbers. You just need to add:
agent_limit_settlement <agent type> <additional units>
to a buildings capability
section.
If a building allows for the construction of a agent without having the above line, then it is assumed that an unlimited amount is allowed.
e.g.
agent_limit_settlement diplomat 2
Allows an additional two diplomats to be constructed.
Also changed the stringID used when the limit is reached from "ToolTips_MerchantLimit" to "ToolTips_AgentLimit" to be more accurate. (The string is the same as we only limit merchants, modders will have to alter the string to suit the needs of the mod and what types of units they are limiting).
This will help to define logic for when the AI should destroy a building, like temples where it isn't exactly giving negative stats, but also they can't upgrade it so it's best to delete and start over. The original game the AI won't consider this as an option when in some cases it might be advantageous to do so.
Use to check if the player can EVER make this condition true (means things like port buildings won't show in inland settlements since the player can't add an inland sea to the province)
Remove the implicitly decided "temple" type, which prevented building other temples while one existed, and replace it with a system of tags and the no_building_tagged
condition
no_building_tagged
condition by default will list the buildings that are blocking it, so if it's being "not"-ed, it needs to be aliased with a string to display properly- You can optionally specify
queued
afterno_building_tagged
,building_present
andbuilding_present_min_level
conditions to include queued items in the check
Allow specifying factionwide
after the above conditions to check across the entire faction
Also made factionwide
capabilities display properly in the UI - They should display as (faction) bonus - You add these by specifying "faction_capability" after the normal capability in a building.
Read the EDB page for more information.
To make the building description file a lot simpler we made unit availability restrictions implicit, if a unit is specified as recruitable it will automatically restrict itself to the factions it is available for.
Scripting has the following 4 commands
IsAlly
IsProtectorate
IsProtector
IsSameSuperfaction
at_war
And should be followed by a faction name which we need to test against.
Building conditions have a single check which should be laid out as:
diplomacy <allied/protector/protectorate/same_superfaction> <faction_name>
This does basically the same thing as the scripting commands, but in one condition
Tie overseas income to CAPABILITY_TRADE_FLEET, instead of hardcoding to the port level - this is already set correctly on port buildings in HD, so this doesn't effect anything other than making it moddable
This would allow you to use items like the level of law in a settlement as a condition of recruitment on a building. You can see a list of the Building Capabilties here.
- Add the ability to specify strings in building capabilities to display capabilities that are indirectly attached to the building (i.e. the education buildings giving extra traits)
- Make the extra trait effect on academy buildings use the new
dummy
string system as an example.
Read the EDB page for more information.
- Allow specifying building slot guards using tags instead of (/alongside) buildings - also remove the cap on only allowing 6 buildings per plan slot variant
The building_factions
condition condition can now be used on recruitment lines inside the EDB. This means you can make units recruitable based on the faction that built the building NOT the faction that controls it. This means you can make certain units only available to a faction via conquest not construction.
You can look at the GaulTownWatch example mod here to see it in action.
- Make romano-british unit toggle restrictions explicit in data, so it's not hardcoded to specific units
Modified combat vs attributes to make them more flexible and remove certain limitations that would limit the potential of other additions like culture and factions.
- Accommodate using dummy values after NUMBER_OF_ATTRIBUTE_TYPES to keep the UI trait colouring consistent with non-attribute attributes
- Use the above system to replace the old religious index system so you can have more than one religious conversion and religious order per trait
- Remove old Combat_V attributes from the attribute list and make it it's own thing
- Make
Combat_V_
attribute more generalised and allow 3 different types- Factions (i.e.
Combat_V_Thrace
) which helps maintain the oldCombat_V_Slaves
- Cultures (i.e.
Combat_V_Roman
) which are internally remapped to faction types - Religions (i.e.
Combat_V_Pagan
) - Note:
- In the above the capitalisation after the V is optional, it's case-insensitive.
- In the case of two things having the same name the list is ordered by the checking order.
- Factions (i.e.
- Tweak how we calculate the Combat_V bonuses, so the effect is a sum of the total effects but bounded but the highest/lowest single effect
- e.g. If you are terrified of Gauls and are going against 4 gaul armies and 1 German army, you don't have a +0 because you aren't afraid of germans)
- Increment character record version to deal with the removal of the Combat_V_ attributes from the middle of the list
Combat_V_Culture
effect now supports negative points
- Allow traits and ancillaries to have more than one religious conversion and order effect
- Fix the problem with some characters in BI getting stuck with zero commitment
- Couple of UI/trait related fixes linked to culture triggers.
Specifies the amount of living characters that can have the trait at any one time -
Added after AntiTraits
as MaxAllowed 6
Has a range between 0-1.
Example usage in traits file:
Trait Drink
Characters family
NoGoingBackLevel 5
AntiTraits Sobriety
InheritChance 1
Level Social_Drinker
NOTE This trigger is inherited at birth (not coming of age) so if the child is already alive on turn 0 then the traits of the father will not be inherited. For adding traits to day 0 children you can instead add traits when defining a character_record
in descr_strat
.
You can now specify move_speed_mod after attributes in the EDU
- Make looping sounds not effect the fading status of the sound, so fades will persist between loops
- Make units try and pull a more specific generic selection line when they don't have one specific to them
- Add new sound enums for more narrow generic voice barks for non specifically named units and fix a few issues with BI sound data
- Add a bit more logging to custom music from scripts
- Also allow disabling fades when changing state
- Users can now control settlement population mechanics, including the amount of squalor generated and the distance from capital unrest multiplier*
- You are now able to modify settlement upgrade levels and minimum population
- Major events are now defined in
descr_sm_major_events
- Conditions for triggering/un-triggering events are now defined via scripts instead of being hardcoded.
- Each event has a priority for new generals to use general units assigned to that event
- If two events have the same priority, their generals will both be eligible for selection at the same time (providing both are active)
- Also you can now have multiple general units for a faction, the game will just pick randomly between them
- Replacement of in-game generals is now handled by explicit unit swaps, which can apply to any unit, not just generals
- Senate offices are now completely user defined and not tied to any enums. If you want to make a superfaction with 500 different offices go ahead
- Units used as rewards by the senate are no longer hardcoded, and are instead defined in descr_senate
- Religions can now defined a specific image to be used in the dominant religion message if it triggers for them (BI religions were using generic messenger icon, they will now use their unique artworks)
- Add
HasOffice
command which allows checking if a character holds a given senate office - Generalise all toggle-based building conditions into one (with aliases for the old system)
- Add
MajorEventActive
script command to allow for checking if a given event is active
- Add the ability to define the amount of unrest a religion will create relative to it's population
- Allow adding a
religion
section to settlement definitions in descr_strat.txt to override the religious profile defined in descr_regions.txt if needed.
- Moved strategy map model definitions into the settlement plan, which allows for per-settlement model definitions
- Tie using the settlement name as surname to a bool so modders can use it for other character types if they want.
Add a scaling multiplier to the majority of income sources depending on the settlements public order. The further above happy
they are, the larger the multiplier.
Also, provide an additional construction/recruitment point if the public order meets a certain threshold (currently 180%).
These effects are disabled by default, and need to be enabled in data_controlled_features.json
.
Allow you to add single title 3D ambient models (similar to resources) that are used to beautify the map. They also support custom sounds.
- Add the ability to add ambient strat map models
- Add support for ambient objects in SMO soundbank
- Add resource types and ambient objects to SMO object bank description
- After the normal rebel faction, you can include
brigands: <name>
andpirates: <name>
to define the brigand and pirate factions - If no specific brigands or pirates were defined for the region we are spawning in, we will now select a random rebel faction with the appropriate rebel type
- Also allow land based rebel factions to spawn handler units, which they couldn't before
- Make pirate and brigand spawn rates at 0 disable spawns
Added an alternate campaign FOW mode. In the new mode, the FOW is opaque meaning that players cant see the terrain until they have explored it. This applies to the FOW over the actual terrain, the minimap and the map overlay.
This has to be enabled via a modding file
You can look at the example mod here to see it in action.
TODO: Example mod of how to do this is planned but you can refer to the game data for basic documentation.
#### Customise unit movement multipliers on the campaign map
You can now customise the movement multipliers for all unit and agent types on the campaign map. For more information refer to the following page.
Read the feral_descr_movement_multipliers page for more information.
- Keep fort plans consistent, previously they would be randomly generated every time a battle happened
In the EDU, you can now put recruit_priority_offset
followed by a value on a new line after stat_cost
. The value will be the % bias towards recruiting that unit.
E.G. recruit_priority_offset 100
means that unit is twice as likely to be recruited.
The calculation is effectively:
base_recruitment * ((100 + recruit_priority_offset) / 100)
This feature accepts negative values so -100 would effectively prevent the unit from being recruited however blocking the AI from recruiting a unit could perhaps be better done using the is_player
option.
Previous versions of the game made AI Personalities moddable with 2.0.4 the cap of 32 personalities has been lifted.
We also log the number of AI personalities in the database
- These values affect which orders the units are given, but not the pathfinding/way the orders are carried out.
- These constants can be assigned on a per-faction basis in
descr_sm_factions.txt
- You can view the default AI values in the
descr_battle_ai_personalities.txt
file
Read the descr_battle_ai_personalities page for more information.
- Allow a maximum of 9 officers instead of the original 3
- Allow optionally redefining officers and extra data in remastered stat block
- Each unit can now define multiple multiple soldier models in the EDU, and the soldiers will randomly choose between them
- You can specify armour level and optionally weapon level, if weapon level isn't specified it'll just set it for all weapon levels
- A total of 255 unique models can be assigned to a unit across all weapon and armour levels.
- For formatting, see example mod (in mod area of GitHub)
- Using models with skeletons with different speeds may have some awkward effects on the unit
- Similarly there may be unexpected behaviour if ranged units have different animation times for firing weapons
- Excessive use if this feature can have performance implications especially on lower end hardware. The use of sub-mods with this feature disabled for lower end machines might be appropriate in some circumstances.
You can look at the example mod here to see it in action.
Also support different defaults for Classic vs Remastered
So you can do:
tattoo_colour blue
To set it for all factions (i.e. default) and then add:
tattoo_colour gauls gold
To override for a specific faction
The TrueSky sequences can be modified per climate-season-weather-time combination instead of just weather. Said combinations are loaded in from data/feral_descr_truesky.txt
.
- Add variables to data controlled variables to control the sun angles at which units will use torches - variables are torches_min_sun_angle and torches_max_sun_angle - both are defined in degrees, where 0 is the sun being directly overhead (defined in data_controlled_variables.json)
- Add a flag to disable torch allocation to units via
data_controlled_features.json
You can look at the example mod here to see it in action.
This feature will disable all friendly fire in battles.
- Add a flag for globally disabling friendly fire this can be controlled using
data_controlled_features.json
Read the data_controlled_features page for more information.
Add the ability to import/export game engine variables and load them in from mods. Modders can now export their settings (done at the bottom of the EnhancedTweaks ImGui panel) and then copy the exported file into their mod.
Import/Export works from Total War ROME REMASTERED\EnhancedTweaks
.
Enhanced Tweaks settings are auto-loaded from mods using the folder data/enhanced_tweaks
. When exporting settings, only the settings currently listed in the EnhancedTweaks panel will be exported.
This means campaign setting will have to be exported separately from battle settings for example).
Mods can contain multiple json files to be loaded in. This allows mods to have different files for things such as Campaign, Main Menu, Battle etc. This also allows differing mods to provide settings for different elements of the game.
This can be enabled using the command enhanced_tweaks
in the Advanced Options text box.
- Allow modders to alter imgui variables from RomeShell/scripts. Example call:
imgui_set "[CMT]Ally Colour" colour 255 0 255
You can look at the example mod here to see it in action.
We now store the active mods in the save header and compare them against the currently active mods when loading them. We also added some new UI and altered the logic so that we can display a confirm/cancel dialog when mods dont match. This allows users to choose whether they want to continue loading the save even with different mods.
Opening the custom battle menu will no longer auto-load the previous custom battle if the units it used are no longer valid (such as being from a mod that is no longer active).
When comparing mods:
- Mods must be in the same order to be seen as compatible, as conflicting mods can cause differing game logic depending on load order.
- If the mod is from the Steam Workshop, we compare the PublishID (WorkshopID) (This allows the name to change and still be seen as compatible)
- If the mod is local, we just compare the names of the mods (Not all that much more we can do sadly)
- When mods differ, we log the entire saved mod list to message.txt (debug log), as the UI can only display up to 8 mods and trims the end of any long mod names to fit the dialog box. This allows for a fallback for the very rare edge case if some people have a huge number of mods at once.
Name lists have been disconnected from factions. These can then be linked up to factions. This should allow more flexibility on name lists and also beter integrate with improvements to other areas of the game like cultures and faction increases.
- Make namelists a separate thing from factions, but have them temporarily assigned per-faction
- This is to future-proof against future character changes to give better modding control
- Add the ability to inherit one namelist into another to cut down on duplicates (saving ~2000 lines in the namelist file)
- Improved logging for invalid names by virtue of the new and more logical/flexible layout.
- Tie using the settlement name as surname to a bool so modders can use it for other character types if they want.
- Fix rebel merchants all being roman by correctly setting their original faction.
- Use global indexes for names rather than namelist-dependent ones because that could cause issues when moving characters between factions.
- Remove hardcode for women not to use surnames to open up future possibility of letting women have surnames
We have added some new pre game launch options to enable specific logging modes to aid debugging of mod issues. This allows you to enable specific features when needed but also keep the core logs to a reasonable size.
- Add
log_conversion_calc
command line option to log end-of-turn settlement religious conversion to the command line.
Read the logging page for more information.
- Hide the entire model mismatch log messages behind the
report_model_mismatches
command line option. This avoids the main logs including 300+ lines of mismatches that in most cases aren't useful when modding.
- Move verbose skeleton & animation pack logs behind the new
verbose_skeletons
command line option.
- Improved logging for invalid names by virtue of the new and more logical/flexible layout.
- Re-enable some previously developer only logging when loading
descr_strat.txt
to better inform modders whats going wrong.
- Re-enable Campaign AI logging. This will export the AI campaign processing to file to help with mod campaign balancing. Enabled using
enable_logging
- and the file can be found in/VFS/Local/Rome/logs/campaign_ai_log.txt
Example snippet from AI Logs:
AI: ltgd: Update enemies of gauls
AI: finance: est income 10600, est maintenance 6623, est outgoings 7489 -- spending max 5000, spending norm 3977; balance AFB_EARN_PLENTY, state AFS_ENOUGH
AI: ltgd: defend (frontline .00008, free 1.38049, product 2.492362) vs fac 'romans_julii': not at war, bad frontline, decent free strength >> ALD_DEFEND_DEEP.
AI: ltgd: defend (frontline .000255, free .877193, product 1.225303) vs fac 'carthage': not at war, bad frontline, bad free strength >> ALD_DEFEND_FORTIFIED.
AI: ltgd: defend (frontline 1.0, free 3.987589, product 1.668765) vs fac 'germans': not at war, neither at war elsewhere >> ALD_DEFEND_NORMAL.
AI: ltgd: defend (frontline .000212, free 1.072179, product 2.507092) vs fac 'britons': not at war, bad frontline, decent free strength >> ALD_DEFEND_DEEP.
AI: ltgd: defend (frontline .119502, free 1.341115, product 1.875332) vs fac 'spain': not at war, bad frontline, decent free strength >> ALD_DEFEND_DEEP.
AI: ltgd: 'gauls' against 'romans_julii', his frontline: 12568, our frontline: 1
AI: ltgd: 'gauls' against 'romans_julii', frontline balance: .00008, production balance: 2.492362
AI: ltgd: forbidden to attack 'carthage'.
AI: ltgd: forbidden to attack 'germans'.
AI: ltgd: forbidden to attack 'britons'.
AI: ltgd: forbidden to attack 'spain'.
AI: ltgd: 'gauls' invade 'slave', since they have a neighbouring region >> ALI_INVADE_OPPORTUNISTIC (850).
AI: ltgd: number of invasion targets: 2
AI: ltgd: army strength 26181, free army strength 17350, navy strength 171.
AI: ltgd: are at war with: Rebels,
AI: region control: settlement 'Condate Redonum' has changed from 'AI_PROD_TROOP_MISSILE' to 'AI_PROD_TROOP_CAVALRY'.
AI: region control: settlement 'Lemonum' has changed from 'AI_PROD_TROOP_INFANTRY' to 'AI_PROD_TROOP_MISSILE'.
AI: region control: settlement 'Patavium' has changed from 'AI_PROD_TYPE_MILITARY' to 'AI_PROD_TYPE_BALANCED'.
AI: region control: settlement 'Patavium' has changed from 'AI_PROD_TROOP_MISSILE' to 'AI_PROD_TROOP_SIEGE'.
AI: region control: settlement 'Lemonum' has changed from 'AI_PROD_TROOP_MISSILE' to 'AI_PROD_TROOP_SIEGE'.
AI: region control: settlement 'Condate Redonum' has changed from 'AI_PROD_TROOP_CAVALRY' to 'AI_PROD_TROOP_SPEARMEN'.
AI: region control: settlement 'Alesia' has changed from 'AI_PROD_TYPE_MILITARY' to 'AI_PROD_TYPE_BALANCED'.
AI: region control: settlement 'Narbo Martius' has changed from 'AI_PROD_TROOP_CAVALRY' to 'AI_PROD_TROOP_INFANTRY'.
AI: region control: settlement 'Numantia' has changed from 'AI_PROD_TROOP_CAVALRY' to 'AI_PROD_TROOP_MISSILE'.
AI: region control: settlement 'Lemonum' has changed from 'AI_PROD_TROOP_SIEGE' to 'AI_PROD_TROOP_INFANTRY'.
AI: region control: settlement 'Lemonum' has changed from 'AI_PROD_TROOP_INFANTRY' to 'AI_PROD_TROOP_MISSILE'.
AI: Threat from gauls to romans_julii: they're not too much of a threat 1, war planned 0, they aren't too strong (free) 1, we are strong enough (frontline) 1 (Will only threaten if all are 1 and stance is neutral)
Read the logging page for more information.
- Expose some more debug functionality to modders in a few miscellaneous areas.
- Increase the size of the exit error dialog buffer. Due to long path names, the previous size would often be too small, causing the logs to be trimmed.
- Logging - Don't print the output of the various
list_x
commands as errors. - Make it possible to print text to console when a command succeeds. Previously this would only happened if a command failed.
- Log number of units in the database
- Make message builder error a script combo so it outputs where it failed
- Use sprite sheet name instead of ID when logging sprite sheet loading to make logs a bit easier to read.
- Make general-enemy relationship look a bit nicer in the logs
- Log game creating default settlements to aid debugging
- Fix complaint in log about checking the status of nonexistent toggle "rebel merchants"
- Fix constant log of "could not find character trait(Immortal)" in non-alexander games
- Add some extra logging about emergent faction messages
- Add better logging for creating brigand/pirate armies
- When failing to get a quote, include the quote we failed to get in the error message
- Make the
descr_strat
verify the next section to catch errors caused by malformeddescr_strat
files. - Add a more explicit error message when the game fails to create a general unit
- Use verbose scripting error for strat formatting errors
- Log the number of AI personalities loaded in the database
A list of scripting related features and improvements.
Allows you to script the game to jump to a specific character on the campaign map
Allows you to script the game to jump to the active factions capital city on the campaign map. Useful for hot seat mods.
Read the Scripts page for more information.
We removed the create_unit limit so this can now be controlled by the script. This does mean you can create a lot of units at once so make sure you keep to sane numbers.
swap_unit
is essentially the same as destroy_unit
, however it takes in a second unit ID when called. When destroying the units at the end, we first make a copy of the relevant unit data (soldiers remaining, experience, weapon/armour level) and then use those stats to create a new unit with the type of the second unit ID.
Should be useful to modders as while the majority of the behaviour could be emulated with a combination of destroy_unit
and create_unit
, this way the number of destroyed/created units is the same, as you are able to transfer the stats of the old units to the new ones.
These can be use in scripts and in RomeShell
set_leader <character>
and set_heir <character>
This means players can use it to give settlements to the AI. Previously, capture_settlement
would just give the settlement to the player (which is still the default behaviour if no faction type is provided).
Allows scripts to check if a character holds a given senate office
Allows scripts to check if a given event is active. For example Marion Reforms.
This essentially forces a bribe of a character, and has the same effects. change_character_faction <character> <faction>
Added a new event trigger so you can trigger events at the start of a round as well as at the end of a round.
Allows you to trigger script events if a faction is destroyed.
Identifier: FactionDestroyed
Event: A script prompt has received player input
Exports: faction
Class: ET_FACTION_DESTROYED
Enabled this feature for use in modding scripts.
Read the Scripts page for more information.
- Fixed
faction
command line option, this command existed in the orignal game but didn't work. This feature should help with debugging faction related issues with mods.
- Add
give_everything
command which should work as a more complete version ofsurrender_regions
What this feature provides is the ability in scripts to sub some of the arguments with "local" and the game will pull the character/settlement/faction from the current script scope (assuming one exists).
Due to the nature of this feature it is possible for this to cause stability issues if used incorrectly so this feature should be used with care and as the modders own their own risk.
Unless specified the command will take "local" as an argument to get the settlement/charater from context. If a specific command needs a special variation(s) they are listed below.
- add_money
- add_population
- move_character
- set_leader
- set_heir
- give_ancillary
- process_cq
- process_rq
- character_reset
- give_trait_points
- mp
- set_building_health
- invulnerable_general (local_character)
- vulnerable_general (local_character)
- victory (local_faction)
- damage_wall
- kill_faction
- kill_character
- kill_army
- control
- go_to_sett
- go_to_capital
- go_to_char
- set_move_points
- create_building
- capture_settlement
- halt_ai
- surrender_regions
- give_everything
- toggle_automanage
- create_merchant
- create_assassin
- create_spy
- create_diplomat
- add_expenditure (local_settlement/local_faction)
- add_income (local_settlement/local_faction)
- create_unit (local_character/local_settlement)
- destroy_unit (local_character/local_settlement)
- swap_unit (local_character/local_settlement)
- add_soldiers (local_character/local_settlement)
- change_character_faction (local_character + local_faction)
- IsAlly
- IsProtectorate
- IsProtector
- IsSameSuperfaction
- spawn_character_child
- provoke_rebellion
- move
- reposition_character
- replenish_action_points
- replenish_units
- add_religion
- add_hidden_resource
- remove_hidden_resource
- destroy_building
- I_SettlementOwner
- I_SettlementOwnerCulture
- I_SettlementLevel
Commands are store_counter and retrieve_counter respectively. Format for storing is:
store_counter <counter name> <storage location> <storage label>
Acceptable locations are "settlement", "character", "faction" or "unit"
For retrieving the format is reversed:
retrieve_counter <storage label> <storage location> <counter name>
We now allow mods to add custom income/expenditures via RomeShell/scripts and prpvide full support to be displayed on the UI. There are two types of custom income/expenditures.
Settlement Specific - As the name suggests, this is income/expenditure that is specific to a given settlement. Could be useful for custom buildings that add gold, or cost gold to maintain.
Faction Wide - This works similarly to the above, however is applied to the faction as a whole. The income/expenditures will be displayed in the factions capital (UI is updated if the capital changes).
There is also an optional parameter which controls whether the income/expenditure is maintained if the settlement is captured (only applied to settlement specific, as faction wide income will move over to the new capital). If false, the income/expenditure is lost when the settlement is captured. If true, then it is kept by the new owner. False is default.
Once added, income/expenditure will be present until lost due to a settlement being captured, or is removed via calling the same command again, but with a value of 0 If you call the command again with an existing ID, the previous income/expenditure will be overwritten (allowing you to update the value)
The command will autogenerate the UI icon path and string from the provided ID.
Example RomeShell calls:
add_income romans_julii Loan 400
<- Adds a faction income of400 gold
per turn to Julii using the string IDRome.InGame.Loan
and the UI pathdata/ui/pips/Loan.tga
.add_expenditure Arretium BuildingMaintenance 600 true
<- Adds a settlement specific expenditure of600 gold
toArretium
using the string IDRome.InGame.BuildingMaintenance
and the UI pathdata/ui/pips/BuildingMaintenance.tga
. Astrue
has been provided, this expenditure will be maintained even if the settlement is captured.add_expenditure Arretium BuildingMaintenance 300 true
<- Updated the previously added expenditure fromArretium
to have a value of300
instead of the previously set600
.add_expenditure Arretium BuildingMaintenance 0
<- Removes the previously added expenditure from Arretium.
IMPORTANT: Before setting the popularity override_superfaction_popularity <faction name> true
needs to be done to prevent the normal processing from overriding script inputs on end of turn.
set_faction_senate_standing
andset_faction_people_standing
can then be used to control popularity- Both take
<faction name> <value>
as arguments Faction name
can be substituted forlocal
Value
can be substituted for acounter name
Allow set_counter
to use another counter instead of a constant value and add counter_operation
command
counter_operation
works like:
counter_operation <counter name> = <counter name> + <counter name>
It can only use counters, not constants. It can also only do one operation at a time, so counter_a = counter_b + counter_c + counter_d
Needs to be written out as:
counter_a = counter_b + counter_c
counter_a = counter_a + counter_d
Scripting has the following 5 commands
IsAlly
IsProtectorate
IsProtector
IsSameSuperfaction
at_war
And should be followed by a faction name which we need to test against.
Allows you to use the break command in a script to exist a scope.
- Fix
is_player
settlement condition to check the current owning faction, rather than whateversettlement_faction_type
is - Add new scripting conditions for checking if a settlement is revolting from a particular faction (only useful inside spawning scripts), if it is a capital, and if a faction is alive (i.e. not waiting to emerge)
- Make scripted settlement rebellions ignore the usual restrictions for settlement revolts
- Generalise all toggle-based building conditions into one (with aliases for the old system)
- Fix
TestFaction
not accepting pre logic token - Add script output when failing to get aerial map base in settlement plan model database
- Fix
for_each
script loops continuing to execute after the being told to kill the script - Change SettlementName condition so that it uses the internal, rather than the on-screen name of a settlement (the on-screen one may be changed or have special characters)
- Implement religion- and historic event-conditioned recruitment and construction (details covered in relavent sections)
- Make
EnslavePopulation
andExterminatePopulation
include the settlement in their scope - Fix units jittering after the
control
command is used - Allow modders to alter imgui variables from RomeShell/scripts. Example call:
imgui_set "[CMT]Ally Colour" colour 255 0 255
You can now paste a command into RomeShell inside the game. This should make things quicker and help avoid typos and other mistakes when using the shell.
- Fix "faction" command line option not working to help with testing
- DocuDaemon file in preferences folder now lists all accepted commands for easy reference.
Not perfect as the formatting on the help strings isnt fully consistent, but it should help users compared to the previous lack of in game documentation.
Outputs to user preferences folder in Total War ROME REMASTERED\VFS\Local\Rome\documentation\docudemon_romeshell.txt
Transitioning between previous commands didn't reset the caret position, so if you were at pos 10, then transitioned to a command with length 6, weird behaviour occurred. Also fix the rendering of RomeShell so that the final line is fully visible when the slider is visible.
Instead of needing to enter a settlement name or character name when using a command you can usually replace the name with this
and just make sure the settlement or character has been selected in the campaign map before running the command.
For example you could select Segesta then run the command:
add_population 9000 this
This will add 9000 population to Segesta, however if you then select Rome and run the command again it will instead add the population to Rome.
- Allow campaign trees to be loaded in from mods
- Allow burn ground types to be loaded from mods
- Allow Bridge models to be loaded from mods
- Fix texture path exists logic for mods
- Always try and get cas files from a mod, even if it already exists in the base game
- Don't generate item files unnecessarily & generate them inside the mod folder
- Save bpi files to the mod folder the cas was loaded from
- Save vegetation sprites into mod folder - you need to have a
vegetation/sprites/
folder inside the mod for this to generate sprites - Fix crash when failing to loading a character model texture certain circumstances.
- Allowing loading of custom Overview map images from inside custom campaign directories (previously only worked for mods using
imperial_campaign
folder)
See http://www.twcenter.net/forums/showthread.php?418396-Myth-Buster-Cloned-Characters for an explanation of the original issue.