Paint.net tips and tricks

Introduction

Paint.net is a free program and relatively simple in terms of interface and UI compared to it’s other ‘rivals’, like Gimp or Photoshop, while still featuring many tools and features, like layers and effects. Such effects and adjustments can still be expanded thanks to Paint.net’s community based focus and customizable nature, with the help of plugins, some of which are very useful for modding this game. So overall, thanks to it’s simplicity, it’s recommended for beginners, and thanks to it’s customizability it’s very useful to more advanced modders aswell. Download here

With that out of the way, it should be noted that these tips will be more focused for more novice users, who want to improve their work’s quality and/or create mods in similiar quality to the vanilla assets (or even better).

Layer types

These can be chosen by clicking Wrench icon (a.k.a. Properties) on the Layers window, while having your desired layer selected. They are best explained on their official page here, and it’s probably best to look at it in Paint.net yourself for experimenting, but there’s one mode that’s universally used for almost all vanilla game liverys:

Multiply

This, when added to an above layer, takes the colors of the layer below it, and multiplies/mixes them together, making the above layer a sort of mask.

With Normal Blend Mode

With Multiply Blend Mode

This is very useful sort of ‘baking’ liverys onto an Ambient Occlusion baked body texture and if you want to replicate how vanilla game liverys look like, as they were probably made this exact way.

Except one!

Color Burn

Works similiarly to Multiply, except in a way it takes the brightness values of the below layer, being body texture, and somehow applies it to the livery layer’s hue in an amplified way. This is the way the Apachee’s “Wildfire” livery was made.

For the demonstrations below, I took the Wildfire livery, made it fully white with Hue/Saturation, and gave it an orange color with the Color Filter plugin I later tweaked.

This is the livery layer with Multiply

And this is with Color Burn

With some tweaking to Hue/Saturation I could find very close values the “Wildfire” livery used (RGB 254,133,13).
But be aware this method only works with certain colors, like blue or lime-ish colors, but usually tweaking the Lightness and Saturation after changing the Hue with Hue/Saturation, every color can work well.

The Alpha Channel and Masks

To make use of this section, you’ll need the Alpha Mask plugin, if you’ll work in paint.net.

To make most use of the method above and have parts of the car body paintable ingame, you will have to utilize Alpha Masks, but first, a little introduction to the Alpha Layer or Channel itself.

The Alpha Channel is present in any image supporting transparency, and it basically defines how transparent parts of the image should be using the RGB values in the channel. While it can use any type of image, even colored ones as an alpha layer, the channel will always be greyscale when it’s used as an Alpha Layer, so it’s more practical to create the Alpha Masks in black and white, so you even see the exact opacity values easier thanks to the RGB values being the same.

The above mentioned Alpha Mask is the actual image that gets used as an alpha layer for your texture, and when it’s applied, part of the image will turn transparent or half-transparent according to the black and white parts in the Alpha Mask.

Let’s look at a simple example to visualize it:

We have this image I made as an alpha map.

The top part has a 0,0,0, fully Black,

a 50 Lightness, so 127,127,127 Grey,

and a 255,255,255 White.

These will correspond to the Opacity values in an image it gets applied to, so the Black will be 0 Opacity a.k.a. fully transparent, Grey 127 Opacity, so half transparent, and White part 255 Opacity, so not transparent at all. The gradient part will just demonstrate it smoothly.

It will get applied to:

This, which is the same image I copied to a Paint.net New Image. I added a Multiply layer above it, colored it red, to better see the results.

This is where you’ll locate the plugin after installation. You may not have all the tabs above it, but it will always be on the bottom.

You can either put the alpha mask image to clipboard, or save it as .bmp, then you use the plugin on the texture.

If you have it on clipboard, you’ll see it instantly, if not, you just need to open the Mask File in the Effect’s settings like displayed below.

You can see it exactly working like expected, the opacity gets changed according to the uniform RGB values in the black and white alpha mask image.

