Materials

Naming & Organization in Game Engine

Every mesh could theoretically have a different material without performance loss. But you can combine them to not go insane as an artist. This will also help with organization and maintenance.

BUT
For example, we don’t want to load a 2048x2048 map just for a different steering wheel, because there are many other parts on it.

Material Naming Guidelines

Material names must be determined before the project starts
(because changing names mid-development in Substance Painter is difficult)

  • Names should this format: "vehicle_dev_name"_"material_type"

Examples:

1"pickup_main"
2"pickup_interior"

Object & Material Naming Rules

  • Objects and materials must:
    • Have clear names
    • Names may not contain special characters, only _ are allowed (aka snake case)
  • Each material should be assigned separately in Blender

Standard Material Names & Descriptions

Material Type
Texture Size
Description
Material Type
main
Texture Size
4096x2048
Description

Cab, body panels, exterior meshes, interior painted metal meshes, external roll cage, flatbed, upfits.

This material will use UV0 for normal maps.

UV1 will contain body wrap UVs.

Material Type
interior
Texture Size
2048x2048 to 4096x4096
Description
Dashboard, steering wheel, seats, miscellaneous interior parts.
Material Type
wrap
Texture Size
4096x2048
Description

Vehicle skin (decals and body textures).

Uses UV1 to minimize stretching.

Material Type
mechanical
Texture Size
2048x2048
Description
Drivetrain, axles, suspension components, fuel tank, exhaust, chassis.
Material Type
lights
Texture Size
512x512 to 1024x1024
Description

Headlights, taillights, blinkers, fog lights.

Contains three textures: Off, On, Broken.

Material Type
engine/transmission
Texture Size
1024x1024 to 2048x2048
Description

Engine, transmission, radiator, piping, exhaust manifold.

Created to allow reuse of engines/transmissions across vehicles.

Material Type
gauges
Texture Size
1024x512
Description

Instrumental cluster.

Contains two textures: Lit & Unlit.

Material Type

grille

(alpha channel)

Texture Size
By Design
Description

Grilles, badges, 2D emblems.

Used for objects requiring transparency (e.g. bolt stickers).

Material Type

glass

(alpha channel)

Texture Size
1024x1024 to 2048x2048
Description

Windows.

Contains two material states: Broken & Unbroken.

The broken state switches dynamically when mesh bends.

Material Type

lettering

(alpha channel)

Texture Size
512x512 to 1024x1024
Description
Logos, vehicle emblems.
Material Type
wheel
Texture Size
512x512 to 1024x1024
Description
Rim texture.
Material Type
tire
Texture Size
1024x512
Description
Tire texture.

Useful tips

  • Remember that while texture dimensions need to stick to strict power of 2 sizes, the aspect ratio is not fixed. In many of these examples you may find yourself using a 1024x512 texture set, for example, which is advised when it would be the most efficient solution.

  • You should always only use the size that is necessary for what you are making to look decent. Using large textures when not necessary is one of the easiest ways to waste memory.

  • Texture resolutions in a set do not need to be the same. Less important or more basic textures, such as AO or some metallic maps may not need to be as high res as the base color or normal map of a texture set and can be at lower resolutions to save on memory.

Dummy Materials

Standard Dummy Material Names

Material Name
Description
Material Name
vehiclename_lowbeam
Description
  • Low beam headlights
Material Name
vehiclename_highbeam
Description
  • High beam headlights
Material Name
vehiclename_lowhighbeam
Description
  • Lights that remain ON for both high & low beams
Material Name
vehiclename_signal_R
Description
  • Right turn signal
Material Name
vehiclename_signal_L
Description
  • Left turn signal
Material Name
vehiclename_taillight
Description
  • Tail lights
Material Name
vehiclename_brakelight
Description
  • Brake lights
Material Name
vehiclename_reverselight
Description
  • Reverse lights
Material Name
vehiclename_foglight
Description
  • Fog lights
Material Name
vehiclename_gauges
Description
  • Instrument panel

Shared Dummy Materials

  • Left & right lights can share the same material when their functionality is the same (e.g., headlights, brake lights)
  • Some vehicles require taillight turn signals (e.g., American cars where the same light blinks as a turn signal) so in this case they would need to have unique left and right materials

Example:

This will allow independent control:

1"vehiclename_taillight_R"
2"vehiclename_taillight_L"

Important Notes

  • Objects that use these materials must be separate from others
  • Multiple dummy materials can exist on the same object

Example:

A taillight may have the following:

  • vehiclename_taillight (general taillight)
  • vehiclename_brakelight (brake light functionality)
  • vehiclename_reverselight (reverse light functionality)
  • vehiclename_signal_L (left turn signal functionality)

Dynamic Material Switching

Some materials dynamically switch in-game, for example, a headlight breaking during a crash.

How it works:

  1. JBeam code targets a material name
  2. A trigger is activated upon deformation
  3. The targeted material is swapped to the damaged variant
Material triggers and activation timing are defined in JBeam, so only the material names matter.

Example:

  • A headlight using vehiclename_headlight gets damaged during a crash
  • This will trigger the game engine to replace it with vehiclename_headlight_dmg

GlowMaps System:

We also support a system for emissive glowing textures (e.g. lights turning on/off). Dummy materials swap dynamically for different light states.

Last modified: June 8, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.