1.9.34 ​

Swofty Launcher for F1 25 1.9.34 lets addons build optional content around other addons and makes their setting reads cheap.

Addons ​

  • An op, or a whole op file, can name the addons it needs with "when": { "addon": "track.istanbul_park" } (an id, { "id", "version" } with a range, or a list). While a named addon is off in the profile, those ops are left out of the build, so an optional round can't break a profile when its track is off. See Content that needs another addon.
  • A toggle can list the addons it needs with "needs". While one is off, the toggle shows off and greyed out on the Addons page with the addon it needs, the build treats it as off, and the player's own choice is kept for when the addon is back. A toggle with "default": true and "needs" is on exactly while the addon it needs is on.
  • The option id addon is reserved, since when.addon names addons.
  • Addons' setting reads (SwoftyApi::setting, the std lib's SWOFTY_SETTING) come from a cache until the value can change, without taking the registry's lock. An addon that reads a setting on a busy game path, such as a wrap called many times a frame, no longer waits on the registry each time.
  • Car_SuspensionDamage_OnCollision is a function binding, so native addons can wrap the suspension damage callback for each car contact. See Car physics.