Need for Speed™ Heat Guide

How to import your own images as decals into Need for Speed™ Heat for Need for Speed™ Heat

How to import your own images as decals into Need for Speed™ Heat

Overview

By using the latest version Frosty Editor, importing decals is possible to some extent, this guide will cover everything you need to know about ’em, from the basics up to how you can circumvent common issues. The guide will also cover how to bump the livery resolution from 2048×2048 to 4096×4096 or even 8192×8192!

Downsides

Before diving head-on into this, let us take a look at a few turn-offs that come with being able to add any image into the game.

  • For mods to work, you’ll need to launch the game from the editor every time you want to play.
  • Unlike previous NFS games, some decals can’t be replaced, probably due to the current state of the editor, these decals will be invisible if you replace them.
  • There is no proof of people getting in-game bans for modding the game, but, now that Ghost Games was dissolved, it is most likely that its titles’ online components aren’t being moderated anymore, but that doesn’t mean you can’t get banned if someone reports you directly to EA via their support if the content in your car is deemed as offensive and/or inappropriate (i.e. sexual content, racism, etc.), resulting in your Origin account being suspended or even banned. This isn’t much of a downside as you have no risk of being banned as long as you aren’t an absolute unfunny bigot.

Despite all that, one BIG selling point of modding your decals into the game is that other people will see them online.

Downloading Frosty Editor and Intel’s DDS Plugin

The following link will download the latest version of Frosty as of the date of this edit. I recommend joining the Frosty Editor Discord server[discord.gg] if you wish to always have the latest version in hands.

[link]

Download it and extract the folder inside the RAR archive somewhere you can easily access later (ex: Your “Documents” folder.)

After everything is set up, just run the editor, create a new profile, navigate to the install location of your copy of the game, select the file “NeedForSpeedHeat” executable file and wait for it to load all the game’s files.

After that step is dealt with, close Frosty and let it rest while we create the decal itself.

For this guide, I’ll also be using Intel’s DDS Plugin, any other DDS toolset for Photoshop works but if you don’t have one already I highly recommend this one.

[link]

Open the ZIP file, go to the Plugins folder inside it, choose either the “Win32” or “x64” folder depending on your operational systems’ architecture, taking into count the time we live in the chances are that your system is also running x64, so drag the “IntelTextureWorks.8bi” file from one of these folders to your Photoshop plugins folder, just like how it is shown in the image below.

Now go back to the main folder of the ZIP and open the folder “PhotoshopScripts”, it’ll contain two files which you have to drag to the “Adobe Photoshop 2020PresetsScripts” directory, as shown in the image below.

More detailed instructions are included in the read-me file bundled with the ZIP.

The inner workings of a decal

Decals in NFS 2015, Payback and Heat are composed of three images:

Base


Stencil_Character01_2048x2048_T_D

Mask


Stencil_Character01_2048x2048_M

Thumbnail


Stencil_Character01_2048x2048_thumb

  • The base image’s name ends with “_T_D” and it holds your RGB image data
  • The mask image’s name ends with “_M” and it holds unused material information in the red and blue channels while the green channel stores your alpha mask as it has the least compression (more on that later.)
  • The thumbnail isn’t really part of the decal itself, but it is used in the menus, and replacing it will improve visibility when navigating the livery editor.

The key here is to replicate this set of images with any image you want.

Setting up your image

Now that we know how the game handles its decals, we can finally make our own.

For this guide, I’ll be showing how to achieve the result with both Photoshop CC, while my friend wargen shows the same process done with paint·net[getpaint.net].

You can use any image manipulation software that gives you the possibility of editing individual RGB and Alpha channels (ex: GIMP).

Before editing anything though, we need an image, the game can handle images up to 4096×4096 (4K for short) pixels wide, 8K is likely to cause performance issues or not even work at all, but anything that is a common power of two (512×512, 1024×1024, 2048×1024, 4096×512…) can be used.
You can use also an opaque image, but transparent ones are what I presume people will use the most.

As an example, I’ll be using this image from IA/VT Coloful.

Photoshopping – Part 1 (Texture Resolution)

Note: When talking about resolutions, I’ll be referring to the pixel count in width and height respectively (ex: 1024×2048 = 1024 pixels wide by 2048 pixels tall).

The first problem is that the image isn’t a power of two, but that is simple to resolve if we keep a few things in mind.

In the case of this image, it is better to rescale its height from 2214 to 2048 pixels with the Bicubic Sharper resampling method, so we lose less detail.

