1.6.5
Swofty Launcher for F1 25 1.6.5 adds the tracks system: tracks, venues and track data as registries, each Grand Prix and Time Trial box's track list worked out from the tracks that fit it, and a guard that stops a track a box can't run. Track addons made for 1.5 work as before.
Launcher
- EA app copies: the launcher waits 5 minutes for the EA app's cloud sync before asking you to press Play there.
- Team logos no longer rebuild on every Play: the launcher reuses them while your addons are unchanged, which saves up to 40 s of game start with many season addons on.
- A build that Windows briefly refuses (often an antivirus scanning the file) now retries instead of stopping with Access is denied, and the error names the folders to exclude.
Standard library
- Four registries, all experimental:
track,track.venue,track.dataandtrack.per_package, inswofty/systems/tracks.hppwith their schemas. The headers now define 37 registries. See Tracks. - Every stock track with assets is a record,
game/<code>, and each stock data block isgame/<code>/<data set>. The dormant stock rows, such asgame/sochi, are records a track can fill withslot. - A track record (
registry/track.json, ortracks::tracks.add) adds a track without database files: the core clones its base track's rows in every data set at boot, adds its menu entries and names, points its menu pictures at the ones the build makes for it and gives it a stat id that stays the same at every start. The launcher places its files. - An added track's data blocks are variants of its base's, so layers on the base reach it until it sets a field itself.
track.datavalues are written at boot, and fuel again at session load. - Venues are real circuits,
venue/<key>, seeded frompackages/sdk/std/data/venues.json: 39 of them, each with its name, country, the aliases a track's name is matched against and the stock track that provides it. A venue resolves to the last enabled track in load order that provides it. - With no record in the tracks registries and no track made for 1.5, the core doesn't read the game database for the tracks at boot.
- A track made for 1.5 stays on
track.add. The launcher reports it to the core, which lists it as<addon id>/<code>with the venue its name matches. It runs Time Trial as before. - Each box's track list is the season's real calendar first, from the calendar its package names, then every other track that fits the box. A track fits when its world has a garage for every team and a grid slot for every car, every car has AI data there, and, in Time Trial, the track supports it. A venue a calendar repeats is listed once. The list and the tracks left out, with the reason, are in the log and
catalog.json, which holds the boxes of the last build that ran, andswofty registry tracksprints the current profile's. The track select screen still shows the game's own list. - On the Grand Prix and Time Trial track select screens, a guard stops a track the box can't run before the session loads and says why.
track.per_packagegives one box its own data for a track or a venue, from the box's addon or any addon whose record names the box inpackage. This release applies its fuel when the box is picked and puts it back when the box is left; its other fields are stored.- A box's
fuel.burn_per_lapsets the track's fuel-per-lap figure, which the game uses for the MFD fuel delta, the fuel strategy and refuelling. The car's real burn comes from its power unit, and the race's starting fuel stays the same. See Whatburn_per_lapchanges. - A template,
templates/std/track, adds Hockenheim as a track record in data files and in code, with tests.
Addons
- Classic Seasons 2016 to 2024 each register the season's real calendar as
career.calendarf1_<year>and name it in the season's package. A round at a venue no stock track provides, such as Sepang or Hockenheim, is dropped until a track addon provides that venue. Their database rows are unchanged.
Not in this release
track.layer,track.slotsandtrack.ai_line, thetrack.data.getpoint,ui.track_select.build, a career racing each season's real calendar, and Time Trial on added tracks.