0.2.0
Swofty Launcher for F1 25 0.2.0 splits the app's content into addons and mods, adds a Mods page for content packages and tracks, and loads mod content in memory while the game boots.
Download it from Releases. The Windows zip and the Linux tar.gz each hold the launcher and swofty in bin/ and the in-game loader in loader/.
Addons and mods
- Addons are code, settings and in-game UI. They were called mods before this version. Mods are content packages such as
.serpsfiles, with no code. Addons, mods and maps explains the difference. - The launcher's Addons page, the
swofty addonscommands and the in-game loader use the new name. Plugins load fromswofty/addons/, and the oldswofty/mods/folder still loads. - The old
swofty mods install,enableanddisableforms are forwarded toswofty addons.
The Mods page
The Mods page comes from Team Simplified, a built-in addon that reads .serps packages made with Simplified Studio. It is based on the Simplified Suite by Team Simplified. See Mods and tracks.
- Drop a
.serpsfile, a mod zip, a mod folder or a track zip anywhere on the launcher window, or use Import…. Addon folders,.swoftymodfiles and addon zips dropped on the window install as addons. - The library is shared by every profile. Each profile keeps its own order and switches, and the mod lower in the list wins.
- Each mod is compared with the clean game files at import. The expanded row shows WHAT IT CHANGES and CONFLICTS, and the row tags show which mods it overrides.
- The build applies only the records, resources, text entries and files each mod changes. Mods that change different rows of the database or different resources of an archive combine.
- Removals of database records apply only when the mod was made for the installed game version.
swofty mods list,import,enable,disable,moveandremovedo the same from the command line.
Tracks are mods
- Community tracks import on the Mods page like any other mod, and there is no Maps page. A track's id is its track code, or
<code>-trackwhen a mod in the library already has that id. Importing a track again replaces it. - With the in-game loader from this version there is no limit on how many tracks are on. Each track's archive goes to its own path,
2025_asset_groups/environment_package/tracks/<code>/<code>.erp, and its asset groups register at boot. Without asset group support the limit is eight. - Tracks from
$DATA/maps/move into the library, turned on in the same profiles, the first time the launcher starts or aswoftycommand runs.swofty --help,swofty --versionand mistyped commands leave the data folder alone. swofty mapsis another name forswofty mods.- Track packages made with the Simplified Track Installer import as ordinary
.serpsmods.
Custom Grid Size on tracks
Custom Grid Size now reaches community tracks. At build the launcher gives each track's world enough grid slots, garages and pit boxes for the chosen grid size. Sepang goes from 24 grid slots, 12 garages and 12 pit boxes to 28, 14 and 14 for 28 cars. The new garages have no dressing.
ADDON SETTINGS
The in-game menu entry under Career is now ADDON SETTINGS. It lists every enabled addon and track. Built-in addons that only add launcher pages, such as Team Simplified, are not listed.
Runtime assets
The in-game loader now applies content in memory while the game boots, and the game files stay stock. swofty build writes swofty/assets.json and swofty_core reads it.
| Kind | What swofty_core does | Status |
|---|---|---|
group | Registers asset groups | Stable |
erp | Replaces and adds resources inside archives | Stable |
db | Changes game database records | Stable |
lang | Sets and adds language strings | Stable |
file | Overlays loose game files | Experimental |
- An experimental kind runs in memory only when
"runtime_assets"in$DATA/config.jsonnames it. Otherwise it is built into the game folder. "build_assets"in$DATA/config.jsonkeepserp,dborfileon the build route.swofty buildlists every conflict, with the addon or mod that wins.
Asset API and Loading mods at runtime cover the details.
For modders and addon authors
operations.assetsinswofty.jsonnames asset op files withgroup.register,erp.put-resource,db.set,db.put-record,db.remove-record,lang.set,lang.table,file.putandwarn.operations.filesandfile.putnow replace and add loose game files.- Native plugins load mods from their own code with
swofty/assets.hpp(API version 4, theassetscapability), and"early": trueloads a plugin before the game database. - The build installs a third-party addon's plugin DLLs, and the files listed in
fileson itsoperations.nativeentry, toswofty/addons/<id>/in the game folder, and the loader loads them from there in load order. - The build hash covers every source file an op names.
- The stock language files are read out of the game's executable, and
.lngfiles can be read, written and compared. - The Launcher API lets an addon add sidebar pages, import dropped files, run a build hook, add
swoftycommands and add a summary to profile cards. Built-in addons use it in Rust. - Third-party addons get the same through a helper program named in a
launcherblock inswofty.json. The helper talks JSON lines over stdin and stdout.templates/launcher-addonis a working example.
Launcher
- The title bar shows the version.
- The sidebar shows Profiles, Addons and each addon's pages as tiles, with the addon's name above its pages. A button at the bottom switches it to a list.
- Addons can have an icon. Team Simplified shows its logo.
- Turning an addon off hides its pages. Team Simplified is on by default and can be turned off per profile.
- The play bar only shows a status when there is something to act on, such as a crash or settings waiting to rebuild.
- Changes made in the launcher while a build runs are kept.
Docs
The docs are split into two tabs:
- Tutorials for players: installation, addons, mods and tracks, profiles, in-game settings and restoring the game.
- Reference for developers: Creating mods, Creating addons, the Standard library, the Game API, the file formats and the
swoftycommand line.
Old page addresses redirect to their new pages.
Known issues
- Time Trial on an added track does not load: Okayama crashes and Sepang stays on the loading screen. Use a Grand Prix.
- On added tracks, Custom Grid Size places the extra grid slots and garages in a straight line from the last stock ones, and garages from 13 up have no dressing.
erp.replace-resource,erp.add-resource,erp.remove-resourceanderp.add-mipmapsare not built. Removals of resources in mods are left out, and the build warns with their count.- Text changes need the in-game loader.
- Track-select pictures share one invitational event picture,
invitational_image_2. - 7z and RAR archives are not read. Unpack them and import the folder.