Tip: Make sure to keep the amount of empty space between the borders to a minimum, you’ll get more resolution to spare that way.

Tip 2: If you think you’ll be rescaling your image a lot, make sure to turn your image into a Smart Object as soon as you import it into Photoshop, this way, the image won’t lose its original resolution regardless of how you transform it.

We’ve scaled our image’s height to a power of two, which’s halfway the scaling process, but we still need to get the width to an acceptable pixel count, in this case, I have two options, either crop my canvas to 1024×2048 and scale down the image to fit inside it or, stretch the canvas from 1334×2048 to 2048×2048 at the cost of having a big texture, I’ll be proceeding with the latter as most decals in the game that resolution anyway, but this should be analyzed on a case-by-case basis, wasting memory resources for no good reason is a bad practice that should be avoided.

Photoshopping – Part 2 (Masking)

Now that our resolution is settled, we can move on to our mask texture.

Go to your layers tab and, while holding the Alt key, click on the layer mask of your image.

Your mask will be shown in the viewport instead of your image, which means you’re currently editing it.

Now, press CTRL+A to select the entire canvas and press CTRL+C to copy the mask, now, make a new document based on your clipboard and paste it in there.
Tip: I recommended that you rename the document to your decal’s name with a “_M” at the end, so there is no confusion when working with the base image and the mask.

Make sure that the document’s color mode is set to RGB Color, this is crucial for the next step.

In your new document containing your mask, go to the Channels tab

These are your individual red, green and blue channels, as this was mask was originally a grayscale image, all of them should be identical, which is exactly what we want.

Now, go to the Red and Blue channels and make them Black and White respectively, by doing that your image should look exactly like this

Tip: To easily turn the Red and Blue channels into solid colors, select the entire image like we did earlier (if it isn’t already), go to the channels you want to erase and press the Delete key, this will make Photoshop fill the entire channel with your background color which, by default, is white, so repeat this for both the Red and Blue channels and invert the color (CTRL+I) of the Red channel to make it black.

Photoshopping – Final Part (Exporting and Thumbnailing)

Now that our textures are done, we can export them to DDS files that can be imported into Frosty.

Exporting the mask

Go to the document with your mask and go to “File -> Save As…” and in the format list select “Intel© Texture Works (*.DDS)”

Make a folder in a place where you can store all your decals and choose a name for your decal, doesn’t need to be anything complex as it won’t affect anything later on and has the sole purpose of better organize our files, and then add the “_M” suffix to the name. (Ex: My decal’s name is IAVT, so the mask will be named IAVT_M.dds)

The export settings are very important here as they aren’t the same used in 2015 and Payback.

  • Texture Type should be set to “Color”
  • Compression should be set to “BC7 / 8bpp / Fine (sRBG, DX11+)”*
  • Mip Maps should be set to “None”**

* – The compression method used by most decals in-game is BC1, but, due to the current state of Frosty Editor, the game won’t show the decal if you use that, so stick to BC7 for now.
** – The game’s vanilla decals also use mipmaps but, due to the same reason listed before, they can’t be exported for now, not that this will cause any major issues as the livery is baked once you leave the garage.

Clicking on the preview button will show up how the image will look like once export, make use of that to make sure everything is correct.

Tip: Creating a preset with these settings will speed up the workflow.

Exporting the base

For the base texture, we need to repeat exactly what we did for the mask, just go back to the document with your base and export it.

Exporting the thumbnail

You should still have the layer mask in your base texture document if you followed the guide word-by-word, if that’s the case, right-click the mask and select “Apply Layer Mask”.

Now, as the name implies, a thumbnail is a smaller image representing the decal, so what we need to do now is rescale the whole image to a size that the game can quickly load to show on the UI.

Most, if not all decal thumbnails in the game are 256×256 pixels wide, 256×128 if it is a rectangular one, but you can do 512 pixels if you want a bit more resolution, though it most likely won’t be necessary as it is only used in the UI.

Now that this step is out of our way, we can export the texture, albeit with a different set of settings than before:

  • Texture Type should be set to “Color + Alpha”
  • Compression should be set to “BC3 / 8bpp (Linear)”*
  • Mip Maps should be set to “Auto-Generate”**

Make sure your alpha channel is being exported by opening the Preview viewer and clicking on the “A” button located in the bottom-left of the Preview window, if it shows the black and white mask properly, just hit OK to export it.

You should now have a set of three textures that looks like this.

Paint·net – Alternative Method

*Skip this if you already did all the steps in Photoshop*

