<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tw-modding.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cataph</id>
	<title>Total War Modding - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://tw-modding.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cataph"/>
	<link rel="alternate" type="text/html" href="https://tw-modding.com/wiki/Special:Contributions/Cataph"/>
	<updated>2026-05-13T18:24:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1341</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1341"/>
		<updated>2025-03-30T21:45:43Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Small Guide to the Montage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
Oh, also try to avoid the area occupied by the XP chevrons.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== Small Guide to the Montage ==&lt;br /&gt;
AKA Recycling and You. &lt;br /&gt;
&lt;br /&gt;
For whatever reason you decide not to go for the screenshot method, and it's particularly understandable for stuff like cavalry or monsters that cooperate harder.&lt;br /&gt;
I'll use the example of a Knights Encarmine card that I chose to redo recently at the time of writing this, and I chose to base it off the Knights of the Black Rose cause I wanted them to have a horse ''rampant''.&lt;br /&gt;
&lt;br /&gt;
This is the method I use sparingly, so hey, it was practice.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 231914.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
Respectively the vanilla card, and mine. Now, I mirrored the Black Rose dudes to begin with, they'd normally be facing right. Never make things too easy to recognize and this is easy.&lt;br /&gt;
&lt;br /&gt;
Now, what did I do? Obviously, I needed to repaint the armour in red, so in this case I brushed red on the plate areas and used a combination of Overlay and Darken layers to make it right. Also some slight gold trimming that ended up looking best in Exclusion mode, but as usual tinker with layer modes for whatever works best.&lt;br /&gt;
&lt;br /&gt;
Since I'm absolutely crap at manually painting new objects, I replaced the helmet and the horse's chamfron by pasting them from a screenshot. Make sure you take them in a way they're compatible with their position and rotation in the card to limit headaches there. The more you tinker with them the more definition you're going to lose. &lt;br /&gt;
&lt;br /&gt;
Then I tweaked them and the rest in terms of hue, brightness and some slight shading. &lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 232157.png|center]]&lt;br /&gt;
&lt;br /&gt;
This is all the edits I ended up doing on top of the vanilla card, with various methods of applying them, but you get the idea. Now, the card is obviously not perfect, it ended up being too crowded with feathers, and the second sword isn't too visible due to that, but whatever.&lt;br /&gt;
&lt;br /&gt;
All in all, the montage can be a profitable way to save time, especially when you absolutely can't get good screenshots, but you can't use them for everything. As already joked before, you can end up with very samey cards and that's horrible. '''You should, for example, take care not basing your card on a unit's that is already available to your faction.''' In this case, it wasn't a problem because my factions will never access Knights of the Black Rose outside of allied outposts, but I wouldn't pull this trick again on the same base. And don't think you can get away with just mirroring the card again.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-24 221611.png|thumb|center|Right, CA? ]]&lt;br /&gt;
&lt;br /&gt;
Yeah, don't do that. That's awful.&lt;br /&gt;
&lt;br /&gt;
Much less recently, as another example, I also used a similar method for the Sea Patrol's Roc Riders, basing them on the feral hawks or whatever they are, because getting good screenies of flying cavalry is horrible.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 233845.png|center]]&lt;br /&gt;
&lt;br /&gt;
Changed colours, did some tinkering, replaced the entirety of the background. Yeah, that's some kind of archer I glued on top. Sue me.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1340</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1340"/>
		<updated>2025-03-30T21:44:46Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Small Guide to the Montage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
Oh, also try to avoid the area occupied by the XP chevrons.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== Small Guide to the Montage ==&lt;br /&gt;
AKA Recycling and You. &lt;br /&gt;
&lt;br /&gt;
For whatever reason you decide not to go for the screenshot method, and it's particularly understandable for stuff like cavalry or monsters that cooperate harder.&lt;br /&gt;
I'll use the example of a Knights Encarmine card that I chose to redo recently at the time of writing this, and I chose to base it off the Knights of the Black Rose cause I wanted them to have a horse ''rampant''.&lt;br /&gt;
&lt;br /&gt;
This is the method I use sparingly, so hey, it was practice.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 231914.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
Respectively the vanilla card, and mine. Now, I mirrored the Black Rose dudes to begin with, they'd normally be facing right. Never make things too easy to recognize and this is easy.&lt;br /&gt;
&lt;br /&gt;
Now, what did I do? Obviously, I needed to repaint the armour in red, so in this case I brushed red on the plate areas and used a combination of Overlay and Darken layers to make it right. Also some slight gold trimming that ended up looking best in Exclusion mode, but as usual tinker with layer modes for whatever works best.&lt;br /&gt;
&lt;br /&gt;
Since I'm absolutely crap at manually painting new objects, I replaced the helmet and the horse's chamfron by pasting them from a screenshot. Make sure you take them in a way they're compatible with their position and rotation in the card to limit headaches there. The more you tinker with them the more definition you're going to lose. &lt;br /&gt;
&lt;br /&gt;
Then I tweaked them and the rest in terms of hue, brightness and some slight shading. &lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 232157.png|center]]&lt;br /&gt;
&lt;br /&gt;
This is all the edits I ended up doing on top of the vanilla card, with various methods of applying them, but you get the idea. &lt;br /&gt;
&lt;br /&gt;
All in all, the montage can be a profitable way to save time, especially when you absolutely can't get good screenshots, but you can't use them for everything. As already joked before, you can end up with very samey cards and that's horrible. '''You should, for example, take care not basing your card on a unit's that is already available to your faction.''' In this case, it wasn't a problem because my factions will never access Knights of the Black Rose outside of allied outposts, but I wouldn't pull this trick again on the same base. And don't think you can get away with just mirroring the card again.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-24 221611.png|thumb|center|Right, CA? ]]&lt;br /&gt;
&lt;br /&gt;
Yeah, don't do that. That's awful.&lt;br /&gt;
&lt;br /&gt;
Much less recently, as another example, I also used a similar method for the Sea Patrol's Roc Riders, basing them on the feral hawks or whatever they are, because getting good screenies of flying cavalry is horrible.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 233845.png|center]]&lt;br /&gt;
&lt;br /&gt;
Changed colours, did some tinkering, replaced the entirety of the background. Yeah, that's some kind of archer I glued on top. Sue me.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1339</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1339"/>
		<updated>2025-03-30T21:41:08Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Small Guide to the Montage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
Oh, also try to avoid the area occupied by the XP chevrons.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== Small Guide to the Montage ==&lt;br /&gt;
AKA Recycling and You. &lt;br /&gt;
&lt;br /&gt;
For whatever reason you decide not to go for the screenshot method, and it's particularly understandable for stuff like cavalry or monsters that cooperate harder.&lt;br /&gt;
I'll use the example of a Knights Encarmine card that I chose to redo recently at the time of writing this, and I chose to base it off the Knights of the Black Rose cause I wanted them to have a horse ''rampant''.&lt;br /&gt;
&lt;br /&gt;
This is the method I use sparingly, so hey, it was practice.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 231914.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
Respectively the vanilla card, and mine. Now, I mirrored the Black Rose dudes to begin with, they'd normally be facing right. Never make things too easy to recognize and this is easy.&lt;br /&gt;
&lt;br /&gt;
Now, what did I do? Obviously, I needed to repaint the armour in red, so in this case I brushed red on the plate areas and used a combination of Overlay and Darken layers to make it right. Also some slight gold trimming that ended up looking best in Exclusion mode, but as usual tinker with layer modes for whatever works best.&lt;br /&gt;
&lt;br /&gt;
Since I'm absolutely crap at manually painting new objects, I replaced the helmet and the horse's chamfron by pasting them from a screenshot. Make sure you take them in a way they're compatible with their position and rotation in the card to limit headaches there. The more you tinker with them the more definition you're going to lose. &lt;br /&gt;
&lt;br /&gt;
Then I tweaked them and the rest in terms of hue, brightness and some slight shading. &lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 232157.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
This is all the edits I ended up doing on top of the vanilla card, with various methods of applying them, but you get the idea. &lt;br /&gt;
&lt;br /&gt;
All in all, the montage can be a profitable way to save time, especially when you absolutely can't get good screenshots, but you can't use them for everything. As already joked before, you can end up with very samey cards and that's horrible. You should, for example, take care not basing your card on a unit's that is already available to your faction. In this case, it wasn't a problem because my factions will never access Knights of the Black Rose outside of allied outposts, but I wouldn't pull this trick again on the same base. And don't think you can get away with just mirroring the card again.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-24 221611.png|thumb|Right, CA? ]]&lt;br /&gt;
&lt;br /&gt;
Yeah, don't do that. That's awful.&lt;br /&gt;
&lt;br /&gt;
Much less recently, as another example, I also used a similar method for the Sea Patrol's Roc Riders, basing them on the feral hawks or whatever they are, because getting good screenies of flying cavalry is horrible.&lt;br /&gt;
&lt;br /&gt;
[[File:2025-03-30 233845.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
Changed colours, did some tinkering, replaced the entirety of the background. Yeah, that's some kind of archer I glued on top. Sue me.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2025-03-30_233845.png&amp;diff=1338</id>
		<title>File:2025-03-30 233845.png</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2025-03-30_233845.png&amp;diff=1338"/>
		<updated>2025-03-30T21:40:23Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;roc riders montage&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2025-03-24_221611.png&amp;diff=1337</id>
		<title>File:2025-03-24 221611.png</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2025-03-24_221611.png&amp;diff=1337"/>
		<updated>2025-03-30T21:36:28Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;chorf clones&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2025-03-30_232157.png&amp;diff=1336</id>
		<title>File:2025-03-30 232157.png</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2025-03-30_232157.png&amp;diff=1336"/>
		<updated>2025-03-30T21:32:48Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;knight encarmine unit card edits&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2025-03-30_231914.png&amp;diff=1335</id>
		<title>File:2025-03-30 231914.png</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2025-03-30_231914.png&amp;diff=1335"/>
		<updated>2025-03-30T21:26:45Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;unit card, black rose to encarmine montage&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1334</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1334"/>
		<updated>2025-03-30T21:23:39Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
Oh, also try to avoid the area occupied by the XP chevrons.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== Small Guide to the Montage ==&lt;br /&gt;
AKA Recycling and You. &lt;br /&gt;
&lt;br /&gt;
For whatever reason you decide not to go for the screenshot method, and it's particularly understandable for stuff like cavalry or monsters that cooperate harder.&lt;br /&gt;
I'll use the example of a Knights Encarmine card that I chose to redo recently at the time of writing this, and I chose to base it off the Knights of the Black Rose cause I wanted them to have a horse ''rampant''.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1333</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1333"/>
		<updated>2025-03-30T21:23:05Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
Oh, also try to avoid the area occupied by the XP chevrons.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== Small Guide to the Montage ==&lt;br /&gt;
AKA Recycling and You. &lt;br /&gt;
&lt;br /&gt;
For whatever reason you decide not to go for the screenshot method, and it's particularly understandable for stuff like cavalry or monsters that cooperate harder.&lt;br /&gt;
I'll use the example of a Knights Encarmine card that I chose to redo recently at the time of writing this, and I chose to base it off the Knights of the Black Rose cause I wanted them to have a horse ''rampant''.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1332</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1332"/>
		<updated>2025-03-30T21:02:05Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Guide to the Photoshoot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]'''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1331</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1331"/>
		<updated>2025-03-30T21:01:20Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Guide to the Photoshoot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]'''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses. Also an example of how snow is horrible as footing/background since it's so flat. Here I could save it with some brushing, but it's one of those things that might want replacing with another background entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
Don't despair. Learn how to grab the right screenshots and how to improve on them. We all make the mistake of trying to put lipstick on a pig.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1330</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1330"/>
		<updated>2025-03-30T20:58:31Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Guide to the Photoshoot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]'''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder and generally a waste of time. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
* '''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help. &lt;br /&gt;
&lt;br /&gt;
* '''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. You can grab a nice panorama or sky from an in-game battle screenie or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour, so don't worry too much about that. The important thing is that the unit is not standing on a uniform background, or with too much ground (no more than half), or that it's a mostly green unit on a green background. &lt;br /&gt;
&lt;br /&gt;
* '''Contours''': aka shading, but it kind of depends on how heavy-handed we're going. This is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they often have visible dark contours and shading to underline parts. Get a '''brush, normally with these settings: Soft Light mode, 2 pixel width, 20 to 50% hardness'''. Start with the black on the edges of the unit and on the stuff you want to be visible, like edges of armour, belts, substantial ripples on cloth or other details that got undermined by resizing to such a small scale. Normally, 100% opacity is way too heavy-handed, try between 50 and 80%. If even that is too heavy, also consider using 1 px width instead (especially if the subject is smaller or at a dangerously low contrast). On the same layer (or a different one if you're picky) and at the same time, you can do discreet highlights by switching to white. &lt;br /&gt;
If there are parts that are DESPERATE for heavy contouring, make another 30 to 60% opacity layer at Multiply and use a 1px brush for those. Use with care. &lt;br /&gt;
Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. However, it's not going to save a subject that is a flat grey surface that ends up looking like a boulder with mascara.&lt;br /&gt;
&lt;br /&gt;
Couple of examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
Note from future Cataph: please note that this are extremely old cards for me. Like I'll mention again, I've adapted methods and hopefully improved across the years. I'd never accept those Teutogen Guards now.&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. If you can't quite see where the shading is, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 or 5 (still soft light) for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
This was also one of my first experiments with moving limbs around and pasting weapons from another screenshot so they're better visible or get you cool poses.&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1329</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1329"/>
		<updated>2025-03-23T13:57:12Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
This is one of the reasons why we touch only the strict necessary, and let the original mod handle the rest: that's less stuff that is going to need to be updated at any given moment.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature, and we're going to handle as it is after RPFM 4.3.6. ''USE WITH CAUTION'': at its best it might give you a false sense of security, at its worst it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override (e.g. AK_seahelm.pack). &lt;br /&gt;
DO NOT enable the tickbox aka boolean right now. Leave that thing alone.&lt;br /&gt;
[[File:2025-03-23 145544.jpg|thumb|alt=depmanager]]&lt;br /&gt;
If that tickbox is disabled, the stated pack will be referenced by RPFM and after a reload it will put the original mod as a resource in your Dependency Cache (you know, the tab from which you can access all vanilla content too). This will also stop flagging as invalid most of your keys, meaning any red key in your submod IS an issue. &lt;br /&gt;
&lt;br /&gt;
''If you've already been using dep manager before RPFM introduced that tickbox you need to disable it and push an update for the mod on Steam.''&lt;br /&gt;
&lt;br /&gt;
Why? '''What happens if I tick the box?'''&lt;br /&gt;
If you do tick the box, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager fully on. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack, meaning it will also cause issues with actual load order. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod, and even then '''only if you are POSITIVELY 100% SURE you need to data core stuff'''. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the fully-charged depmanager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2025-03-23_145544.jpg&amp;diff=1328</id>
		<title>File:2025-03-23 145544.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2025-03-23_145544.jpg&amp;diff=1328"/>
		<updated>2025-03-23T13:56:25Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;depmanager&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1327</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1327"/>
		<updated>2025-03-23T13:54:21Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
This is one of the reasons why we touch only the strict necessary, and let the original mod handle the rest: that's less stuff that is going to need to be updated at any given moment.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature, and we're going to handle as it is after RPFM 4.3.6. ''USE WITH CAUTION'': at its best it might give you a false sense of security, at its worst it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override (e.g. AK_seahelm.pack). &lt;br /&gt;
DO NOT enable the tickbox aka boolean right now. Leave that thing alone.&lt;br /&gt;
If that tickbox is disabled, the stated pack will be referenced by RPFM and after a reload it will put the original mod as a resource in your Dependency Cache (you know, the tab from which you can access all vanilla content too). This will also stop flagging as invalid most of your keys, meaning any red key in your submod IS an issue. &lt;br /&gt;
&lt;br /&gt;
''If you've already been using dep manager before RPFM introduced that tickbox you need to disable it and push an update for the mod on Steam.''&lt;br /&gt;
&lt;br /&gt;
Why? '''What happens if I tick the box?'''&lt;br /&gt;
If you do tick the box, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager fully on. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack, meaning it will also cause issues with actual load order. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod, and even then '''only if you are POSITIVELY 100% SURE you need to data core stuff'''. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the fully-charged depmanager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1326</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1326"/>
		<updated>2025-03-23T13:45:08Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
This is one of the reasons why we touch only the strict necessary, and let the original mod handle the rest: that's less stuff that is going to need to be updated at any given moment.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature, and we're going to handle as it is after RPFM 4.3.6. ''USE WITH CAUTION'': at its best it might give you a false sense of security, at its worst it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. &lt;br /&gt;
DO NOT enable the tickbox aka boolean right now. Leave that thing alone.&lt;br /&gt;
If that tickbox is disabled, the stated pack will be referenced by RPFM and after a reload it will put the original mod as a resource in your Dependency Cache (you know, the tab from which you can access all vanilla content too). This will also stop flagging as invalid most of your keys, meaning any red key in your submod IS an issue. &lt;br /&gt;
&lt;br /&gt;
''If you've already been using dep manager before RPFM introduced that tickbox you need to disable it and push an update for the mod on Steam.''&lt;br /&gt;
&lt;br /&gt;
Why? '''What happens if I tick the box?'''&lt;br /&gt;
If you do tick the box, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager fully on. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack, meaning it will also cause issues with actual load order. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod, and even then '''only if you are POSITIVELY 100% SURE you need to data core stuff'''. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the fully-charged depmanager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1325</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1325"/>
		<updated>2025-03-23T13:36:21Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Originally written by Cataph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
This is one of the reasons why we touch only the strict necessary, and let the original mod handle the rest: that's less stuff that is going to need to be updated at any given moment.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1324</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1324"/>
		<updated>2025-03-23T13:36:00Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADDENDUM: UPDATING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
This is one of the reasons why we touch only the strict necessary, and let the original mod handle the rest: that's less stuff that is going to need to be updated at any given moment.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1323</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1323"/>
		<updated>2025-03-23T13:34:23Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* PRIORITY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
'''''Note: DO NOT leave the table names as is, or you’ll crash'''. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys. If you don't like that and need more clarity to work on more complicated cases, read on for the Dependency Manager tool.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1322</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1322"/>
		<updated>2025-03-23T13:33:00Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* PRIORITY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers, as they give you more utilities and clarity]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1321</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1321"/>
		<updated>2025-03-23T13:32:00Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* WHAT DO? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
Also, if all we're doing is increasing unit sizes, we have no interest in single-entity units and characters. In all the tables we touched, we should select the whole lines for those units we're not poking and delete those. This will leave them untouched by us (since, again, we don't need to), and the values used in the original mod will keep working. '''This is important: don't touch any more than you need to. Less work for you, less trouble for both you and the original modder.'''&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1320</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1320"/>
		<updated>2025-03-23T13:29:04Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* PRIORITY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and I do recommend you use community-made mod managers]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Balance_Tips&amp;diff=1316</id>
		<title>Tutorial:Unit Balance Tips</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Balance_Tips&amp;diff=1316"/>
		<updated>2024-11-08T16:57:46Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* THE PERNICIOUS STATS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally by Cataph ===&lt;br /&gt;