Note that you can use even colored images as the alpha maps, but the plugin will always see it black and white, since the alpha layer can only work with greyscale colors. For this reason, if you are using a colored image as alpha mask for whatever reason, apply a Black and White from the Adjustments menu so you can see what you are using better.

As for Settings go, you’ll be using the Invert Mask option sometimes aswell, since you could occasionally mix up what black and white stands for, and this is an easy way to fix it without needing to go back to the original image.

Applying Alpha Mask to liveries

So how do you use this for liveries? Well, you can only get the body texture onto the livery by using the technique above, which includes flattening the layers, getting rid of the livery’s transparency in the process, which means no paintable parts ingame.

So to get around it, we are gonna use the Alpha Mask plugin, exactly like it’s demonstrated above.

First, before you Flatten the layers, copy the livery to your clipboard, and paste it to a new paint.net window, which canvas’s size is the same as the livery’s.

Then, create a new layer, put it below the livery’s layer, and color it fully, 000 Black. For the livery layer, open Hue/Saturation in the Adjustments panel, and put the Lightness slider all the way to the right, this will make it a 255, fully white color. After you Flatten (Shift+Ctrl+F) these layers, it will be the image that you’ll use as an Alpha Mask, by either saving this image as a bitmap/.bmp, or copying it to your clipboard.

To make use of it, proceed back to the livery’s window, and provided you set the Layer Type to Multiply, you can Flatten it. Navigate to Effects, then down to Alpha Mask. If you saved the image, open the .bmp with Browse..., if you have it on your clipboard then just have Paste From Clipboard checked. You don’t need to check any of the other options, unless you mixed up the colors in your alpha mask, in which case Invert Mask.

And that’s it. It’s best used for final livery compiles, as it’s a longer process then just simply previewing the livery in a non-paintable, but quick flattened way.

Specular Maps

Almost all track piece textures use the alpha channel for a different purpose, being a sun specularity effect.

This image is the best demonstration of it’s capabilities. It’s the closest effect to a normal map you’ll ever get in Crashday.

The more transparent parts of the texture are, the less specular reflection it gets from the sun’s direction. The color and direction are defined in the ambiences’ files seperately.

If you were to extract the Alpha Layer with a plugin effect like Extract Channel, you can see that the darker a part, the less specularity it receives.

Usually, for concrete and other simple materials, using a low contrast, much darkened version of the texture can easily suffice as a convincing specular map, but don’t hesitate to take examples of vanilla textures’ alpha layers.

Making car lights

Firstly, what are overlay meshes and light flares?

Light overlay meshes are meshes that are hidden by default, and only appear when needed. There are 2 kinds of overlay meshes: Headlights and Brakelights.

Headlight meshes serve as the front and rear lights of the car, and will only appear in dark ambiences. These have to be named headl_*something* in your model to work.

Brakelight meshes act as the rear brakelights for your car, and appear in all ambiences, when you apply the brake on your car. These have to be names brakel_*something* in your model

The easiest way of making these is to simply make a copy of the front and rear lights of your car, but can be expanded further, shown by this example here:

Example of how lights work in-game

Now light flares (or omni lights) are not meshes, but rather light object that you add to the model, these add a special lens flare glow effect to the headlights and brakelights.

To add them:

  • In Blender, they are the standard point lamps,
  • in Zmodeler or 3ds max, they are the omni lights.

Side notes:

  • Put them slightly in front of the overlay meshes to work properly.
  • In Blender, if using the Blender .p3d exporter, changing the Color and Energy affects the light in-game.
  • You can assign a maximum of 4 flares to an overlay mesh.
  • Not assigning a flare to an overlay mesh by name will add a permanent, always visible flair.

The naming goes as follows:

Names of the meshes and related lights

The Incubator flares’ positions (Highlighted in orange)

Example lights positions on Incubator

And ingame

Light flares in-game

Ambience modding: LUT's

