Swofty's addons ​

Swofty publishes these addons in the Addon Browser, next to everyone else's. Install them from there; they arrive switched off in every profile.

AddonIdBy
F1 25 RE-Optimizationxanpavle.re-optimizationxanpavle, ported by Swofty
Career Mode Editorswofty.career-editorSwofty
Driver Managerswofty.driver-managerSwofty
R&D: Tyres & Thermal Managementswofty.rnd-tyres-thermalSwofty

Install, update or remove one ​

  • Install it: open the Addon Browser, find it, and select Install. The launcher opens the Addons page with the new addon highlighted.
  • Turn it on: on the Addons page, toggle its switch in the profile you want it in, then press Play. From a terminal: swofty addons enable <id>.
  • Update it: when Swofty publishes a new version, Play becomes Update addons. See Updating.
  • Remove it: expand its row on the Addons page and select Remove addon. Install it again from the Addon Browser to get it back.

Launchers before 1.4.0 carried these addons in an addons/ folder next to bin/. Updating to 1.4.0 removes that folder; the installed copies stay installed and update from the Addon Browser.

F1 25 RE-Optimization ​

F1 25 RE-Optimization is xanpavle's renderer optimisation for F1 25, released under the MIT licence. Swofty ported it to a launcher addon with his permission. It makes the renderer do less work: it lowers a set of quality settings that cost a lot of GPU time, holds the expensive shadow, fog and crowd values down inside the engine, overrides a few engine-level renderer limits, and picks the upscaler your GPU supports. It tracks upstream 0.2.5.

  • It is off until you turn it on.
  • It works offline and in single-player only, like every modded session.
  • It is made for the Steam build of F1 25 (build 25251167). On any other build its hooks don't install, and swofty/loader.log says so with SAFE.
  • It doesn't change hardware_settings_config.xml in your Documents folder. The addon lowers the settings in memory as the game reads the file. When the game saves the file, for example after you change a graphics option, the values the addon lowered go back to yours.

What it lowers ​

The graphics profile lowers these on top of whatever preset you pick:

SettingBefore (example)With the profile
Volumetric fog map1920 × 1080512 × 288
World and night shadow maps40962048
32-bit sky shadow maponoff
Shadow and spot shadow sampling32
Crowd shadowsonoff
Screen-space reflections (SSR) quality42
Ambient occlusion (SSAO)31
Grass draw distance120 m80 m
Crowd billboard distance60002500
High-quality particlesonoff
Haironoff
God rays, lens streak, motion blur v2onoff
Car reflection mapsscale 1.0, one cube face updated per frame
Procedural cloud render scale2.0
Skid mark parallaxonoff
Texture streaming texel density bias0.25
GPU culling (cs_culling)offon
Ray-traced ambient occlusion and DDGIonoff

It leaves resolution, your preset, mirrors, ray-traced shadows and reflections, rain, the upscaler quality level (Quality, Balanced, Performance) and frame generation alone.

What it holds in the engine ​

The game clamps shadow, fog and crowd settings to your graphics preset after it reads the settings file. In-engine enforcement sets these where the engine reads them, after that clamp:

SettingTuned value
World, night, sky and spot shadow maps2048
Sky shadow cascades, night shadow sources4
Shadow and spot shadow sampling2
Volumetric fog map512 × 288
Crowd billboard distance2500
Texture streaming budget2048 MiB
  • Cheaper (the default) uses the lower of your preset's value and the tuned value, and turns off sky-shadow low LOD, the 32-bit sky shadow map, crowd shadows, god rays, lens streak and motion blur v2. It never turns an effect on.
  • Target always uses the tuned value, turns the same effects off, and keeps rain, track heat haze, ground cover, grass flattening, volumetric fog and night character shadows on.
  • Off leaves the engine's values.

Settings ​

You'll find these in the addon's row on the Addons page and under ADDON SETTINGS in game.

SettingIdDefaultDoes
Apply the graphics profileapply_profileonLowers the settings in What it lowers
Keep ray-traced AO and DDGIkeep_rt_ao_ddgioffLeaves ray-traced ambient occlusion and DDGI as you set them
In-engine enforcementenforce_modecheapercheaper, target or off, as in What it holds in the engine
Pin effectspin_effectsonTurns the effects in What it holds in the engine off (and, in Target mode, on); off leaves them to your preset
UpscalerupscalerautoPicks the upscaler: auto, dlss, fsr3, xess, taa, off (no anti-aliasing) or keep (your in-game choice)
VRS and async computeoverride_vrs_asynconTurns on variable rate shading (Renderer.Gfx.enableVRS) and async compute (Renderer.Gfx.enableAsyncCompute)
Grass and ground cover capsoverride_ground_coveronCaps ground-cover instances: groundCoverMaxInstances 40000, groundCover2MaxInstances 80000, groundCover2MaxMeshInstances 4000, and turns off groundCoverForceUltraQuality
Static instance capsoverride_instance_capsonSets Renderer.maxStaticInstances and Renderer.maxPVSRenderInstances to 20000. Distant props can pop in
Log setting readslog_readsoffWrites every engine setting the game reads, and each change, to swofty/loader.log

The graphics profile, the upscaler and the enforcement mode apply when the game reads its settings at launch, so a change to any of them applies on the next launch. The upscaler applies with the profile on or off. FSR 3 is written the way the game reads it (fsr3="1" with cas="1"); before 0.2.5 a forced or automatic FSR 3 did not engage.

With upscaler set to auto, the addon picks by GPU:

GPUUpscaler
NVIDIA RTX 20, 30, 40 and 50 seriesDLSS
NVIDIA GTX 10 and 16 seriesFSR 3
AMD RadeonFSR 3
Intel ArcXeSS
Other Intel GPUsFSR 3
Not detectedYour in-game choice

Its log ​

The addon writes to swofty/loader.log in the game folder. Its lines start with [re-opt]: the GPU it detected, the upscaler it picked, the settings it lowered and each hook it installed or skipped.

Publishing