Textures 101: A Guide on How to Texture in ARMA III

Back when redthedev.com first opened up, I had a full-on texture tutorial for ARMA III. Unfortunately, I seem to have misplaced that tutorial. Oh well. Here’s to writing another tutorial.

‘Textures 101’ is part of a tutorial series I’m going to be writing on my website. Besides attracting more visitors to the site, many developers and enthusiasts starting out in ARMA have yet to fully grasp the fundamentals of texturing in ARMA. Rest assured, I’m here to help.

NOTE: By reading this tutorial, you should have some knowledge on photo editing programs such as Adobe’s Photoshop or PAINT.NET.

Let’s start out with the basics:


It is the relative extent of something; a thing’s overall dimensions or magnitude; how big something is. I totally took that off Google. Credits to Google (You the real MVP). Texture size is important in ARMA. Like really important. Unlike other games, ARMA’s graphics engine reads textures by the power of two. The pixel size of your texture has to be a power of two. If your texture size isn’t a power of two, then weird things can happen. This can include color distortion.

The picture on the left is 4000 by 4000. The picture on the right is 4096 by 4096. Both vehicles are using the same texture yet one is completely black while the other is just the way it should be. From lowest to highest, the size of a .paa texture is as follows: 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, 1024×1024, 2048×2048,and 4096×406.


.PAA format is ARMA’s primary texture format. .TGA can also be used in Bohemia’s Object Builder software. Mikero’s PBOProject converts .TGA files to .PAA during the binarization process. This saves time as you don’t have to manually convert the texture formats yourself. Other file formats such as .PNG and .JPEG can be used as a texture format, but it is not recommended as it can increase mod size.

Unless you have the .PAA Photoshop plug-in on hand, it’s unlikely that you’re going to be editing your texture in .PAA format. You’re more likely to use .PNG texture formats in two scenarios: 1) you have a .PNG wire-frame template that you can base your texture off from 2) You unpack a .PBO, convert the texture that you want to modify from .PAA to .PNG.

To make life easier, ARMA enthusiasts and developers have written scripts that convert .PAA textures to .PNG through a batch file. However, not everyone has access to such scripts. To convert a .PAA texture to .PNG texture, open the ‘texView 2’ program. This program can be found in ARMA III Tools. ARMA III Tools can be found in the ‘tools’ category of your steam library. Open the .PAA texture, rename the extension to .PNG, and save it wherever you wish. Your .PAA texture is now a .PNG. Of course, there are different more advanced and efficient methods to converting a .PAA texture. This includes using the ‘ImagetoPaaGUI’ that is also found in ARMA III Tools. This tool is recommended if you’re planning on converting a bundle of .PNG textures to .PAA at once.


Alright. So you’ve got your texture all edited with it’s correct size and NOW it’s time to put that texture in-game.

[embedyt] https://www.youtube.com/watch?v=irFtTYP-H6I&width=720&height=540%5B/embedyt%5D

Before I show you how to import a texture into a .PBO, you have to understand how textures work in the config. There are basics two methods to utilizing textures in .PBOs. There are more advanced methods out there, but we will touch on that later.

The first method is manually extracting the .PBO, exporting the .PAA file, converting said file to .PNG, editing the texture to your liking, converting it back to .PAA, overwriting the old texture with your new texture, and repacking the .PBO. You can use ‘PBOManager’ or Mikero’s ‘ExtractPBO’ to extract .PBOs. For this method, I would recommend using ‘PBOManager’ as you can just copy your new .PAA texture and paste it, overwriting the old texture (just make sure you have that old texture selected or else PBOManager will put the pasted .paa texture in the wrong directory).

The second method is using Hidden Selections. Hidden selections is dependent on whether the author of the mod you’re texturing is using Hidden Selections. For single-entity mods, such as a building, the likelihood of Hidden Selections being used is rare since there is no more than one building. However, if you were to texture say a vehicle or clothing, it’s certain that the author is using Hidden Selections because they would want more color variety. Basically, Hidden Selections gives you the ability to have variations of different textures or/and colors of one mod.

This is an entry of my hidden selection that you would find in many of my vehicles:

hiddenSelections[] = {“camo1”};

This is the texture directory for the Hidden Selection:

hiddenSelectionsTextures[] = {“\red_base\colours\black.paa”};

hiddenSelections[] and hiddenSelectionsTextures[] work hand-in-hand. You’re probably thinking what the hell “camo1” is. Well, “camo1” is the selection I’ve defined in Object Builder. I’m telling the engine that this certain part of the vehicle is going to be wrapped around the texture I am choosing in the hiddenSelectionsTextures[] of my config. You can see that in the example above, the vehicle body (which is “camo1”) is being wrapped in a texture under the directory of “\red_base\colours\black.paa”. In this case, the color of the car is black since I’m calling the texture ‘black.paa’. When you’re creating multiple versions of one mod in the config, you have to be sure that the texture directory is correct or else you’re going to get something like this:

Other reasons for this type of error can include: 1) texture file not being there 2) the list of file extensions to copy directly are not properly defined in Addon Builder or PBOProject.

Add this line of code into your Addon Builder by going into your options (should be the first one on the top): “*.pac;*.paa;*.cpp;*.rtm;*.sqf;*.sqs;*.bikb;*.fsm;*.wss;* .ogg;*.wav;*.fxy;*.csv;*.html;*.lip;*.txt;*.bisurf;*.sqm;*.ext;*.dbf;*.prj;*.shx;*.shp;*.hpp;”

Fortunately, Mikero’s PBOProject has this all setup for you. Though, if you’re still having problems, use the ‘Restore Defaults’ feature in the ‘Setup…’ menu.

Pay attention to the TIRES below. See how they’re white and not invisible like the screenshot above? This is because the tires are not defined as a HiddenSelection. This mod is probably missing a texture in it’s folder.

If you’ve ever played around with my mods, it’s likely that you have seen the .PAA texture below. What is it you may ask? It’s called a UV checker and it’s used to help you texture objects with no wireframe available at hand. Simply, the different checkers correspond to the location of the flat wireframe. It’s a pretty neat trick I used back when I first started texturing.

I hope this tutorial has aided you in texturing for ARMA. If you have any questions, please don’t hesitate to contact me either via the ‘contact me’ section of this website or my steam. I do warn you that I might not have the best response times. Rest assured, I will do the best I can.