Carbin Editor

May 6, 2026 ยท View on GitHub

The Carbin Editor page lets you open, inspect, edit, and rebuild .carbin scene files - the primary packaging format used by ForzaTech to describe a car's complete visual representation. A carbin file defines which .modelbin geometry files make up each named section of the car, how those sections behave at different upgrade levels, and scene-level properties such as the skeleton path, LOD flags, and build metadata.

The format is used by the game engine at runtime as CarScene to load and instance every visible part of the car, from the body shell and interior to swappable bumpers and spoilers.


Opening a File

  • Drag and drop a .carbin file directly onto the page.
  • Use the Open button in the toolbar (Ctrl+O).
  • Use the New button (Ctrl+N) to create a blank carbin pre-filled with Forza Horizon 5 defaults.

Toolbar

ButtonShortcutDescription
NewCtrl+NCreate a blank carbin with default FH5 settings
OpenCtrl+OBrowse and open an existing .carbin file
SaveCtrl+SOverwrite the original file with current edits
Save AsCtrl+Shift+SWrite to a new file path
CloseCtrl+WUnload the current file and return to the empty state

The loaded file name and a status message are shown in the header. A progress banner appears while the file is being parsed or saved.


Page Tabs

Once a file is loaded the editor is split into three tabs:

TabDescription
ConfigurationScene-level metadata, version, skeleton path, LOD flags
Standard PartsNon-upgradable parts and their model references
Upgradable PartsParts with per-upgrade-level model variants and shared models

Configuration Tab

File Metadata

Displayed at the top of the tab after loading:

FieldDescription
Scene VersionVersion number read from the carbin binary header
Model VersionVersion of the embedded model blob entries
SeriesWhether the file was detected as Horizon or Motorsport, based on scene version

Scene Settings

FieldDescription
Output Game VersionDropdown selecting which game version to write when saving. Changes scene and model version numbers accordingly
OrdinalNumeric identifier for this scene, used internally by the game
Scene NameShort identifier string derived from the skeleton path (e.g. CUSTOMCAR)
Media NameAsset media folder name used to build game paths (e.g. CUSTOMCAR)
Skeleton PathFull in-game path to the _skeleton.modelbin file (e.g. game:\media\cars\CUSTOMCAR\scene\_skeleton.modelbin). This path is used by the engine to load bone data for animation and part attachment
Build Strict ModeWhen enabled, the game will reject the carbin if any referenced asset is missing rather than silently skipping it

Supported Output Game Versions

SelectionScene VersionModel VersionSeries
Forza Motorsport 5514Motorsport
Forza Motorsport 6 / 7517Motorsport
Forza Motorsport 202310 - 1121Motorsport
Forza Horizon 2515Horizon
Forza Horizon 3 / 4516Horizon
Forza Horizon 5618Horizon

Level of Detail (LOD) Flags

A set of checkboxes controls which LOD levels are included when the scene is built. Each flag is a single bit in a 16-bit field written to the carbin:

FlagDescription
LODSShadow LOD mesh group
LOD0Highest detail level (closest camera distance)
LOD1Second detail level
LOD2Third detail level
LOD3Fourth detail level
LOD4Fifth detail level
LOD5Lowest detail level (furthest camera distance)

Typical configuration for Forza Horizon 5 has LODS through LOD4 enabled and LOD5 disabled.


Standard Parts Tab

Standard parts (called non-upgradable parts in the format) are car sections that have a fixed geometry that does not change with in-game upgrades. The entire car body, doors, trunk, interior, windows and similar components are stored here.

Parts List (left panel)

Lists all standard parts in the file. Each entry shows the part type name and the number of models attached to it.

Toolbar buttons:

ButtonDescription
AddAdd a new empty standard part defaulting to CCarParts_CarBody type
RemoveDelete the currently selected part and all its models
ConvertMove the selected part to the Upgradable Parts tab, adding a default stock upgrade entry

Part Configuration (right panel)

When a part is selected:

FieldDescription
Part TypeDropdown selecting the CCarPartsEnum value for this section (see part types below)
VersionInternal version number for this part entry, preserved from the source file for byte-accurate round-trips
Bounding BoxExpandable section showing Min/Max XYZ extents for the part, used by the engine for culling

Part Types Reference

The following CCarPartsEnum values are available:

ValueNameDescription
0CCarParts_EngineEngine geometry
1CCarParts_DrivetrainDrivetrain components
2CCarParts_CarBodyPrimary car body shell
3CCarParts_MotorMotor parts (electric vehicles)
4CCarParts_BrakesBrake geometry
5CCarParts_SpringDamperSuspension spring / damper parts
6CCarParts_AntiSwayFrontFront anti-roll bar
7CCarParts_AntiSwayRearRear anti-roll bar
8CCarParts_TireCompoundTire geometry
9CCarParts_RearWingRear wing / spoiler
10CCarParts_RimSizeFrontFront wheel rims
11CCarParts_RimSizeRearRear wheel rims
12 - 33CCarParts_Camshaft through CCarParts_DifferentialInternal engine and drivetrain upgrade geometry
34CCarParts_FrontBumperFront bumper
35CCarParts_RearBumperRear bumper
36CCarParts_HoodBonnet / hood
37CCarParts_SideSkirtsSide skirts
38CCarParts_TireWidthFrontFront tire width geometry
39CCarParts_TireWidthRearRear tire width geometry
40CCarParts_WeightReductionWeight reduction parts
41CCarParts_ChassisStiffnessChassis stiffness parts
42CCarParts_BallastBallast
43CCarParts_MotorPartsMotor upgrade parts
44CCarParts_WheelStyleWheel style geometry
45CCarParts_AspirationAspiration upgrade parts

