FRAX Cargo Class Scheme

FRAX Routes all Xenon etc

Guide for Vehicle Authors


Guide

There are three categories of vehicle: passenger, mail, and freight.

Passenger Vehicle

1 Refittable Classes

It's just passengers folks

Set CC_PASSENGERS. Don't set anything else.

2 Non-Refittable Classes

No exclusions

Non-refittable classes are not required for passengers.

Mail Vehicle

1 Refittable Classes

Mail, maybe express

Set CC_MAIL for regular mail vehicles.

Some mail vehicles are also suitable for CC_EXPRESS and/or CC_ARMOURED.

2 Non-Refittable Classes

No exclusions

Non-refittable classes are not required for mail.

Freight Vehicle

1 Refittable Classes

Set a basic handling class.
  • CC_PIECE_GOODS
  • CC_OPEN_BULK
  • CC_COVERED_BULK
  • CC_POWDER_BULK
  • CC_LIQUID_BULK
  • CC_GAS_BULK

Most vehicles should set one basic handling class. In most cases setting more than one is not helpful, but there may be exceptions, for example, intermodal container vehicles.

Some specialised types might not set any basic handling class, for example:

  • Armoured vehicles or refrigerated vehicles might set only a special handling class.
  • Some highly specialised types might refit only to specific cargo labels, for example nuclear fuel transporters or livestock vans.
Set any special handling classes that apply.
  • CC_FLATBED
  • CC_EXPRESS
  • CC_ARMOURED
  • CC_REFRIGERATED
  • CC_WEIRD

These classes mostly relate to specific types of vehicles.

Got Mail?

Some freight vehicles should also set CC_MAIL.

For example, many planes and helicopters, some ships, some box wagons or box vans.

2 Non-Refittable Classes

Set potable status

Some vehicles should set one of the potable status clases.

  • CC_POTABLE
  • CC_NON_POTABLE

Some vehicles are suitable for both potable and non-potable cargos, and do not need to set any potable status classes, for example vehicles that handle packaged cargo via CC_PIECE_GOODS.

Never set both potable status classes.

Never set potable status classes as refittable, they are exclude-only.

Some highly specialised vehicles may not need to set any potable status classes, and may instead depend on refitting to specific cargo labels.

Why we use non-refittable classes for potable status

The cargo classes CC_POTABLE and CC_NON_POTABLE were introduced in November 2024. Industry GRFs released before this date do not use these classes.

Requiring CC_POTABLE or CC_NON_POTABLE in refittable_cargo_classes would make vehicles incompatible with many older industry GRFs.

By using these classes only in exclusions, we ensure broader compatibility with older GRFs while still allowing precise refits for GRFs that support the new classes.

Optionally exclude some cargo classes

Sometimes it's helpful to be able to exclude cargos from some vehicles. For example, authors may choose to exclude CC_WEIRD from some general cargo vehicles. The details for CC_WEIRD provide more advice on this.

More about exclusions

Exclusions can be unpredictable because industry GRF authors might assign unexpected classes to their cargos, potentially reducing vehicle compatibility.

Boolean logic in exclusions can also complicate refittability, making it harder to predict and increasing the chance of unintended results.

To keep things simple, less experienced authors should leave non_refittable_classes blank, except for handling potable status.


Example Vehicles - Table

Example vehicle Refittable cargo classes Non-refittable cargo classes
Armoured Van CC_ARMOURED Do not set
Box Van (less permissive) CC_PIECE_GOODS CC_EXPRESS CC_WEIRD
Box Van (more permissive) CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_EXPRESS Do not set
Covered Hopper CC_COVERED_BULK Do not set
Food Grade Covered Hopper CC_COVERED_BULK CC_NON_POTABLE
Industrial Covered Hopper CC_COVERED_BULK CC_POTABLE
Flatbed Vehicle CC_FLATBED Do not set
Food Tanker CC_LIQUID_BULK CC_NON_POTABLE
Hopper CC_OPEN_BULK Do not set
Intermodal Container Vehicle CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_FLATBED CC_EXPRESS CC_REFRIGERATED CC_WEIRD Do not set
Livestock Carrier Do not set Do not set
Mail Van CC_MAIL CC_EXPRESS Do not set
Open Cargo Vehicle (less permissive) CC_PIECE_GOODS CC_OPEN_BULK CC_WEIRD Do not set
Open Cargo Vehicle (more permissive) CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_FLATBED CC_EXPRESS CC_WEIRD Do not set
Ore Dump Vehicle CC_OPEN_BULK Do not set
Passenger Vehicle CC_PASSENGERS Do not set
Powder Tanker CC_POWDER_BULK Do not set
Pressurised Tanker CC_GAS_BULK Do not set
Refrigerated Vehicle CC_REFRIGERATED CC_NON_POTABLE
Tanker Vehicle (less permissive) CC_LIQUID_BULK CC_POTABLE
Tanker Vehicle (more permissive) CC_LIQUID_BULK CC_GAS_BULK Do not set