&lt;br /&gt;
== PREMISE ==&lt;br /&gt;
This guide is aimed at unit or character modders in WH2, and while I assume we’re talking about introducing or editing stuff for vanilla balance, most of the tips should remain useful even if you’re doing your own battle overhaul or whatever it is you’re doing. What I intend to do is suggest ways towards tuning your stuff so that it fits in the whole shebang and avoiding the common mistakes.&lt;br /&gt;
&lt;br /&gt;
I’m sure that many of you may be thinking “but balance is subjective!”, which is possibly true, but it’s especially true only because balance ''is'' fickle and ''does'' depend on context a lot. On the other hand, there are scenarios in which what you’re doing is objectively too weak or too strong.&lt;br /&gt;
&lt;br /&gt;
There is also the spiky and infamous matter of SP or MP balance.&lt;br /&gt;
&lt;br /&gt;
I agree that MP poses issues that SP doesn’t, but I personally disagree with those that see the two aspects of the game as incompatible. You ''can'' balance a unit for both, give or take. Of course, MP’s tendency towards min-maxing and cheesing will expose issues faster than a Karen in a retail shop.&lt;br /&gt;
&lt;br /&gt;
Then there’s the famous “all units become OP in campaign” which is kinda true but sort of an excuse, and out of our hands insofar as we do our job balancing the unit’s baseline stats.&lt;br /&gt;
&lt;br /&gt;
“But I want unbalanced OP units!” Sure, then read no further and we won’t talk about it.&lt;br /&gt;
&lt;br /&gt;
Keep in mind this guide will avoid technicalities of how to create a unit, that’s for the [https://steamcommunity.com/sharedfiles/filedetails/?id=1694945483 unit creation guides] to do.&lt;br /&gt;
&lt;br /&gt;
== CONTEXT: THE ROSTER ==&lt;br /&gt;
Alrighty, you’re making a new unit. One of the main features of Warhammer is that its balance is asymmetrical, in that there are many diverse factions and most of them have their own strengths and weaknesses, usually much more marked than they’d be in a historical setting of human-only warfare. &lt;br /&gt;
&lt;br /&gt;
We want to preserve those factional strengths and weaknesses; the usual examples being how Warriors of Chaos are a meatheaded faction poised for a decisive melee push with expensive and elite melee units, with little in the way of missile potential, and predictably fielding heavy armour stuff. Dwarfs are a tanky and shooty faction famously suited for corner camping because of how lacky they are in terms of mobility. The Empire is a faction built for width rather than height, with only a couple units that can shine in their department. Wood Elves are supposed to be the kings of squishy skirmishers. And so on. &lt;br /&gt;
&lt;br /&gt;
So while it may be your active choice to, say, add a unit comparable to Chaos Chosen to Wood Elves, and assuming you’re still reading because you still somehow want to balance them, know that you’re removing a faction’s weakness, specifically the lack of a uber heavy infantry unit. &lt;br /&gt;
&lt;br /&gt;
Relatedly, you could be tempted to exactly copy the stats of a unit to add one to another faction. Hey, they can’t be OP if they’re the same as vanilla unit X, right? Wrong, some units may be deliberately stronger for a faction exactly because that’s where that faction is supposed to shine and to compensate other weaknesses. In other words, pooling good units from multiple factions into one still creates an OP chimera.&lt;br /&gt;
&lt;br /&gt;
This also works from another perspective. If you’re designing, say, a heavy cavalry unit for whatever non-elven non-chaos faction, you should likely avoid making it more powerful than what the supposed kings of heavy cav can bring, aka Bretonnia. If your Halfling Rooster Knights can keep up with Grail Knights there’s definitely something wrong.&lt;br /&gt;
&lt;br /&gt;
Which brings us to…&lt;br /&gt;
&lt;br /&gt;
== CONTEXT: THE METERSTICK ==&lt;br /&gt;
Which is like a yardstick, but we don’t do that sort of measure in these parts.&lt;br /&gt;
&lt;br /&gt;
A healthy habit I found is identifying possibly two or even up to four vanilla units that you can use to delimit what your unit should be. No, vanilla balance is not perfect, and gods know I have my grievances, but that’s what we’re working with.&lt;br /&gt;
&lt;br /&gt;
Let’s continue the example and say your unit, hereby The Fonzies, is to be a unit of heavy infantry with greatswords. Daring, aren’t we? And what faction are they for? Dark Elves, I decide that the Fonzies are Dark Elves. &lt;br /&gt;
&lt;br /&gt;
Ok, what would your metersticks for the Fonzies be? Obviously, more heavy infantry with great weapons. Let’s look around, and we’ll see a lot of examples. You can rummage in Custom Battles, or compare units on [https://twwstats.com/unitscards https://twwstats.com/].&lt;br /&gt;
[[File:Example comparison twwstats Fonzies2.jpg|right|frameless|381x381px]]&lt;br /&gt;
First, we look at units from the same race: Executioners, White Lions, Swordmasters, Wildwood Rangers. Then, from other races, we have Greatswords, Foot Squires, GW Longbeards. Ok, that’s a wild range, innit?  &lt;br /&gt;
&lt;br /&gt;
Let’s narrow it down a bit and decide that the unit will be more or less for a tier 3 slot of sorts, so we definitely don’t want it to be remotely as good as the Executioners or the Swordmasters. Lions and WW Rangers are a good meterstick, since they are tier 3 elves with a big choppa, but both have their own peculiarities: one with pelt shenanigans plus martial prowess (BIG +12 MD while healthy), one with immpsy, a custom passive and beefier stats. A Delf unit would come with its own murderous prowess, and might be more aggressive in overall style. &lt;br /&gt;
&lt;br /&gt;
When we proceed to juggling stats, we want to keep an eye on the human units, to make sure we don’t go as low as that, that we don’t increase unit size, since elves cap at 100@ultra for non-chaff, that we don’t make the Fonzies as tough as the Rangers or the Longbeards. Again, we don’t want to make Executioners look bad, since they have to coexist. So, for example, we can play on less armour, more speed, squishy stats. The point here is making sure the Fonzies don’t make other units obsolete. And since Dark Elves already have killy anti-infantry units, we should let Corsairs and Witch Elves be more efficient against lightly-armoured foes, focusing more on the Fonzies as a contemporary source of armour-piercing (perhaps with no Bonus vs Infantry), with a bit of armour.&lt;br /&gt;
&lt;br /&gt;
== CONTEXT: THE TABLETOP ==&lt;br /&gt;
Woooh, what a can of worms. However, if you know how to read tabletop stats, the 8E TT was better balanced than people usually give it credit for. That’s not to say perfect by any far-fetched means, but good enough for the purpose: whether your Fonzies had tabletop stats or you’d have to imagine them, TT stats can provide a further meterstick for you, or provide information and inspiration for abilities and stuff. &lt;br /&gt;
&lt;br /&gt;
In other words, similarly to the conventional meterstick approach, you can also apply the same logic to the metersticks’ statlines and make sure you’re not accidentally down/overstepping. This is particularly important when you’re designing units for a race that has very definite limits, like humans or even dwarfs. A non-character human can’t be as good as a Swordmaster of Hoeth, ever, a Dwarf is slow, and elves will be frailer than most other things. &lt;br /&gt;
&lt;br /&gt;
== THE CUSTOM BATTLE TEST ==&lt;br /&gt;
This is the obvious place to test the Fonzies in terms of actual performance. A staple is testing for 1v1 duels. Lords will usually interfere so you want to get a “all units are generals” mod or do it yourself so you can get rid of them. Get a nice flat map and duke it out with the metersticks AND with other units. Keep in mind that the post-battle result will heal not-dead entities, note down the results like kills, losses and hitpoints at battle-end, then possibly tweak. Possibly run at least 3 tests per duel because there is always a RNG component that will cause deviations. This is particularly true for characters, where a single blow can change the course of the fight and there aren’t tens of entities flattening the statistical variation of those hits.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the vacuum of a 1v1 unit duel is not how battles are going to go, you’re just testing sheer statistics devoid of the context in which the unit may have to be used. For example, you usually want a glasscannon unit to flank a battle line (which you can still simulate of course), and will probably underperform in a frontal assault. What you want to know is whether the glasscannon Fonzies are STILL rolling over the competition even in an unsuitable context, which would be bad.&lt;br /&gt;
&lt;br /&gt;
Also, if your unit is for example very defensive and perhaps even with Charge Defence vs All, don’t charge with it because you’re going to waste one of its main benefits. Or if your unit is anti-large, it’s ok for it to suffer a bit against good infantry. And so on.&lt;br /&gt;
&lt;br /&gt;
== THE AI ==&lt;br /&gt;
If possible, check what the AI does with the Fonzies if they happen to be a weird unit. It may not know what to do with it, which may not be something that you can fix, but keep in mind that if a unit is particularly strong in the hands of the player, it should also be not completely useless in the hands of the AI. This typically happens on very polarized units or just very powerful ones. You may know that you need to focus fire the Big Nasty Emperor Dragon Of Doom with its 25k hitpoints, but the AI doesn’t and will allow it to wreck the entire army. &lt;br /&gt;
&lt;br /&gt;
Excursus: I’ve seen this a lot. “Unit is very strong but if you focus fire it with five armour-piercing missile units it goes down” is not an excuse. Everything dies if you shoot it with enough firepower. Nerf it or accept that it’s a cheat unit.&lt;br /&gt;
&lt;br /&gt;
== THE PERNICIOUS STATS ==&lt;br /&gt;
Like I said, I’m not going to talk about how the single tables work, but I’ll point out some individual stats that are often underestimated. &lt;br /&gt;
&lt;br /&gt;
* '''Hitpoints''': CA heavily uses these to make a unit jump from a tier to another. This is a major performance tool.&lt;br /&gt;
* '''Unit size''': on top of not going above the usual unit size for that race, keep in mind that you can manipulate it to better balance your Fonzies. For example you might have an infantry unit that overperforms no matter what you sensibly do while at 120 size, so you might want to downgrade them to 100 and see what happens. Higher numbers expose the unit to more missiles and more damage in general, adds damage soaking potential on the same hitpoints, adds damage dishing potential because more entities may be dealing that oomph, adds entities that will deal that charge bonus. Smaller numbers usually demand better stats but are nullified if you’re boosting both hp and damage. Unit size is particularly important for missile units, as each entity will fire and become an active multiplier of its missile damage.&lt;br /&gt;
* '''Unit spacing''': this is a subtle one. A unit of high elves and one of norscan marauders will behave differently in terms of how many entities get into contact, how many overlap beyond the flanks, how many will get hit and how easily when shot at.&lt;br /&gt;
* '''Damage''': even shifting one point of base damage towards ap can change the outcome of a 1v1 test. &lt;br /&gt;
* '''Bonus vs X and Charge bonus''': keep in mind that both will add that number to both Melee Attack and Damage (in the same base/ap ratio). It’s a huge thing. Charge bonus only lasts for a few seconds, but its impact can be huge especially when there is a lot of entities on the first ranks. You could increase these stats and reduce MA and damage to make a unit shine more in a very specific time or target frame.&lt;br /&gt;
* '''Speed''': on top of mattering for collision impacts and mass comparisons, the simple truth of speed is that you probably want to avoid having a unit that is both relatively fast and has three tons of armour on it. &lt;br /&gt;
* '''Attributes''': they can be cool, but nobody is cool anymore when everybody has all the attributes, so use them with moderation and understand what they do. I’ve seen many that don’t know what’s the actual effect of Causes Fear (-8 Leadership aura, unless target also causes it or is immpsy), or that make a unit both unbreakable and immpsy, which is useless. Actually, normally just pretend Unbreakable and Perfect Vigour don’t even exist.&lt;br /&gt;
* '''Cost''': costs are tricky, because there’s basically no chance that two different units priced at about 700 will be exactly worth the same in all prospects. You might be satisfied with pricing the Fonzies at 800ish due to their performance, and then a 700-cost anti-infantry unit comes and completely wrecks them. It happens. Just try your best. More importantly, keep in mind that there is no cost high enough to justify a unit from single-handedly nuking half the battlefield. Upkeep in vanilla is 25% of the unit's front cost, with very few exceptions: no reason to stray away from that norm and it makes things easy for us.  &lt;br /&gt;
* '''Animations''': this is actually quite a painful note. Many unit attacks are quite animation-driven in WH and will need special attention. Typicall it’s chariots, each dealing damage according to its parameters in collision attacks, charge impacts, draught mounts and crew members, which for the moment I’ll spare you. Sometimes it’s slightly straightforward and an animation will only support so much reload speed or so much splash attack size. Sometimes you have Nakai hitting like thrice during the same charge animation. In practice, you don’t have a foolproof way of telling how something like a big monster or chariot unit will behave before testing.&lt;br /&gt;
&lt;br /&gt;
== THE CAMPAIGN ==&lt;br /&gt;
Like we premised and like it’s well-known, campaign-side tends to eventually bring enough buffs to make even a gobbo a solid unit. More or less. However, if you’ve fine-tuned the Fonzies well enough to be decent in custom battle and in respect of the points above, chances are you did good and the unit will grow similarly to others once junctioned to vanilla unit set buffs or made your own to be similar. &lt;br /&gt;
&lt;br /&gt;
Of course, if you are making your own campaign effects to be +100 armour for Fonzie units or some such, it might be the case of putting that back into perspective.&lt;br /&gt;
&lt;br /&gt;
Where you place the Fonzies for recruitment also matters a lot. Quite obviously, there is a huge difference between putting a good unit on the main settlement chain, on the barracks chain, or on an isolated building that does nothing else. Especially when you’re adding very powerful or otherwise game-changing stuff, it might be a good idea to make sure the owner has to go out of their way to get it.&lt;br /&gt;
&lt;br /&gt;
Relatedly, there’s tier, which is very important with CA balance, and sometimes you can see a more advanced unit completely replacing an earlier one because it’s simply better. Some people are fine with that, I personally despise it, but it’s a thing. My own recommendation would be to try and maintain, if at all possible, a tradeoff if the Fonzies are a virtual upgrade/downgrade to something else. Basically, avoid the Longbeard syndrome.&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1311</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1311"/>
		<updated>2024-09-25T12:08:57Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1310</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1310"/>
		<updated>2024-09-25T12:08:13Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PS PSA''': with RPFM 4.3.6, you can disable the potentially-messy behaviour of dependency managers regarding load order. You will now see a toggle: if it's disabled, the stated pack will only be referenced by RPFM (for your errors and missing keys and stuff) and nothing else will happen for the game, as in it will not be auto-enabled when loading the game either. You need to go and change it if you've already been using dep manager before this RPFM and push an update for the mod on Steam.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1304</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=1304"/>
		<updated>2024-09-12T09:40:50Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* APPENDIX: Character 2d Portholes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]'''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
'''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help.&lt;br /&gt;
&lt;br /&gt;
'''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. For example, grab a nice sky from another screenshot or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour.&lt;br /&gt;
&lt;br /&gt;
'''Contours''': this is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they have visible dark contours to highlight parts. So we start drawing them (1-2 pixel width) with medium hardness brush or pencil in black and white in a new layer. Usually it looks good when it’s set as Soft Light, probably between 60 and 100% opacity, tweak at will. Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. Examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. For example, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Make sure the portrait doesn't touch the right border, or it will look bad in-game with an abrupt straight edge. Left is ok, top looks also nicer if you can't fit the dude before the border but it matters less. &lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1260</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1260"/>
		<updated>2024-05-29T11:16:01Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 3. There will be different details and more or less big variations, beginning with what mod managers you could use, but generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
''last updated in may 2024''&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop, I say, as I lift one foot to rest on a stool and one arm on that knee for stereotypical posture. By default, you'll obviously be using CA’s mod manager (hereby called George by emulating CA's name-giving tradition) from the game's launcher to enable, remove or whatever the mods you have subscribed to. &lt;br /&gt;
&lt;br /&gt;
However, while George got some upgrades in the past years and has resolved some of its most painful problem, it's still fairly limited in what it does. There is a recommendation at this point of grabbing a community-made mod managers, and oh boy we're so lucky we even have a selection. I cannot in good conscience offer pros/cons of each as I didn't make that kind of comparison within WH3.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Kaedrin/warhammer-mod-manager/releases/ Kaedrin's]: first of this lot, works across multiple titles.&lt;br /&gt;
* [https://github.com/Shazbot/WH3-Mod-Manager/releases/ PropJoes's, aka WH3MM].&lt;br /&gt;
* [https://github.com/Frodo45127/runcher/releases/ Runcher]: made by Frodo, same guy behind RPFM, the modding tool.&lt;br /&gt;
&lt;br /&gt;
These managers have something in common, which is offering a whole lot of options compared to George: making groups of mods, ease of opening them with RPFM or reaching their workshop page, backup and cloning options, cool stuff like that. '''''Personally''''', I'm currently using the second, PJ's, because it was the first of these to work for WH3 and I never had reasons to change back to KMM or try Runcher, but that is my personal choice and habit. Pick your favourite. Inevitably, this guide will also be written in a way that is influenced by this choice of mine; some things or options will be worded differently for the other MMs, be in different spots, or not be there. You get the drift though.&lt;br /&gt;
&lt;br /&gt;
== How to Load Order ==&lt;br /&gt;
[[File:Load order bad.png|thumb|BAD]]&lt;br /&gt;
All of these managers, including George, have functions to manually change mod listing and how mods are loaded, which speaks to the old habit of handling load order within other modding communities, so you’d be tempted to change it manually to make things work just right, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes in the context. The truth is that compatibility-minded TW modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual '''pack name''' (the file name as the .pack gets downloaded) or '''table name''' (internal bits you won't see unless you open the pack):&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name. CEO for 3K is similar.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different icon from a different file path). There are things like balance submods (mostly Db overrides) that are still completely in the hands of the modders and intentionally so. In essence, packs should be ordered alphabetically and let the inner bits do their thing.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top. But generally speaking this should be out of your mind or can be manually tweaked with a bit more care.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, give Steam time to download/remove mods and keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
Sometimes, mod descriptions will tell you to manually alter load order to make that mod work over another, but quite frankly that is either unnecessary or the modder didn't do their homework to make sure that worked ''anyway'' (e.g., already making sure their pack and table names were right).&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
Ok, this is probably the reason you're here, ''something'' is wrong in your mod list and you need to find out what. &lt;br /&gt;
&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
Let's get two things out of the way immediately:&lt;br /&gt;
&lt;br /&gt;
*'''When in doubt, redownload''': Steam Workshop is acceptable for many things but it does have some god-awful behaviours. One of these is getting you a version of the mod that is either 1) older than it should be or 2) straight up a corrupted and broken file. This means crashing when it's obviously not supposed to happen, or getting older, possibly broken, features. This is particularly painful around patch time, of course. And it is painfully common, so please, seriously, verify that this is not your case before rushing to a comment section to say &amp;quot;mod crash&amp;quot;. Your options are:&lt;br /&gt;
**'''Force download''' with a community manager (e.g., right click on the specific mod and click it, or PJ's can do it for all mods).&lt;br /&gt;
**Go to the mod's Steam page, unsuscribe and resuscribe after a pause, aka the unsub/resub cycle.&lt;br /&gt;
**Go to the game's content folder and physically delete the folder or pack.[[File:Steam workshop mod dates.jpg|thumb|If that last date doesn't match, clearly you got an old version]]&lt;br /&gt;
&lt;br /&gt;
NONE OF THESE is guaranteed to work, especially on a first attempt. Keep that in mind and keep trying when things are fishy, e.g. the &amp;quot;last updated&amp;quot; date on your mod manager is older than Update: DD/MM on its workshop page on the top right. &lt;br /&gt;
&lt;br /&gt;
Yes, this is tiresome, but trust me, '''if Steam is doing this to the mod, and it's very common that it does, we modders can't do anything for you'''. And if the wretched modder actually pushed an update that crashed the game, they'll know by the sheer amount of reports.&lt;br /&gt;
&lt;br /&gt;
So if a mod that clearly shouldn't be crashing (or having pre-patch features) but it keeps doing it for you, just keep forcing the update locally for your game. And maybe go pester Valve for a fix.&lt;br /&gt;
&lt;br /&gt;
== User good practices: ==&lt;br /&gt;
The following is a list of tips that you should observe in general when dealing with TW mods. &lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasting their precious free time in unnecessary bug-hunts.''&lt;br /&gt;
# '''Read the mod description.''' Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, at least skim it to parse the important bits, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments. Also, it's always good to know what the mod you grabbed actually do, so you know where stuff might be coming from.&lt;br /&gt;
# '''Don’t ignore the required items.''' The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page. PJ's MM will warn you about this if you haven't enabled important mods.&lt;br /&gt;
# '''Keep load order alphanumerical.''' We’ve been over that already. If you have new mods that have somehow popped at the tail of the list, just reset the mod list, e.g., click twice again on the &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; column in George until it looks alphabetical.&lt;br /&gt;
# '''Troubleshoot yourself!''' The thing is, we don’t have time to help everybody, and in most cases the problem is local. Test if the issue happens when only that mod is enabled (plus any other that it requires); if you don't know what mod is doing the thing, bisect the mod list (e.g., load only half of it, PJ's MM can do it semi-automatically). We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# '''Issue Context''': upon commenting about an issue, provide as much info as possible. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t usually telepaths, although we might be developing a sense of it under environmental pressure. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder. If you still haven't figured out which mod is doing it and need help, use the #mod_user_troubleshooting channel in the [https://discord.gg/moddingden Modding Den].&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was mortal empires campaign or not, multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: if asked, link a collection or post a screenshot of the mod list (possibly not in George). For example, the big thing is not being naïve enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there. However, if your mod list is longer than, say, 40 items, don't expect people to miraculously figure out what's going on while just reading through 200 mod names.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context. &lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# '''&amp;quot;It doesn't crash so it works&amp;quot;'''. Don't assume your mod list is working just because it's not currently blowing up your computer or it didn't murder your cat. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah nah, probably don't.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
There is no such thing as a mod cap in WH3, which is another common trope. It’s up to you to keep your mod list functional, and '''the more mods you run the more likely you are to encounter issues, or just to see maintenance time increase for you'''. Making your mod list work is up to how careful you are. '''Remember, just because your list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues''', e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods. It’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check. Even if 300 out of 350 are reskins you would entrust with your house keys, it all adds to the volume of annoyance if something goes wrong. For example, maybe don't enable mods that affect stuff you will NEVER see as a player for a given campaign.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date on the MM to find the most recent updates, if you didn’t add additional mods those ''may'' (just may) be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* Watch out for movie packs. These are packs with a specific setting that long story short used to be required for some things but it may cause them to automatically fire despite being disabled. In WH3, these are really only necessary (as of may '24) for new audio content. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it and the modder might need screaming at.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
[[File:Bisect wh3mm.jpg|thumb|Within PJ's WH3MM, within Other Options]]&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halve again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches may end up being tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement. (in some cases, this is intentionally delayed to turn 2 for performance reasons)&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
Remember, it's always important to trim your mod list to determine the culprit/s. With scripts, there may be specific interactions that cause problems, such as trying to do thing A to thing B but another mod has already removed or changed B irreparably for that to work. &lt;br /&gt;
&lt;br /&gt;
When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger] (or enable the option in PJ's MM), reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger enabled past this necessity, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start. &lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: the Powershell rummage ==&lt;br /&gt;
TBC&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1259</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1259"/>
		<updated>2024-05-29T11:14:38Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 3. There will be different details and more or less big variations, beginning with what mod managers you could use, but generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
''last updated in may 2024''&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop, I say, as I lift one foot to rest on a stool and one arm on that knee for stereotypical posture. By default, you'll obviously be using CA’s mod manager (hereby called George by emulating CA's name-giving tradition) from the game's launcher to enable, remove or whatever the mods you have subscribed to. &lt;br /&gt;
&lt;br /&gt;
However, while George got some upgrades in the past years and has resolved some of its most painful problem, it's still fairly limited in what it does. There is a recommendation at this point of grabbing a community-made mod managers, and oh boy we're so lucky we even have a selection. I cannot in good conscience offer pros/cons of each as I didn't make that kind of comparison within WH3.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Kaedrin/warhammer-mod-manager/releases/ Kaedrin's]: first of this lot, works across multiple titles.&lt;br /&gt;
* [https://github.com/Shazbot/WH3-Mod-Manager/releases/ PropJoes's, aka WH3MM].&lt;br /&gt;
* [https://github.com/Frodo45127/runcher/releases/ Runcher]: made by Frodo, same guy behind RPFM, the modding tool.&lt;br /&gt;
&lt;br /&gt;
These managers have something in common, which is offering a whole lot of options compared to George: making groups of mods, ease of opening them with RPFM or reaching their workshop page, backup and cloning options, cool stuff like that. '''''Personally''''', I'm currently using the second, PJ's, because it was the first of these to work for WH3 and I never had reasons to change back to KMM or try Runcher, but that is my personal choice and habit. Pick your favourite. Inevitably, this guide will also be written in a way that is influenced by this choice of mine; some things or options will be worded differently for the other MMs, be in different spots, or not be there. You get the drift though.&lt;br /&gt;
&lt;br /&gt;
== How to Load Order ==&lt;br /&gt;
[[File:Load order bad.png|thumb|BAD]]&lt;br /&gt;
All of these managers, including George, have functions to manually change mod listing and how mods are loaded, which speaks to the old habit of handling load order within other modding communities, so you’d be tempted to change it manually to make things work just right, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes in the context. The truth is that compatibility-minded TW modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual '''pack name''' (the file name as the .pack gets downloaded) or '''table name''' (internal bits you won't see unless you open the pack):&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name. CEO for 3K is similar.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different icon from a different file path). There are things like balance submods (mostly Db overrides) that are still completely in the hands of the modders and intentionally so. In essence, packs should be ordered alphabetically and let the inner bits do their thing.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top. But generally speaking this should be out of your mind or can be manually tweaked with a bit more care.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, give Steam time to download/remove mods and keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
Sometimes, mod descriptions will tell you to manually alter load order to make that mod work over another, but quite frankly that is either unnecessary or the modder didn't do their homework to make sure that worked ''anyway'' (e.g., already making sure their pack and table names were right).&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
Ok, this is probably the reason you're here, ''something'' is wrong in your mod list and you need to find out what. &lt;br /&gt;
&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
Let's get two things out of the way immediately:&lt;br /&gt;
&lt;br /&gt;
*'''When in doubt, redownload''': Steam Workshop is acceptable for many things but it does have some god-awful behaviours. One of these is getting you a version of the mod that is either 1) older than it should be or 2) straight up a corrupted and broken file. This means crashing when it's obviously not supposed to happen, or getting older, possibly broken, features. This is particularly painful around patch time, of course. And it is painfully common, so please, seriously, verify that this is not your case before rushing to a comment section to say &amp;quot;mod crash&amp;quot;. Your options are:&lt;br /&gt;
**'''Force download''' with a community manager (e.g., right click on the specific mod and click it, or PJ's can do it for all mods).&lt;br /&gt;
**Go to the mod's Steam page, unsuscribe and resuscribe after a pause, aka the unsub/resub cycle.&lt;br /&gt;
**Go to the game's content folder and physically delete the folder or pack.[[File:Steam workshop mod dates.jpg|thumb|If that last date doesn't match, clearly you got an old version]]&lt;br /&gt;
&lt;br /&gt;
NONE OF THESE is guaranteed to work, especially on a first attempt. Keep that in mind and keep trying when things are fishy, e.g. the &amp;quot;last updated&amp;quot; date on your mod manager is older than Update: DD/MM on its workshop page on the top right. &lt;br /&gt;
&lt;br /&gt;
Yes, this is tiresome, but trust me, '''if Steam is doing this to the mod, and it's very common that it does, we modders can't do anything for you'''. And if the wretched modder actually pushed an update that crashed the game, they'll know by the sheer amount of reports.&lt;br /&gt;
&lt;br /&gt;
So if a mod that clearly shouldn't be crashing (or having pre-patch features) but it keeps doing it for you, just keep forcing the update locally for your game. And maybe go pester Valve for a fix.&lt;br /&gt;
&lt;br /&gt;
== User good practices: ==&lt;br /&gt;
The following is a list of tips that you should observe in general when dealing with TW mods. &lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasting their precious free time in unnecessary bug-hunts.''&lt;br /&gt;
# '''Read the mod description.''' Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, at least skim it to parse the important bits, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments.&lt;br /&gt;
# '''Don’t ignore the required items.''' The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page. PJ's MM will warn you about this if you haven't enabled important mods.&lt;br /&gt;
# '''Keep load order alphanumerical.''' We’ve been over that already. If you have new mods that have somehow popped at the tail of the list, just reset the mod list, e.g., click twice again on the &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; column in George until it looks alphabetical.&lt;br /&gt;
# '''Troubleshoot yourself!''' The thing is, we don’t have time to help everybody, and in most cases the problem is local. Test if the issue happens when only that mod is enabled (plus any other that it requires); if you don't know what mod is doing the thing, bisect the mod list (e.g., load only half of it, PJ's MM can do it semi-automatically). We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# '''Issue Context''': upon commenting about an issue, provide as much info as possible. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t usually telepaths, although we might be developing a sense of it under environmental pressure. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder. If you still haven't figured out which mod is doing it and need help, use the #mod_user_troubleshooting channel in the [https://discord.gg/moddingden Modding Den].&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was mortal empires campaign or not, multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: if asked, link a collection or post a screenshot of the mod list (possibly not in George). For example, the big thing is not being naïve enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there. However, if your mod list is longer than, say, 40 items, don't expect people to miraculously figure out what's going on while just reading through 200 mod names.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context. &lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# '''&amp;quot;It doesn't crash so it works&amp;quot;'''. Don't assume your mod list is working just because it's not currently blowing up your computer or it didn't murder your cat. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah nah, probably don't.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
There is no such thing as a mod cap in WH3, which is another common trope. It’s up to you to keep your mod list functional, and '''the more mods you run the more likely you are to encounter issues, or just to see maintenance time increase for you'''. Making your mod list work is up to how careful you are. '''Remember, just because your list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues''', e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods. It’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check. Even if 300 out of 350 are reskins you would entrust with your house keys, it all adds to the volume of annoyance if something goes wrong. For example, maybe don't enable mods that affect stuff you will NEVER see as a player for a given campaign.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date on the MM to find the most recent updates, if you didn’t add additional mods those ''may'' (just may) be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* Watch out for movie packs. These are packs with a specific setting that long story short used to be required for some things but it may cause them to automatically fire despite being disabled. In WH3, these are really only necessary (as of may '24) for new audio content. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it and the modder might need screaming at.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
[[File:Bisect wh3mm.jpg|thumb|Within PJ's WH3MM, within Other Options]]&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halve again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches may end up being tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement. (in some cases, this is intentionally delayed to turn 2 for performance reasons)&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
Remember, it's always important to trim your mod list to determine the culprit/s. With scripts, there may be specific interactions that cause problems, such as trying to do thing A to thing B but another mod has already removed or changed B irreparably for that to work. &lt;br /&gt;
&lt;br /&gt;
When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger] (or enable the option in PJ's MM), reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger enabled past this necessity, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start. &lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: the Powershell rummage ==&lt;br /&gt;
TBC&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1258</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1258"/>
		<updated>2024-05-29T11:07:16Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 3. There will be different details and more or less big variations, beginning with what mod managers you could use, but generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
''last updated in may 2024''&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop, I say, as I lift one foot to rest on a stool and one arm on that knee for stereotypical posture. By default, you'll obviously be using CA’s mod manager (hereby called George by emulating CA's name-giving tradition) from the game's launcher to enable, remove or whatever the mods you have subscribed to. &lt;br /&gt;
&lt;br /&gt;
However, while George got some upgrades in the past years and has resolved some of its most painful problem, it's still fairly limited in what it does. There is a recommendation at this point of grabbing a community-made mod managers, and oh boy we're so lucky we even have a selection. I cannot in good conscience offer pros/cons of each as I didn't make that kind of comparison within WH3.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Kaedrin/warhammer-mod-manager/releases/ Kaedrin's]: first of this lot, works across multiple titles.&lt;br /&gt;
* [https://github.com/Shazbot/WH3-Mod-Manager/releases/ PropJoes's, aka WH3MM].&lt;br /&gt;
* [https://github.com/Frodo45127/runcher/releases/ Runcher]: made by Frodo, same guy behind RPFM, the modding tool.&lt;br /&gt;
&lt;br /&gt;
These managers have something in common, which is offering a whole lot of options compared to George: making groups of mods, ease of opening them with RPFM or reaching their workshop page, backup and cloning options, cool stuff like that. '''''Personally''''', I'm currently using the second, PJ's, because it was the first of these to work for WH3 and I never had reasons to change back to KMM or try Runcher, but that is my personal choice and habit. Pick your favourite. Inevitably, this guide will also be written in a way that is influenced by this choice of mine; some things or options will be worded differently for the other MMs, be in different spots, or not be there. You get the drift though.&lt;br /&gt;
&lt;br /&gt;
== How to Load Order ==&lt;br /&gt;
[[File:Load order bad.png|thumb|BAD]]&lt;br /&gt;
All of these managers, including George, have functions to manually change mod listing and how mods are loaded, which speaks to the old habit of handling load order within other modding communities, so you’d be tempted to change it manually to make things work just right, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes in the context. The truth is that compatibility-minded TW modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual '''pack name''' (the file name as the .pack gets downloaded) or '''table name''' (internal bits you won't see unless you open the pack):&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name. CEO for 3K is similar.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different icon from a different file path). There are things like balance submods (mostly Db overrides) that are still completely in the hands of the modders and intentionally so. In essence, packs should be ordered alphabetically and let the inner bits do their thing.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top. But generally speaking this should be out of your mind or can be manually tweaked with a bit more care.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, give Steam time to download/remove mods and keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
Sometimes, mod descriptions will tell you to manually alter load order to make that mod work over another, but quite frankly that is either unnecessary or the modder didn't do their homework to make sure that worked ''anyway'' (e.g., already making sure their pack and table names were right).&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
Ok, this is probably the reason you're here, ''something'' is wrong in your mod list and you need to find out what. &lt;br /&gt;
&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
Let's get two things out of the way immediately:&lt;br /&gt;
&lt;br /&gt;
*'''When in doubt, redownload''': Steam Workshop is acceptable for many things but it does have some god-awful behaviours. One of these is getting you a version of the mod that is either 1) older than it should be or 2) straight up a corrupted and broken file. This means crashing when it's obviously not supposed to happen, or getting older, possibly broken, features. This is particularly painful around patch time, of course. And it is painfully common, so please, seriously, verify that this is not your case before rushing to a comment section to say &amp;quot;mod crash&amp;quot;. Your options are:&lt;br /&gt;
**'''Force download''' with a community manager (e.g., right click on the specific mod and click it, or PJ's can do it for all mods).&lt;br /&gt;
**Go to the mod's Steam page, unsuscribe and resuscribe after a pause, aka the unsub/resub cycle.&lt;br /&gt;
**Go to the game's content folder and physically delete the folder or pack.[[File:Steam workshop mod dates.jpg|thumb|If that last date doesn't match, clearly you got an old version]]&lt;br /&gt;
&lt;br /&gt;
NONE OF THESE is guaranteed to work, especially on a first attempt. Keep that in mind and keep trying when things are fishy, e.g. the &amp;quot;last updated&amp;quot; date on your mod manager is older than Update: DD/MM on its workshop page on the top right. &lt;br /&gt;
&lt;br /&gt;
Yes, this is tiresome, but trust me, '''if Steam is doing this to the mod, and it's very common that it does, we modders can't do anything for you'''. And if the wretched modder actually pushed an update that crashed the game, they'll know by the sheer amount of reports.&lt;br /&gt;
&lt;br /&gt;
So if a mod that clearly shouldn't be crashing (or having pre-patch features) but it keeps doing it for you, just keep forcing the update locally for your game.&lt;br /&gt;
&lt;br /&gt;
== User good practices: ==&lt;br /&gt;
The following is a list of tips that you should observe in general when dealing with TW mods. &lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasting their precious free time in unnecessary bug-hunts.''&lt;br /&gt;
# '''Read the mod description.''' Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, at least skim it to parse the important bits, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments.&lt;br /&gt;
# '''Don’t ignore the required items.''' The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page. PJ's MM will warn you about this if you haven't enabled important mods.&lt;br /&gt;
# '''Keep load order alphanumerical.''' We’ve been over that already. If you have new mods that have somehow popped at the tail of the list, just reset the mod list, e.g., click twice again on the &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; column in George until it looks alphabetical.&lt;br /&gt;
# '''Troubleshoot yourself!''' The thing is, we don’t have time to help everybody, and in most cases the problem is local. Test if the issue happens when only that mod is enabled (plus any other that it requires); if you don't know what mod is doing the thing, bisect the mod list (e.g., load only half of it, PJ's MM can do it semi-automatically). We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# '''Issue Context''': upon commenting about an issue, provide as much info as possible. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t usually telepaths, although we might be developing a sense of it under environmental pressure. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder. If you still haven't figured out which mod is doing it and need help, use the #mod_user_troubleshooting channel in the [https://discord.gg/moddingden Modding Den].&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was mortal empires campaign or not, multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: if asked, link a collection or post a screenshot of the mod list (possibly not in George). For example, the big thing is not being naïve enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there. However, if your mod list is longer than, say, 40 items, don't expect people to miraculously figure out what's going on while just reading through 200 mod names.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context. &lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# '''&amp;quot;It doesn't crash so it works&amp;quot;'''. Don't assume your mod list is working just because it's not currently blowing up your computer or it didn't murder your cat. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah nah, probably don't.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
There is no such thing as a mod cap in WH3, which is another common trope. It’s up to you to keep your mod list functional, and '''the more mods you run the more likely you are to encounter issues, or just to see maintenance time increase for you'''. Making your mod list work is up to how careful you are. '''Remember, just because your list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues''', e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods. It’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check. Even if 300 out of 350 are reskins you would entrust with your house keys, it all adds to the volume of annoyance if something goes wrong. For example, maybe don't enable mods that affect stuff you will NEVER see as a player for a given campaign.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date on the MM to find the most recent updates, if you didn’t add additional mods those ''may'' (just may) be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* Watch out for movie packs. These are packs with a specific setting that long story short used to be required for some things but it may cause them to automatically fire despite being disabled. In WH3, these are really only necessary (as of may '24) for new audio content. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it and the modder might need screaming at.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
[[File:Bisect wh3mm.jpg|thumb|Within PJ's WH3MM, within Other Options]]&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halve again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches may end up being tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement. (in some cases, this is intentionally delayed to turn 2 for performance reasons)&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
Remember, it's always important to trim your mod list to determine the culprit/s. With scripts, there may be specific interactions that cause problems, such as trying to do thing A to thing B but another mod has already removed or changed B irreparably for that to work. &lt;br /&gt;
&lt;br /&gt;
When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger] (or enable the option in PJ's MM), reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger enabled past this necessity, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start. &lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:Required_items.jpg&amp;diff=1257</id>
		<title>File:Required items.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:Required_items.jpg&amp;diff=1257"/>
		<updated>2024-05-29T10:47:50Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asd&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:Bisect_wh3mm.jpg&amp;diff=1256</id>
		<title>File:Bisect wh3mm.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:Bisect_wh3mm.jpg&amp;diff=1256"/>
		<updated>2024-05-29T10:46:16Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asd&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:Wh3mm_force_dl.jpg&amp;diff=1255</id>
		<title>File:Wh3mm force dl.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:Wh3mm_force_dl.jpg&amp;diff=1255"/>
		<updated>2024-05-29T10:42:31Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asd&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1254</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1254"/>
		<updated>2024-05-29T10:40:55Z</updated>

		<summary type="html">&lt;p&gt;Cataph: continued overhaul of the guide with more modern stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 3. There will be different details and more or less big variations, beginning with what mod managers you could use, but generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
''last updated in may 2024''&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop, I say, as I lift one foot to rest on a stool and one arm on that knee for stereotypical posture. By default, you'll obviously be using CA’s mod manager (hereby called George by emulating CA's name-giving tradition) from the game's launcher to enable, remove or whatever the mods you have subscribed to. &lt;br /&gt;
&lt;br /&gt;
However, while George got some upgrades in the past years and has resolved some of its most painful problem, it's still fairly limited in what it does. There is a recommendation at this point of grabbing a community-made mod managers, and oh boy we're so lucky we even have a selection. I cannot in good conscience offer pros/cons of each as I didn't make that kind of comparison within WH3.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Kaedrin/warhammer-mod-manager/releases/ Kaedrin's]: first of this lot, works across multiple titles.&lt;br /&gt;
* [https://github.com/Shazbot/WH3-Mod-Manager/releases/ PropJoes's, aka WH3MM].&lt;br /&gt;
* [https://github.com/Frodo45127/runcher/releases/ Runcher]: made by Frodo, same guy behind RPFM, the modding tool.&lt;br /&gt;
&lt;br /&gt;
These managers have something in common, which is offering a whole lot of options compared to George: making groups of mods, ease of opening them with RPFM or reaching their workshop page, backup and cloning options, cool stuff like that. '''''Personally''''', I'm currently using the second, PJ's, because it was the first of these to work for WH3 and I never had reasons to change back to KMM or try Runcher, but that is my personal choice and habit. Pick your favourite. Inevitably, this guide will also be written in a way that is influenced by this choice of mine; some things or options will be worded differently for the other MMs, be in different spots, or not be there. You get the drift though.&lt;br /&gt;
&lt;br /&gt;
== How to Load Order ==&lt;br /&gt;
[[File:Load order bad.png|thumb|BAD]]&lt;br /&gt;
All of these managers, including George, have functions to manually change mod listing and how mods are loaded, which speaks to the old habit of handling load order within other modding communities, so you’d be tempted to change it manually to make things work just right, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes in the context. The truth is that compatibility-minded TW modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual '''pack name''' (the file name as the .pack gets downloaded) or '''table name''' (internal bits you won't see unless you open the pack):&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name. CEO for 3K is similar.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different icon from a different file path). There are things like balance submods (mostly Db overrides) that are still completely in the hands of the modders and intentionally so. In essence, packs should be ordered alphabetically and let the inner bits do their thing.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top. But generally speaking this should be out of your mind or can be manually tweaked with a bit more care.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, give Steam time to download/remove mods and keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
Sometimes, mod descriptions will tell you to manually alter load order to make that mod work over another, but quite frankly that is either unnecessary or the modder didn't do their homework to make sure that worked ''anyway'' (e.g., already making sure their pack and table names were right).&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
Ok, this is probably the reason you're here, ''something'' is wrong in your mod list and you need to find out what. &lt;br /&gt;
&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
Let's get two things out of the way immediately:&lt;br /&gt;
&lt;br /&gt;
*'''When in doubt, redownload''': Steam Workshop is acceptable for many things but it does have some god-awful behaviours. One of these is getting you a version of the mod that is either 1) older than it should be or 2) straight up a corrupted and broken file. This means crashing when it's obviously not supposed to happen, or getting older, possibly broken, features. This is particularly painful around patch time, of course. And it is painfully common, so please, seriously, verify that this is not your case before rushing to a comment section to say &amp;quot;mod crash&amp;quot;. Your options are:&lt;br /&gt;
**'''Force download''' with a community manager (e.g., right click on the specific mod and click it, or PJ's can do it for all mods).&lt;br /&gt;
**Go to the mod's Steam page, unsuscribe and resuscribe after a pause, aka the unsub/resub cycle.&lt;br /&gt;
**Go to the game's content folder and physically delete the folder or pack.[[File:Steam workshop mod dates.jpg|thumb|If that last date doesn't match, clearly you got an old version]]&lt;br /&gt;
&lt;br /&gt;
NONE OF THESE is guaranteed to work, especially on a first attempt. Keep that in mind and keep trying when things are fishy, e.g. the &amp;quot;last updated&amp;quot; date on your mod manager is older than Update: DD/MM on its workshop page on the top right. &lt;br /&gt;
&lt;br /&gt;
Yes, this is tiresome, but trust me, '''if Steam is doing this to the mod, and it's very common that it does, we modders can't do anything for you'''. And if the wretched modder actually pushed an update that crashed the game, they'll know by the sheer amount of reports.&lt;br /&gt;
&lt;br /&gt;
So if a mod that clearly shouldn't be crashing (or having pre-patch features) but it keeps doing it for you, just keep forcing the update locally for your game.&lt;br /&gt;
&lt;br /&gt;
== User good practices: ==&lt;br /&gt;
The following is a list of tips that you should observe in general when dealing with TW mods. &lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasting their precious free time in unnecessary bug-hunts.''&lt;br /&gt;
# '''Read the mod description.''' Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, at least skim it to parse the important bits, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments.&lt;br /&gt;
# '''Don’t ignore the required items.''' The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page. PJ's MM will warn you about this if you haven't enabled important mods.&lt;br /&gt;
# '''Keep load order alphanumerical.''' We’ve been over that already. If you have new mods that have somehow popped at the tail of the list, just reset the mod list, e.g., click twice again on the &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; column in George until it looks alphabetical.&lt;br /&gt;
# '''Troubleshoot yourself!''' The thing is, we don’t have time to help everybody, and in most cases the problem is local. Test if the issue happens when only that mod is enabled (plus any other that it requires); if you don't know what mod is doing the thing, bisect the mod list (e.g., load only half of it, PJ's MM can do it semi-automatically). We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# '''Issue Context''': upon commenting about an issue, provide as much info as possible. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t usually telepaths, although we might be developing a sense of it under environmental pressure. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder. If you still haven't figured out which mod is doing it and need help, use the #mod_user_troubleshooting channel in the [https://discord.gg/moddingden Modding Den].&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was mortal empires campaign or not, multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: if asked, link a collection or post a screenshot of the mod list (possibly not in George). For example, the big thing is not being naïve enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there. However, if your mod list is longer than, say, 40 items, don't expect people to miraculously figure out what's going on while just reading through 200 mod names.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context. &lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# '''&amp;quot;It doesn't crash so it works&amp;quot;'''. Don't assume your mod list is working just because it's not currently blowing up your computer or it didn't murder your cat. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah, probably don't.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
There is no such thing as a mod cap in WH3, which is another common trope. It’s up to you to keep your mod list functional, and the more mods you run the more likely you are to encounter issues, or just to see maintenance time increase for you. Making your mod list work is up to how careful you are. Remember, just because your list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues, e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods. It’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date on the MM to find the most recent updates, if you didn’t add additional mods those ''may'' (just may) be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* Watch out for movie packs. These are packs with a specific setting that long story short used to be required for some things but it may cause them to automatically fire despite being disabled. In WH3, these are really only necessary (as of may '24) for new audio content. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it and the modder might need screaming at.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halven again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches may end up being tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement. (in some cases, this is intentionally delayed to turn 2 for performance reasons)&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
Remember, it's always important to trim your mod list to determine the culprit/s. With scripts, there may be specific interactions that cause problems, such as trying to do thing A to thing B but another mod has already removed or changed B irreparably for that to work. &lt;br /&gt;
&lt;br /&gt;
When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger] (or enable the option in PJ's MM), reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger enabled past this necessity, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start. &lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:Load_order_bad.png&amp;diff=1253</id>
		<title>File:Load order bad.png</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:Load_order_bad.png&amp;diff=1253"/>
		<updated>2024-05-29T10:26:19Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;bad&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:Steam_workshop_mod_dates.jpg&amp;diff=1252</id>
		<title>File:Steam workshop mod dates.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:Steam_workshop_mod_dates.jpg&amp;diff=1252"/>
		<updated>2024-05-29T10:21:27Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asd&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1251</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=1251"/>
		<updated>2024-05-29T09:29:11Z</updated>

		<summary type="html">&lt;p&gt;Cataph: reworked first two chapters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 3. There will be different details and more or less big variations, beginning with what mod managers you could use, but generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
''last updated in may 2024''&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop, I say, as I lift one foot to rest on a stool and one arm on that knee for stereotypical posture. By default, you'll obviously be using CA’s mod manager (hereby called George by emulating CA's name-giving tradition) from the game's launcher to enable, remove or whatever the mods you have subscribed to. &lt;br /&gt;
&lt;br /&gt;
However, while George got some upgrades in the past years and has resolved some of its most painful problem, it's still fairly limited in what it does. There is a recommendation at this point of grabbing a community-made mod managers, and oh boy we're so lucky we even have a selection. I cannot in good conscience offer pros/cons of each as I didn't make that kind of comparison within WH3.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Kaedrin/warhammer-mod-manager/releases/ Kaedrin's]: first of this lot, works across multiple titles.&lt;br /&gt;
* [https://github.com/Shazbot/WH3-Mod-Manager/releases/ PropJoes's, aka WH3MM].&lt;br /&gt;
* [https://github.com/Frodo45127/runcher/releases/ Runcher]: made by Frodo, same guy behind RPFM, the modding tool.&lt;br /&gt;
&lt;br /&gt;
These managers have something in common, which is offering a whole lot of options compared to George: making groups of mods, ease of opening them with RPFM or reaching their workshop page, backup and cloning options, cool stuff like that. '''''Personally''''', I use the second, PJ's, because it was the first of these to work for WH3 and I never had reasons to change back to KMM or try Runcher, but that is my personal choice and habit. Pick your favourite. Inevitably, this guide will also be written in a way that is influenced by this choice of mine; some things or options will be worded differently for the other MMs, be in different spots, or not be there. You get the drift though.&lt;br /&gt;
&lt;br /&gt;
== How to Load Order ==&lt;br /&gt;
All of these managers, including George, have functions to manually change how mods are loaded, which is an old habit of a lot of other modding communities, so you’d be tempted to change load order manually to make things work just right, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes around the community. The truth is that compatibility-minded modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual '''pack name''' (the file name as the .pack gets downloaded) or '''table name''' (internal bits you won't see unless you open the pack):&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different icon from a different file path). There are things like balance submods (mostly Db overrides) that are still completely in the hands of the modders and intentionally so. In essence, packs should be ordered alphabetically and let the inner bits do their thing.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top. But generally speaking this should be out of your mind or can be manually tweaked with a bit more care.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, give Steam time to download/remove mods and keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
Sometimes, mod descriptions will tell you to manually alter load order to make that mod work over another, but quite frankly that is either unnecessary or the modder didn't do their homework to make sure that worked ''anyway''.&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
==== User good practices: ====&lt;br /&gt;
&lt;br /&gt;
# Read the mod description. Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments.&lt;br /&gt;
# Don’t ignore the required items. The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page.&lt;br /&gt;
# Keep the mod list in alphanumerical order. We’ve been over that already. If you have new mods that have popped at the tail of the list, just click again on the &amp;lt;code&amp;gt;File Name&amp;lt;/code&amp;gt; column in KMM and save your profile.&lt;br /&gt;
# Troubleshoot yourself! The thing is, we don’t have time to help everybody, and in most cases the problem is local. We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# Upon commenting about an issue, provide context. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t telepaths. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder.&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was Vortex/ME/multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: Link a collection or a screenshot to the KMM list. For example, the big thing is not being naif enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context.&lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# Don't assume your mod lists is working just because it's not crashing. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah, probably don't.&lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasted in unnecessary bug-hunts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Frequent Steam issues:'''&lt;br /&gt;
# Corrupted and botched download: this is relatively frequent and it causes 'random' crashes with mods that ''don't'' otherwise crash. Delete locally and redownload until it works. If using KMM, use the unsub+delete option, and resub.&lt;br /&gt;
# Mod not updated: Steam may also not fetch the latest version of a random TW mod. At the merest issue, always double check the local file's last date and that of the mod on the workshop (on the top right, Last Updated).&lt;br /&gt;
&lt;br /&gt;
==== Common launcher/game issues: ====&lt;br /&gt;
&lt;br /&gt;
# Failed to download/remove mod. This happens relatively often and if in doubt you should always check in the mod download folder (example: Z:\Steamsteamapps\workshop\content\594570\??????) whether that mod was successfully downloaded/removed. Open George/Steam again until it is. The final folder id is the same as the one on the mod’s Steam url and you can sort by date for the most recently poked folder.&lt;br /&gt;
#* More on this if using KMM: Kaedrin’s manager copies packs from that content/ to the game’s data/ folder. Moreover, when mods update you will likely need to refresh/restart KMM.&lt;br /&gt;
# Ghost mods. Definitely spooky. You have toggled off that mod, but somehow it turns out it was still being loaded and crashing your game. Or a mod updates and self-enables. Using KMM seems enough to prevent this kind of poltergeist.&lt;br /&gt;
# Random crashes: sometimes stuff just breaks and you have to verify your game’s cache: Steam Library&amp;gt;right click on game&amp;gt;Properties&amp;gt;Local Files&amp;gt;Verify yadda yadda. Or check with the game’s support.&lt;br /&gt;
# Failure to enable mods or borked load order: sometimes George simply won’t fire what you want, or you’ve accidentally touched load order and now it won’t revert. Use KMM.&lt;br /&gt;
# Soft cap: as of King’s Shilling update, this is completely fixed and the cap is indefinite. You can stop merging stuff or believing conspiracies about CA intentionally capping mods.&lt;br /&gt;
&lt;br /&gt;
==== Some specific KMM issues: ====&lt;br /&gt;
&lt;br /&gt;
# Doesn’t work: KMM can be installed anywhere, BUT in the game’s stuff. Don’t install in data/ or anywhere close. Hell, plop it in the desktop.&lt;br /&gt;
# Doesn’t work cause I’m pirating the game: KMM can smell piracy. Buy the game.&lt;br /&gt;
# KMM freezes on start: reboot it.&lt;br /&gt;
# Game crashes on load: if you get that or suddenly crash for no good reason, just refresh/restart KMM first thing. If it persists, time to actually troubleshoot. KMM doesn’t often suffer of corrupted downloads but it may theoretically still happen.&lt;br /&gt;
# Movie packs: still crashing? Even with no packs enabled at all? Ok, keep in mind that once they are in the data/ folder, movie packs will always be enabled no matter if you’ve toggled them on or not. KMM shows if a mod is a conventional pack file or movie pack (Type column), and it will tell you on the lower right how many movie packs you’re currently running. To effectively disable a movie pack, use the right click option &amp;lt;code&amp;gt;Unsubscribe (Steam) and Delete&amp;lt;/code&amp;gt;. This should get rid of that mod in one go, instead of doing a mix of things that will probably still cause KMM to copy the pack again. Movie packs are mostly used for vfx, but sometimes also come with data baggage that you don’t always want around. Modders: you ''really'' want to only have harmless vfx in the movie pack, not db and scripts.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
Again, there is virtually no such thing as a soft cap in WH2 anymore. So it’s up to you to keep your mod list functional, and if you have more than 100 mods enabled, risks and maintenance time will increase for you. Making that work is up to how careful you are, and even if a mod list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues, e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods because it’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date either on KMM to find the most recent updates, if you didn’t add additional mods those ''may'' be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* As mentioned above, watch out for movie packs. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halven again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches tend to be quite tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement.&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
In some cases, it’s just a botched download (see Launcher error 3). Otherwise it gets trickier and requires you to start trimming the mod list to find the culprit. When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger], reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger there unless you need it, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
Quick note about Communiy Modding Framework: an obsolete scripting system, it’s basically only used by Crynsos’s unlocker at this point in time (september 2020) and will cause issues more often than not when enabled and not required.&lt;br /&gt;
&lt;br /&gt;
''Basically disable it unless you’re using CFU''.&lt;br /&gt;
&lt;br /&gt;
I repeat, it often breaks stuff. When in doubt, shoot it in the face.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 UI Modding Framework] ==&lt;br /&gt;
This framework is technically not required to do UI modding at all, but it may be used as a framework by some scripty mods. Unless it happens to have broken functions after a patch, there are zero reasons not to have it around just in case one of your mods is actually using it or starts doing it.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start.&lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1009</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1009"/>
		<updated>2023-10-10T07:59:24Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: BACKGROUND TABLES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units (in WH2, but it's just an example), but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1008</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=1008"/>
		<updated>2023-10-10T07:48:58Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: DEPENDENCY MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
'''PSA''': If your mod makes use of the dependency manager PLEASE STATE THAT IT DOES AND ON WHICH OTHER MOD in your Steam description. There is no telling how much time you could waste for other people finding the reason of a mod list problem.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units, but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=580</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=580"/>
		<updated>2023-04-21T17:05:48Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Intro: WH3 is very metal, but also rough */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to work in WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. Unless you have particular metallic surfaces like rust, which will likely need some tinkering to get good results. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this with selecting areas from the old specular, or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. Anyway, try to work smarter when you can. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
'''Save mat maps as BC1 with no alpha.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
It's a bit off-topic, but since we're talking about '''normal maps''', here's a procedure to get the orange-hue normals used by TW. Feed the base colour texture into Materialize, from there create the Height Map, and from that the Normal. Settings are a crap shoot as far as I'm concerned, I just wing it. When you're satisfied of the texture's bumpiness, save the blueish normal. Then grab that and put it in PS or editor of choice and do this:&lt;br /&gt;
&lt;br /&gt;
* Go into the Channel tab, select the entire '''red''' channel and paste it into an '''alpha''' channel.&lt;br /&gt;
* Paint the '''red''' channel completely white.&lt;br /&gt;
* Paint the '''blue''' channel completely black.&lt;br /&gt;
&lt;br /&gt;
Tadaaa, you got a viable normal map. More or less.&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3:  &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. While I work through updating my stuff, it certainly was an excellent reason to get rid of textures that were five years old. &lt;br /&gt;
&lt;br /&gt;
If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=579</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Troubleshooting&amp;diff=579"/>
		<updated>2023-03-18T12:35:26Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* APPENDIX: WH3, crashing on clicking Skirmish */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a troubleshooting guide for mod users in TW: Warhammer 2 and now 3. The generic pointers should be valid for all recent TW games.&lt;br /&gt;
&lt;br /&gt;
– Your neighbourhood Cataph&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''!!!'''&lt;br /&gt;
&lt;br /&gt;
'''WARHAMMER 3 PRELIMINARY HIGHLIGHT (will update and merge better later on)'''&lt;br /&gt;
&lt;br /&gt;
* [https://discord.com/channels/373745291289034763/650269940393443328/960904987523809340 Remove any movie pack from the pre-workshop interim period.] &lt;br /&gt;
* Delete any user script you may have tried using if you were a masochist.&lt;br /&gt;
* Delete the &amp;lt;code&amp;gt;-dx11&amp;lt;/code&amp;gt; override you may have put on Steam (game&amp;gt;properties&amp;gt;launch options in the lower right must be empty). &lt;br /&gt;
* Don't launch the game from the taskbar or from the exe, as it won't load mods; use the Play button or steam shortcut, or even RPFM's launch.&lt;br /&gt;
* Go to &amp;lt;code&amp;gt;%appdata%\The Creative Assembly\Launcher&amp;lt;/code&amp;gt; and delete &amp;lt;code&amp;gt;moddata.dat&amp;lt;/code&amp;gt;. In case the launcher got stuck.&lt;br /&gt;
* Since Steam is doodoo, data may get corrupted. Unsubscribe, and wait for the mod to be removed. If it needs to be manually removed, go to &amp;lt;code&amp;gt;steamapps\workshop\content\1142710\&amp;lt;/code&amp;gt;xyz where xyz is the mod id on its url. Then redownload and wait.&lt;br /&gt;
* Verify game cache.&lt;br /&gt;
&lt;br /&gt;
'''!!!'''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing Mods ==&lt;br /&gt;
So, you have subscribed to mods on the workshop. You now open CA’s current mod manager (hereby called George) and – blimey, they don’t work or something’s not right.&lt;br /&gt;
&lt;br /&gt;
First thing to keep in mind, if you have issues with George you should definitely report them to CA so that they know what they should look at.&lt;br /&gt;
&lt;br /&gt;
That said, you can just use the [https://github.com/Kaedrin/warhammer-mod-manager community mod manager] (normally called KMM). Long story short, George is unwieldy and has grown responsible for a lot of issues of its own, becoming hated by modders and users alike. Among other things, KMM is more reliable and provides mod profiles.&amp;lt;blockquote&amp;gt;'''''For WH3 as of August''': KMM is still not updated, [https://steamcommunity.com/sharedfiles/filedetails/?id=2845454582 but PJ made another perfectly-working community mod manager (read for the actual link).] Good practices still apply, but all issues/notes about KMM copying items to data/ don't apply because it doesn't. Will update the guide better as things evolve.''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to Load Order ====&lt;br /&gt;
KMM and even George have a function to manually change how mods are loaded, which is an old habit of a lot of other modding communities, so you’d be tempted to change load order manually, right?&lt;br /&gt;
&lt;br /&gt;
'''''WRONG.'''''&lt;br /&gt;
&lt;br /&gt;
Ok, I’ll spare some time for this before we get into the actually useful tips, because this is one of the nastiest tropes around the community. The truth is that compatibility-minded modders already handle load order on their own as far as possible. Manually changing load order may do absolutely nothing, shift the problem somewhere else or break everything.&lt;br /&gt;
&lt;br /&gt;
Some context. There are six main possible categories of folders in a mod pack and this is how they handle load order, either through actual pack name or table name:&lt;br /&gt;
&lt;br /&gt;
* '''Db''': table name.&lt;br /&gt;
* '''Scripts''': pack name.&lt;br /&gt;
* '''Startpos''' (the big bad): pack name.&lt;br /&gt;
* '''Text''': table name.&lt;br /&gt;
* '''UI''': pack name.&lt;br /&gt;
* '''Variants''': pack name.&lt;br /&gt;
&lt;br /&gt;
And that is if the modder doesn’t redirect content (e.g., telling database to use a different ui icon). KMM can only affect pack name order, so there are things like balance submods (Db overrides) that are still completely in the hands of the modders and intentionally so.&lt;br /&gt;
&lt;br /&gt;
In other words, there are only two possible cases in which you may want to alter load order manually: UI and variants, basically if you want to use specific reskin B.pack in the midst of larger reskin A.pack, in which case you push B on top.&lt;br /&gt;
&lt;br /&gt;
''In conclusion, you want to follow KMM’s instructions, give Steam time to download/remove mods and mostly keep load order in an alphabetical fashion (e.g. order by name and save profile), especially after adding new mods.''&lt;br /&gt;
&lt;br /&gt;
Which, incidentally, is this:&lt;br /&gt;
&lt;br /&gt;
! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~&lt;br /&gt;
&lt;br /&gt;
Where “!” wins over “a”.&lt;br /&gt;
&lt;br /&gt;
== Common Troubleshooting ==&lt;br /&gt;
In an efficient mod, at least half of the reported issues are down to user error or what is technically called launcher f***-up. We’re going to try and cut that amount down for the greater good.&lt;br /&gt;
&lt;br /&gt;
==== User good practices: ====&lt;br /&gt;
&lt;br /&gt;
# Read the mod description. Seriously, this alone would prevent 80% of comments on Steam pages. Even if a description looks long, do it, it’s there for a reason. Some mods will also have FAQs or a list of known issues, incompatibilities and instructions. Read the comments before yours too if you have to post one. There’s an excellent chance the question you’re going to ask is already answered in in descriptions, FAQs and recent comments.&lt;br /&gt;
# Don’t ignore the required items. The mod may show you a popup upon subscribing, disregarding that is almost always cue for disaster. This popup is ''not'' shown when subbing from a Steam collection (thanks Gaben), so actually check the mod’s page.&lt;br /&gt;
# Keep the mod list in alphanumerical order. We’ve been over that already. If you have new mods that have popped at the tail of the list, just click again on the &amp;lt;code&amp;gt;File Name&amp;lt;/code&amp;gt; column in KMM and save your profile.&lt;br /&gt;
# Troubleshoot yourself! The thing is, we don’t have time to help everybody, and in most cases the problem is local. We’ll get to best practices on this, don’t worry.&lt;br /&gt;
# Upon commenting about an issue, provide context. Ok, you did everything right but that ugly bug is still there. That’s fine. The worst thing you could do at this point is comment “mod doesn’t work” because that means absolutely nothing. Modders aren’t telepaths. Steam comments aren’t the best place for this, so use a discussion or the discord server/channel lurked by that given modder.&lt;br /&gt;
#* Context: when and how the thing happened. E.g. during the interturn after X’s turn, or clicking this button, whether it was Vortex/ME/multiplayer, custom battle or campaign battle.&lt;br /&gt;
#* Mod list: Link a collection or a screenshot to the KMM list. For example, the big thing is not being naif enough that the overhaul in your list can’t affect other mods. For some reason, sometimes it feels like pulling teeth to know what else is there.&lt;br /&gt;
#* Screenshot: always helps for clarity and visual context.&lt;br /&gt;
#* Save game: if requested, you can find your save game in (example) C:\Users\%USER%\AppData\Roaming\The Creative Assembly\Warhammer2\save_games. Remember the mod list, because the modder may not be able to load without it.&lt;br /&gt;
#* Results of your own troubleshooting: for example it’s good to know it happens with that one mod only. Relatedly, if you posted about an issue and later find the cause, let us know.&lt;br /&gt;
# Don't assume your mod lists is working just because it's not crashing. A crash is only the most visible of symptoms, it's like assuming a coal miner is perfectly fine just because they haven't dropped dead yet. You may have all kinds of issues in your 400-mods list ranging from fucked models to script breaks. Did I mention don't use 400 mods? Yeah, probably don't.&lt;br /&gt;
&lt;br /&gt;
''This list is of course not meant to insult anybody’s intelligence, but you’d be surprised at how many issues and massive wastes of time are due to neglect of these simple rules. Following them is in the user’s interest in order to find a solution sooner, and it will allow the modder more time for improvement rather than wasted in unnecessary bug-hunts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Frequent Steam issues:'''&lt;br /&gt;
# Corrupted and botched download: this is relatively frequent and it causes 'random' crashes with mods that ''don't'' otherwise crash. Delete locally and redownload until it works. If using KMM, use the unsub+delete option, and resub.&lt;br /&gt;
# Mod not updated: Steam may also not fetch the latest version of a random TW mod. At the merest issue, always double check the local file's last date and that of the mod on the workshop (on the top right, Last Updated).&lt;br /&gt;
&lt;br /&gt;
==== Common launcher/game issues: ====&lt;br /&gt;
&lt;br /&gt;
# Failed to download/remove mod. This happens relatively often and if in doubt you should always check in the mod download folder (example: Z:\Steamsteamapps\workshop\content\594570\??????) whether that mod was successfully downloaded/removed. Open George/Steam again until it is. The final folder id is the same as the one on the mod’s Steam url and you can sort by date for the most recently poked folder.&lt;br /&gt;
#* More on this if using KMM: Kaedrin’s manager copies packs from that content/ to the game’s data/ folder. Moreover, when mods update you will likely need to refresh/restart KMM.&lt;br /&gt;
# Ghost mods. Definitely spooky. You have toggled off that mod, but somehow it turns out it was still being loaded and crashing your game. Or a mod updates and self-enables. Using KMM seems enough to prevent this kind of poltergeist.&lt;br /&gt;
# Random crashes: sometimes stuff just breaks and you have to verify your game’s cache: Steam Library&amp;gt;right click on game&amp;gt;Properties&amp;gt;Local Files&amp;gt;Verify yadda yadda. Or check with the game’s support.&lt;br /&gt;
# Failure to enable mods or borked load order: sometimes George simply won’t fire what you want, or you’ve accidentally touched load order and now it won’t revert. Use KMM.&lt;br /&gt;
# Soft cap: as of King’s Shilling update, this is completely fixed and the cap is indefinite. You can stop merging stuff or believing conspiracies about CA intentionally capping mods.&lt;br /&gt;
&lt;br /&gt;
==== Some specific KMM issues: ====&lt;br /&gt;
&lt;br /&gt;
# Doesn’t work: KMM can be installed anywhere, BUT in the game’s stuff. Don’t install in data/ or anywhere close. Hell, plop it in the desktop.&lt;br /&gt;
# Doesn’t work cause I’m pirating the game: KMM can smell piracy. Buy the game.&lt;br /&gt;
# KMM freezes on start: reboot it.&lt;br /&gt;
# Game crashes on load: if you get that or suddenly crash for no good reason, just refresh/restart KMM first thing. If it persists, time to actually troubleshoot. KMM doesn’t often suffer of corrupted downloads but it may theoretically still happen.&lt;br /&gt;
# Movie packs: still crashing? Even with no packs enabled at all? Ok, keep in mind that once they are in the data/ folder, movie packs will always be enabled no matter if you’ve toggled them on or not. KMM shows if a mod is a conventional pack file or movie pack (Type column), and it will tell you on the lower right how many movie packs you’re currently running. To effectively disable a movie pack, use the right click option &amp;lt;code&amp;gt;Unsubscribe (Steam) and Delete&amp;lt;/code&amp;gt;. This should get rid of that mod in one go, instead of doing a mix of things that will probably still cause KMM to copy the pack again. Movie packs are mostly used for vfx, but sometimes also come with data baggage that you don’t always want around. Modders: you ''really'' want to only have harmless vfx in the movie pack, not db and scripts.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Trimming the Mod List ==&lt;br /&gt;
Again, there is virtually no such thing as a soft cap in WH2 anymore. So it’s up to you to keep your mod list functional, and if you have more than 100 mods enabled, risks and maintenance time will increase for you. Making that work is up to how careful you are, and even if a mod list doesn’t produce an instant crash you can’t be sure there aren’t less visible issues, e.g. script breaks.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, don’t be cocky with your list of 250 mods because it’s all fun and games until everything works perfectly (and with those numbers chances are it doesn’t already, you just can’t see it), at which point there’s a lot of stuff to check.&lt;br /&gt;
&lt;br /&gt;
If you’re not experienced yet (and don’t assume you are just because you played Skyrim, this is different), use the mod list of someone that has very carefully been curating it, and check that it looks ok with the help of the modders themselves. For example, start by a modder’s own collection on Steam, they often have one.&lt;br /&gt;
&lt;br /&gt;
=== Finding the culprit ===&lt;br /&gt;
The usual problem with large mod lists is this: bad, I got a crash; worse, which one of the N mods I have is the culprit?&lt;br /&gt;
&lt;br /&gt;
==== Generic pointers: ====&lt;br /&gt;
&lt;br /&gt;
* Pure Text, Variant and UI mods can basically NEVER crash the game for the user. If they do, it’s a botched download.&lt;br /&gt;
* Momentarily sort by date either on KMM to find the most recent updates, if you didn’t add additional mods those ''may'' be responsible.&lt;br /&gt;
* If you had the issue during a campaign, do not remove mods that have custom items, units or buildings because you’re just going to crash harder if those are around in the campaign map.&lt;br /&gt;
* As mentioned above, watch out for movie packs. If you’re inexplicably crashing even with no mods on, you might have a movie pack with crashy data in it.&lt;br /&gt;
&lt;br /&gt;
==== Bisect and Conquer: ====&lt;br /&gt;
Especially when dealing with big mod lists, the quickest method is to enable half of it. If you crash, that’s the troublesome half. Halven again to tighten the noose.&lt;br /&gt;
&lt;br /&gt;
Keep in mind mod requirements while you do this.&lt;br /&gt;
&lt;br /&gt;
If you want to check on a particular mod, disable everything and load the bare minimum to make that mod work, in other words mod+whatever required mods that comes with. And up from there, adding one or small groups of mods at a time until you can reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
It’s patient work but the modder will appreciate it, and it takes less than panicking for hours in a comment section. Assume that a modder won’t troubleshoot your mod list of 150 packs because you say it’s their mod doing it, unless they have proof because you tested without anything else plus requirements.&lt;br /&gt;
&lt;br /&gt;
Remember: a happy modder is a happy user.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Scripts ==&lt;br /&gt;
Scripts are being increasingly used by mods. While most scripters are getting smarter by the day to maintain compatibility, some require a framework or some mods will just struggle to work when there are too many mods around.&lt;br /&gt;
&lt;br /&gt;
You may encounter symptoms of broken scripts, due to botched downloads, bad compatibility or just plain unforeseen issues because we can just mess stuff up sometimes. Script glitches tend to be quite tricky to root out.&lt;br /&gt;
&lt;br /&gt;
A few examples of broken scripts:&lt;br /&gt;
&lt;br /&gt;
* Starting lords that should be custom are not custom, or don’t spawn, or don’t have the correct army or settlement.&lt;br /&gt;
* Sword of Khaine button is unchained right off.&lt;br /&gt;
* Chaos and all Rogue armies may spawn immediately.&lt;br /&gt;
* Campaign camera on a fresh campaign starts zoomed-out and doesn’t pan in.&lt;br /&gt;
* Chivalry starts at 0.&lt;br /&gt;
* One of the worst, characters do not gain XP (this may sometimes happen in full vanilla too, requires repair).&lt;br /&gt;
&lt;br /&gt;
==== Scropt broken, what do? ====&lt;br /&gt;
In some cases, it’s just a botched download (see Launcher error 3). Otherwise it gets trickier and requires you to start trimming the mod list to find the culprit. When/if you report the issue to modders, remember to provide as much info as humanly possible because finding a script break can turn ugly and complicated.&lt;br /&gt;
&lt;br /&gt;
Particularly useful to help with scripting issues: please enable [https://steamcommunity.com/sharedfiles/filedetails/?id=1271877744 this debugger], reproduce the bug and send the resulting log, which will be a lenghty txt generated in ''Steam\steamapps\common\Total War WARHAMMER II''. Specific scripty mods may come with additional instructions in their mod descriptions/faqs.&lt;br /&gt;
&lt;br /&gt;
Do not keep the script logger there unless you need it, since it will noticeably slow down your game.&lt;br /&gt;
&lt;br /&gt;
One of the most frequent issues at the moment is a performance-related clog-up at the start of a campaign. This basically means that too many scripts are trying to fit into that time frame to do their stuff (legendary lords, changing armies, this kinda stuff) and results in some of them not working. This is where size of the mod list, in regards to any mod with a first-tick script, becomes serious.&lt;br /&gt;
&lt;br /&gt;
Quick note about Communiy Modding Framework: an obsolete scripting system, it’s basically only used by Crynsos’s unlocker at this point in time (september 2020) and will cause issues more often than not when enabled and not required.&lt;br /&gt;
&lt;br /&gt;
''Basically disable it unless you’re using CFU''.&lt;br /&gt;
&lt;br /&gt;
I repeat, it often breaks stuff. When in doubt, shoot it in the face.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 UI Modding Framework] ==&lt;br /&gt;
This framework is technically not required to do UI modding at all, but it may be used as a framework by some scripty mods. Unless it happens to have broken functions after a patch, there are zero reasons not to have it around just in case one of your mods is actually using it or starts doing it.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: [https://steamcommunity.com/sharedfiles/filedetails/?id=1354363596 Mod Configuration Tool] ==&lt;br /&gt;
This other framework is used to provide settings for compatible mods, i.e. to tweak some details at your heart’s content. Usually a good thing to keep it around because there’s quite a few mods supporting it, or that may do it in the future. For example, you may use it to configure some scripts to fire in a performance mode to reduce impact on campaign start.&lt;br /&gt;
== APPENDIX: WH3, crashing on clicking Skirmish ==&lt;br /&gt;
The most likely cause for this right now is that you saved a character (that new fancy function in WH3 to play campaign characters into skirmishes) but it was originated or affected by a mod that you have since then removed. Kaboom. The other symptom is going kaboom when trying to recruit any hero or lord in campaign.&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;code&amp;gt;C:\Users\user\AppData\Roaming\The Creative Assembly\Warhammer3\saved_characters&amp;lt;/code&amp;gt; (or search %appdata% in windows search, then continue to those folders) and delete them.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Effects&amp;diff=578</id>
		<title>Effects</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Effects&amp;diff=578"/>
		<updated>2023-03-12T17:55:18Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Anatomy of an Effect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Whenever you pick a new skill for a character, or gain an item, or apply a banner to a unit, or build a building - you are getting and using effects.&lt;br /&gt;
&lt;br /&gt;
Effects are one of the most common game objects in all of Total War, and they drive a vast majority of any sort of dynamic/changing values throughout the game, and many game play systems. For example - the income from buildings is done through effects; attrition immunity is applied through effects; stat changes for units (ie. +Melee Attack for all archers) are done through effects.&lt;br /&gt;
&lt;br /&gt;
Learning how to create and alter effects is a fundamental part of being able to make meaningful edits to the game.&lt;br /&gt;
&lt;br /&gt;
NOTE: Written with R2/3K/WH2 in mind, this information should be valid from Empire to the present though. Please share if there are any inconsistencies.&lt;br /&gt;
&lt;br /&gt;
==== Anatomy of an Effect ====&lt;br /&gt;
At the heart of all effects is the &amp;lt;code&amp;gt;effects_table&amp;lt;/code&amp;gt; db file. This table defines a few important things - the '''key''' of the effect, to link it up to other data objects and the localised text. It will also define some UI details here, typical - such as '''icon''', '''priority''' (which determines the order effects show up, or whether it is hidden from view with 0), and the '''category''', which determines where an effect shows up on a Character Details panel for example. Also mind the boolean in here, '''positive_is_good'''. This means that, if your value is a positive integer and this bool is set to true, the text will show up as green; if your value is negative and this bool is set to false, the text will show up as red.&lt;br /&gt;
&lt;br /&gt;
An effect defined in just this table has no, well, effect - it has to be linked to another game object called &amp;lt;code&amp;gt;bonus_values&amp;lt;/code&amp;gt;. Bonus values are the game object that ''actually do a thing.'' Effects just enable those bonus values to be applied elsewhere. Bonus values can do a bunch, from increasing recruited lords' ranks, to adding charge bonus to a unit set, and far beyond, varying greatly based on the individual game. It's important to note here: '''no, you can't make new bonus_values.''' They are defined in the underlying game engine, and have code attached to them that actually make stuff happen. You can only use existing bonus_values, ever.&lt;br /&gt;
&lt;br /&gt;
The bonus_values are defined in data in dummy tables called &amp;lt;code&amp;gt;campaign_bonus_value_ids_BONUS VALUE TYPE&amp;lt;/code&amp;gt;. For instance, the &amp;lt;code&amp;gt;basic&amp;lt;/code&amp;gt; bonus_values are found in the tables &amp;lt;code&amp;gt;campaign_bonus_value_ids_basic&amp;lt;/code&amp;gt;. Do note that you won't find these tables in RPFM; they're dummy tables, meaning they're not actually used to build data in the game and can't be edited.&lt;br /&gt;
&lt;br /&gt;
The links between an effect is defined in tables called &amp;lt;code&amp;gt;effect_bonus_value_BONUS VALUE TYPE&amp;lt;/code&amp;gt;. These tables are typically either two or three columns - you link an effect key to the bonus_value dummy key, and a potential third piece of data needed for the effect. For instance, &amp;lt;code&amp;gt;effect_bonus_value_ids_unit_sets&amp;lt;/code&amp;gt; has three columns - &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bonus_value_id&amp;lt;/code&amp;gt; which defines WHAT'S being edited (upkeep, charge bonus, etc), and &amp;lt;code&amp;gt;unit_set&amp;lt;/code&amp;gt; which defines which units get this effect.&lt;br /&gt;
&lt;br /&gt;
However, not every effect ''needs'' a bonus value - it's fairly common to make a &amp;quot;dummy&amp;quot; effect, which is just UI and text, but doesn't actually have any bonus_values attached to it. This could be desired to make some clear UX about a functionality that is done through script or some other data object.&lt;br /&gt;
&lt;br /&gt;
==== Applying an Effect ====&lt;br /&gt;
From here, the effect ''works'' and is a beautiful machination, but it doesn't do anything since it isn't applied anywhere. In order to take hold, it needs to be attached into an &amp;lt;code&amp;gt;effect_bundle&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Effect bundles are another fairly common data object, and their name is pretty much their definition - they're a nice lil' package of effects. There are two types of effect_bundles - explicit, and implicit. Explicit effect bundles are defined in the table &amp;lt;code&amp;gt;effect_bundles&amp;lt;/code&amp;gt;, and then those effect bundles can be applied through a variety of means. Implicit effect bundles are created when another effect-bundling table is used - for instance, &amp;lt;code&amp;gt;building_effects_junction&amp;lt;/code&amp;gt;. This table defines a list of effects that attach to a building, which are then '''bundled up''' in the game, thus implicitly.&lt;br /&gt;
&lt;br /&gt;
Looking first at explicit effect_bundles - you would first define the effect_bundle key in &amp;lt;code&amp;gt;effect_bundles&amp;lt;/code&amp;gt;, which again is primarily UI information. However - there's an important bit of data in this table too, that we'll have to return to later. The &amp;lt;code&amp;gt;bundle_target&amp;lt;/code&amp;gt; column is very important, as it plays a big role in a future bit that we'll cover soon. It's mostly common sense here - if the effect bundle is going to be applied to a character via an ancillary, use the &amp;lt;code&amp;gt;character&amp;lt;/code&amp;gt; bundle_target. If it's applied to an army through a stance, use the &amp;lt;code&amp;gt;force&amp;lt;/code&amp;gt; bundle_target. This is the game object that '''has''' the effect_bundle, and the effects will be applied ''from'' that object.&lt;br /&gt;
&lt;br /&gt;
From there, the next jump for making an explicit effect_bundle is the table &amp;lt;code&amp;gt;effect_bundles_to_effects_junctions&amp;lt;/code&amp;gt;. You'll never guess what it does!&lt;br /&gt;
&lt;br /&gt;
First off the bat, we have the &amp;lt;code&amp;gt;effect_bundle_key&amp;lt;/code&amp;gt; - self-explanatory. Same with &amp;lt;code&amp;gt;effect_key&amp;lt;/code&amp;gt; and, I assume, &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;. If you're editing a numerical bonus_value - like, editing a stat - it'll just be whatever number you want to add to the stat. If you're applying some stranger effect - like attrition immunity - that doesn't use actually numbers, you'll either use &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; for &amp;quot;deactivate&amp;quot;, or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for &amp;quot;activate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;effect_scope&amp;lt;/code&amp;gt; is where it gets really important. Effect_scopes are defined in data, and new ones can be made - and, sometimes, are needed. Effect_scopes are composed of ''source'' and a ''target''. The '''source''' of an effect_scope will have to be the &amp;lt;code&amp;gt;bundle_target&amp;lt;/code&amp;gt; defined in the effect_bundle earlier - you're applying an effect '''from''' the bundle_target's effect_bundle to something else. For example, if you wanted to add charge bonus on a character through an ancillary, you would just use the &amp;lt;code&amp;gt;character_to_character_own&amp;lt;/code&amp;gt; effect_scope - since the character has the ''effect_bundle'' and will receive the ''effect''.&lt;br /&gt;
&lt;br /&gt;
One more very important note - '''not every effect works with every effect target.''' You can't assign a charge_bonus to a &amp;lt;code&amp;gt;faction&amp;lt;/code&amp;gt;, for instance. That just doesn't make sense. 90% of the time, you can find which game objects are valid targets in the bonus value definitions (&amp;lt;code&amp;gt;campaign_bonus_value_ids_xxxxx&amp;lt;/code&amp;gt;), in the notes column. They'll say something like &amp;quot;used at character bonuses&amp;quot;, which means it's only applicable to a character. On the 10% that aren't noted in that table, you can typically find examples in vanilla for what you want to do, and you can copy what they do.&lt;br /&gt;
&lt;br /&gt;
Implicit effect_bundles are much the same - just without defining the effect_bundle on its own, and its bundle_target. This means the &amp;lt;code&amp;gt;effect_scope&amp;lt;/code&amp;gt; column doesn't have a predefined effect source, so you will need to be slightly more aware of what you're using. Again, check vanilla examples as much as you can.&lt;br /&gt;
&lt;br /&gt;
Aside from using the aforementioned data structures, you can script some effect bundles as well. You can use a Lua script to apply (or remove) an explicit effect_bundle from a bundle_target - though mind it won't work for implicit effect_bundles.&lt;br /&gt;
&lt;br /&gt;
For Warhammer 2 - you can read up [https://chadvandy.github.io/tw_modding_resources/campaign/campaign_manager.html#section:campaign_manager:Effect%20Bundles here]. The same general commands should exist in all other games, with the biggest difference lying in Three Kingdoms.&lt;br /&gt;
&lt;br /&gt;
Likewise, Warhammer 2 got a GREAT new ability to completely change explicit effect_bundles dynamically while the game is going on. Instead of defining a dozen different effect bundles with 12 different values for the same effect, you can make one effect_bundle, and change its effect value dynamically. [[Custom Effect Bundles|Read up more on it here]].&lt;br /&gt;
[[Category:Unfinished]]&lt;br /&gt;
[[Category:Outdated]]&lt;br /&gt;
[[Category:Warhammer 2]]&lt;br /&gt;
[[Category:Rome 2]]&lt;br /&gt;
[[Category:Three Kingdoms]]&lt;br /&gt;
[[Category:Troy]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=558</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=558"/>
		<updated>2022-10-29T15:49:11Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* ADVANCED SUBMODDING: SCRIPTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units, but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but generally speaking trying to change or override a script cleanly is highly specific to what the script does and how it's written, in other words whether you can snipe the specific function you want to change or if you have to grab the whole thing. &lt;br /&gt;
&lt;br /&gt;
Some scripty fella should probably add more tips here.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=557</id>
		<title>Tutorial:Unit Card Guide</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Unit_Card_Guide&amp;diff=557"/>
		<updated>2022-10-18T11:59:26Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* APPENDIX: Character 2d Portholes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Why ==&lt;br /&gt;
Hello, my name is Cataph and I am a cardoholic.&lt;br /&gt;
&lt;br /&gt;
I heard you made a new unit in TWWarhammer and you need a new flashy unit card. Simple. No, it ain’t. Unit cards are probably the unit’s component you will be staring at for the majority of the time, even more than the actual variant. Get it wrong and it can be an eyesore for the entire campaign and battle.&lt;br /&gt;
&lt;br /&gt;
A good unit card will:&lt;br /&gt;
&lt;br /&gt;
* blend in with other vanilla pieces&lt;br /&gt;
* show the unit’s appearance&lt;br /&gt;
* display, possibly, its character and gear and role&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
But first things first. A unit card is a 60×130 PNG. Don’t make it larger than that or it will automatically be compressed in-game and lose more quality than if you did it yourself. Its location is ui/units/icons, and it’s a good idea to open the data.pack and extract that folder for future reference. Its name needs to be the same in the card column in the &amp;lt;code&amp;gt;unit_variants&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
In units/info you may find a version with a larger “shredded frame”, this is however only used in loading screens, so ignore that unless you need those for promo or stuff like that. Of course, if you ''do'' need one, start with that larger size and halve the size later for the actual unit card, or it will look like something you don’t want to look at.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
You can use stuff like GIMP or Photoshop to assemble a unit card. Personally I use the latter so I will use its lingo, and I’ll have to assume you already know how to play around with it a bit. Specifically, you’ll want to know how to use layers and possibly adjustment levels. If you don’t, it’s fine, there are a lot of basic guides on the interwebs, and even if you skip some of the speshul effects I may end up using you’ll still get a better result than just plopping a screenshot in there.&lt;br /&gt;
&lt;br /&gt;
Admittedly, during the transition between Rome2’s and Warhammer’s art style I made truly ''horrendous'' cards myself, but with time I noticed things and developed some tricks. Keep patience.&lt;br /&gt;
&lt;br /&gt;
Most CA cards are similar to existing GW artwork, but are still made by a proper artist. I am certainly not one, but you’ll want to respect these factors:&lt;br /&gt;
&lt;br /&gt;
* Positioning of the portrayed unit: not too zoomed in, not too far away; varies with races too. E.g., notice how Empire cards tend to have a western knee-cut, Dwarfs a full body.&lt;br /&gt;
* Lighting: CA cards are generally good luminosity, low contrast but with drawn highlights. This is important, you don’t want your card to be a confused blob.&lt;br /&gt;
&lt;br /&gt;
Before we get to the chase, [https://cdn.discordapp.com/attachments/731080362758766652/748925752115855530/template.psd get this template]! Always periodically test with the card frame on top, I used to get immensely pissed off when important details of my card got hidden by the UI. You will never see the entire card in the game, especially on ranged units due to the additional ammo bar. Remember to hide the frame again when you’re done. It’s a PSD file, but should work just fine in GIMP too.&lt;br /&gt;
&lt;br /&gt;
== The Three Jedi Ways ==&lt;br /&gt;
[please don’t use the sampled pictures without permission]&lt;br /&gt;
&lt;br /&gt;
* '''THE ARTWORK'''. You grab a ''legal''* and beautiful artwork around, and tweak it until it fits and shines. Usually the quickest method, but it requires a good sample. Example below, for my Skullreapers, [https://vignette.wikia.nocookie.net/warhammerfb/images/7/76/BORKIL.jpg/revision/latest?cb=20130829160001 based on this artwork]. [[File:CTT_chs_kh_berz_framed.png|alt=|center|frameless]]'''THE MONTAGE'''. ''Even Rocky had a montage.'' You grab parts from existing CA cards and glue them together. This may look simple but it’s actually an excellent way to get god-awful cards, because each bloke in a card may have its size, positioning and lighting, and mixing them may not work like you’d think. You don’t want your card to look like the portrait of the Frankenstein’s Monster, or too samey with the neighbouring unit. Also, [https://i.imgur.com/l8Qgqwv.png avoid recycling the same base too many times in the same roster or you’ll get this effect]. Working examples: below for my Estalian Lancers, or [https://cdn.discordapp.com/attachments/374122686034477057/452435403610259457/berserker_champion.png this infopic by not-a-spoon].[[File:Unit_card_est_cav.png|alt=|center|frameless]]&lt;br /&gt;
&lt;br /&gt;
* '''THE PHOTOSHOOT'''. You take things in your hands and start taking screenshots of the unit in-game. This can be a lengthy process, especially for cavalry and ranged units, but can be quite satisfying and produce a faithful portrait of the unit. It’s my favourite and most used method, and the one I’m going to describe. This is also where Positioning and Lighting really come to play.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Remember that you can’t use non-WHFB stuff and if fan-art, you want to check/ask permission.&lt;br /&gt;
&lt;br /&gt;
== Guide to the Photoshoot ==&lt;br /&gt;
First off you need to take a good screenshot in which the unit comes with a good pose, possibly no animation glitches and clipping. As said, you need something that will fit in a 60×130, so some photography experience may come in handy.&lt;br /&gt;
&lt;br /&gt;
Here are two examples that can give you an idea of how to crop and photoshop a battle screenshot and what the final result can potentially look like.&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 2.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
These two blokes are Estalian reskins for Swordsmen and Spearmen. As you can see, the pose needs to fit in a quite longilineal frame, so not all stances will work and also why cavalry is more difficult. You want to show at least part of the body and weaponry. If they have a shield, avoid it occupying too much of the card.&lt;br /&gt;
&lt;br /&gt;
If you want to have an idea, while in-game, of whether something can fit in a card, put thumb and index of both hands in an L shape, indexes pointing up and thumbs completely overlapping with one another. This will make a |_| shaped frame for you that has similar proportions to the card. Now point it at the screen like a weird photographer, possibly while someone else can see and think you're a weirdo. &lt;br /&gt;
[[File:Unit card photoshoot 3.png|none|thumb|Cavalry cropping is particularly annoying. You want enough horse but not too much, and enough rider that is not hidden by the beastie’s massive neck: '''pro tip, temporarily put mount size at 0.95.''' (I later photoshopped the lance to be more visible)]]&lt;br /&gt;
''Protip! Use a better camera mod and the &amp;gt;N&amp;lt; key high-detail camera for better screenshots.''&lt;br /&gt;
&lt;br /&gt;
Usually you will want a decent lighting, so no early dawn or cloudy battles. You can still make those work but it’s harder. &lt;br /&gt;
&lt;br /&gt;
For these guys I wanted a sunny look instead of the gloomy Empire cards, so I edited the sky background. Consider using this [https://steamcommunity.com/sharedfiles/filedetails/?id=2516720224 Sunny Weather] mod.&lt;br /&gt;
&lt;br /&gt;
The beginning may be as simple as auto-tuning Luminosity and/or Tone to remove weird tints. Afterwards you want to reduce contrast (by a lot, even up to 100!) and probably still increase luminosity (otherwise they are likely going to look quite bleak in-game). Test in custom battle selection until it’s not a grey blob anymore.&lt;br /&gt;
&lt;br /&gt;
Then comes the holistic and complicated part.&lt;br /&gt;
&lt;br /&gt;
'''Protagonism''': the bloke must be instantly distinguishable from the background. Selecting them with lasso/magic wand and making them a separate layer is always a good idea. Afterwards you’ll probably further lighten or darken the background stuff. Blurring also works but I usually don’t like it, as it can look too fake. Giving it a ''minimalist'' oil paint touch can also help.&lt;br /&gt;
&lt;br /&gt;
'''Background''': when you have extra time and experience in your hands, you may want to add smoke, happy clouds, grim clouds, that sort of thing, behind the protagonist’s layer. Screenshots can often produce rather flat backgrounds and that can be off-putting. For example, grab a nice sky from another screenshot or even a random photo, resize and apply it with a layer mask that excludes the protagonist and probably the ground they’re standing on. Then tweak at will for opacity, blending and even tone. CA backgrounds are often some unnatural colour.&lt;br /&gt;
&lt;br /&gt;
'''Contours''': this is the secret recipe and why we lowered contrast. We said CA cards are artworks, and they have visible dark contours to highlight parts. So we start drawing them (1-2 pixel width) with medium hardness brush or pencil in black and white in a new layer. Usually it looks good when it’s set as Soft Light, probably between 60 and 100% opacity, tweak at will. Contours can make a huge difference between a flat icon and one that can blend in with vanilla ones. Examples (Swashbucklers from TEB and Teutogen Guard) without and with contour:&lt;br /&gt;
[[File:Unit card photoshoot 4.png|none|thumb|The left one has a painted sky and super-imposed fire layers, you don’t want to bother with that sort of stuff at first.]]&lt;br /&gt;
The cards were already heavily-engineered, but you can still notice an improvement. For example, here’s what the Swashie’s contour layer looks like on a background and at 100% opacity:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 5.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, I’m actually gradually moving towards thicker contours, with one layer at size-2 brush and another up to 4 for the thickest shadows and bright surfaces.&lt;br /&gt;
[[File:Dwf huskarls framed.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
One further example (Lothern Sea Rangers):&lt;br /&gt;
[[File:Unit card photoshoot 6.png|none|thumb|1, almost unedited;2, added two levels of fog in front and two behind at varying Normal opacity;3, added tight brush contours and a sword glint for rule of cool.]]&lt;br /&gt;
In any case, you will still check how the card looks in custom battle roster selection (where it’s the smallest) and in the following screens. Sometimes it will suck so hard that it’s back to the drawing board, but that’s ok. Another thing that you should look at in-game is whether the lighting is ok or if the picture gets burned tfo when the unit is selected.&lt;br /&gt;
&lt;br /&gt;
You read through here so here’s a prize: my first and terrible unit card for WH1, versus the same unit in WH2:&lt;br /&gt;
&lt;br /&gt;
[[File:Unit card photoshoot 7.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character Icons ==&lt;br /&gt;
Characters want their portraits too, of course. Their cards are kept in ui/portraits/units/(designated culture) and are quite simpler to make. You follow the Photoshoot method, fix the tone, probably increase luminosity a bit, and bam, done.&lt;br /&gt;
&lt;br /&gt;
What you really want to work on at this point is that you want to use that faction’s face-to-frame size ratio to make it look better next to the other heroes and lords. For example Empire characters tend to be more zoomed-out, whereas Vampires have a creepier and closer portrait (you can recognize a bloodsucker by their selfies). When you check in-game on the custom battle roster, try to see if your faction’s character cards are all more or less the same zoom and crop. It looks a bit shady when the eyeline on all of them makes a rollercoaster wave.&lt;br /&gt;
&lt;br /&gt;
Notice that CA has moved on to make more artsy portrait for their LLs in particular. I can’t easily explain how to emulate that style because I don’t have yet a one-size-fits-all pattern.&lt;br /&gt;
&lt;br /&gt;
Making that stuff actually work in campaign is done [https://steamcommunity.com/sharedfiles/filedetails/?id=1194811468 by following the binning guide].&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Unit 2d Portholes ==&lt;br /&gt;
Aka Minspec portholes. These are the 2d pictures used in the lower left corner when you disable the framerate-consuming 3d portholes. For units, you’ll find these in '''UI\units\minspec_portholes and are 164×164 PNG''' circular icons. [https://cdn.discordapp.com/attachments/448859190874603520/708658469846384720/minspec_template.psd Use this different template as a base], screenshot your unit so that you can crop an acceptable bust portrait from it and put it in the group. Move it around until it looks alright, and usually only minimal tweaks are necessary like autotune and autocontrast.&lt;br /&gt;
&lt;br /&gt;
After that, you usually want to cut/mask away the background so that the portrait will be properly superimposed to a smoky background in-game. You can do it via lasso or magic wand and/or brush. Hair parts will always be trickier. Use the solid colour background I put in there as a reference to check for floaty bits, make sure you hide that when you’re done.&lt;br /&gt;
&lt;br /&gt;
Note: minspec name needs to be the same as the main_unit.&lt;br /&gt;
&lt;br /&gt;
== APPENDIX: Character 2d Portholes ==&lt;br /&gt;
Aka just portholes. Ditto with the previous paragraph, but these are explicitly for your characters. You’ll find these in UI\portraits\portholes\whateverculture and '''in WH2 they are 193×193 PNG''' circular icons, yes, do notice that these are larger than the unit minspecs. [https://cdn.discordapp.com/attachments/448859190874603520/708659416693473381/porthole_template.psd Use this different template as a base]. Same exact procedure otherwise. &lt;br /&gt;
&lt;br /&gt;
'''In Warhammer3, these 2d portholes are rectangular 300x164''' ([https://cdn.discordapp.com/attachments/731080362758766652/950514953067053066/wh3_porthole_template.psd get this template instead]), made to show up in the agent recruitment pool as well. Sadly, this means that we cannot get away with keeping the screenshot's background anymore, so you have to remove it or mask it away. The good thing is that it's not a third porthole, the bad thing is that we have to redo all the WH2 ones.&lt;br /&gt;
&lt;br /&gt;
Name the character porthole exactly the same you’ve called the character’s unit card, or the bin settings will not find one of the two. As a general recommendation, just call both the same way you’ve called the character art set, e.g. dude_01, dude_02, LL_dudette, which, unless you hate yourself, will also be how you called the character art set.&lt;br /&gt;
&lt;br /&gt;
Remember to put the same bin in both folders (compare with vanilla or other mods).&lt;br /&gt;
[[Category:Needs Formatting]]&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=547</id>
		<title>Tutorial:Submodding</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Submodding&amp;diff=547"/>
		<updated>2022-09-18T20:47:06Z</updated>

		<summary type="html">&lt;p&gt;Cataph: no more chaos port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Originally written by Cataph ===&lt;br /&gt;
If you’re a modder, one of the most frequent comments next to romantical proposals (YMMV) will be “SFO/Radious/CTT/Lucky/yomama compatibility when”. Many modders don’t have an interest in making a submod simply because they don’t know and play a given overhaul and wouldn’t know how to balance it anyway.&lt;br /&gt;
&lt;br /&gt;
So, what if it could be you making that submod? Or maybe you just want to make X mod work better with Y. Be the submodder you want to see in the world!&lt;br /&gt;
&lt;br /&gt;
A few things first.&lt;br /&gt;
&lt;br /&gt;
== WHAT IS A SUBMOD? ==&lt;br /&gt;
Basically, an optional plugin designed to make mod X work or work better with mod Y, thanks to this mod Z. A user that wants to use X and Y together will download mod Z and keep all three enabled.&lt;br /&gt;
&lt;br /&gt;
Can a submod be a standalone? Well, yes, but it wouldn’t be a submod then, would it? Besides, it’s normally a dick move to take mod X and fully reupload it with a few differences. Plus, it’s 90% never necessary and we’re going to see why.&lt;br /&gt;
&lt;br /&gt;
Ok, but can I just edit a mod and keep it to myself? Sure, keep in mind that you should rename the pack into something else to avoid automatic updates to overwrite what you changed.&lt;br /&gt;
&lt;br /&gt;
== WHY IS A SUBMOD? ==&lt;br /&gt;
I need you to focus.&lt;br /&gt;
&lt;br /&gt;
== HOW IS A SUBMOD? ==&lt;br /&gt;
Fine, thank you. About how it’s made, we don’t necessarily need mod X and Y to make sweet love to each other but only you, bloke with a basic knowledge of RPFM and TW modding.&lt;br /&gt;
&lt;br /&gt;
== WHAT DO? ==&lt;br /&gt;
Ok, as a basic example let’s say we want a compatibility submod between the Sea Patrol mod and a fictional 2x unit size mod, so we want to grab whatever lines define unit numbers in the former and multiply those by 2. Daring.&lt;br /&gt;
&lt;br /&gt;
First thing we open the first mod as a reference, then we create a new pack for the submod. We’ll call it seapatrol_yourname_unitsize.pack. (more on naming later, but sit tight)&lt;br /&gt;
&lt;br /&gt;
Upon viewing the db of Sea Patrol we see a whole lotta tables.&lt;br /&gt;
&lt;br /&gt;
Since I am a bloke with basic knowledge of [https://github.com/Frodo45127/rpfm/releases/latest RPFM] and TW modding, I know that unit sizes are in main_units.&lt;br /&gt;
&lt;br /&gt;
[[File:Submodding 1.jpg|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thus, in the submod I’ll import said table/s by right click&amp;gt;Add…&amp;gt;Add from Packfile, find the pack, find the table and double click it. Close the add from packfile panel and we’re good to go, we have Sea Patrol’s main_units in our shizzle. We go in there and edit the numbers we want to change, in this case we select any num_men that is not a hero/lord’s, right click, apply math as ''{x}*2'' and done. Done? No, some of those units may be cavalry, so we need to adapt the number of mounts too. We import land_units as well and do the same thing on num_mounts. In the rarer case that there’s a multi-chariot unit, we leave mounts alone and multiply num_engines in land_units.&lt;br /&gt;
&lt;br /&gt;
== PRIORITY ==&lt;br /&gt;
But it’s a submod, and we want to make sure we’re overriding the original mod’s values. No, not with load order on the mod manager, [[Troubleshooting|and incidentally you shouldn't touch that and you should use KMM]].&lt;br /&gt;
&lt;br /&gt;
We currently have two tables, we select those table fragments (in this case, called “AK_seahelm”) and we rename them to take priority according to this alphanumerical order:&amp;lt;blockquote&amp;gt;! # $ % &amp;amp; ‘ ( ) + , – ; = @ 0-9 a-z [ ] ^ _ ` { } ~ Where “!” wins over “a”.&amp;lt;/blockquote&amp;gt;Usually, adding a “!” in front does it. But we also want to make clear what submod this is for. Right click&amp;gt; Rename&amp;gt; type ''!{x}_unitsize'', which will become “!AK_seahelm_unitsize”.&lt;br /&gt;
&lt;br /&gt;
''Note: DO NOT leave the table names as is, or you’ll crash. DO NOT leave a number as last character or it might glitch and crash anyway.''&lt;br /&gt;
&lt;br /&gt;
Aaaand, done! Now this submod of only two tables will correctly override unit sizes for a specific mod. Yeah, any non-vanilla key will be red in here, since you don’t define those in your pack, but no worries, it’s a submod that is designed to exist with the mod that actually has those keys.&lt;br /&gt;
&lt;br /&gt;
In the possible case you need at some point to override parts that don't answer to table priority, like images or variants or whole script files, you might want to name the entire pack with a prefix that wins priority over the original mod. For example, again, “!AK_seahelm_unitsize”. Considering you don't want users to manually change load order, this makes sure that by alphanumerical order you're already overriding the og mod. Notice that you can't change a pack's name after you've uploaded it to the workshop.&lt;br /&gt;
&lt;br /&gt;
Now, like with any mod we make a PNG icon and upload if we want to share it publicly. If you upload it on the workshop, add mods X and Y as required by clicking on Add/Remove Required Items. This will prompt a user to go and fetch those required mods as well. Most of them will somehow ignore it and crash, but at least you tried.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: ETIQUETTE ==&lt;br /&gt;
By most accounts, a clean submod like the above doesn’t really need permission since you’re not stealing anything. However, you should still ask as good courtesy, and it can’t hurt to still let the og author know as they may link it in description, let you know about required changes, etc.&lt;br /&gt;
&lt;br /&gt;
It’s also good practice not to add donation links to a submod.&lt;br /&gt;
&lt;br /&gt;
== ADDENDUM: UPDATING ==&lt;br /&gt;
It should be your interest and responsibility to stay up-to-date with the original mods as soon as you have time. For example if you’re submodding a unit mod and you see the ‘parent’ mod has updated with balance changes, some key changes or new units, you should definitely hear a couple bells ringing.&lt;br /&gt;
&lt;br /&gt;
Sometimes the parent mod changes a few keys and then you might even crash until you update.&lt;br /&gt;
&lt;br /&gt;
== SUBMODDING EXAMPLE: TRANSLATION ==&lt;br /&gt;
In most cases, translating a mod is a simple case of grabbing all of that mod's loc files (text db) and following what we've seen so far. So, make sure you only have the parts you need, remove the rest, rename your loc with a prefix that gives them priority. Then, start grinding at the actual translation work in those loc tables.&lt;br /&gt;
&lt;br /&gt;
There may be some fringe cases where there is text on images or inside scripts. As we mentioned, you might need priority over the whole pack in terms of naming. It also gets trickier changing the text on a picture, and you might want to contact the other fellow if you need to translate a text that is directly embedded in a script. Ask if there's a way to avoid you having to grab the entire script, which is normally a bad idea.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BALANCE OVERHAULS ==&lt;br /&gt;
The submodder should also be the one who is familiar with the overhaul they’re adapting a mod for. If you are at a loss about how to tweak some things, definitely consider asking one of the two original modders (depending on the kind of question) for advice on how to proceed. For example, “this unit is weird and I’m not sure what role it should keep”.&lt;br /&gt;
&lt;br /&gt;
Can't be much more specific about this because there are so many possible moving parts that you need to change, starting with unit stats to their place on new recruitment buildings. Staying up-to-date is particularly important in this kind of mod.&lt;br /&gt;
&lt;br /&gt;
== UNIQUE NUMERICAL IDs ==&lt;br /&gt;
In some tables, each line has a unique numerical id in front of it (or sometimes way off like in unit_special_abilities). That’s specific for each line, and it works like other important keys like those in land_units or main_units, as in there can only be one line about that key or num id.&lt;br /&gt;
&lt;br /&gt;
Why am I saying all this? Because if in your submod you happen to need to ''add'' some lines in, for example, building_units_allowed, you’ll need your own unique num ids to make them work proppa. Pick any number below 2 billions and something and make sure they never repeat. This is important, do not continue off the num ids from the mod you’re submodding or you’ll cause issues at some point.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: STICKY TABLES ==&lt;br /&gt;
Some tables and related features are slightly more complicated to submod. For example, you want to remove a unit from a certain building level. Easy, go in building_units_allowed again. Remember those unique ids? '''Keep that exactly intact''' (so it still refers to that specific line from the original mod or vanilla line) and change the building to something that has no chance of being available, such as &amp;lt;code&amp;gt;wh2_dlc12_dummy_nuclear_ruins_0&amp;lt;/code&amp;gt; or change the unit instead to a unit that is completely unavailble as well for anybody who has access to the given building. You could change both to be sure, but it's more confusing down the line.&lt;br /&gt;
&lt;br /&gt;
Until WH2, you could have typed random gibberish in the building key to better track your changes (e.g., add &amp;quot;_removed&amp;quot; to building keys), but in WH3 that causes a crash as both fields need to be valid.&lt;br /&gt;
&lt;br /&gt;
The underlying logic is that you're hijacking a precise data line (due to the unique id, numerical or not) and telling it to do something impossible.&lt;br /&gt;
&lt;br /&gt;
'''Harder example''': I really don’t want any of these units to have the new-fangled Edgelord Deluxe passive ability, which is added by this mod. Cool, that means I can kill that ability from existence without it ever affecting anything else. We do that by:&lt;br /&gt;
&lt;br /&gt;
* grabbing its line from unit_abilities, we make it hidden in UI.&lt;br /&gt;
* grabbing its line from unit_special_abilities, we make it a passive (boolean). Make sure you remove any activated projectile/bombardment/summon etc from here too.&lt;br /&gt;
* grabbing its line in special_ability_to_special_ability_phase_junctions. Change the phase to a new special_ability_phase that we created and that does absolutely nothing. There, done. The ability still exists, but does nothing and is invisible. In my own private jargon this is called a pillow. Again, ''notice that you’re neutering this ability for any unit that happens to get it.''&lt;br /&gt;
This currently doesn't really work in WH3 and I really hope they fix that because it's a serious problem.&lt;br /&gt;
&lt;br /&gt;
'''Even harder example''': I want this unit to not have the Regeneration passive ability. Oooh, that’s a vanilla ability, isn’t it? We can’t just dumpster it. Either we tolerate it or…&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: DEPENDENCY MANAGER ==&lt;br /&gt;
This is a RPFM feature. ''USE WITH CAUTION'', as it's essentially a data coring method. &lt;br /&gt;
&lt;br /&gt;
We enable it by right clicking on the packfile itself in tree view (not on a table, not on anything else, literally the very first line in tree view), Open&amp;gt;Open Dependency Manager. We add a line as if it was a table (ctrl+shift+A) and type EXACTLY the pack name of the mod we want to override. As in “AK_seahelm.pack”. From this point onwards, everything we do in the submod under identical paths will completely override content from the parent mod no matter the load or table order for stuff with the same name. Example, I can import a table, not change its name and completely delete its content. This would normally crash, but not with DepManager. &lt;br /&gt;
&lt;br /&gt;
I said use this with caution because if you do this you REALLY need to stay up-to-date with the og mod. For example, you can remove the line that gives unit A the Regen passive, and it will work. However, any further update from the parent mod in that table won’t take place unless you also mirror it. Again, this is normally not remotely required and you should steer clear of it because it’s just as bad as leaving a vanilla table called “data__”.&lt;br /&gt;
&lt;br /&gt;
Additionally, '''this will auto-enable the linked mod''' as soon as it’s in data/ as if it was a movie pack. As such, you don’t want to do this unless you’re doing a submod that already requires that linked mod. Because having stuff popping up even when you’ve disabled a mod is the worst.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: BACKGROUND TABLES ==&lt;br /&gt;
Let's say we aren't doing a submod whose only purpose is changing unit size for that other mod, but it's our own standalone mod A and we're doing some compatibility stuff to make it work better with B, without needing a separate submod C that requires both. '''For example, we want something from B in A, ''if B is also enabled''. Sometimes we can do that without C'''. &lt;br /&gt;
&lt;br /&gt;
Let's say I add some new units in A, and mod B adds fancy officers to all units. Officers are connected to the unit in db/land_units, but if we just pasted B's officer key in there, A would go boom if B is not enabled. We don't want that, and we may not want to force people to use B. So we paste that officer key there, replacing A_blank_record, but we also check what table that key relies on by hovering on its top (title, header, whatever), which is... db/land_units_officers. Without it, that officer key is going to go boom, [[Tolerant Tables|because it's not a tolerant key]], at all, to the point that even a non-existant officer needs an actual key called A_blank_record, which does exist. &lt;br /&gt;
&lt;br /&gt;
What we do is create land_units_officers, add that officer key under key, keep personality location as front or rear (honestly don't know if that crashes if left blank, don't care), but we leave the officer 1 etc columns empty. '''IMPORTANT: we rename this table fragment with something like zzzzz_mod_a_mod_b'''. Notice the zeds? Keep those in mind.&lt;br /&gt;
&lt;br /&gt;
So, what is this doing? It's telling the unit that it's going to use that officer group, but it's got nothing in it, no ''actual'' officers (battle_personalities). By using our mod A without B, the game finds an empty box for this officer, shrugs, and doesn't replace unit models with any officer personality. The game moves on without crashing, because that key exists. Basically, we created another blank record, but this very specific one gets filled in when B is enabled. &lt;br /&gt;
&lt;br /&gt;
Remember those zeds? They are there so that our blank record gets overridden by B's table (which we assume has a higher alphabetical priority than a bunch of zeds, unless B's author is not trying hard enough). Keep in mind that if B's author ever changes those officer keys you won't crash, but you'll still need to adapt because your blank record would stay blank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in a bunch of situations, but you'll need some specific knowledge of how specific contexts work. You could want to use this method to nerf some effects from mod B, in which case you might need more than one background table (the zzzzz boys), including db/effects, which by itself does absolutely nothing, but using an effect key that doesn't exist in there will go kaboom.&lt;br /&gt;
&lt;br /&gt;
== ADVANCED SUBMODDING: SCRIPTS ==&lt;br /&gt;
Uhh, sorry, not my field, but you can certainly do stuff. Either a scripty fella writes this or you have to ask in Discord about the specific case you’re facing.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=546</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=546"/>
		<updated>2022-09-18T16:24:47Z</updated>

		<summary type="html">&lt;p&gt;Cataph: added method from blue to orange normal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. Unless you have particular metallic surfaces like rust, which will likely need some tinkering to get good results. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this with selecting areas from the old specular, or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. Anyway, try to work smarter when you can. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
'''Save mat maps as BC1 with no alpha.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
It's a bit off-topic, but since we're talking about '''normal maps''', here's a procedure to get the orange-hue normals used by TW. Feed the base colour texture into Materialize, from there create the Height Map, and from that the Normal. Settings are a crap shoot as far as I'm concerned, I just wing it. When you're satisfied of the texture's bumpiness, save the blueish normal. Then grab that and put it in PS or editor of choice and do this:&lt;br /&gt;
&lt;br /&gt;
* Go into the Channel tab, select the entire '''red''' channel and paste it into an '''alpha''' channel.&lt;br /&gt;
* Paint the '''red''' channel completely white.&lt;br /&gt;
* Paint the '''blue''' channel completely black.&lt;br /&gt;
&lt;br /&gt;
Tadaaa, you got a viable normal map. More or less.&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3:  &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. While I work through updating my stuff, it certainly was an excellent reason to get rid of textures that were five years old. &lt;br /&gt;
&lt;br /&gt;
If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=545</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=545"/>
		<updated>2022-09-18T16:16:34Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Diffuse into Base Colour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. Unless you have particular metallic surfaces like rust, which will likely need some tinkering to get good results. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this with selecting areas from the old specular, or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. Anyway, try to work smarter when you can. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
'''Save mat maps as BC1 with no alpha.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3:  &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. While I work through updating my stuff, it certainly was an excellent reason to get rid of textures that were five years old. &lt;br /&gt;
&lt;br /&gt;
If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=543</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=543"/>
		<updated>2022-09-07T17:48:00Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Gloss and Specular into Material Map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this with selecting areas from the old specular, or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. Anyway, try to work smarter when you can. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
'''Save mat maps as BC1 with no alpha.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3:  &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. While I work through updating my stuff, it certainly was an excellent reason to get rid of textures that were five years old. &lt;br /&gt;
&lt;br /&gt;
If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=542</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=542"/>
		<updated>2022-09-07T17:44:58Z</updated>

		<summary type="html">&lt;p&gt;Cataph: /* Updating Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this by selecting areas from the old specular or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3:  &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. &lt;br /&gt;
&lt;br /&gt;
If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=541</id>
		<title>Tutorial:Updating textures to WH3</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=Tutorial:Updating_textures_to_WH3&amp;diff=541"/>
		<updated>2022-09-07T17:38:00Z</updated>

		<summary type="html">&lt;p&gt;Cataph: new texture update tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro: WH3 is very metal, but also rough ==&lt;br /&gt;
This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it. &lt;br /&gt;
&lt;br /&gt;
You have textures that you made or edited for WH2 and now you want them to WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular. &lt;br /&gt;
&lt;br /&gt;
What does this mean in practice? Good question, especially because I don't know the theory.&lt;br /&gt;
&lt;br /&gt;
* The '''diffuse''' texture is replaced by the '''base colour'''. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.&lt;br /&gt;
* '''Material map''' is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.&lt;br /&gt;
* Normal maps unchanged, masks unchanged. &lt;br /&gt;
&lt;br /&gt;
For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?&lt;br /&gt;
&lt;br /&gt;
== Automatically via Asset Editor ==&lt;br /&gt;
[https://github.com/donkeyProgramming/TheAssetEditor/releases/latest Asset Editor] by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason. &lt;br /&gt;
&lt;br /&gt;
You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.&lt;br /&gt;
&lt;br /&gt;
== Diffuse into Base Colour ==&lt;br /&gt;
This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. &lt;br /&gt;
&lt;br /&gt;
If you only added some small details to diffuse or specular, paste them over the new base colour. '''Save with Photoshop or Paint.net as DX10+ sRGB'''. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps. &lt;br /&gt;
&lt;br /&gt;
One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.&lt;br /&gt;
&lt;br /&gt;
== Gloss and Specular into Material Map ==&lt;br /&gt;
Things get a lil bit funkier here.&lt;br /&gt;
&lt;br /&gt;
If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.&lt;br /&gt;
&lt;br /&gt;
If you have more complex cases, there is a super manual process I found that works pretty accurately.&lt;br /&gt;
[[File:2022-02-22 205452.jpg|alt=material map mock-up|right|frameless|1000x1000px]]&lt;br /&gt;
'''You start with the WH2 gloss you had lying around.''' For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.&lt;br /&gt;
&lt;br /&gt;
The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a ''Hard Light'' method. They're all at 100% opacity.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.&lt;br /&gt;
&lt;br /&gt;
The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this by selecting areas from the old specular or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. &lt;br /&gt;
&lt;br /&gt;
Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY&lt;br /&gt;
&lt;br /&gt;
MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo&lt;br /&gt;
&lt;br /&gt;
== Updating Models ==&lt;br /&gt;
Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.&lt;br /&gt;
&lt;br /&gt;
The '''rigid model''' needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.&lt;br /&gt;
&lt;br /&gt;
One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.&lt;br /&gt;
&lt;br /&gt;
Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.&lt;br /&gt;
&lt;br /&gt;
Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone [https://cdn.discordapp.com/attachments/373754902608084994/949297150293069864/2022-03-04_142746.jpg because this is what a WH2 weapon emissive looks like in WH3.] The colour will be wrong and the glow's power will scorch your cornea. &lt;br /&gt;
&lt;br /&gt;
That said, if you compare xml materials from wh2 to 3: - &lt;br /&gt;
&lt;br /&gt;
* only one blood map;&lt;br /&gt;
* in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);&lt;br /&gt;
* you ''need'' to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;&lt;br /&gt;
* not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;&lt;br /&gt;
* a boolean parameter for applying blood;&lt;br /&gt;
* in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);&lt;br /&gt;
&lt;br /&gt;
== Updating the variantmeshdefinition ==&lt;br /&gt;
Hereby VMD as usual.&lt;br /&gt;
&lt;br /&gt;
VMDs weren't changed much, but '''you need to add a is_stump metadata to all gore stumps in your VMDs. All of them.''' Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt; with both &amp;lt;code&amp;gt;&amp;lt;META_DATA&amp;gt;equipment&amp;lt;/META_DATA&amp;gt;&amp;lt;META_DATA&amp;gt;is_stump&amp;lt;/META_DATA&amp;gt;&amp;lt;/code&amp;gt;, so you don't have to do it too manually. You do have to do it VMD by VMD.&lt;br /&gt;
&lt;br /&gt;
You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?&lt;br /&gt;
&lt;br /&gt;
== ''Fin'' ==&lt;br /&gt;
That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff.&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
	<entry>
		<id>https://tw-modding.com/index.php?title=File:2022-02-22_205452.jpg&amp;diff=540</id>
		<title>File:2022-02-22 205452.jpg</title>
		<link rel="alternate" type="text/html" href="https://tw-modding.com/index.php?title=File:2022-02-22_205452.jpg&amp;diff=540"/>
		<updated>2022-09-07T17:10:14Z</updated>

		<summary type="html">&lt;p&gt;Cataph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;material map mock-up&lt;/div&gt;</summary>
		<author><name>Cataph</name></author>
	</entry>
</feed>