Crashday now supports color LUT’s (Lookup Table) which allow much easier color management for ambience mods. You can think of a LUT as an actual table. Before rendering any frame, the game will get every pixel, take it’s color as a position of the table. Look at our LUT and change the starting pixel to the pixel in the table. Luckily, a lot of modern painting software let’s us work on LUT’s easily.

To get started, download the following neutral color LUT and place it in user/mod_testing/[modname]/content/textures/ambience.

At this point, we should decide which ambience we want to base our mod off of. I’ll choose the Day ambience, meaning I’ll copy the following files from our previously created reference directory content/textures/ambience:

  • day.tex
  • day.tga
  • day_bd.dds
  • day_bg.tex
  • day_lut.tex
  • day_lut.tga
  • dayh.tex
  • dayh.tga

and day.amb from content/ambience

If you want to just slightly adjust the feel of the existing ambience, feel free to open the day_lut.tga with your image editor. But if you want to make new and precise look, replace day_lut.tga with the neutral_lut.tga we downloaded, and open it.

What you are looking at now, is our color Lookup Table. As you might notice, the image has a resolution of 16x16x16. Wait what? Yes. This is actually a color cube, where each axis represents a basic color channel (red, green and blue). After that the cube was sliced on the blue axis and the slices were stacked to the right.

Color cube sliced explanation

As stated before, the game looks at the coordinates of the frame’s pixel and takes the color of the lut at given position. This means, that if you were to make this LUT “negative”, all the 3D rendered objects in the game will appear in negative. Feel free to try it if you’d like!

There are many other things one can do with the LUT, like simulating color blindness (there are mods for that on the Workshop, actually), black and white, sepia effects.

But also we can make really small and nice looking adjustments now. Firstly, we’re going to need to make some reference images. Start the game with mod_testing enabled and making sure to select the Day ambience we are overwriting, take some screenshots that will make good references. Make sure you capture shadows, various greens, industrial tiles, cars, etc. Also make sure you capture them losslessly, using the print-screen button on your keyboard, or otherwise a program that saves them as PNG or BMP will do just fine.

Now import the best reference shots into your picture editing project and create an image of all the useful portions of the reference shots. After doing that, I recommend putting the LUT layer in there in the top-let corner, so we can easily grab it later.

Now we can start adjusting the colors. Using our reference images we’ll be able to tune the colors to get the result we want. Make sure that any color corrections you make are applied to the layer with the LUT!

Please refrain from using tools or plugins that only affect a limited range. This can quickly cause artifacts that will be noticeable in-game. Brightness, Contrast, Hue, Saturation are all great tools. You can also adjust color curves if you wish.

Do NOT use things like blur, glow, sharpen and so forth, as the results of those won’t translate to the game. Remember, we are adjusting colors via a color lookup table. That’s all the game is able to read from the LUT.

When you’re satisfied, go the Canvas Resize the image and Anchor is to the Top-Left. Enter 256 for width and 16 for height. If you put your LUT in the top-left, you’ll end up with only our Color LUT afterwards!

Now save the LUT over the old day_lut.tga and test your ambience in-game! If you still want to make some adjustments, just undo a few steps until you have your reference images back and adjust some more from there.

Publishing and updating workshop items

So you have got your amazing mod or map ready to share with the rest of the world? Nice, you came to the right place.

Publishing to workshop

Mod packing

You only need this step if you are uploading a mod. Head to your user/mod_testing folder and find the mod you want to publish. Now you want to put the contents of that folder into a .zip archive. This step is different depending on what archiver you have, but make sure you are packing into .zip archive. After you have done that make sure that when opening, the only folder there is content. After that rename the extensions of the file to .cpk instead of .zip. Now we are ready to publish it.

Publishing

