Turn a truck mod into a Road Trip car.
CarUtil reads a truck-classified American Truck Simulator mod and writes a new one: a car that appears in the Car Dealer, drives on car physics, and keeps everything the mod shipped.
One command, and a .scs next to the mod you pointed at.
Clones come from the traffic API and stars from the public event stream;
both are fetched by tools/fetch_stats.py, which draws the
chart above. The repository was created on ·.
Install
Clone it and run the launcher. The launcher sets up a private Python environment, offers to install the two packages the menus use, and offers to install ImageMagick for the brand logos.
$ git clone https://github.com/piskevalee-cpu/CarUtil
$ cd CarUtil
# macOS and Linux
$ bash carutil.sh
# Windows
$ carutil.bat
What it needs
- Python
- 3.9 or newer. The launcher offers to install it if it is missing.
- questionary, rich
- The arrow menus and the coloured output. Both are optional: the converter falls back to numbered menus and plain text without them.
- ImageMagick
- Optional, and only for the brand logo. Without it the car keeps the mod's own logo or a flat placeholder; the conversion still completes.
What it needs from you
- A mod
- Any truck-classified ATS mod. The Road Trip DLC has to be owned for the converted car to be drivable in Car Mode.
- Nothing else
- No account, no service, no network. The converter runs entirely on your machine.
Documentation
What gets rewritten
| Part | What the converter does |
|---|---|
data.sii |
Writes tags[] in the game's own vocabulary
(pickup, suv, sedan,
muscle, veteran, sport,
offroad), the third info[] line the game
asks for by name, and fallback[] entries that pre-select
the parts the mod's own dealer unit names. |
| Chassis | Car-sane travel, damping, brake rotor, disc brake, axle type, drag, cog height, sway bar, steering angle and a 12 V system. A truck's kerb weight is replaced; a car's is kept. |
| Engine | The torque curve is rebuilt on the shape SCS ships, with a
(0, 0) origin, the idle torque halved so the car does
not walk away, and the truck-only keys dropped. The rev bands the
automatic shifts on are written when the mod has none. |
| Gearbox | Stall ratio, converter settings, and the final drive: a truck's top gear is geared for forty tonnes and leaves the automatic below its own power band. |
| Wheels | The grip keys SCS's own car wheels declare, so the car does not inherit the truck's tyre calibration. |
| Registration | car_dealer, car_desktop,
car_company, truck_desktop and
truck_company, one vendor folder per brand. |
| Dashboard | A dashboard that points at a template unit nobody ships is the same death as a missing model: the game dies loading it. The missing units are written into the file that dashboard needs, and a stale dashboard path is repointed at the one the vehicle's own parts use. |
| Logo | A 256×64 DXT5 texture with its material and object files, in both the truck and the car logo directories, named after the brand and the vendor. |
What it will not do
- It cannot create what the mod does not ship. Missing models, textures, wheels and sounds are reported as gaps, not invented. A mod that arrived without its body converts into a car without a body, and the report says so.
- It is not a car designer. It puts a truck's parts on car values. A mod that is not really a car may still not drive like one, and no tool can tell you that from a file.
- It does not touch the files it has no reason to touch. A def the converter does not need to rewrite keeps the file's own bytes, down to the missing trailing newline.
Types, and what they are for
pickup | 2400 kg |
offroad | 2200 kg |
suv | 2200 kg |
muscle | 1700 kg |
classic | 1550 kg |
sedan | 1220 kg |
sports | 1280 kg |
The weight is only a starting point. Enter the real one when you know it.
It is tested
Every conversion claim on this page has a test behind it: the byte formats, the DXT5 logo header, the ZIP conventions the game's loader insists on, and the whole guided walkthrough.
Usage
Run it with no arguments and it asks you seven questions; run it with arguments and it says nothing.
- 1Find your modthe
.scs, or an unpacked folder - 2Body typepickup · suv · sedan · muscle · classic · sports · offroad
- 3Brandthe manufacturer the Car Dealer shows
- 4Kerb weightone number, or one per axle
- 5Enginepeak horsepower, and where it peaks
- 6Pricewhat the Car Dealer should charge
- 7Convertthe report, then the archive
$ python3 scripts/carutil.py "mods/my-car.scs" \
--no-prompt --type suv --brand porsche --mass 2069 \
--power 300 --peak-power-rpm 5000 --price 45000 \
-o my-car-roadtrip.scs
The options worth knowing
--type TYPE | Body category. The game's own spellings are normalised too: sport, veteran, crossover and the rest all land on a preset. |
--brand BRAND | Manufacturer the car is filed under. The vendor folder is named after it, so each brand keeps its own logo. |
--mass KG | Kerb weight: a total (2069) or front,rear (1150,1050). Written across the mod's real axle count. |
--power HP | Target peak power. Prefer this to --acceleration: it bounds the top end as well as the launch. |
--acceleration SECONDS | Target 0-60 mph time instead. The torque is derived from it and the mass. |
--peak-power-rpm RPM | Where the power peaks. Held between the engine's own idle and its own limiter. |
--rev-limit RPM | The ceiling. Left alone, the engine keeps the limiter the author wrote, as SCS's own cars keep theirs. |
--shift-up-rpm RPM | Where the automatic changes up. Only the band's upper bound moves. |
--air-resistance COEFF | Drag. SCS's cars use 0.37-0.596; this is how a car of a given power gets a sane top speed. |
--price DOLLARS | What the dealer charges. The whole accessory price table scales by one factor, so the upgrade menu stays proportionate. |
--extra-tags TYPES | Extra categories for tags[], so the car can satisfy more than one kind of cargo job. |
--no-prompt · --dry-run · --path | Never ask. Report without writing. Show where the game and the mod folder are. |
Where things are
It finds both the game and your mod folder on its own, including inside a Proton or Wine prefix, and says where they are.