For those who don’t have access to Photoshop, you can use [link], a free image editing software.

I have included a youtube video if you are not experienced with this at all and have a hard time understanding.

Getting the image ready

So usually after I have the image ready I crop it so there’s as much space as possible taken up by what I want to be on the decal.

Tip: You can press grid on the top of the screen to see a grid of pixels so its easier to crop

So then I end up with this:

Tip 2: You can set your secondary color to a transparent color so the canvas will automatically be transparent when you resize it.

What you want to do next is resize either the width or height depending on what’s shorter, in this case, the width is 429 so I’m going to resize it to match the height which would be 1218.

And then you have a square resolution with a width and height which is dividable by 2.

Now what I usually do is resize the image to 2048×2048 which I don’t know if it’s exactly necessary if the resolution of the image is already dividable by two but I do it anyway to avoid problems.

Texture

What you want to do is just make a new layer, put a black background on it, move the layer below the image and then merge it.
That’s it.

Mask

To make a mask you can duplicate the layer of your image and select Curves in the Adjustments tab at the top, then you have to select RGB under Transfer Map. After that deselect Red and make sure that you have Green and Blue selected, then you want to pull up the line so both ends are at top. Then finally deselect Green and Blue and select Red and make sure the red line is at the bottom
If you’ve done everything correctly then you should end up with settings like these and a layer like this.
To finish the mask you can add another layer and fill it with a blue color, then put that layer under the light blue image and then merge that light blue image with the blue background.
Note: do not use the normal blue in the Colors window because it has an RGB value of 0/38/255, you have to make sure the value is 0/0/255 which you can change by yourself if you press >> More on the Colors window.
Good job you have a mask, if you didn’t know you can copy the mask you made into a separate image by going to the File tab and pressing New, then pasting it.

Thumbnail

You can copy your image without the black background into a separate image and scale it down to 128×128.

Saving the images

Save the images in the DDS format with the settings shown below when exporting the base and the mask, for the thumbnail, use BC3 with mipmaps.

And that’s it for paint·net.

Frosty Editor – Replacing Textures (Base and Mask)

Open Frosty and find the folder “_RecategorizedDecals” in the Data Explorer, it can be found under the “Vehicle/Customization/Swatches” directory.

Here you’ll find a bunch of folders, each with its own category of decals, I recommend going to the “ROB_Additions_02” folder as it contains decals from the 5th category which most are sure to work if replaced.

For this guide, I’ll be replacing one of the Drift Games Extreme decals, especially this one as its size doesn’t match the texture I’m going to replace it with so I can show how to fix aspect ratio issues later on.


You can notice that there are three files referring to the same decal, one with the base, one with the mask, and one called “Swatch”, this file stores data on what files make up the decal among other data used by Frostbite, one of these data entries is called “SwatchHashName”, note down the number in that entry somewhere as we’ll use it later.

Close the Swatch file in the editor and open the “_D” and “_M” files.

Importing the mask

Go to the file ending with “_M” and click the “Import” button to the top-left of the screen

A window will pop-up so you can select the image you want to import, set the image type to .DDS, navigate to where you saved your textures and select your mask.

Your mask is now in the game files!

Importing the base

For the base, repeat the exact same process but with the file that ends with _D”.

The next step is to save your project file by either clicking on the floppy disk icon in the top-left of the screen or by pressing CTRL+S on the keyboard, any progress you made will be gone if forget to do this.

Frosty Editor – Replacing Textures (Thumbnail)

The thumbnail texture isn’t stored in the same folder as the base and the mask, instead, it’ll be in the folder called “Thumbnails” inside the folder of the decal you just replaced.

The actual file will have the same name as the ones we just messed with so it won’t be hard to find it, it is just the decal rendered in a lower resolution after all.

Replacing the thumbnail

Now that we found the thumbnail, all we need to do is replace it in the same way we did with the other textures.

Congratulations! If the decal you replaced is in the same aspect ratio as the image you imported, you can click on the “Launch” button at the top-left of the screen and test your decal in-game, but even if it works, stick around for a little bit more, I still got some tricks to teach you.

Frosty Editor – Fixing Aspect Ratios

If your image was a square and the original decal was a rectangle (or vice-versa), the decal will be stretched in-game, that happens because the game stores the aspect ratio of the decals in a separate file, hence why we saved that name hash earlier.

The place where the aforementioned file is stored is the “SwatchPacks” folder located in the same directory as the “Swatches” folder we’re working on a chapter ago.