Launch Crashday tools from Steam or cdwstool.exe from Crashday/tools folder. After the tools are loaded, click Publish Workshop Item. The new window will appear, where you need to fill the mod or map name, description and picture.

  • Title: the name of the track that will be showed in Steam Workshop. Please note that only ASCII characters are supported.
  • Preview: the image of the track or mod as shown in Steam Workshop. Must be JPG or PNG with less than 1MB. Use “Browse…“ to upload the image from your hard drive.
  • Visibility: sets the visibility of your item on Steam Workshop.
  • Tags: for tracks, select checkbox “Track” and leave the other checkboxes rest blank. For mods select one or multiple tags, except “Track” describing your mod.
  • Content: select the .trk map or .cpk package you want to upload. For tracks please note that the name of the file will be displayed as the name of the track in-game as well (e.g. “finals2.trk” will show up as “finals2” in-game)
  • Description: the text description of the item shown in Steam Workshop.
  • Item Id: if you are uploading a new track or mod, leave this blank.
    • If you want to update an existing track or mod, please enter the Id of your previously created Workshop item here. You can obtain the ID from “Your Workshop Items” inside the Mod Uploader tool.
  • Submit: Click this when you are done. Congrats, your mod should be uploaded!

Getting started with modding

Modding Crashday is fairly easy in some aspects and incredibly difficult in others. This tutorial hopefully will help you in your journey.

Preparing your workspace

To start modding the game we will need some basic setup steps. Firstly, you should download Crashday Tools from Steam. You can find them after you bought the game in LIBRARY -> TOOLS -> Crashday Redline SDK. This will download CD tools and put them into Crashday/tools/ folder. Launching tools from Steam will launch Crashday’s workshop upload tool.

After we got the tools, it’s a good idea to get reference mod content. If you go into Crashday/data/ you will find .cpk archives with all of Crashday’s data. In here you should unpack needed packages in the same folder, so you will get a content folder. To check what packages you want to unpack, visit Content Packages.

Understanding Crashday loading

Firstly to understand how we want to build our mod we will need to take a look at the process of mod loading. In general, it looks like this:
At first stage the game takes all the .cpk files from Crashday/data/ and unpacks them into some imaginary folder (Just like we did). If any of the original files are edited or corrupted at this point, the game will crash on us.
After that, the game starts to unpack mods from workshop in to the same imaginary folder, in order from top to bottom of our launcher list, overwriting original files if necessary. This way mods can add their own files to the game system, as well as overwrite original ones.

If user has enabled mod development mode in the launcher, our test mods will also be loaded after that. These can be placed as .cpk archives in Crashday/user/ folder, or as uniquely named folders in Crashday/user/mod_testing/

Creating your first mod

Now as we got the basics out of the way, lets create a simple test mod. If we take a look at the content folder of our unpacked packages, we can see a dbs folder containing game.dbs file. This file has all the different common parameters the game uses. Lets try and edit it!

Now head to user/mod_testing/ and create a folder named my_awesome_mod. As you remember, now contents of this folder will be dropped into our imaginary CD folder and after that the game will load. This means if we want to change the game.dbs file of the game, we need to replace the original on game load. If the original file lies in imaginary_folder/content/dbs/game.dbs we need to put ours in my_awesome_mod/content/dbs/game.dbs, so it overwrites the original.
So enter our folder and create content folder, in which we need our dbs folder. As we want to edit .dbs file, we can just copy the original from our unpacked reference and copy it into our mod folder. Now we can edit it. Most of Crashday files, as well as .dbs can be opened with a text editor. For more info about every type file visit File Types. After opening it you will see a list of all Crashday’s parameters.

Let’s change Physics.Gravity 9.806650 to Physics.Gravity 3.1415 and save the edited file.

Now launch Crashday, select MODS and enable mode development mode.

If you encounter any bug while testing your mod, or the game takes to long to load, try the Disable workshop mods option. It will not load any workshop mods, but will still load testing mods.

Now we are ready to play and test the mod!
If you did everything correctly, after launching any mode you should have much lower gravity.
Congratulations, your first mod is ready!

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×