Models (right panel)

When a part is selected its model list shows every .modelbin reference attached to it.

Each entry displays:

  • The .modelbin file name
  • The full in-game asset path (e.g. game:\media\cars\CUSTOMCAR\scene\body_a.modelbin)
  • The AO swatchbin path when one is assigned

Toolbar buttons next to the list:

ButtonDescription
AddBrowse for one or more .modelbin files to add to this part
RemoveRemove the selected model entry from the part
Set AOBrowse for a .swatchbin ambient occlusion texture to associate with the selected model
MoveMove the selected model to a different part in the list

Right-click a model entry to edit its model path or AO path directly as text.

Use the Search box above the list to filter by file name or game path.

The Model Version field next to the search box shows the version number of the selected model entry and can be edited for byte-accurate round-trips.

Material Indices

Below the model list, the Material Indices card shows the material name-to-index mapping for the selected model entry. These map material slot names (e.g. body_paint) to integer indices used by the material system.

ButtonDescription
AddAdd a new blank material index row
RemoveRemove the selected row
LoadImport material names from a .modelbin or .carbin file. When loading from a carbin, a selector dialog lets you pick which model to copy from

Each row has an editable material name field and a numeric index value.

Transform and Bone

Below the material indices, the Transform and Bone card shows the world-space position and attachment settings for the selected model:

FieldDescription
Bone NameName of the skeleton bone this model attaches to (default is root)
Bone IDNumeric bone index
Snap to ParentWhen enabled the model snaps to the parent bone transform
Pos X / Y / ZWorld-space position offset for the model
ScaleUniform scale factor

Render Properties

The Render Properties card controls how the model is drawn:

FieldDescription
Draw GroupsCheckboxes for Exterior, Cockpit, Shadow, Hood, Windshield Reflection, Driverless Cockpit, Windshield Reflection Driverless Cockpit, and Proxy LOD. Controls which rendering passes include this model
Receives Impact MaskModel receives bullet or debris impact decals
Receives Splatter MaskModel receives mud / water splatter
Receives DamageModel participates in deformation damage
Receives DirtModel receives dirt accumulation
Receives OilModel receives oil splatter effects
Receives RubberModel receives tyre rubber marks
Receives RainModel receives rain wetness effects
Is Interior WindshieldMarks the model as an interior-facing windshield surface

Droppable Part Settings

When a model is configured as a droppable part (a panel that detaches on collision damage):

FieldDescription
Is DroppableEnables detachment behaviour
Drop ValueThreshold value controlling when the part detaches
Drop Part IDHex identifier linking this model to a physics drop part definition
Break AmountForce amount required to break this part free

Upgradable Parts Tab

Upgradable parts are sections of the car that have multiple geometry variants, one per upgrade level. Examples include front and rear bumpers, hoods, and side skirts. The game selects which variant to render based on the installed upgrade level.

Parts List (left panel)

Lists all upgradable parts. Each entry shows the part type name.

Toolbar buttons:

ButtonDescription
AddAdd a new empty upgradable part defaulting to CCarParts_FrontBumper
RemoveDelete the currently selected upgradable part
ConvertMove the selected part back to the Standard Parts tab (upgrade IDs are cleared)

Upgrades

When an upgradable part is selected, the Upgrades list shows each upgrade level entry.

Toolbar buttons:

ButtonDescription
AddAdd a new upgrade entry
RemoveRemove the selected upgrade entry

Each upgrade entry has:

FieldDescription
VersionInternal version number for this upgrade entry
LevelThe upgrade tier this entry represents (0 = stock)
Is StockMarks this entry as the default stock configuration
IDUnique identifier for this upgrade, referenced by shared model entries
Car Body IDLinks this upgrade to a specific car body database entry
Parent Is StockIndicates the parent upgrade is stock
Bounding BoxMin/Max XYZ extents for this upgrade level's geometry

Shared Models

Below the upgrades list, the Shared Models section lists models that are used across multiple upgrade levels. Each shared model entry has a list of Upgrade IDs specifying which upgrade levels it appears with.

Toolbar buttons:

ButtonDescription
AddBrowse for a .modelbin to add as a shared model
RemoveRemove the selected shared model
Add Upgrade IDAdd an upgrade ID reference to the selected shared model
Remove Upgrade IDRemove the selected upgrade ID from the shared model

The model detail fields (material indices, transform, bone, render properties, droppable settings) work identically to those in the Standard Parts tab.


Version and Series Detection

After loading, the Configuration tab shows the detected Scene Version and Model Version read from the binary. The editor uses these to determine the correct enum encoding for part types:

  • Scene version 6 indicates Forza Horizon 5
  • Scene version 10 or higher indicates Forza Motorsport 2023
  • Scene version 5 is shared between older Motorsport and older Horizon titles; the model version is used to narrow it further
  • Part type values are encoded differently in older versions (CCarParts_EnumV1 vs CCarParts_Enum). The editor handles this automatically during both read and write

Saving Changes

Use Save (Ctrl+S) to overwrite the original file in place, or Save As (Ctrl+Shift+S) to write to a new path. The Output Game Version dropdown on the Configuration tab controls which version numbers are written to the file. Changing this dropdown before saving is how you retarget a carbin to a different game.

Back up the original .carbin before saving. An incorrect model path, wrong version number, or a missing skeleton path can prevent the game from loading the car entirely.


Converting a .carbin

To convert a .carbin to a different game version with full path rewriting and blob header updates, use the Conversion Tool page. The Carbin Editor can change the version numbers manually via the Output Game Version dropdown but does not rewrite game paths or model blob internals. The Conversion Tool handles the complete transformation in one step.