Database edits ​

Database operations change game values in game_package/gamedatabases/gamedatabases.2025.bin.

File format ​

List the operation file in operations.database in your manifest:

json
{
  "schema_version": 1,
  "ops": [
    { "op": "set", "select": "tracks.Track_3", "field": "numberOfCorners", "value": "16" }
  ]
}

Values are strings. Write arrays as comma-separated values, such as "0,-0.6,0".

Operations ​

OperationRequired fieldsPurpose
setselect, field, value or value_fromChange a field
add-rowtable, from, setCopy a row, then change its fields
remove-rowselectRemove a row
list-appendselect, field, valueAdd a value to a list if missing
list-removeselect, field, valueRemove a value from a list

For set, use create: true and a type tag to add a missing field. value_from copies a value from another database path.

Selecting rows ​

A selector names a row or finds it by a field:

SelectorMeaning
tracks.Track_3Row at index 3
entrants.teams.team[_metadata_=gm_cadillac_26]Team with this label
{446668bc25ba571c}[_metadata_=f1_26]Row in a table whose full path is unknown

Use labels where possible. Row numbers can change between game builds.

The row-count rule ​

Adding or removing rows also updates the table's _instancecount_. The game ignores rows beyond this count.

Row additions and removals need the table's real path. A {hash} placeholder can be used for set, but not row changes.

Settings ​

A db option changes operations at build time:

  • in any string is replaced with the option's value: true or false, the number, or the choice value.
  • "when": { "id": value } keeps the operation only when every listed option has that value.
json
{ "op": "set", "select": "rules.stop_go_penalty", "field": "penalty_duration", "value": "{{penalty_seconds}}" },
{ "op": "set", "select": "entrants.teams.team[_metadata_=gm_cadillac_26]", "field": "display_name_code", "value": "CAD",
  "when": { "short_names": true } }

Changing a db option marks the profile for a rebuild. The next launch, or swofty build, applies it.

Applying changes ​

Operations run in mod load order. Later changes to a field replace earlier values.

See Game database (GVDB) for the file format.