The Mod Editor is a small application that ships inside the game folder and builds mod packs. It runs entirely offline in your browser, from the file itself — no install, no npm, no server, no account. The database engine runs inside the page.
Open it from the main menu: Modding Tools → Mod Editor. It opens mod-editor/index.html in your system browser; you can also double-click that file yourself.
It opens behind an “experimental tools” warning. That is about the tools being young — nothing the editor does can touch your saves.
The layout
Three columns: the rail of sections on the left, the entries of the selected section in the middle, and the selected entry’s form on the right with a live render above it. What you see in the preview is drawn by the game’s own colour code — it is what will race.
Making a pack
- Open
index.html. It starts on a new pack with one team ready to edit. - Pick a section, press + Add, fill the form. The preview updates as you type: the livery on a single-seater, a six-axis radar for a driver’s abilities, the brand board for sponsors and suppliers.
- Drop a PNG on a logo field to attach an image. It is squared to 195×195 automatically — the format the game’s own logos use.
- Check the Audit tab (see below).
- Save pack (or
Ctrl+S) into the game’smods/folder.
An amber dot next to the pack name means unsaved changes, and the browser warns you before you close the tab.
On Chrome and Edge, Save writes straight back to the file you opened. On Firefox it downloads the file — move it into mods/ yourself.
The Audit tab
The Audit tab lists what the game will accept from your pack without complaining, and only punish you for in play. Each finding says what will actually happen, jumps to the row that needs the edit, and can be ignored for the session. Nothing here blocks saving. A row with an open problem is marked red in the entry list too, so you see it where you author it.
| Finding | Why it matters |
|---|---|
| A team that does not start 2 cars | A driver’s seat is his car — primary drives car 1, secondary car 2. Two drivers on the same seat leave the other car empty, and it does not start |
| A driver assigned to a team the pack does not define | The seat is ignored and he joins the free-agent pool |
| A driver under 18 assigned to a team | The series’ age rule wins: he is not seated, and can be signed once old enough |
| A driver under 16 | Mod-only prospect: ages every season, hidden from Scouting until 14 |
| Two teams with the same name | Their seats are safe (bindings resolve by id), but standings, news and every team list show the same name twice |
| Two drivers with the same code | The game renames one at load, silently |
| A row with no name | Skipped by the game |
| More than 14 teams | Check your grid is really meant to be that long |
| A round marked as a circuit with none chosen | It races a generated track instead of yours |
| Fewer drivers than the grids need | The game generates the difference |
| A code that is not three letters | Three is what the standings are laid out for |
The first line is why the tab exists: a 13-team pack once put 22 drivers on the grid instead of 26, because four teams had two drivers on one seat and none on the other — and nothing anywhere said so.
Pack format, and upgrading an older pack
Settings → Pack format says which version of the pack format the file was
read as, and which one saving will write (v2, needing game 0.5.4-6 or
newer).
v2 gives every row a stable id, and every binding — a driver’s seat, a sponsor’s or supplier’s team, a calendar round’s circuit — points at that id instead of the display name. Renaming a team therefore keeps its people, and two teams may share a name without the second one fielding nobody. Supplier stats are also written under their real names per category, and an empty colour or car model now means keep the generated one instead of painting the car grey.
You do not have to do anything: opening an older pack upgrades it, and saving writes the new format. The button on that card is the explicit version — it reports how many rows were given an id, how many bindings were rebuilt, and any reference that points at something the pack does not define (the game ignores those; the editor never deletes them for you).
Settings page
The pack’s own identity and world rules:
- Name / author — what the pack picker shows.
- Scenario — New Series (the player joins the grid with a new team) or Imposed (the player takes over one of your teams at race 1). Imposed reveals the extra fields: infrastructure, palmarès, founding year, and the “signed to” bindings on drivers, sponsors and suppliers.
- Start year — the calendar year of season 1, so a pack can open in any era.
- Section modes — extend or replace, per section. See mod packs.
- Championships — the world runs eleven series, and the game fills the seats your pack leaves empty. Untick the ones you do not want and the minimum number of drivers your selection needs is shown live; leave the playable series alone and untick the rest, and your drivers are the only people in the world.
- Regulations — the points scale and the 107 % qualifying rule.
Circuits and Calendar pages
- Circuits — imports
.circuitfiles saved by the in-game Circuit Editor, deduplicated by name. - Calendar — orders the season’s rounds. Each round is either one of your imported circuits or an autogenerated track (pick a character and a length). Auto-fill from guaranteed slots places each circuit that declared a guaranteed slot at that round; the rest stay in the pool.
Notes on specific fields
Team budget. Starting budget is in millions and sets the cash directly. Behaviour profile (small / medium / large) is not just an amount — the game consults it for AI cash reserves, the infrastructure cap, enterprise value, prestige, driver selectivity and R&D ambition. Leave it blank and it is derived from the budget, so a $145M team actually behaves like a big team. Set it explicitly only when you want a mismatch on purpose.
Liveries. Two different things wear the colours, and both are previewed: the career car (one of twelve side-view models, your three colours replacing its three painted zones) and the live-2D car (the top-down sprite, which additionally wears one of twelve livery patterns — leave it on Auto to let the game pick).
Custom car sprite. A PNG replacing the built-in model for one team: side view facing right, transparent background, resized to 256 px tall on import. Paint the recolourable zones in pure red / green / blue — they become team colours 1 / 2 / 3, with the per-pixel shading preserved; greys and blacks (tyres, cockpit) are left alone. Custom sprites carry no sponsor zones, so they race without decals.
Drivers. Each ability has two handles — the current value and the ceiling it can grow into — plus a growth curve. Randomise abilities rolls both using the game’s own age bands. The header chart plots the resulting career season by season; read it as the shape of a career, not a guarantee. Traits offers the game’s sixteen, with conflicting pairs greyed out and each trait’s own tier ladder. Suggest derives a salary from the weighted stat total, Generate builds a unique three-letter code from the surname.
Suppliers. The category decides the form — an engine, a tyre and a fuel maker are three different things, and the technical card changes with it. Leave a stat at 0 and it keeps whatever the game generated.
Sibling tool
At the bottom of the rail, Language Editor opens the translation editor in a new tab — deliberately a new tab, so the pack you are editing stays in memory.