1.6.0
Swofty Launcher for F1 25 1.6.0 adds the standard library: a shared registry that addons add records to, with the core applying them in the game. Addons made for 1.5 and earlier work as before.
Standard library
- The registry holds cars, liveries, engine sounds, career seasons and ratings, era boxes, teams, drivers and wearables as records. Addons add records, make variants of them and layer edits on top, and the core applies the result in the game.
- Thirty registries ship, each with a schema. An addon that is only data files, with no DLL, adds records to any of them from its
registry/folder. - Teams, drivers and wearables apply from records. A new team gets its names, colours, side data, logos and drivers' suits, helmets and gloves without a database file edited by hand. One logo image per place is scaled to every texture array that place feeds, and a place with no image uses the donor team's logo.
- A career season can name up to 12 team slots, and
career::apply_teamsdresses them as the season's teams. A team an addon adds to a season shows on the new-career Team Select and in the career with its own names, colours and logo, and its new drivers get career rows. - Liveries and engine sounds apply from records. An engine sound redirects to the addon's own bundle file.
- Variant era boxes use the base's tile art, show a literal title as written and keep the base's team rows.
- A driver record with no donor names a driver row that already exists.
- A career freezes each season's line-up, ratings and rules into its save, season by season. The save default is dry in 1.6.0: the size is logged and nothing is written unless
SWOFTY_REGISTRY_SAVE=on. - Career contents, Team HQ tabs, the career wizard, characters, strings and addon options sit in registries underneath their 1.5 calls, and addons that call them behave the same.
- Game hook points:
career.calendar.add_activity,career.contract.decide,career.contract.sign,session.fuel.load,session.player.control,ai.controller.update,car.controllers.rebuiltandhud.spectator.visible. - Career operations:
apply_lineup,set_driver_ratings,swap_drivers,set_slots,set_seat,set_car_number,set_look,apply_teams,teams::set_logoandtracks::set_track_fuel. - The core sizes the game's database from the records addons register, so a profile past 838,860 records boots with every record applied. After each boot it writes how full the database is.
career.calendar,career.modeandvehicle.handlingare stored and applied nowhere. The log names any registry that has records and nothing that applies them.- Stat ids are kept in one store per install. The core's reports and state files (
registry/effective.json,conflicts.json,room.json,ids.jsonand the career index) are in the launcher's data folder, not the game folder.
Addons
- Progressive Career reads its seats and ratings from the registry, calls the career operations, reports each season's year and uses the hook points instead of its own wraps. Choose Driver shows the seats other addons' records give a season, and a team a record adds to a season races in the career. Its 1.5 exports stay.
- Classic Seasons registers each season's cars, liveries, sounds, era boxes and shared drivers as records. Seasons 2016 to 2024 build the same game as before.
- Career Editor uses the hook points and operations.
- Two example addons ship in the templates: a what-if history editor and an engine sound pack with a V10 variant of the 2017 box.
Launcher
- Developer mode adds the
swofty devtools:new,link,run,logs,check,testandpack.packwritesregistry.lock.json. - Play checks each addon's
requires,breaksandconflicts. A missing requirement or abreakson an installed addon stops Play and names the fix. Aconflictsshows a warning. - Each profile has its own addon storage. Saves stay shared, and each career records which profile started it.
- The conflicts view shows the core's last conflicts, and an addon's tile shows a status line when something it registered did not apply. Send Logs adds
effective.json,conflicts.jsonandcatalog.json. swofty testplans and runs addon tests:plan,run,shellandfixture capture|list|check. Thenone,bootandbenchmarkenvironments run in game, and the title screen is passed by the virtual pad after 15 seconds. Tests run in a save sandbox that leaves your own saves unchanged. Therouteandcareerenvironments and thecareer load,advanceandsave nowcommands are experimental and do not work yet.- If the game database has no room for a profile's records, the next launch moves older addons' database edits to the file route and pads the table. That costs one restart.
Not in 1.6.0
- The tracks system comes in a later 1.6 release.