At a glance, you’ll see a bunch of files, but only one of them contains the decal category of the decal we just replaced, their names may not make much sense compared to the folders we looked at earlier but it is not hard to pinpoint which one we need to edit, I recommend that you filter the file list by type as the file we want will always be a “LiveryDecalSwatchPackReference”

As you may have noticed, the decal we edited was in the “ROB_Additions_02” folder, but there are no files here that match that name, that’s because not all the files here match their folder counterparts, but its a matter of looking around, but it is certain that the file you’re looking for will have the same prefix (ex: my decal was in the “ROB_Additions_02” folder, so its SwatchPackReference counterpart must have “ROB_” in the file name.)

You’ll need to open any files that you think have the entry you’re looking for and find the one with the decal’s ID, it may sound like a lot of work, but it is pretty quick to go through these if you have a quick eye.

In this case, my name hash/ID was 4254164738, and I knew it had to be in one of the ROB_ files, so I rushed through the entries, and eventually, I found what I was looking for.

The aspect ratio of this one is set to “2”, which means the decal is a horizontal/vertical texture.

  • If you want to change it to a square texture, set it to “1”
  • If the decal was a square and you want it to be a rectangle, set it to “2”
  • If the decal is 2048×512, you should use 4.

The logic here is that the number here defines the ratio of the width, so 1 is 1:1, 2 is 2:1, 4 is 4:1, etc…

Should be obvious by now that the game doesn’t work with vertical decals, so make ’em horizontal if you need to.

Frosty Editor – Tintable and Flippable Decals

Flippable Decals

Picking up from where we left off, you can also give decals the option to be flipped, this part is quite simple.

Simply tick the “ScalingEnable” box and the game will let you flip the decal as you please.

Tintable Decals

You can also tick the “TintEnable” box to make your decal paintable, but if that’s the case, you’ll need to make the decal with that in mind as its base needs to be fully white otherwise the game will have problems tinting it, this works best for single-colored logos and cutouts.

Note: For tintable decals, sometimes you’ll also need to check the “TintEnable” box in the “LiveryDecalSwatch” file located in the same folder as the base and mask textures, sometimes it works by just enabling the one in the “LiveryDecalSwatchPack” file, but that seems to be rather inconsistent.

Frosty Editor – Bumping Livery Resolution (4K/8K)

Keep in mind that other people probably won’t be able to see your livery if you upscale the resolution.

When you leave the garage and go to free roam, the game bakes your wrap into a 2048×2048 (2K) pixels wide image:

It may look fine from afar, but you probably want to make the most out of the hard work you spent making your livery, fortunately, there is a way to bump the resolution of this texture to 4K and higher by using Frosty Editor.

The only caveat being that this is can only be changed on a per-car basis, so I recommend that you do this only for the cars you’re planning on working with.

Open your project again and go to the “Vehicles/Player” folder, there you’ll find a bunch of folders named after the cars available in the game.

Just navigate to the folder containing the car of your choice, for this example, I’ll use the Mitsubishi Lancer Evo X.

Inside the folder, you’ll need to locate the “RaceVehicleBlueprint” file of the car, it should be one of the first files you’ll see.

After opening this file in the editor, you’ll simply need to type in “Livery” in the filter box and expand the droplists until you reach the “LiverySettings” section.

Here you’ll see two parameters set to the same value of 2048, “BakedTextureWidth” and “BakedTextureHeight”, now you choose between a few things:

After that is done, save and boot the game, the livery of the chosen car will now be rendered in 4K or higher!

  • Set both of these values to “4096”, making the game bake the livery of this car in 4K
  • Set both of these values to “8192”, making the game bake the livery of this car in 8K (Major drop in performance depending on your GPU.)

You can also try a value of “16384”, but it is unknown if the game can actually handle a resolution like this without crashing.

Here is a comparison between 2K and 4K:

2K

4K

Note: This will only affect your car, liveries in AI and other players will still be in 2K.

Conclusion

This should be everything you need to know about custom decals in Need for Speed™ Heat, if anything new is discovered, I’ll be updating the guide.

A lot of the methods discussed here can be also be applied in Need for Speed™ and Need for Speed™ Payback, though some things may differ, guides for these games will be made in the future if demand is high.

If you need help with anything, don’t be afraid to leave a comment asking for help, and If you found anything in the guide helpful, feel free to like and favorite it, awards are also appreciated.

Showcase

Reply to the comments with screenshots of your cars containing custom decals and it may be featured in this section!

SteamSolo.com