OSP Code "Ethnic Troops" mini-mod

Currently viewing this thread:


Every faction's troops in Warband 1.134 mostly have generic European faces. This is particularly noticeable for Sarranid troops, who have "swadian" faces and look more like Vikings than Moors! This mini-mod changes the face parameters for the factions, to make the troops of each distinctive and instantly-recogniseable. It also canges the "Desert Bandits" to have Sarranid faces instead of Khergit ones.

Latest: v1.0


Before: this is the most problematic faction -- they use the "swadian" faces, and look nothing like the Moors/Saracens which I think the Sarranid Sultanate is inspired by.


After: Dark skin, full dark beards, shaved heads -- the Moors have arrived.


Before: Not terrible, but they look a little bit too much like Vikings to me.


After: I took my inspiration from the Franks and Gauls of the Holy Roman Empire: big noses, strong jawlines, droopy moustaches... Asterix would fit right in! (However, Swadians sport shorter hair and smaller beards as they spend more time on personal grooming than the Nords or Vaegirs.)


Before: Too beardy -- these Rhodoks look more like norsemen!


After: Narrow faces, dark hair worn short, trimmed beards and moustaches. These Rhodoks bring to mind the Italian city-states of the medieval period.


Before: the chins are too weak, and the moustaches are not quite right.


After: Long unkept red hair, full beards: these look more like the wild norsemen who strike fear into the hearts of soft "southeron" peoples!


Before: Nothing special -- doesn't say "Rus" to me


After: Wide cheekbones, almond eyes, light brown hair, big bushy beards -- the Russians are coming!


Before: Not terrible, but we can do better.


After: Prominent cheekbones, almond eyes, flattened faces -- these are the men of Khengis Khan.

Python source code:
The best way to install this is via the patch for the 1.134 Module System: troop_faces-1-0.patch

Alternatively, make the modifications yourself by opening module_troops.py, and replacing all lines between "swadian_face_younger_1 " and "rhodok_face_older_2" with:
swadian_face_younger_1 = 0x0000000000002001355335371861249200000000001c96520000000000000000
swadian_face_young_1   = 0x00000004400023c1355335371861249200000000001c96520000000000000000
swadian_face_middle_1  = 0x00000008000023c1355335371861249200000000001c96520000000000000000
swadian_face_old_1     = 0x0000000e000023c0355335371861249200000000001c96520000000000000000
swadian_face_older_1   = 0x0000000fc00023c0355335371861249200000000001c96520000000000000000

swadian_face_younger_2 = 0x000000003a0045c549fddefdffffffff00000000001e6db60000000000000000
swadian_face_young_2   = 0x000000033a0045c549fddefdffffffff00000000001e6db60000000000000000
swadian_face_middle_2  = 0x00000007ba0045c549fddefdffffffff00000000001e6db60000000000000000
swadian_face_old_2     = 0x0000000e3b0045c549fddefdffffffff00000000001e6db60000000000000000
swadian_face_older_2   = 0x0000000ffa0045c549fddefdffffffff00000000001e6db60000000000000000

vaegir_face_younger_1 = 0x000000001d001141044c21928821245200000000001d22190000000000000000
vaegir_face_young_1   = 0x000000029b001181044c21928821245200000000001d22190000000000000000
vaegir_face_middle_1  = 0x000000075f001181044c21928821245200000000001d22190000000000000000
vaegir_face_old_1     = 0x0000000e1f001181044c21928821245200000000001d22190000000000000000
vaegir_face_older_1   = 0x0000000fdf001180044c21928821245200000000001d22190000000000000000

vaegir_face_younger_2 = 0x0000000037002189497e97cb5fb27fff00000000001ff8370000000000000000
vaegir_face_young_2   = 0x0000000477002249497e97cb5fb27fff00000000001ff8370000000000000000
vaegir_face_middle_2  = 0x0000000877002349497e97cb5fb27fff00000000001ff8370000000000000000
vaegir_face_old_2     = 0x0000000e37002349497e97cb5fb27fff00000000001ff8370000000000000000
vaegir_face_older_2   = 0x0000000ff7002349497e97cb5fb27fff00000000001ff8370000000000000000

khergit_face_younger_1 = 0x00000000190830ca209d69b4100906da00000000001e10e30000000000000000
khergit_face_young_1   = 0x00000003590830ca209d69b4100906da00000000001e10e30000000000000000
khergit_face_middle_1  = 0x00000007d90830ca209d69b4100906da00000000001e10e30000000000000000
khergit_face_old_1     = 0x0000000e190830ca209d69b4100906da00000000001e10e30000000000000000
khergit_face_older_1   = 0x0000000fd90830ca209d69b4100906da00000000001e10e30000000000000000

