Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I noticed men-at-arms variants in their barracks building have no unit caps as well as mounted yeo-men (forgive if misspelled but it is their basic cavalry). Was this intentional or oversight? Besides that all units seem to have proper caps. Excellent work! Been playing with this and it is great :)
Also last question: do WAAGH armies of greenskins share caps or circumvent?
I have to admit I did not think about the WAAAGH so I did not try yet, but most likely their units will share caps.
Just for clarification: men-at-arms are separate units from peasants. The men-at-arms have sword and shield variant as well as spearmen-at-arms with shield variant and a men-at-arms (polearm variant). All of these variants is what I am referring too. They are roughly the equivalent of state troops for the empire. The peasant unit is entirely separate.
On the other hand, Khorne Chaos Warriors with halberds are tier 2 units, which is why they are capped.
Not trying to be mean though, but doesn't it make more sense to balance the mod around the full roster of factions? Because as of right now, there is almost zero reason to bring Marauders instead of Warriors, which is one of the main selling points of unit caps mods ofcourse. And I would assume most players, especially the ones who use mods, would own CoC by now.
Regarding Marauders, while they’re weaker than Chaos Warriors, they serve a unique role—they’re cheaper and have a lower upkeep cost, which makes them a practical choice, especially in the early game. If you feel they aren’t strong enough compared to Chaos Warriors, I suggest sharing your feedback on the official Total War forums so CA might consider adjusting them in future patches.
That said, if you’d like to add caps for Khorne Chaos Warriors to suit your preferences, creating a submod is a straightforward process. I’ve written a tutorial on how to do this, which you can find in the discussions section.
For this specific case, it’s particularly easy because the cap for Khorne Chaos Warriors already exists (it’s used for the Daemon Prince faction). You’d just need to:
Edit the units_allowance table: Add the existing cap to Khorne factions.
Edit the buildings_effects_junction table: Modify Khorne military buildings to increase the available caps.
If you need assistance with this, feel free to reach out—I’m happy to help!
However, I'm reluctant to bother if I can't exclude Blood Host units from caps - as I feel that you then as the player are completely at the whim of what gets spawned in Blood Hosts.
I feel like it should be possible to do, since e.g. Chaos Dwarf convoys don't count towards their own unit caps, but it'll be a deadend for my modding skills if such an exclusion would require any LUA scripts haha.
Do you have any ideas on how I would configure blood host armies to not count towards unit caps? No worries if not, and thanks in advance for any help!
If you check the DB/main_units table, you’ll notice the Chaos Dwarfs have a unique type of Lord for convoys (wh3_dlc23_chd_cha_convoy_overseer). It’s possible that this Lord has a hidden, innate skill or mechanic that excludes his convoy's army from the unit caps system. However, I haven’t had time to investigate further, as my to-do list for the mod is already pretty extensive.
As a workaround, one idea I’ve considered is creating a copy of the existing units, changing only their unit key. This method is already seen in the database—for example:
wh3_main_kho_mon_bloodthirster_0
wh3_main_kho_mon_bloodthirster_summoned_0.
It should be doable to create similar uncapped copies for specific units. Then, you would need to edit the script for Blood Hosts (or similar mechanics), so they spawn these uncapped versions instead of the standard ones.
The main downside is that this approach would make it impossible to remove the mod after starting a campaign. If the mod is removed, the game won’t load the newly added unit copies, leading to crashes.
I wish I could help more, but this is a bit beyond my current modding expertise. However, if you manage to make this work, I’d be very interested to hear how you achieved it! Best of luck, and feel free to reach out if there’s anything else I can assist with.
Despite all my digging, I can't work out how it's done.
I had hoped it might have been as simple as adding entries to
I've followed through
I agree that the idea of using `dummy` units would likely work but I'm reluctant to make such a mod, as I think such an approach is likely to require lots of maintenance if any changes are made to any of the vanilla units. It would, like you say, likely also require me to overwrite
Thankyou for your help and let me know if you have any more success with this problem e.g. for Cathay caravans.
Your message gave me the idea to look into the script file located at script/campaign/wh3_dlc23_campaign_chd_hellforge.lua, and I can confirm your intuition was correct!
I asked ChatGPT to analyze the script and identify how Convoy units for the Chaos Dwarfs are excluded from the unit cap system. Here’s the reply I received:
hellforge = {
convoy_commander_key = "wh3_dlc23_chd_lord_convoy_overseer",
unit_sets = {
"wh3_dlc23_chd_category_chaos_dwarf_melee_infantry",
"wh3_dlc23_chd_category_chaos_dwarf_missile_infantry",
"wh3_dlc23_chd_category_bull_centaurs",
"wh3_dlc23_chd_category_flying_beasts",
"wh3_dlc23_chd_category_kdaai"
}
}
function hellforge:get_unit_counts_per_set(faction_interface)
local unit_set_to_count = {}
for i = 1, #self.unit_sets do
local unit_set = self.unit_sets[i]
local units_in_set = faction_interface:units_recruited_in_set(unit_set)
unit_set_to_count[unit_set] = units_in_set:num_items()
for j = 0, units_in_set:num_items() - 1 do
local unit = units_in_set:item_at(j)
local force_commander = unit:force_commander()
if force_commander then
local character_type_key = force_commander:character_subtype_key()
if character_type_key == self.convoy_commander_key then
unit_set_to_count[unit_set] = unit_set_to_count[unit_set] - 1
end
end
end
end
return unit_set_to_count
end
caravans = {
caravan_master_key = "wh3_main_cth_cha_lord_caravan_master", -- Identifier for Cathay's caravan master
unit_keys = {
"vcap_cathay_wh3_dlc24_cth_inf_onyx_crowmen",
"vcap_cathay_wh3_dlc24_cth_mon_celestial_lion",
"vcap_cathay_wh3_dlc24_cth_mon_great_moon_bird",
"vcap_cathay_wh3_dlc24_cth_mon_jade_lion",
"vcap_cathay_wh3_dlc24_cth_mon_jet_lion",
"vcap_cathay_wh3_dlc24_cth_veh_zhangu_war_drum",
"vcap_cathay_wh3_main_cth_art_fire_rain_rocket_battery_0",
"vcap_cathay_wh3_main_cth_art_grand_cannon_0",
"vcap_cathay_wh3_main_cth_cav_jade_lancers_0",
"vcap_cathay_wh3_main_cth_cav_jade_longma_riders_0",
"vcap_cathay_wh3_main_cth_inf_crane_gunners_0",
"vcap_cathay_wh3_main_cth_inf_dragon_guard_0",
"vcap_cathay_wh3_main_cth_inf_dragon_guard_crossbowmen_0",
"vcap_cathay_wh3_main_cth_inf_iron_hail_gunners_0",
"vcap_cathay_wh3_main_cth_inf_jade_warrior_crossbowmen_0",
"vcap_cathay_wh3_main_cth_inf_jade_warrior_crossbowmen_1",
"vcap_cathay_wh3_main_cth_inf_jade_warriors_1",
"vcap_cathay_wh3_main_cth_mon_terracotta_sentinel_0",
"vcap_cathay_wh3_main_cth_veh_sky_junk_0",
"vcap_cathay_wh3_main_cth_veh_sky_lantern_0",
"vcap_cathay_wh3_main_cth_veh_war_compass_0"
}
}
function caravans:get_unit_counts_per_set(faction_interface)
local unit_key_to_count = {}
for _, unit_key in ipairs(self.unit_keys) do
local unit_count = faction_interface:unit_count(unit_key) or 0
unit_key_to_count[unit_key] = unit_count
local units = faction_interface:units_of_type(unit_key)
for i = 0, units:num_items() - 1 do
local unit = units:item_at(i)
local force_commander = unit:force_commander()
if force_commander then
local character_type_key = force_commander:character_subtype_key()
if character_type_key == self.caravan_master_key then
unit_key_to_count[unit_key] = unit_key_to_count[unit_key] - 1
end
end
end
end
return unit_key_to_count
end
Changes Made:
- I updated the Lord key to Cathay’s Caravan Master
- I replaced the unit sets with Cathay-specific cap keys
I guess this approach could work for Blood Hosts too. Let me know if you’re successful in implementing it. I’d love to hear about your results!