- Introduction
- New Files added
- Files Modified
- descr_cultures.txt
- descr_engines.txt
- descr_event_enums.txt
- descr_event_images.txt
- descr_font_db.txt
- descr_model_battle.txt
- descr_model_mount.txt
- descr_namelists.txt
- descr_senate.txt
- descr_settlement_plan.txt
- descr_sm_factions.txt
- descr_standards.txt
- descr_time_of_day.txt
- export_descr_buildings.txt
- export_descr_character_traits.txt
- export_descr_unit.txt
- items folder
- models_building folder
- models_engine folder
- settlement_plans folder
- sounds folder
- string_overrides
- terrain folder
- text folder
- toggles
- ui_overrides folder
- world folder
- Files Deleted
This page lists the key changes between 2.0.3 and 2.0.4. With all the major changes and links to relavant files as appropriate.
Provides modding access to a number of modding specific features.
See data_controlled_features.md for more information.
Contains variables controlled by data_controlled_features.json
See data_controlled_features.md for more information.
With the introduction of this file the AI personalities inside 3D battles are now moddable. This file contains all constants used by the AI. These values affect which orders the units are given, but not the pathfinding/way the orders are carried out.
See descr_battle_ai_personalities.md for more information.
This file was added to support additional factions and cultures with custom diplomacy options if modders want. This is optional.
;;diplomacy comment DB
;;format is as follows
; comment <comment type>
; {
; <key in diplomacy.txt> (next bit is optional, equivalent to (from all, to all) if not specified)
; {
; from <faction type/culture/all> [, <faction type/culture/all>]
; to <faction type/culture/all>
; }
; }
New way of organising names to allow for easier assigning.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Names Database Entries
;;
;; Holds non-localised Latin names for settlements and characters. These are arranged on
;; a per faction basis.
;;
;; Entries are specified by the following syntax:
;;
;; faction: <faction name>
;; settlements
;; <settlement names list>
;; characters
;; <character names list>
;;
;; faction ... etc
It allows you to add ambient objects (wth optional sounds) to the campaign map. You can also define if they are impassable or not. Given you can turn these on and off using a script ambient objects are not just decorative they could be used to block and unblock areas of the map via scripted events
See descr_sm_ambient_objects.md for more information on how these work.
Used to define the indexes for the logos referenced in descr_sm_factions
. The order in this file is used to generate the index number used in the descr_sm_factions
file
The generic info icons/models above settlements have been moved out of descr_cultures
and into this file.
Contains the marian reforms as the example of how the new major events can be defined. The file is fully documented and should be self explanatory.
;;if you want to enable/disable a particular event, do
; set_major_event_enabled <trigger name>, false
;;also note that the message uses the marian reforms message as a base, in case you were wondering
"major events":
[
"marian_reforms":
{
;;which factions should get notifications about this
"affects": [ "all", ],
;;should this event be tracked globally or individually for each affected faction
;;(if false, notifications will only be sent to the faction that meets the condition)
"global": true,
;;when general units are assigned to this event, should it take priority over general units assigned to other events with lower priorities
;;the default general units have a priority of 0, so make sure to set that
"priority": 100,
;;settings for when the event is activated
"activation":
{
;;script for the trigger conditions for this event
;;NOTE: if individual is true, this will be triggered from a faction scope, otherwise it won't be scoped at all
"trigger conditions": "major_event_scripts/marian_reforms_trigger.txt",
;;when this triggers, switch these units to those units
"unit switches":
{
;;bodyguard swaps
"barb chieftain cavalry early dacian": "barb chieftain cavalry dacian",
"barb chieftain cavalry early gaul": "barb chieftain cavalry gaul",
"barb chieftain cavalry early german": "barb chieftain cavalry german",
"barb chieftain cavalry early scythian": "barb scythian general scythian",
"carthaginian general's cavalry early": "carthaginian general's cavalry",
"egyptian general's bodyguard early": "egyptian general's bodyguard",
"greek general's guard cavalry early": "greek general's guard cavalry",
"thracian bodyguard early": "thracian bodyguard",
"roman generals guard cavalry early": "roman generals guard cavalry",
},
;;should we also use a large panel in addition to a news message
;;also triggers the near victory music
"use big panel": true,
;;title and body, as defined in text/major_events.txt
"title": "SMT_A_NEW_MAN__GAIUS_MARIUS_TITLE",
"body": "SMT_A_NEW_MAN__GAIUS_MARIUS_BODY",
;;image, as redirected per-culture in ui/<culture name>/eventpics
"image": "marian_reform",
},
;;settings for when the event is deactivated (needs to be activated first ofc)
"deactivation":
{
},
},
],
This folder contains all of the trigger files for major events. In the original game this only contains the Marian reforms but in mods you can add as many major events as you like.
This is a simple script per
;;check every settlement in the world
for_each settlement in world
if HasResource italy ;;has the italy hidden resource
&& I_SettlementLevel local >= huge_city ;;is a huge city
&& I_SettlementOwnerCulture local == roman ;;the owner is roman
&& not SettlementName Rome ;;the settlement isn't rome
return true ;;trigger marian reforms
end_if
end_for
return false ;;don't trigger marian reforms
end_script```
### feral_descr_movement_multipliers.txt
### feral_descr_truesky.txt
### major_events.txt
Inside the `/text` folder there is a new text file to store strings for Major events. Mods can use this file when adding new events or modifying the existing events.
You will also find localised versions in the folder for localising the mod.
```{SMT_A_NEW_MAN__GAIUS_MARIUS_TITLE} A New Man: Gaius Marius
{SMT_A_NEW_MAN__GAIUS_MARIUS_BODY} Gaius Marius has proposed a series of laws that allow the proletariat to join his reorganised Roman army. In return for many years of military service every soldier will be given land as a kind of pension. This reform is passed in the people's assembly without the approval of the Senate. It's a certainty that such popular - and populist - appeal will do Marius no favours in the long run!\n\nThe troop types available for recruitment now reflect the structure of this new professional army. Check the recruitment scroll to view the details.
With the ability to mod and add new factions, building types and religions the UI elements for all 3 are now stored in the following location for ease of modding.
These are the tag icons used on the building browser and overlayed on top of building cards showing the player the type of building. These can be modified or added to as needed.
See EDB.md for more information on how to link to these images.
These are the icons used for different religions in the game. These can be modified or added to as needed.
You can look at the Religion example mod here to see how to link these images to the rest of the religion files.
These are the icons used for different factions in the game. These can be modified or added to as needed.
You can look at the Faction example mod here to see how to link these images to the rest of the faction files.
This folder contains .pos layout files for the game UI, the following new files have been added to add support for new large info panel feature:
- campaignuicentralagentinfo.pos
- campaignuicentralbuildinginfo.pos
- campaignuiunitinfolarge.pos
- dialog_generic_confrm_large.xml - Generic confirm panel xml file
- menu_colours.json - You can now define all the main menu colours with hex values.
Mods using the old format files will stull work but will put warnings in the logs. However it's best to update to the new format as the new format apart from allowing unlimited cultures also allows you to define the following:
- unrest factors - Squalor, Over-crowding, distance from capital
- settlement upgrade levels - Population requirements, over crowding values etc
- custom settlement models per settlement, custom fort and watchtower models as well
See comments inside the desc_cultures.txt file for more details.
Minor edits to specific seige equipment to improve path finding.
Add the following 3 items into the events file:
- roman_empire_unstable_currency
- roman_empire_stable_currency
- script_prompt
The first two are used for the debased currency penalty in BI and the final one is used for the new script_prompt
news article modding feature.
You can look at the script_prompt
example mod here to see how you can use this new event.
Updated the logic in the file to deal with the newly added support for additional religions, multiple super factions, emergent factions and the new script_prompt
feature.
Added new font sizes for additional formatting options inside .cas files.
- cinzel_lrg
- cinzel_lrg_bold
- cinzel_huge
- cinzel_huge_bold
- verdana_sml_med
- verdana_sml_med_bold
- cinzel_sml_med
- cinzel_sml_med_bold
- Disable the following items as they are unique so don't need a default mapping.
data/animals/textures/mount_elephant_african_cataphract_base_default.tga
data/animals/textures/mount_camel_cataphract_base_default.tga
data/animals/textures/mount_horse_cataphract_base_default.tga
Minor edits to chariots hit boxes to improve path finding.
This file is no longer used by the game and has been superseded by descr_namelists.txt
Updated the senate file as this needs to be set per-faction now as we can now have multiple senate files.
See descr_senate.txt example mod for more information.
Add a way to specify tags instead of buildings tags. Allows for more flexible systems with buildings while making sure they still appear correctly in the building plans. So:
buildings
{
temple_of_battle temple_of_battle_shrine
}
becomes:
buildings
{
none
}
;; JNF 2021-11-02 - Add a way to specify tags instead of buildings
tags
{
;;so this represents any building tagged as a "temple" at level >= 0
temple 0
}
For more examples see the new file inside game data.
The faction system has been reformatted to make for easier and more flexible modding but the old format is still usable with a few small edits.
;;Old style preserved, only difference is:
; standard_index
; logo_index
; small_logo_index
;;Needs to be replaced with:
; standard_index
; rebel_standard_index
; logo_index
; rebel_logo_index
However we suggest you update your mod to the new format as it exposes new features like faction groups, namelists, ai personalities and family trees.
See descr_sm_factions.md for more information.
Extra comment showing what banners are normal and which are used for rebels.
Minor tweaks to time of day for various maps plus added an info header below if modders want to add their own maps and time rules.
;;Format:
;;map_name
;;{
;; season
;; {
;; time_name time_of_day_24h
;; ...
;; }
;; ...
;;}
;;If a map is not specified, "default_times" is used instead.
This file has been updated to support the new limits and also compliment the new features in the building browser and other areas of the game like scripting, negative bonuses and UI.
The new system uses exclusivity tags so you can have exclusive buildings, custom strings and more complex requirements.
See export_descr_buildings.md for more information.
Updated traits for senate/super faction roles now that you can have multiple custom super factions in a mod.
- Add support for
recruit_priority_offset
a % modifier for AI recruitment priority (optional). - Replaced all instances of
general_unit_upgrade
withgeneral_unit_upgrade "marian_reforms"
, so we can specify multiple general unit upgrades.
See export_descr_unit.md for more information.
A few items have been updated to fix minor issues
A few cas files have been updated to fix minor issues
The tort ram has been updated
All settlement plans now allow for specific settlement models on the campaign map, this includes the port model if applicable. These can also be customised per settlement upgrade level. See example of a huge city below.
{
;; JNF 2021-09-06 - Define model as part of plans now - allows for specific settlement models
;; and generally makes the code logistics more straightforward
strat
{
buildings data/models_strat/residences/roman_huge_city_buildings.CAS
default_base settlement_roman_level_6
;;walls and base map overrides
fortifications
{
wooden_pallisade
{
model data/models_strat/residences/roman_huge_city_wall_1.CAS
base settlement_roman_walled_level_6
}
wooden_wall
{
model data/models_strat/residences/roman_huge_city_wall_2.CAS
base settlement_roman_walled_level_6
}
stone_wall
{
model data/models_strat/residences/roman_huge_city_wall_3.CAS
base settlement_roman_walled_level_6
}
large_stone_wall
{
model data/models_strat/residences/roman_huge_city_wall_4.CAS
base settlement_roman_walled_level_6
}
epic_stone_wall
{
model data/models_strat/residences/roman_huge_city_wall_5.CAS
base settlement_roman_walled_level_6
}
}
;;models for ports (only relevant for settlements)
ports
{
fishing_village
{
land_model data/models_strat/residences/roman_fishing_village.CAS
base port_roman_level_1
}
sea_port
{
land_model data/models_strat/residences/roman_port_01_land.CAS
sea_model data/models_strat/residences/roman_port_01_sea.CAS
base port_roman_level_2
}
shipwright
{
land_model data/models_strat/residences/roman_port_02_land.CAS
sea_model data/models_strat/residences/roman_port_02_sea.CAS
base port_roman_level_3
}
dockyard
{
land_model data/models_strat/residences/roman_port_03_land.CAS
sea_model data/models_strat/residences/roman_port_03_sea.CAS
base port_roman_level_4
}
}
}
}
Minor updates to improve 3D battles
- Updated Barbarian city ground type
- Updated Barbarian town street plan
- Added new Egyptian huge city plan
- Added new sub section for pre-battle speeches
- 100s of small edits to improve audio levels and fading mostly in
descr_misc_sounds.txt
The files are all documented so you can read the headers in the folder to find out more about how pack/unpack and edit these files.
Reminder that only strings that you wish to change need to be added to the new files. Any strings not present in them will be taken from the original files.
A bridge cas file was updated to fix minor issue
There are a number of files here that have been modified with added or updated strings
{script_prompt} [PLACEHOLDER]
This isn't an issue as you can inject your own strings.
You can look at the script_prompt
example mod here to see how you can add your own custom strings. The Hot Seat
mod also uses this feature.
Added in strings for the new senate roles now that they can be customised and added to.
{SMT_SENATE_OFFICE_QUAESTOR_TITLE} Quaestor
{SMT_SENATE_OFFICE_QUAESTOR_DESCRIPTION} The lowest rank of magistrate, usually charged with managing the treasury and the first meaningful appointment of all men looking for a political career in Rome.
{SMT_SENATE_OFFICE_AEDILE_TITLE} Aedile
{SMT_SENATE_OFFICE_AEDILE_DESCRIPTION} An administrative official in charge of supervising streets, temples and the quarters of a city and the distribution of the cura annonae, the all-important corn supply.
{SMT_SENATE_OFFICE_PRAETOR_TITLE} Praetor
{SMT_SENATE_OFFICE_PRAETOR_DESCRIPTION} A magistrate whose duties are mostly concerned with justice and law, particularly the ius civile (civil, not criminal, law) and ius gentium (laws dealing with foreigners).
{SMT_SENATE_OFFICE_CONSUL_TITLE} Consul
{SMT_SENATE_OFFICE_CONSUL_DESCRIPTION} The supreme position of power and honour in the Republic, a consul has authority over magistrates, the army and law-making. He is, in many ways, a king in all but name during his time in office.
{SMT_SENATE_OFFICE_CENSOR_TITLE} Censor
{SMT_SENATE_OFFICE_CENSOR_DESCRIPTION} An important office that conducts the census and keeps the lists of Roman citizens and Senators, meaning that it is the censors that decide who is Roman or not, and who is a Senator or not.
{SMT_SENATE_OFFICE_PONTIFEX_MAXIMUS_TITLE} Pontifex Maximus
{SMT_SENATE_OFFICE_PONTIFEX_MAXIMUS_DESCRIPTION} The supreme head of the Roman state religion and controller of all religious colleges including the Vestal Virgins. He is in absolute control of doctrine and to a great extent above the jurisdiction of the Senate and People of Rome.
{SMT_TECH_TREE_THREAD_REQUIRES_TEMPLE_DESTRUCTION} Building this item requires the destruction of an existing religious building
{roman_empire_stable_currency} Currency Crisis Resolved
{Capability_TraitsAndRetinue} Unlocks new traits and followers
- Removed an errant full stop.
- Fixed a few descriptions so they work with negative values (due to negative bonus values now being possible)
- Added some missing colons on some bonus value strings
Added toggles for a few improvements into the classic/remastered toggles for battle and campaign
- improved blocked placement :: 1
- ai civil war :: 1
The following files have been updated to fix minor issues or linked to new features.
- campaignuicentral.pos
- campaignuileftagentinfo.pos
- campaignuileftbuildinginfo.pos
- campaignuireligiondetails.pos
- campaignuileftunitinfo.pos
- campaignuileftunitinfomergescreen.pos
- campaignuileftunitinfomergescreenmirrored.pos
- campaignuileftsettlmentdialog.pos
- campaignuifactiondialog.pos
- factiondialog.pos
- fullscreenfamilytree.pos
- replayui.pos
- saveloaddialog.pos
- savereplaydialog.pos
There are a few edits in this folder for custom battles and the campaign.
Updated gergovia battles so Gaius Julius is defined as a named_character not a general. This is part of the other fixes with names and expanding cultures etc
Updated descr_strat
with the following edits:
- Gave
Vibius Julius
aportrait_index
value so he has a fixed portait picture. - Added in brand new section to define a super faction as these are now moddable.
The symbols for loading screens have been moved to a new location. See faction_icons area in the new files area of this document for details.
Merchants override file is no longer needed as merchants are now toggled in a different manner that doen't require an override file.