Total War: Rome Remastered - Modding
|
Total War: Rome Remastered offers modding opportunities similar to the original game although higher quality assets will be needed to match the improved graphics.
With patch 2.0.4 beta hard-coded limits for factions, cultures, religions, buildings and units have been removed. See Rome Remastered github for more details.
Contents
Mod Set-up
Mods can be uploaded and used from the Steam Workshop, the placing of those mods on your computer will be determined by Steam and your library set-up, for example a mod's file could be in:
- D:\Steam\steamapps\workshop\content\885970\2471298638
Mods in development can be placed in the 'Mods' folder either in Local Mods or My Mods, the full path to these folders is normally:
- C:\Users\YOURNAME\AppData\Local\Feral Interactive\Total War ROME REMASTERED\Mods\Local Mods\Mods_Name etc.
If you have a small C drive and need to relocate this elsewhere you can use a hard-link on your computer, hopefully, the launcher options will later allow an easier way to change directory locations!
Within either Local Mods or My Mods you will then have a folder for Mod_Name. Within Mod_Name folder you need the mod's data folder a modinfo.json and a filelist.json
modinfo.json
This file you write yourself and it gives the name and description of the mod, a sample format is:
{ "Description": "Brief description of you mod goes here", "Mod Name": "Mod name goes here", "Supports Alex": false, "Supports BI": false, "Supports Rome": true, "Tags": [ ], "Visibility": 1, "Workshop ID": 0 }
filelist.json
This is referred to as the 'manifest' for the mod. To generate this file - or regenerate it if you have changed files - select the mod and click the "Regenerate Manifest" button on the Feral launcher.
If you add files to the mod and fail to Regenerate Manifest your new files will not be loaded. If you try and run a mod without any manifest you will just get the vanilla game!
Errors and Logging
Version 2.0.2 has introduced a comprehensive error logging system. To activate basic logging to text file use enable_logging in your Launch Options. Log files will be generated in:
C:\Users\YOUR_NAME\AppData\Local\Feral Interactive\Total War ROME REMASTERED\VFS\Local\Rome\logs
You can also use:
- -show_err - to generate a single pop-up message as in the original game
- enable_dialogs - to get multiple pop-up messages (this really does generate multiple messages, you might find it annoying, and the same messages should be available from the text logs)
- verbose_script_logging - to help debug scripts
Additionally EnableBattleModelInfo can be activated from Preferences Data to view the assets a battle model is using.
See Feral's logging.md for further details.
A blank error message with yellow ! symbol, when you try to launch a mod on your PC appears to be caused by an overall file path length issue. e.g. if you are ending up with file/folder paths that looks like:
C:\Users\Name\AppData\Local\Feral Interactive\Total War ROME REMASTERED\Mods\My Mods\Mega European Mod Version 5b 2021\data\xdescr_building_battle - copy (2)\
Try to shorten this! The mod-folder name doesn't have to match the displayed mod name, so re-name that to something with just a few initials! And try not to keep old copies of unecessary files/folder with long names inside the mod-folder...
Differences to Rome: Total War
For text file and folder structure differences see main article:- File Differences - Rome Remastered
There are numerous small and large changes to the files and file structure of Remastered in comparison to RTW. The changes are centered around:
- Inclusion of higher resolution graphics and environmental effects
- Inclusion of all language options within the same base game (instead of replacement)
- Addition of separate mesh structure for 3D elements of campaign map
- Addition of merchant agent type
- 'Duplicate' text files with alternative statistics to suit toggled play-style options
- New methods to override base files
Feral's Differences & New Features page details the changes to date including 2.0.2 patch with information about currently increased limits and targeted changes for version 2.0.3.
Scripting
From version 2.0.2 the scripting possibilities of the game have been greatly increased over RTW. Importantly the game will now load a background script listed at the bottom of descr_strat.txt AND reload it automatically on save game reload. The script can also include persistant counters to store variables during the game and across save/reloads.
See Feral's guide to scripts for details and docudemon files.
Textures
RR still uses .tga.dds files (e.g. dds files but with the .tga name appended so that text files actually just ask for .tga)
Some textures are compressed using the LZ4 system, these also have an additional header section which can be ignored. IWTE now has an option that will de-compress a directory of these textures back to their starting .dds state.
Some textures are DX10 type, these you can probably open but not see the correct information, if you have a recent version of Photoshop you can use this plugin to open them. Otherwise, you need to convert them to .tga using the Texconv tool or similar. The easiest way to use this tool is by writing a .bat file (so you don't have to remember the commands each time!), and example .bat would be:
@echo off texconv.exe -r my_folder\*.dds -ft tga -o my_folder cmd /k
Fortunately, the game will accept and run happily with non-compressed DXT5 and DXT1 dds textures in the same way as RTW, so you only need to mess about with the above if you need to view or amend some of the existing textures.
PBR
RR has introduced a system of Physically Based Rendering for textures, thus the 'normal' textures that have been introduced with RR work slightly differently from the ones in M2TW:
_pbr contain the _n, _s and _m maps they are rgba textures r+g = normal b = metallic a = roughness In other places like building textures you will find that the _n, _s, _m are separate
For battle map units KurdishNomad has produced a pdf guide on how to make PBR textures for RR in GIMP, see here.
.pvr
A .pvr version of the radar map is used, to open this file download the PVRTexTool or similar.
Building Textures
Normal textures for buildings use _n added to the file name, the blue channel of the normal is usually black.
The smoothness version of building textures with _s added to the name is a greyscale image, white elements make things appear dark in wet conditions, dark elements make things shiny in sunny conditions.
The emisivity for glowing textures seem to use _e added to the name (the author currently can't get that element to work).
Settlement Overlay Textures
Feral have explained that how various special keywords in the MESH names of the overlays work:
orderedXY
Where XY is a number (00, 01, 02...) the game uses this to sort the rendering of the different meshes. Bigger numbers are rendered last, this is to avoid z-fighting (the annoying flickering) when 2 meshes are at the same distance from the camera.
gridXY
Again XY is a number. The only possible numbers are the ones defined in descr_landscape_global_uv_grids.txt and this will make the assigned texture tile according to the uv scale defined in the text file. Descr_landscape_global_uv_grids.txt can be included in a mod-folder and amended.
detailXY_ZW
XY and ZW are numbers (00, 01, 02...) The first number references a tile value in descr_landscape_global_uv_grids.txt as for the grid keyword above. The second number references a texture in descr_landscape_multi_textures.txt. The difference from gridXY is with the detail keyword the texture referenced by the second number is going to be tiled as referenced by the first number, but it's going to use the alpha of the textures assigned to the mesh without tiling that alpha layer. So the alpha layer of the texture assigned by the standard material naming process to the mesh element can define the whole area of roads to be painted onto a settlement overlay, but the actual texture applied to them can be tiled and maintain a high resolution. Descr_landscape_multi_textures.txt can be included in a mod-folder and amended but only currently supports 15 texture variations the textures defined in it do not work with the winter variant system applied from descr_building_battle.txt.
An example use of the detail keyword would be a mesh name within the overlay .cas of:
ordered01 - detail04_03 - whatever
- this would be displayed on top of other lower ordered meshes in the same plane
- this would use the tiling for entry 4 in descr_landscape_global_uv_grids.txt
- this would use texture 3 from descr_landscape_multi_textures.txt for the tiled element
Campaign Map
- See main article Creating New Campaign Map in Rome Remastered
One of the areas modders' have been most worried about was whether the game would support completely redesigned maps now that a model mesh system has been introduced for the campaign map. Although this looks like the vanilla shaped map, it's actually partway through porting a version of the Mundus Magnus large map for RTW (originally by ngr).
IWTE now supports mesh and texture creation from base .tga files.
Maximum size
Rome Total War and M2TW had a hard coded size limit for map_regions.tga of 510 pixels height and width. The later patches of Rome Remastered allow a larger sized map, although there are likely still some limits the RIS team have achieved a working map with a 1020 x 700 map_regions.tga size.
Relationship to battle maps:
The below picture demonstrates the difference between what you might see on the campaign map and in battle if you don't deliberately align the two:
The left part shows the campaign map on a modified section of mesh. The area shown in green, where the army can move, is controlled by the map_heights.tga, map_ground_types.tga and map.rwm information. Where he would actually appear to stand is controlled by the heightmap .bin file generated from the mesh, so he will walk up that big lump, but he won't go below 0m (sea level), even though the mesh is below the water surface there. The second part of the picture on the right shows what you actually get at that spot in battle, which is based on the map_heights.tga, map_ground_types.tga and map.rwm information, plus interpretation from the vegetation and geography.db files.
Similarities to the original system:
A quick look in the data/world/maps folders will reassure RTW and M2TW modders that the map image and text files they are familiar with are still there. If you have a 'pure map' mod you should be able to use your existing map_heights.tga, descr_strat.txt etc to launch a mod for Remastered without much problem. If the mod has modded units, buildings, ancillaries etc, it will take more unravelling, just as porting a map between different mods would. If you try to copy in all of your mod's files you will probably find either some conflicts, or that you have overwritten new features in Remastered such as the addition of traits and ancillaries to support the new Merchant agent type.
That's the good news... your basic map files are still valid! The basic files drive the campaign map pathfinding, placement of settlements and resources and provide the climate/heights/ground_types information that is translated using the vegetation and geography.db files to make the battle maps.
The not so good news, if you were after a quick result, is that they don't generate the mesh or textures you view on the campaign map! So if you load a map of a different size or shape the areas not covered by the existing mesh, or already on raised land areas, will just appear as sea! They will function, and the trees and settlements will turn up, and your troops will be able to move on the parts supposed to be land... so if you ever wanted to do a mod based in the Everglades, this could be for you.
Units
To unpack unit models from Rome Remastered packs you need to use the unpack_characters option when launching the game .exe
The .cas files you generate can be converted for editing in Blender or 3dsMax. You can use:
- Feral's cas>fbx>cas tool see here
- IWTE which converts cas>dae>cas and can also combine the unit mesh with unpacked animations see: IWTE - Units in Blender
- possibly older max script coverters
Please be aware that each of the tools may have different default scaling and orientation, so you should not combine import/export across different tools.
Although still .cas files the RR units use the 'type 3' chunk system previously only used for some shoulder pads and minor elements of RTW units using the model_flexi_m system. The main body of the unit can have vertexes weighted variably between any two bones for the lod0 model, the lod1 model and lower need to have single bone weighting throughout. Primary and secondary weapons must still exist within the .cas as a separate mesh and use only one bone.
Only the base .cas name is given for the model in the DMB file the game looks for and needs four model .cas files for each model named:
- base_name_lod0.cas
- base_name_lod1.cas
- base_name_lod2.cas
- base_name_lod3.cas
If you haven't got 4 different lod level models, copy the closest one you have and re-name it to suit.
The uv mapping of the units is now used to provide the variation across faces and skin sections to suit ethnicity, details of the uv system and requirements for conversion with the CasPacker tool can be found here
Animations
Two additional animations have been added to the packed unit skeletons, and supplementary animations and over-rides have been added via descr_skeleton_feral_overrides.txt see the lists here.
Skin Textures
The textures used for face hair and body sections are found in data/characters/skin_textures. The naming for males is:
- ethnicity_m_bodies.dds
- ethnicity_m_bodies_pbr.dds
- ethnicity_m_faces_serious.dds
- ethnicity_m_faces_serious_pbr.dds
- ethnicity_m_faces_angry.dds
- ethnicity_m_faces_angry_pbr.dds
For females the same format is used with _f_ replacing the _m_
Note that the blue channel of the pbr which would create a metallic effect if used elsewhere is not read for skin sections.
Within the skin textures, there are 5 sections for bodies, and 16 for faces. By experimenting with colours added to them you can see which sections are used for which dmb entries. (The body section shown is from a mod using part of the chest for shields)
The first 5 faces (shown with white blobs in the picture above) are used for 'aged' faces, the last 4 faces (shown with green blobs) are used if 'medieval_features yes' is used and the characters are not 'aged'. The central section ones (shown with blue blobs) are used for non-aged characters without medieval features.
For the body the sections are used as follows:
- Skinny - sections 1, 2
- SkinnyAthletic - sections 1, 2, 3
- Default - sections 2, 3, 4
- Athletic - sections 3, 4, 5
- Bulky - sections 4, 5
NOTE: This does not apply to Culann or Berserker ethnicities which are hard-coded to use all 5 sections regardless of body type (info supplied by Feral).
Hair Texture and Styles
There is only one hair texture hair.tga.dds, this is a normal texture with transparency, the colour of the hair is set in descr_unit_variation.txt and applied to the non-transparent areas. This does not work in the same way as the skin textures. The models contain multiple hair meshes, the ones chosen for use depend on the uv mapping positions, and the texture shown matches the relative uv position.
Text Strings and Menu Items
Some of the text displayed in game isn't read from data/text folders, it's from
- \Steam\steamapps\common\Total War ROME REMASTERED\Contents\Resources\en.lproj\Localizable_Game.strings - (which is plain text)
these strings can be changed and included in a modfolder @
- mod-folder\data\string_overrides\en.strings
example shown is for English the same principle applies on other languages.
Instructions are contained in the readme.txt inside data/string_overrides:
This folder is used to override strings added to the game by Feral Interactive. The original files can be found at "<languageCode>.lproj/Localizable_Game.strings" Override files should be named the language code they correspond with and have the file extension, ".strings" E.G. English Override: "en.strings"
As an example the text seen on buttons and on the main menu selection items is in the Localizable_Game.strings, however, other parts of the menu text can be found in data/text/menu_english_stm.txt and language variants.
Enhanced Tweaks
Rome Remastered now has an IMGUI system which allows modders and users to set advanced graphics variables. To enable the feature add
enhanced_tweaks
to the game launch properties.
Changed settings can be exported and will be found in:
C:\Users\Your_Name\AppData\Local\Feral Interactive\Total War ROME REMASTERED\EnhancedTweaks
this file can be copied and added to your mod-folder, in a folder at
modfolder\data\enhanced_tweaks
If you are publishing the mod be aware that the exported file contains ALL of your settings including resolution and quality settings. To avoid imposing these on other users you should include only the entries for settings you want to override.
Feral have provided an example mod demonstrating a tweaked tree colour here.