khergit_face_younger_2 = 0x000000003f08514d49fff7d86cffffff00000000001ff97f0000000000000000
khergit_face_young_2   = 0x000000047f08514d49fff7d86cffffff00000000001ff97f0000000000000000
khergit_face_middle_2  = 0x00000007bf08514d49fff7d86cffffff00000000001ff97f0000000000000000
khergit_face_old_2     = 0x0000000e3f08518d49fff7d86cffffff00000000001ff97f0000000000000000
khergit_face_older_2   = 0x0000000fff0851cd49fff7d86cffffff00000000001ff97f0000000000000000

nord_face_younger_1 = 0x000000000000014104c200928801249200000000001d24100000000000000000
nord_face_young_1   = 0x000000044000014104c200928801249200000000001d24100000000000000000
nord_face_middle_1  = 0x000000084000014104c200928801249200000000001d24100000000000000000
nord_face_old_1     = 0x0000000e0000014104c200928801249200000000001d24100000000000000000
nord_face_older_1   = 0x0000000e0000014004c200928801249200000000001d24100000000000000000

nord_face_younger_2 = 0x000000002b00218a5bfcbdbb67b7ff7f00000000001eeb6f0000000000000000
nord_face_young_2   = 0x000000036b00234a5bfcbdbb67b7ff7f00000000001eeb6f0000000000000000
nord_face_middle_2  = 0x00000007eb00234a5bfcbdbb67b7ff7f00000000001eeb6f0000000000000000
nord_face_old_2     = 0x0000000deb00234a5bfcbdbb67b7ff7f00000000001eeb6f0000000000000000
nord_face_older_2   = 0x0000000feb0023465bfcbdbb67b7ff7f00000000001eeb6f0000000000000000

rhodok_face_younger_1 = 0x0000000000003144355355370861008200000000001c96520000000000000000
rhodok_face_young_1   = 0x0000000500003141355355370861008200000000001c96520000000000000000
rhodok_face_middle_1  = 0x0000000840003141355355370861008200000000001c96520000000000000000
rhodok_face_old_1     = 0x0000000dc0003192355355370861008200000000001c96520000000000000000
rhodok_face_older_1   = 0x0000000fc0003192355355370861008200000000001c96520000000000000000

rhodok_face_younger_2 = 0x000000003e0040c649fc9e6f54b6dbbf00000000001d7b270000000000000000
rhodok_face_young_2   = 0x000000037e0040c649fc9e6f54b6dbbf00000000001d7b270000000000000000
rhodok_face_middle_2  = 0x000000083e0040c649fc9e6f54b6dbbf00000000001d7b270000000000000000
rhodok_face_old_2     = 0x0000000dfe0040c649fc9e6f54b6dbbf00000000001d7b270000000000000000
rhodok_face_older_2   = 0x0000000ffe0040c649fc9e6f54b6dbbf00000000001d7b270000000000000000

sarranid_face_younger_1 = 0x000000000000710004820c24204c000200000000001d16100000000000000000
sarranid_face_young_1   = 0x000000040000710004820c24204c000200000000001d16100000000000000000
sarranid_face_middle_1  = 0x000000088000710004820c24204c000200000000001d16100000000000000000
sarranid_face_old_1     = 0x0000000e0000718004820c24204c000200000000001d16100000000000000000
sarranid_face_older_1   = 0x0000000fc000718004820c24204c000200000000001d16100000000000000000

sarranid_face_younger_2 = 0x000000003f00714049fefe393fffc7ff00000000001ef96f0000000000000000
sarranid_face_young_2   = 0x000000043f00724049fefe393fffc7ff00000000001ef96f0000000000000000
sarranid_face_middle_2  = 0x00000007bf00728049fefe393fffc7ff00000000001ef96f0000000000000000
sarranid_face_old_2     = 0x0000000e3f00728049fefe393fffc7ff00000000001ef96f0000000000000000
sarranid_face_older_2   = 0x0000000fff00728049fefe393fffc7ff00000000001ef96f0000000000000000
Next, search for "sarranid_recruit", and replace all mentions of "swadian_face" with "sarranid_face" for the Sarranid troops.

Finally, search for "desert_bandit" and replace "khergit_face" with "sarranid_face" for that troop type.

  • First public version

- Feel free to use this mod, but don't forget to give credit when you do.


