Jump to content
Haswell

A Basic Guide to Modding AW

Recommended Posts

A bit of background

Before getting into the meaty bits of the guide, I'll give a bit of background about the game's technical bits. AW is built on CryEngine 3 (unknown minor version). Games built using CryEngine tend to pack assets into compressed archives in ZIP format in order to reduce the overall size of the game. Sometimes these archives are entirely unprotected where you can unpack and repack at your leisure, other times they may signed so that they cannot be modified or repacked, or encrypted so they could not be unpacked at all. For AW, most of the archive files may be freely unpacked but not repacked.

Thanks to a feature common throughout CryEngine versions, assets not present in the archives can also be accessed in the form of loose files. In a development environment this makes testing and patching extremely simple since single files distributed far more easily than big chunky archives. In practice, this means all the game assets can be unpacked and modified to your liking, as long as the file structure remains the same and the game is told to read from the loose files instead of the archives.

Further details about the nitty gritty bits can be found in the CE documentation: https://docs.cryengine.com/display/CEPROG/CRYENGINE+Programming

 

In the context of AW, the archive files contain textures, music, sound effects, some configuration settings and other stuff. These assets are spread across numerous archives, so it might take some digging around to find exactly what you're looking for. Unfortunately for the dataminers, the really interesting bits such as vehicle stats are encrypted in gamedata.dat, which can't be unpacked.

All mods utilizing this process are are strictly client-sided only. That is, only you will be able to see whatever fancy textures you modded in, other people will not be able to see it unless they also use the same mods.

Note that because AW has an absolutely disgusting (read: inefficient) development cycle, every time the client updates it has to download all the affected assets all over again. This means the archive files will likely be replaced after every update, so whatever modifications you do will have to be repeated.


Unpacking assets into loose files

If you don't at least finish this step, your mods won't work.

First, you need something to unpack the .pak archives. I recommend 7-Zip, you can get it here: https://www.7-zip.org/

The .pak files of interest are located in both /gamesdk and /localization. For now, I'll focus on /gamesdk only.

czTM9EB.png


Within /gamesdk, you'll find a ton of archives. Let's look at gameui.pak. To open it up, right-click and open it with 7-Zip with the .zip format.

r8AGUr3.png


IXX8Hzc.png

 

After a few clicks into the archive, you'll com across a lots of different directories and texture files. Dig around and see what you can find!

rTMLrcp.png


Now to extract the files out of the archive into loose files. Easiest way to do that is to go back to /gamesdk, select gameui.pak and tell 7-Zip to "extract here". Feel free to dig around the loose files!

NAdwGZS.png


rObqC63.png

 

Note that the game at this point will still read from the archive files, because that's how CryEngine works. To force the game to read from the now unpacked loose files, simply rename gameui.pak or move it somewhere else for backup.

You can also repeat the process for all the other .pak files. They contain different game assets such as music, sound effects, textures and whatnot, so if you want to mod them you should also unpack them. Be warned however, the unpacked loose files may end up being more than double the size of the packed archives, so watch your disk space.

This process will have to be repeated every time the game updates, because updates are deployed in the form of packed archive files. You may also want to move the archives back into /gamesdk and /localization so you don't have to download everything again.

 


 

 

Example mod: replacing crew portraits

 

Let's say I hate the way Viktor Kirsanov looks. He's all old and scruffy-looking and definitely not hilarious enough for the game. I'm going to change that!

First, locate Viktor. His portrait can be found in gameui.pak, which you should have already unpacked. If not, do so now. The portrait file for Viktor is at /libs/ui/textures/portraits/commanders/commanderportrait001.dds.


lX2PW3V.png

 