Example Vehicles - Details

Armoured Van Example vehicle

Vehicle description Secure vehicles for transporting valuable items.
Cargo classes allowed CC_ARMOURED
Cargo classes disallowed Do not set
Example cargos Diamonds, Explosives, Nuclear fuel

Box Van (less permissive) Example vehicle

Vehicle description An example of a box van with relatively restricted refits. CC_WEIRD is disallowed as an example, but this should only be done if other vehicles support CC_WEIRD.
Cargo classes allowed CC_PIECE_GOODS CC_EXPRESS
Cargo classes disallowed CC_WEIRD
Example cargos Ammonia, Beans, Cement, Chlorine, Explosives, Fish, Flour, Food, Goods, Grain, Milk, Paper, Pipe, Quicklime, Sodium Hydroxide, Steel, Timber

Box Van (more permissive) Example vehicle

Vehicle description An example of a box van that will refit most freight classes, to maximise compatibility with industry GRFs. This assumes that cargos will be 'packaged' if necessary, for example liquids in barrels, or coal in sacks. No classes are disallowed, but note that CC_WEIRD is not in the 'allow' list, as this class might be applied to cargos that wouldn't easily fit in box vans.
Cargo classes allowed CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_EXPRESS
Cargo classes disallowed Do not set
Example cargos Ammonia, Beans, Cement, Chlorine, Coal, Explosives, Fish, Flour, Food, Goods, Grain, Iron Ore, Milk, Oil, Oxygen, Paper, Pipe, Quicklime, Sand, Scrap Metal, Sodium Hydroxide, Steel, Sulphur, Timber

Covered Hopper Example vehicle

Vehicle description General purpose covered hopper, with no distinction between food-grade and non-food-grade cargos.
Cargo classes allowed CC_COVERED_BULK
Cargo classes disallowed Do not set
Example cargos Beans, Flour, Food, Grain, Quicklime, Sand, Sulphur

Food Grade Covered Hopper Example vehicle

Vehicle description Suitable for food-grade cargos only.
Cargo classes allowed CC_COVERED_BULK
Cargo classes disallowed CC_NON_POTABLE
Example cargos Beans, Flour, Food, Grain

Industrial Covered Hopper Example vehicle

Vehicle description Suitable for mineral cargos, plastic pellets, and similar. Unsuitable for food-grade cargos.
Cargo classes allowed CC_COVERED_BULK
Cargo classes disallowed CC_POTABLE
Example cargos Quicklime, Sand, Sulphur

Flatbed Vehicle Example vehicle

Vehicle description Suitable for specific flatbed cargos.
Cargo classes allowed CC_FLATBED
Cargo classes disallowed Do not set
Example cargos Goods, Paper, Pipe, Steel, Timber

Food Tanker Example vehicle

Vehicle description Suitable for liquid food-grade cargos. Excludes non-food
Cargo classes allowed CC_LIQUID_BULK
Cargo classes disallowed CC_NON_POTABLE
Example cargos Food, Milk

Hopper Example vehicle

Vehicle description Open vehicles designed for gravity loading and unloading bulk materials that don't need covering.
Cargo classes allowed CC_OPEN_BULK
Cargo classes disallowed Do not set
Example cargos Coal, Iron Ore, Sand, Scrap Metal, Sulphur

Intermodal Container Vehicle Example vehicle

Vehicle description Refits most freight classes, to maximise compatibility with industry GRFs. No classes are disallowed.
Cargo classes allowed CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_FLATBED CC_EXPRESS CC_REFRIGERATED CC_WEIRD
Cargo classes disallowed Do not set
Example cargos Ammonia, Beans, Cement, Chlorine, Coal, Explosives, Fish, Flour, Food, Goods, Grain, Iron Ore, Livestock, Milk, Nuclear fuel, Oil, Oxygen, Paper, Pipe, Quicklime, Sand, Scrap Metal, Sodium Hydroxide, Steel, Sulphur, Timber

