Chapter 3 - Expanding Hotseat Features
- This part includes various suggestions of mine that might bring new hotseating innovations and improve hotseat gameplay in general. The suggestions are mostly based on my experience as an experienced M2TW modder, but it may also include things I heard elsewhere. Several of these features are already successfully implemented in hotseats.
Engine Overhaul Project (EOP)
- Expands the modding possibilites in many ways. Namely, it adds the possibility to transfer online battles from a campaign (and vice versa), and perhaps even more importantly, it fixes the previously mentioned huge issue of Scripts/events incompatible with hotseats, by enabling all console commands in the scripts.
- Amongst many other things, it also enables dozens of new commands that admins can use in the console, therefore that itself adds many new possibilities, and especially allows admin to resolve some situations much more easily!
- It also zips each save, so considering how many saves hotseaters have, it can save you a lot of disk space.
- The newest version available at https://github.com/youneuoy/M2TWEOP-library/releases
- Tutorial for online battles hotseat https://youneuoy.github.io/M2TWEOP-l..._TUTORIAL.html
Modifying the autoresolve
By changing these settings in descr_campaign_db.txt it is possible to edit various modifiers that affect the amount of casaultaties, prisoners, sunk ships and so on
Code:
<min_capture_percent float="5.0"/>
<max_capture_percent float="30.0"/> <!-- affects how many prisoners... setting both to 0 means no prisoners -->
<lopsided_thresh float="1.5"/> <!-- lopsided - if one side is overwhelmingly more powerful than the other i.e. by this threshold (_thresh), then it takes fewer casualties - 500 men vs 50 men would take fewer casualties than 50 men vs 50 men, generally speaking. -->
<lopsided_hn_mod float="3.0"/> <!-- _hn_mod if the attacker:defender ratio is bigger than this then it gives the attacker additional attack stats. Therefore, (ratio x a multiplier) would be added to the stats. -->
<separation_missile_add uint="1"/> <!-- separation_missile is the conceptual distance the missile units start away from the enemy. The higher it is, the more shots they will get off and the lower their own casualties will be.? (values up to 10 should be fine?) -->
<naval_sink_modifier float="1.5"/> <!-- naval_sink influences the chances of actually sinking an enemy ship: (attacker strength - defender strength) x sink modifier + sink offset) which is ultimately capped at _max. -->
<naval_sink_offset float="15.0"/>
<naval_sink_max float="80.0"/> <!-- reducing gets rid of one sided heroic victories etc? -->
<sally_att_def_draw_divisor float="2.0"/> <!-- sally battles are a draw if attacker lost and (number of attacker troops) > (number of defender troops)/divisor -->
However, the actual autoresolve chances calculation is based primarily upon unit stats (export_descr_unit). So for a balanced autoresolve, one should mainly carefuly modify the stats of faction rosters, and ensure there are no OP units for some factions etc. For the autoresolve, further things can affect it, such as: difficulty level, general abilities (command etc), unit experience, battle type (ambush, flank, rear), presence of elephants, charge bonus and armour level. So for
Disabling saves during a turn
If someone wants to limit reloading by players in their tur, this simple script can accomplish it.
Code:
monitor_event FactionTurnStart FactionIsLocal
enable_save
end_monitor
monitor_event CharacterSelected
disable_save
end_monitor
monitor_event SettlementSelected
disable_save
end_monitor
This disables the "save game" button (disables quick saves as well) the moment you select any general or settlement, and enables it at the beginning of a next turn, so that a hotseater can save the game at the moment the faction scroll with a password for next faction shows up. Obviously, the player can always start over from the beginning, but assuming he has to do lot of battles/stuff, it will be pretty effective in not letting him/her, without spending additional hours on it. So essentially, the ability to make saves during player's turn is diminished.
You easily implement it, just add this to campaign_script.txt (located in /data/world/maps/campaign/imperial_campaign) anywhere between "script" and "wait_monitors" lines. Only admin needs to do this. Also disable autosaves, via your mod cfg file. Under hotseat section add/change "autosave = 0", because otherwise a save would be made each time a player press next turn. (and hence a player could use it to save his progress)
Economy checks
- Many times it occurs in a hotseat, that there are several zombie factions, i.e., typically factions with some armies, a massive debt, and a settlement far from the front line given to them by their allies. However from the game point of view, these faction should normally not exist anymore, or at least it shouldnt last very long. Once could introduce simple sccripts that automatically kills of a faction if its in too high debt, or introduce other weaknesses for such factions via the scripts, such disloyalty traits, disbanding of units...
Code:
monitor_event FactionTurnStart FactionType venice
and Treasury <= -25000
destroy_units venice free_upkeep_unit ; destroy all units with free upkeep attribute
... ; many options, such as to add a counter based on which the characters get disloyalty trait
end_monitor
monitor_event FactionTurnStart FactionType venice
and Treasury <= -50000
surrender_regions venice ; this kills non horde factions
end_monitor
Zombie factions are often also simply forbidden by the rules, to a certain extent
Horde factions
- Adding this type of factions can potentionally add more layers to a hotseat. Basically, such a faction functions like a normal faction when it has settlements. But when it loses its last settlements (and some family members survided), it will turn horde mode. That means it will get spawned some new troops and moved somewhere near by the game. Until the faction settles somewhere again, it doesnt have to pay upkeep for the horde units. When conquering a settlement, the faction can choose to sack, or to occupy. Sacking would afterwards give the settlement to rebels, while occupying would cause the faction to settle and abandon its horde mode. A horde faction can go thruogh this cycle several times, based on the settings.
To give a faction the ability to be a horde faction, one must add the following entries into descr_sm_factions.
Code:
horde_min_units 10 ; min units of all horde armies combined
horde_max_units 20 ; max units of all horde armies combined
horde_max_units_reduction_every_horde 10 ; reduction of horde_min_units & horde_max_units after each instance of hording
horde_unit_per_settlement_population 250 ; population required to create 1 horde unit
horde_min_named_characters 2 ; should be called "horde_MAX_named_characters", each sub-horde gets max 1 named general & the overall horde gets max this amount of named generals
horde_max_percent_army_stack 80 ; the max size of each sub-horde as a percentage of 20, so: low -> many small sub-hordes, high -> few big sub-hordes
horde_disband_percent_on_settlement_capture 33 ; disband percentage on first settlement capture (not functional in Med2)
horde_disband_percent_on_settlement_capture 50 ; disband percentage on second settlement capture (not functional in Med2)
horde_disband_percent_on_settlement_capture 100 ; disband percentage on third settlement capture (not functional in Med2)
Shadow Factions
-
Emerging Factions
-
Information Scrolls for players -
-
Interactive features
-
Hotseat friendly missions
-
...
and lastly, time from time, you should always try to use a new different mod, that itself may naturally expand the hotseat gameplay.