To open up the DDS file, I used Paint.NET (https://www.getpaint.net/). Oh dear, Viktor is even uglier at full resolution.

jGGYKdC.png

 

I'm going to turn him into a lobster. Praise Google.


JVzInEe.png

 

Save the file, make sure gameui.pak is out of the way, load up into the game and check his beautiful makeover.


k0rNQWH.png

 

Perfect.

 

 


 


Example mod: editing text

If Viktor is to be a lobster, then he also needs to described as a lobster. Editing the localization files is slightly more complicated, but that's what this guide is for.

First, go to /localization. That's where all the text files are packed into neat archives. I speak English, so I'll only touch everything that is English.

e9UbtpQ.png

 

Because of how CryEngine works, all the localization loose files must be stuffed into their respective directories. English is English obviously, so I'll unpack english.pak, english_ui.pak and english_xml.pak into /localization/english. Don't forget to move those 3 archives out of the way after unpacking!

fBjxRJW.png

 

crew_commanders.xml is what we want to edit. Open it up in your favorite text editor (I use Notepad++) and search for Viktor's bio.

Gd0egOJ.png

 


Let's have some fun!

 

7TV1KRd.png

 

Save the file, load into the game and praise Viktor.

I4CsU3l.png


wC35ovi.png


One true lobster to rule them all.

 


 

Publishing your mod

Because this is literally the first time the game has become publicly moddable, there is no set convention on the format of publishing mods for others to use yet. Making things slightly more difficult is the fact that nothing can be packaged up into archives again, so to distribute mods mean distributing loose files.

My personal way of distributing loose files would be to pack them up into some sort of archive (.zip, .rar, .7zip) for others to download. The archive should include the full path of whatever files you modified relative to /gamesdk, as well as only including the modified files.

Example: I want to publish the modded portrait of Viktor the Lobster. My archive should include /libs/ui/textures/portraits/commanders/commanderportrait001.dds. That is, commanderportrait001.dds should be in the /commanders folder, which should be in the /portraits folder, which should be in the /textures folder, and so on.

This probably sounds more confusing that it should be, and it is. At the very least you should include the modified file, and written instructions for anyone wanting to use your mod to tell them exactly where to place the file.

 

 


 

 

Modding the game (publicly) is something that has never been done before, so all of this is relatively uncharted waters. Go and see what you can come up with, happy modding!

  • Upvote 2

Spoiler

 

Share this post


Link to post
Share on other sites

Thanks for the great guide.

I'll have a look at it and see if I can do something useful with it :happyseal:


Spoiler

fdassdaas.jpg.c709df3e98adc5265f232fe9458a3043.jpg

 

Share this post


Link to post
Share on other sites

Hello all. Found where the banner flags (the 9999gold ones) are located. To replace the flags with your owns, just do like haswell: open the flag you want to replace, paste your image, and save with the same name. I also recommend doing a backup of all the flags. To view your flag, just select the country flag you replaced.

Location:
C:\Games\Armored Warfare MyCom\gamesdk\textures-0054.pak\objects\vehicles\textures_universal\flags_vehicles\
C:\Games\Armored Warfare MyCom\gamesdk\textures-0015.pak\objects\vehicles\textures_universal\flags_vehicles\  (15 also contains camos)
imagem.png.6f483ce69274d0302afed85e9c527540.png

Edited by Sebastian_Grimm (see edit history)

Share this post


Link to post
Share on other sites

so if I understand all this information correctly, it would be possible to make barrels have the same *density* as hulls.   this would mean that barrels wouldn't float through walls, rocks and the like.  right?    or is that more along the lines of altering the core concept of the way the game has been designed.

Share this post


Link to post
Share on other sites
42 minutes ago, Baron_Georg said:

so if I understand all this information correctly, it would be possible to make barrels have the same *density* as hulls.   this would mean that barrels wouldn't float through walls, rocks and the like.  right?    or is that more along the lines of altering the core concept of the way the game has been designed.

I don't think this is possible because I suppose that such calculations are serverside. Additionally why would you want to do that? This would give you a disadvantage over your enemies/teammates


Spoiler

fdassdaas.jpg.c709df3e98adc5265f232fe9458a3043.jpg

 

Share this post


Link to post
Share on other sites

@TeyKey1

well it was mostly a curiosity question about can it be done.  what didn't get asked is what was behind the decision to not make barrels *solid* in the first place.  was it too  difficult to code or aesthetics or budget constraints.  I just get really bugged about not having real world interactions when so much effort goes into the ballistics end of the game.  don't even want to get started about moving vehicles winking out and appearing in a different location.  my math phobic brain can't comprehend the ballistic and armor pen calculations so I conceive of the other elements as relatively simple to accomplish.  kinda shows just how much I don't know <shrug>

Share this post


Link to post
Share on other sites

Not solid barrels are an intended choice, for game play reasons, it would not have been difficult to code them solid at all.

With solid barrels the game play would have been changed a lot, to face hug would become impossible and a tank with a shorter barrel could keep a tank with a longer one at the right distance  where he can point the gun at the enemy but the enemy can not. And this is only an example.

Being this game something very different to a proper simulator it is probably a wise decision as the way we use the tanks, the engagement distance and many other things are already very different from what happens in RL, ie the ammo rack on the front of the tank in the Leopards and other tanks works very well in RL as the typical engagement distance is much higher so the ballistic arch of the shell make much more unlikely that it is hit, while with the short distance in the game to have an ammo rack explosion is much more likely. 

Share this post


Link to post
Share on other sites
8 hours ago, Baron_Georg said:

I just get really bugged about not having real world interactions when so much effort goes into the ballistics end of the game.

We should not forget that AW is an arcade game. It does not even try to simulate realism. Yes the game is modern tank themed but other than the looks of the tank models not much is "realistic" at all. Should it be? No because lots of stuff would either break the game for example instakills on a hit to replace the HP system (Being hit and penned by a 120mm usually leads to a total kill or at least mobility kill of a tank). But such mechanics would completely change the gameplay an which basis this game was never developed on.

Concerning the "realistic" solid gun barrel. Some maps would probably need a rework to implement such a feature. Secondly if you hit something with your barrel the gun would get damaged which I suppose would lead to frustration. There are probably lots of players who would not be able to take care of this additionally to what's happening during the game. So it does not really fit into the AW-scheme and would in my opinion lead to frustrating gameplay. That's probably the reason why it was not implemented.

Well as always if one wants realism he should join the army. There is no game that can simulate the ultimate realism. Otherwise the game Steelbeasts is a very good simulation of various tanks.


Spoiler

fdassdaas.jpg.c709df3e98adc5265f232fe9458a3043.jpg

 

Share this post


Link to post
Share on other sites
44 minutes ago, Baron_Georg said:

part of the problem is I WAS a real tanker

Me too. I just see it as a game and means to relax and have fun. Only thing that bothers me is the utterly bad sound in the game but maybe we can now mod this...


Spoiler

fdassdaas.jpg.c709df3e98adc5265f232fe9458a3043.jpg

 

Share this post


Link to post
Share on other sites

Yea, I will have some fun  :D

2020-05-09_185646.jpg

2020-05-09_185738.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Modders, a question: in your travels through all the files in the .paks:
has anyone come across a list of the credit price & XP cost of the upgrade modules for the tanks?

Edited by Lenticulas (see edit history)

"Yog-Sothoth knows the gate. Yog-Sothoth is the gate. Yog-Sothoth is the key and guardian of the gate. Past, present, future, all are one in Yog-Sothoth."

Share this post


Link to post
Share on other sites

I'd *super* doubt that's handled user-end.  That kind of thing is going to be handled server-side for sure.  There's zero reason that would need to be done on the user's PC, and would just be asking for all kinds of abuse.

Share this post


Link to post
Share on other sites
4 minutes ago, Komitadjie said:

I'd *super* doubt that's handled user-end.  That kind of thing is going to be handled server-side for sure.  There's zero reason that would need to be done on the user's PC, and would just be asking for all kinds of abuse.

Thats what I suspected, I was just trying to type some stuff in on the WIKI and i can't see the Credit costs of the modules for the tanks ... because I've already bought them/or i havent XPd them.

Edited by Lenticulas (see edit history)

"Yog-Sothoth knows the gate. Yog-Sothoth is the gate. Yog-Sothoth is the key and guardian of the gate. Past, present, future, all are one in Yog-Sothoth."

Share this post


Link to post
Share on other sites

That right there is one of the largest problems with trying to keep the Wiki updated, we never are quite sure exactly what's changed at any given time, or the values for any given thing.

Share this post


Link to post
Share on other sites

have you looked into posting basic mods here -- believe they would be amenable to hosting

https://www.nexusmods.com/

Share this post


Link to post
Share on other sites
On 4/22/2020 at 1:26 PM, JCPershing said:

Can't wait until someone makes a mod of the old HUD

Which of the old HYUD are you talking about? The "I wanna be WoT clone" or the "I'm actually an game made by Obsidian that isn't trying to blatantly copy wot"

Share this post


Link to post
Share on other sites

Sup guys. IDK is it related here, but i wanna show you a decrypted gamedata.dat from alpha verison of game. 

And a little cheatsheet: 

gamedata.pak\scripts\entities\vehicles\implementations\xml\ - tank scripts;

gamedata.pak\scripts\entities\items\xml\ammo\vehicles\ - shell scripts;

gamedata.pak\libs\ui\  UI stuff;

 

Link to gamedata

 

Share this post


Link to post
Share on other sites

You sourced that from Korean Random right? I've been trying to use the SFFS unpacker for a while, but I can't get the sniffer to work for the decryption key.


Spoiler

 

Share this post


Link to post
Share on other sites
2 hours ago, Haswell said:

You sourced that from Korean Random right?

Ye, indeed. 

 

2 hours ago, Haswell said:

but I can't get the sniffer to work for the decryption key.

IIRC, sniffer needs system driver, but this driver works only with WinXP, BUT AW doesn't even start on XP

Share this post


Link to post
Share on other sites

Everything under localization\english_ui.pak\libs\ui\textures\portraits\

I think if you change the language you'd use the other localization .pak archives, but the paths should still be the same.


Spoiler

 

Share this post


Link to post
Share on other sites

@Haswell but i have another problem. since i m changing the avatar pictures. The .gfx file will cause the image to corrupt. Removing it results in pretty much the image not appearing. How can i fix that? Thx

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...