Modding Resource Header
Title: How To...Create Culture Specific Battering Rams
Posted by: Seasoned Alcoholic
Modding area: Siege Engines (Battering Rams)
Required programmes: Notepad (or other text editor)
Related links: How To...Modify Siege Tower Aspects
Summary: This tutorial illustrates how to create culture specific battering rams. The vanilla RTW game actually shipped with several alternate battering rams from the default ones, so the tutorial will demonstrate how to unlock these rams and make them feature during siege battles.
Tutorial Contents:
- Introduction
- The Battering Rams
- Creating Culture Specific Battering Rams
- The End Result
What You Need:
descr_engines.txt (DE) @ \Data
Before you begin:
Make necessary backups to the text files listed above. Do this frequently as you progress through editing both files. In the case of an error (usually in the form of a CTD) for whatever reason, you will then have a working file to fall back upon if and when needed. It is a good idea to number / date / name etc your backups so that you will know which is the most latest version without confusing yourself. Only delete a backup when you are 100% convinced that this backup is no longer relevant to your latest version of the game.
Introduction
This tutorial demonstrates how to create culture specific battering rams for each culture type in RTW. Presently, all cultures share a homogenous battering ram that features during siege battles. However, vanilla RTW actually shipped with 2 additional battering ram types, as well as an alternate CAS model for the default homogenous ram.
The Battering Rams
To begin with, let's aquaint ourselves with the 3 different battering rams that shipped with RTW. Open descr_engines.txt and either scroll down to or search for (Ctrl+F) each ram type. Here are the code entries for each, and are in consecutive order:
Tortoise Ram
Code:
type tortoise_ram
culture all; roman
class ram
engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
;engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
;engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
;engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6
engine_health 150
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Eastern Ram
Code:
type eastern_ram
culture eastern
class ram
engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 4.7
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -1.0 1.6
engine_push_point -1.0 0.0
engine_push_point -1.0 -1.6
engine_push_point 1.0 1.6
engine_push_point 1.0 0.0
engine_push_point 1.0 -1.6
engine_health 120
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Open Frame Ram
Code:
type open_frame_ram
culture all
class ram
engine_model_group normal
engine_skeleton open_frame_ram
engine_collision data/models_engine/openframe_very_low_LOD.CAS
engine_model data/models_engine/OFRam_model.CAS, 20.0
engine_model data/models_engine/openframe_med_LOD.CAS, 40.0
engine_model data/models_engine/openframe_low_LOD.CAS, 80.0
engine_model data/models_engine/openframe_very_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton open_frame_ram_dying
engine_model data/models_engine/openframe_dying_model.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/openframe_dying_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 1.5
engine_length 3
engine_width 3
engine_height 3.0
engine_mass 25
engine_dock_dist 2.2
engine_mob_dist 3.9
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -0.75 -2.1
engine_push_point 0.75 -2.1
engine_push_point -1.7 -0.2
engine_push_point 1.7 -0.2
engine_health 100
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
As mentioned, these code entries are in consecutive order, the tortoise ram being the first of the 3 in the list. You may have already noticed that under the tortoise ram entry, the culture line value is all. This suggests that each culture type featured in RTW will make use of this battering ram by default. This viewpoint is confirmed from actual siege battle experiences, as all cultures utilise the homogenous tortoise ram. It becomes clear that the game looks to the first battering ram entry and ignores the other 2.
Creating Culture Specific Battering Rams
The process of creating culture specific battering rams is relatively straightforward, as there already examples of the different RTW culture types scattered throughout the existing text files. If you're unfamiliar with the different cultures featured in RTW, here is a summary list:
- roman
- greek
- eastern
- carthaginian
- egyptian
- barbarian
You can specify a culture type for a battering ram in the culture line of each ram entry. A good idea is to create a new ram entry for each culture type, this way the game can refer / lookup the correct ram type during siege battles.
In this tutorial, the Romans & Greeks will use the tortoise ram, the Easterners, Carthaginians and Egyptians will use the eastern ram, and the Barbarians will use the open frame ram. You can of course change these to your personal preference once you've become familiar with the workings of the descr_engines ram entries.
Here are 6 sample entries that should replace the existing 3 ram entries:
Roman entry
Code:
type tortoise_ram_roman
culture roman
class ram
engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6
engine_health 150
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Greek entry
Code:
type tortoise_ram_greek
culture greek
class ram
engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6
engine_health 150
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Eastern entry
Code:
type eastern_ram_eastern
culture eastern
class ram
engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6
engine_health 120
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Carthaginian entry
Code:
type eastern_ram_carthaginian
culture carthaginian
class ram
engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6
engine_health 120
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Egyptian entry
Code:
type eastern_ram_egyptian
culture egyptian
class ram
engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6
engine_health 120
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Barbarian entry
Code:
type open_frame_ram
culture barbarian
class ram
engine_model_group normal
engine_skeleton open_frame_ram
engine_collision data/models_engine/openframe_very_low_LOD.CAS
engine_model data/models_engine/OFRam_model.CAS, 20.0
engine_model data/models_engine/openframe_med_LOD.CAS, 40.0
engine_model data/models_engine/openframe_low_LOD.CAS, 80.0
engine_model data/models_engine/openframe_very_low_LOD.CAS, max
engine_platforms none
engine_model_group dying
engine_skeleton open_frame_ram_dying
engine_model data/models_engine/openframe_dying_model.CAS, max
engine_platforms none
engine_model_group dead
engine_model data/models_engine/openframe_dying_dead.CAS, max
engine_platforms none
engine_shadow none
engine_radius 1.5
engine_length 3
engine_width 3
engine_height 3.0
engine_mass 25
engine_dock_dist 2.6
engine_mob_dist 3.9
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set
obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0
engine_spo
engine_push_point -2.5 1.0
engine_push_point -2.5 -1.5
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.5
engine_health 100
;engine_armour ram
attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Notice how the name (type) lines have been modified to help the game distinguish between each ram's culture category. There's no need to create any additonal enum entries for these new ram names, as apparently none exist.
Other areas that have changed from the vanilla entries include the removal of the semicolons ( from multiple Roman & Greek ram CAS model entries. This unlocks a much more detailed tortoise ram model than the existing vanilla one.
Additionally, you may have noticed that the engine_push_point and engine_dock_dist entries for the Eastern, Carthaginian, Egyptian and Barbarian rams have been modified. This is to reflect changes in the ram model, and characteristics of each ram type. These modifcations were implemented after numerous testing and tweaking in custom battles to locate suitable values for these entries.
The End Result
Tortoise Ram
Eastern Ram
Open Frame Ram