Rendroc's Mods for Brothers in Arms: RtH30 and EiB


Road to Hill 30 is now fixed, thanks!
But as for Earned in Blood, the peek issue persists.



I fixed and reuploaded v4.38 for EiB at the same time as RtH30. Did you try downloading it again?


Road to Hill 30 is fine now, I’d recommend it clear for upload on Moddb actually.

As for Earned in Blood, does not really fix my issue, Or… I think i can merge the code from the the v4.37 mjcPlayer to the new one! But I can’t mess around the codes though.

*Edit - @Rendroc , I fixed the issue for both games now. But I had to use the v4.37’s mjcPlayer.u to fix the peek issue, can you please point out what is new in mjcPlayer or you just accidentally put a wrong code on it?



Ahh… sorry about that. I found the problem. Try downloading it again one more time.

To answer your other question, about turning off the letterboxing, it’s in mjcCommandMod.mjcCommandController, in the ActivateAssaultCam() function. Near the bottom of that function, comment out or delete these lines:

  //mjcCommandHUD(MyHud).m_bWideScreen = mjcCommandHUD(MyHud).WIDESCREEN_SLIDE_ON;
  //mjcCommandHUD(MyHud).m_flStartWideScreenTime = Level.TimeSeconds;

I chose to add this because whenever the Singleplayer game switches from first-person to third-person it runs the letterboxing (widescreen) script. When I was first modding this I was working hard to keep the feeling and behavior of the original intact while adding all of the additional commands and so on.

I was really hoping the Gearbox guys would get more involved somehow but I guess I got started modding too late for that; by that time they were probably already knee-deep in HH. I’m not complaining though; @botman helped me out a lot over the years and has always been super-cool. Good ol’ botman :smile:

The best part of this story is the half-dozen or so of you guys who, years later, showed up out of nowhere and started a whole new wave of modding. Amazing!


Ohoho, I wish he was still kicking around here in the new forums. But yeah, the future really holds something we’d never expect.

Thanks for the help by the way! :smiley: But does disabling it turns off the whole letterbox? I mean, will it turn off the ones from Assault-Cam, ‘Grenade-heroism’ , or just the peek mode?

Another thing, I can’t access the part in MjcCommandController, the ActivateAssaultCam(). Here’s what shows up on mine.

Do i have to export the code or something? If so, how do i do that?

Kinda Off-Topic, but I’m curious. What does ‘Mjc’ actually stands for? Is it an initialism for your name?



It will turn off the letterboxing for all of that stuff. You could put an if statement around it using bPeekMode (if there is such a variable… I don’t have the code with me right now.)

I don’t think I’ve ever seen the code look like that before. You might be right, you may have to export it first. I forget how to do it, you might need to check Pooky’s tutorials somewhere. There might be a ucc command line to run, but there is probably a way to do it from the editor.

Yes, mjc is my initials, I just replace gbx with mjc whenever I modify their code :smile:
It’s funny you can see the devs’ initials in their code, too, in a lot of the comments (including botman) I feel like I know them personally in a strange way, because it’s like we faced some of the same problems trying to get this game to do more awesome stuff.


You’re right @Rendroc, there is actually a way to export it. I can now look unto that parameter and disable the letterbox, thank you Sir :smiley:

Problem solved ^^

Now, I got another personal preference to add-up on your mod, I wanna give those WarZone guys some ‘class.’ They can’t just run around with the same body model all over, I think I can use Extendedskins or something to give them custom models, making them look as if they were real, or atleast not generically placed characters.

But the problem is I don’t know what script to use and how to make them apply randomly for the soldiers.

My idea would be like this,
Let’s put Norris (One of the guys in your WarZone mutator) in this case.

He should have a random body model, but is not really dependent on what Team he is in or what weapon he uses.

Sorry if I ask for help too much, though.



Yeah, I was thinking about this a few months ago. I think the easiest thing is to create a custom CharacterSetup class that you can control using another .ini file to customize each character, or completely randomize them.

CharacterSetup has name, rank, head, and body, but I think you are referring to also varying the skins (equipment and helmet). To do this you need to figure out how each skin is different. For the faces, obviously the textures are different. But for the bodies/equipment, I think there is some way to turn on/off certain textures/items using one of the shaders.

If we found out an easy description of that mechanism, we might be able to use ExtendedSkins in the CharacterSetup script as you said to vary the characters more.

Is this what you are asking about?


Yes that one! Since Brothers in Arms does not really focus on those generic character faces, they only have those body shaders that we can use to the WarZone soldiers. Which were the focus of the current topic.



OK, then what I suggest is to figure out how to make a character with a different equipment configuration. If you look at the shaders I think there is some kind of grid or something that looks like a QR code, maybe this is it. Or maybe there is some other setting in the shader. Once you figure it out, you can:

  • Create your own character skin package, that you can reference in the CharacterSpawner, or
  • We proceed as we discussed earlier and develop a randomization based on what you found out


Great work Rendroc!!! I just can’t believe anyone wouldn’t use waypoint mode! It’s so great!

(queendracwraith) #317

Waypoint mode is death. Of course, I’m playing MP where the battle changes rapidly, rendering Waypoint mode pointless