Livestock Carrier Example vehicle

Vehicle description Dedicated vehicle for livestock. No classes set. Refit specifically to cargo label LVST.
Cargo classes allowed Do not set
Cargo classes disallowed Do not set
Example cargos Refits only to specific cargo labels.

Mail Van Example vehicle

Vehicle description For mail and other high priority cargos.
Cargo classes allowed CC_MAIL CC_EXPRESS
Cargo classes disallowed Do not set
Example cargos Explosives, Fish, Food, Mail, Milk

Open Cargo Vehicle (less permissive) Example vehicle

Vehicle description An example of a vehicle that will refit most dry cargos, any cargos that set CC_PIECE_GOODS as a fallback, and non-standard cargos that rely on CC_WEIRD being handled. No classes are disallowed.
Cargo classes allowed CC_PIECE_GOODS CC_OPEN_BULK CC_WEIRD
Cargo classes disallowed Do not set
Example cargos Ammonia, Beans, Cement, Chlorine, Coal, Explosives, Flour, Food, Goods, Grain, Iron Ore, Livestock, Nuclear fuel, Paper, Pipe, Quicklime, Sand, Scrap Metal, Sodium Hydroxide, Steel, Sulphur, Timber

Open Cargo Vehicle (more permissive) Example vehicle

Vehicle description An example of a vehicle that will refit most freight classes, to maximise compatibility with industry GRFs. This assumes that cargos will be 'packaged' if necessary, for example liquids in barrels. No classes are disallowed.
Cargo classes allowed CC_PIECE_GOODS CC_OPEN_BULK CC_COVERED_BULK CC_POWDER_BULK CC_LIQUID_BULK CC_GAS_BULK CC_FLATBED CC_EXPRESS CC_WEIRD
Cargo classes disallowed Do not set
Example cargos Ammonia, Beans, Cement, Chlorine, Coal, Explosives, Fish, Flour, Food, Goods, Grain, Iron Ore, Livestock, Milk, Nuclear fuel, Oil, Oxygen, Paper, Pipe, Quicklime, Sand, Scrap Metal, Sodium Hydroxide, Steel, Sulphur, Timber

Ore Dump Vehicle Example vehicle

Vehicle description Open vehicles designed for bulk materials that don't need covering.
Cargo classes allowed CC_OPEN_BULK
Cargo classes disallowed Do not set
Example cargos Coal, Iron Ore, Sand, Scrap Metal, Sulphur

Passenger Vehicle Example vehicle

Vehicle description Simply passengers.
Cargo classes allowed CC_PASSENGERS
Cargo classes disallowed Do not set
Example cargos Passengers

Powder Tanker Example vehicle

Vehicle description Tank vehicle for handling powder cargos, which must be kept dry and are loaded / unloaded using pneumatic pressure to make the powder flow.
Cargo classes allowed CC_POWDER_BULK
Cargo classes disallowed Do not set
Example cargos Cement, Flour, Quicklime, Sand

Pressurised Tanker Example vehicle

Vehicle description Tank vehicle for transporting gases under pressure.
Cargo classes allowed CC_GAS_BULK
Cargo classes disallowed Do not set
Example cargos Ammonia, Chlorine, Oxygen

Refrigerated Vehicle Example vehicle

Vehicle description Temperature controlled vehicle for food-grade cargos.
Cargo classes allowed CC_REFRIGERATED
Cargo classes disallowed CC_NON_POTABLE
Example cargos Fish, Food, Milk

Tanker Vehicle (less permissive) Example vehicle

Vehicle description General-purpose tanker for liquid cargo, but unsuitable for food-grade cargos.
Cargo classes allowed CC_LIQUID_BULK
Cargo classes disallowed CC_POTABLE
Example cargos Oil, Sodium Hydroxide

Tanker Vehicle (more permissive) Example vehicle

Vehicle description General-purpose tanker, for any liquid cargo or gas cargo.
Cargo classes allowed CC_LIQUID_BULK CC_GAS_BULK
Cargo classes disallowed Do not set
Example cargos Ammonia, Chlorine, Food, Milk, Oil, Oxygen, Sodium Hydroxide
With thanks to all who helped