Skip to content

The vehicle creator ​

2026-10-24.

GAMMA as the disc has it, and the edited GAMMA: blue, 15% wider and 10% lower

Left the stock GAMMA, right the same car after four edits, drawn by pod-viewer render from the files the creator wrote.

The vehicle creator is the second tool of the mod layer, after the track editor. It works the same way: every change is one edit, written as bytes over the fields the car reader found, and nothing changes size. A car saved with no edits is the original file, byte for byte.

Two files, one car ​

Every POD car is two files. The .BV3 has 8-bit textures for the software builds, the .BV4 16-bit textures for the 3D cards. The tests first checked that both hold the same parameters, garage settings and torque curve, on all 16 of Gold's cars (measured). Each edit is then made in both:

  • parameters, by name (body_mass, or *.side_grip for all four wheels);
  • garage settings, the car screen's five figures;
  • the torque curve, scaled;
  • a tint of the texture pages;
  • a scale of the body, per axis, with the normals following.

The tint needs the .BV3's colours. An older note said its palette slot was empty, so this first version inferred one from the .BV4, which holds the same pictures at half the size. That was wrong: the slot holds a full palette, the same as CHROME.CH3's, and the creator now uses it (see "A correction" below).

Racing it ​

Un-POD builds a race car as Gold does: the file's parameters, then the garage set-up from the five settings, which replaces the torque curve, gears, steering, brakes and grip. The model's size also sets the collision box. So the race edits were the settings: acceleration, grip and speed to 100.

To race it, Un-POD needed a driver. Its probe answers questions about the cars and takes the player's keys, so a small script now does what follow.py does in the original. It records a computer car's lap, then steers the player along it (measure/unpod_follow.py). Un-POD is deterministic, so one race per car is enough: two stock races gave the same first two laps to 1/65536 of a second.

GAMMALaps (s)Place
Stock113.92, 109.13, 108.994
Blue (settings 100, tint, scale)98.33, 93.77, 96.911
Grip 5123.67, 119.34, 121.915

These came from Un-POD as it was at noon; a later build gives other times (below).

The same moment, 42.13 s, in both races: the stock GAMMA third at 106 mph, the blue one second at 172 mph

Grip 5 in Un-POD, sliding wide

In the original, grip 5 wedged the car in its first lap. In Un-POD it finished, slowly. The two drivers are different scripts on different lines, so this is not yet a comparison of the two games.

What went wrong ​

  • A driver that waited forever. The first race script hung at about 20,000 passes with both programs idle. It skipped any line that did not start with {, to step over log lines, and so it skipped an answer of null. It now parses every line.
  • One argument instead of two. --data DIR built in a shell variable reached Un-POD as one word, and every race stopped at once. Each argument is now passed on its own.

A correction ​

Three things in this entry were wrong, found in the afternoon's work on a new car:

  • The palette. The .BV3 slot is not empty: it holds CHROME.CH3's palette. The inferred palette chose indices that Un-POD's real palette draws teal. The creator now tints through the file's own palette, and the car is blue in both files.

  • The lap times. Un-POD changed with the day's merges. On the build at 40c29aa the stock GAMMA laps in 124.75, 111.78 and 112.77 s (4th), the edited one in 106.35, 93.68 and 112.89 s (2nd), grip 5 in 125.13, 117.75 and 117.02 s (5th) (docs/vehicle-creator.md).

  • The axes. The scale was meant to make the car 15% longer. GAMMA's body spans x ±3.6, y ±1.66 and z ±0.57, so x runs along the car and --scale 1 1.15 0.9 made it 15% wider and 10% lower.

Next ​

  • A new car beside the sixteen: its name in the car lists, menu pictures, garage figures.
  • Moving single vertices, and a texture page from a picture file.
  • A window for the creator in the viewer.
  • Installing a creation into the original is the extras session's installer.

Prose CC0 1.0, code Apache 2.0. POD: Planet of Death is © Ubi Soft; none of its files are on this site.