Actually CommandMod started out as an MP mod, and waypoint was the first part of it that I programmed. I was frustrated that I couldn’t maneuver my squads around the maps without having to stay close to them. But, that was before BloodZoneMP; I can see your point with all of those soldiers running around.

I’m glad you like it @jmoney1 and I still think it’s useful so that’s why I kept it. I’ve just seen too many YouTube videos of people activating it accidentally, so I decided to make it a configurable option until I figured out a better control system for it.

Also since you guys seem to think I’ve fixed all the bugs I’ll upload it to moddb this weekend.


@Rendroc, I found this stick of coding in TriggeredScript, It probably has to do with my case

  if (aChar.ExtendedSkins.Length > 0)
  	for (j = 0; j < aChar.ExtendedSkins.Length; j++)
  		if (aChar.ExtendedSkins[j] != None)
  			aChar.ExtendedAttachments[0].m_AttachedPart.Skins[j] = aChar.ExtendedSkins[j];

I barely understand the point of it since I’m not really a programmer. Maybe you can do a workaround?



There is a lot of repetitious code like this everywhere. It’s for the skins for attachments, usually the “head” (yes the head is an attachment in this game, separate from the body). If you want to search through code to see how everything works, you have to download a program called UnCodex. There is no way I could have done any modding for this game without it.

But, we want to figure out how to modify the base skins. Let’s focus on the body for now. The body has a shader assigned to it, the shader will take a mesh and some textures and do something with them to make a soldier :smile:

In the editor, in the textures tab, open the “t_character_us” package. Then select the “para_uniform_shaders” set (I don’t know the technical term for this) in the dropdown.

Then select one of the shaders and press the “Texture Properties” button.

What you will see is the shader, and the associated textures. If you open a few of these, you will realize that Zanovich and Obrieski have the same textures, except for a grid. Obrieski and the run-down Obrieski have the same grid but slightly different textures:

What we conclude from this is that the models/meshes share a lot of the same textures. The equipment is determined by the “grid” texture and the “look” (fresh, battled, bloody) is determined by a general paratrooper body texture. Here are more grid textures, notice how they vary for each character:

Similarly, all of the head/helmet/face shaders are in the paratrooper_head_shaders dropdown.

Figure how all of this works, and you can start creating your own character appearances. Once you decode the grids then we can start trying to create a randomization mod for this.

My advanced question is to find out how the helmets work. I think when Hartsock takes his helmet off, he is using a different shader for the head. But, I haven’t figured out what is different about it yet. Maybe it’s in the code, but I still suspect it’s in the shader somewhere. Also, to make things trickier, I think some of these textures might have alpha channels that we can’t easily see. Another good question is how the rank patches are applied.


He uses an Attachment set to his CharacterSpawnerUSA, but I’m not sure how we can set one character to be helmetless (e.g setting Hooper to be helmetless when he originally wears one) or reposition his helmet to an angle without using a Modelling tool.

The head Hartsock uses in Cole’s Charge is not actually a shader, but an attachment that can be found in the Animations/k_character_us itself. But as far as I’m aware, it’s coded into US_PARA_BODY which allows it to render the face and hands. I used that to be able to port the characters from EiB to Road to hill 30 (You can see the screenshots from my Screenshots/Media thread)

But I do not know anything about how the grids work, but @GeneralCoolman found a way to modify it. Allowing him to make custom gearing of the paratroopers.



Ok thanks, I think you’re right about the heads, I guess there are different meshes even though they share a lot of textures.

Hopefully @generalcoolman can weigh in here but I’ll go back and take a look at what he did if he’s not around.


Good news is I’m around. Just bogged down with University work is all. Since I haven’t had time to formulate a full release for my add on to character skins (it would be incompatible with HD remakes I’ve seen some people working on), I’ll just share all knowledge I know. If you have any questions I will do the best I can to answer.

The grids, as discussed, dictate what appears on the uniform in terms of appearance. For example, Allen grid makes it so he has an rifleman’s belt as well as a Bandolier, meanwhile McCreary only has a Carbine ammo belt. Each grid is divided by squares which, when a white square is over a point, it will cause the corresponding uniform piece to appear on the model. So it’s possible to have everything on it, but it wouldn’t look very correct. Below, please find attached my reference guide to creating your own grid or perhaps editing a grid.

In order to edit them, go into one of the grids using an image editing software (GIMP works best for this, I haven’t gotten it to load right with PS), and drag your cursor until you have a properly sized square (best example I can give you is the bandolier, that’s the proper size) and then move it based on where you want it to go.

Helmets design are locked by mesh. That is my current theory. For example, you wouldn’t be able to give Mac’s helmet to Paddock because of differences in mesh (Mac’s head mesh has the extra…lines(?) for the camo part of the helmet).


Oh my god that is so useful! How were you able to understand all of that?! Nice work, It helps. I can now be able to make custom skin for US Paratroopers :smile:

By the way, I use, it supports .dds files as well.

Thank you.


I remember that the Xbox version would allow for troops to take cover behind tanks. Rendroc, does your mid prevent this, I just realized my guys never tank cover behind tanks.