Very nice job - the sort of attention to detail that the developers should have done in the first place. You could also add sarranid_townsman and the _multiplayer_ai troops to the list for changing to the sarranid face keys, and also maybe the second face key for the sarranid lords - though I'm not sure that would look right, without changing their unique first face keys. Not too sure how the sarranid ladies would look with black lords, either.


Overall this looks like quite an improvement, but I have a number of nitpicks to make. IMO there does not look to be enough variation in the faction troops, I think, especially the moors. The moor faces look almost 100% black, whereas they should reflect the diversity that the north african armies would have actually fielded.  North Africa has a very diverse variety of different looking people, ranging from black colored skin to a tan Mediterranean look, to even a few light skinned blonde people. Black skinned troops should definitely be less common than in the screenshots; it's almost as if the troops there came straight out of Sub-Saharan Africa rather than the Maghreb. As far as the Vaegirs/Rhodoks/Swadians go, I don't see a single blonde person in there. It's true that blond people are less common outside of Northern Europe, but they should still be a fairly regular sight.


In my opinion it's less about looking historically accurate and more about being able to distinguish between factions just by looking at the faces. But that's just me.


Thanks for your support, everyone :smile: Glad to hear people like this mini-mod. Have a look at my other mini-mod as well, if you haven't already :wink:

. . .​

@Vornne -- I'll have a look. I'm currently making a couple more mini-mods for Native, more like bug-fixes, but I'll take a look at the Lords and Ladies, and the multi-player, next.

. . .​

@Sahran -- for now, I wanted to keep this as a sort of bug-fix to Native, so that super-mod makers can best benefit from it. But yes -- I'll take a look at the extra facepacks.

. . .​

@Shik -- you are correct on both points of course, but I'm working within the limitations of Native here :wink: For example, the way the blond-red-brown hair colour "continium" is set up, it's actually quite difficult to configure things so that some Vaegirs have blond hair. What ends up happening is that there are far too many red-haired Vaegirs then, and far too few with "russuye" hair -- i.e. light brown / dark blond. And then they start to look just like the Nords, but with bushier beards  :razz:

The same with the Sarranids -- I've specifically gone for quite (stereotipycal?) Sub-Saharan African features (broad noses, wide faces, strong jawlines), and it would be rather tricky to mix that with a more Arabic or North African face/skin. When I initialy tried it, what semeed to happen was a weird "black people with white skin"-effect, or the reverse -- think Michael Jackson :wink:

Ruthven has nailed my aim -- to make each faction recogniseable at a glance. The downside is that they do indeed look a little stereotypical. But the flip-side is sort of what Native has -- every faction looks pretty much the same, and the flavour of each faction is lost.

(There's an interesting side-issue here, in that the game seems to sometimes ignore the face parameters and generates "default" faces anyway -- even with the new Sarranid skins, you still sometimes get white, even blonde, Sarranid Recruits :oops: Does anyone have any idea why this happens..?)


This is certainly an interesting mini-mod. Sadly, there's some bug with random face codes in the latest version, so they apply to all the units in a battle instead of just the one's they are supposed to, or something like that.


Master Knight
Caba`Drin has already said it: nice and simple. Wonderfull work done here. I did something similar for my mod pack a while ago: if interested, I can post - or pm you - the faces I made.

Sef OK b

Nice, i like the vaegirs especially! i would like to be in a charge in first person facing these scary looking mofos  :lol:


Thanks guys :smile:

Sef OK b  -- I too like the Vaegirs a lot, but also the new Sarranid faces. In general, I went for stronger jawlines for all the races -- Native tends to generate rather "genteel" chins, I find  :lol:

Caba`drin, monnikje -- I was impressed with the Floris mod-pack, and was hoping to make these mini-mods useful to mod-compilers and mod-makers like yourselves. Hopefully, they will be :wink:

monnikje -- sure, PM me the faces. It would be interesting to see the approached you took.


Sergeant at Arms
Great Mini-Mod!  Took this one step further however.  Also changed the townsman(men) to show for the Khergits and Sarranids.  Now just need a way to change the womenfolk so it doesn't look like something out of a bad porn movie :smile:  Still very excited!  Also applied this to M&B 1.011 leaving off the Sarranid entries of course!


Sergeant Knight at Arms
I'm definitely using it.

It seems I'll have to dig once again through this forum, I missed this little jewel, maybe there are more.


Grandmaster Knight
To my opinion, Sarranids should have this Native face:
It is the best for North Africans and Middle Eastern. Having all Sarranids with black faces is really weird.

Sayd Ûthman

Grandmaster Knight
i always use that face for my moorish characters :grin:

and yeah having all the sarranids looks black is wrong, although you can make a few of them blacks
Top Bottom