Repository navigation
Forza Mod Tool v1.2.6
Forza Mod Tool v1.2.6
Changes since v1.2.5.
- Standardized Motorsport display wording and documentation to FM8. Crypto resource identifiers and file-format handling are unchanged.
(NEW) Garage Viewer (FH6)
-
Batch-edit Original Owner, Distance Driven and Top Speed across selected cars. Check only the fields to replace; typing checks that field automatically, and mixed values remain unchanged unless chosen. Typed validation and writes are atomic across the whole selection. Invalid drafts retain the selection; applying a batch preserves it without selecting extra cars.
-
Selected cars now have a larger, higher-detail cached preview below their fields. The preview grows with the window/panel and uses a separate bounded cache. Rapid selection changes cannot leave an image from a previous selection; multi-selection clears the single-car image.
-
The owned list can be resized vertically against the selected-car fields and horizontally against the stock catalog. Collapsing the fields frees their space; reopening them restores the resized split for the current session.
-
Garage, catalog and selected-car panel scrollbars match the other tabs: slim, dark rounded thumbs with pink drag highlighting, in both orientations.
-
Added actual per-instance garage previews from FH6's local thumbnail cache, matched through the saved CTN reference and cache manifest. Visible/selected images load lazily at bounded sizes; absent previews remain placeholders instead of guessing from the model ID. Optional cache-folder selection is available. Cache files are read-only and not bundled. Windows WebP decoding support is needed for previews, not for garage editing.
-
Added editable Original Owner, Distance Driven and Top Speed fields for selected garage instances. They use the existing Career_Garage storage values (no guessed unit conversions); Original Owner does not change account identity. Apply, selection changes and export validate pending drafts. Invalid values retain the draft and block the action. Numeric writes are typed/parameterized; Top Speed accepts dot or comma on either regional layout. Revert restores original values.
-
Condensed the owned garage and stock catalog into collapsible, alphabetical manufacturer groups with counts. Search opens matching groups. Manufacturer labels come from the GameDB make records and shared friendly-name formatter.
-
Multi-select with Ctrl/Shift in both lists. Add selected cars creates one stock instance per selected model in an all-or-nothing transaction; an invalid model or failed insert leaves the entire batch unapplied. Remove selected retains current/pending, barn-find and model protections. Manufacturer headers offer Select all (catalog) and Select removable (garage, skipping protected/unknown models). Duplicate/current-car actions remain single-selection.
-
Updated the default embedded FH6 catalog to the verified 682-model game update, including all 11 new models. The older 671-model reference is retained for version-matched stock comparisons and merging older modded databases. New-version Car Editor comparison/restore now has a matching clean baseline as well.
-
Add a stock car from the catalog, duplicate an existing instance with its configuration/purchased parts, or remove selected instances and their linked purchased parts.
-
Set as current car updates the selected garage instance reference without changing the general garage Flags field. Export verification allows only this explicit profile-property change; pending selection and account/progress data remain untouched.
-
Reduced garage-list reads to seven displayed/reference columns instead of the entire configuration/tuning record. Friendly names are cached and catalog schema loading is limited to relevant tables.
-
Current/pending cars, barn-find VIN references and catalog removal locks are protected. Unknown garage-linked schemas are viewing-only.
-
Revert restores the original loaded snapshot. Export creates a new save, verifies encrypted payload round-trip, and preserves account and non-garage progress sections byte-for-byte.
-
Optional full FH6 GameDB catalog loading supports newer/custom model names and matching stock part IDs. Motorsport profiles/catalogs and sparse car-export catalogs are not supported.
-
Confirmed Add/Remove, changing the current car, and Original Owner/history-field edits working in game. Full save backups are still essential; adding a car does not grant collection rewards or alter career progression.
-
Removed the experimental label from Garage Viewer; the full-save backup reminder and reference protections remain.
-
Documented a garage recovery workflow for incompatible car instances after SQL Live Editor/GameDB edits. This is not a universal corrupt-save repair and requires a readable profile and a safely removable affected instance.
Temporary workspace
- Temporary working copies use the normal Windows temporary folder (
%TEMP%), usually on C:, underForzaModTool\Work.
Car Editor
- Added draggable width dividers for the car picker, options and activity panels. The engine/motor list has a bottom grip to resize its height, with a usable minimum. These are session-only layout changes; editor operations and existing custom controls are unchanged.
- Renamed Slam it — drift suspension to Remove suspension limit — drift suspension.
- Added a separate Remove suspension limit — race suspension checkbox, off by default.
- Race uses the existing Drift lower-limit settings on its linked front/rear spring-damper physics rows, creating a Race upgrade from the car's stock suspension when needed.
- Race does not expose a steering-angle field or overwrite existing Race steering angles. Drift keeps its steering-angle input and decimal dot/comma support.
- Both options can be applied independently or together, including through the existing selected-car workflow. Repeated Apply does not add duplicate suspension upgrades.
DB Browser
- Fixed Add record ignoring typed values while the storage type remained DEFAULT. Typing automatically selects the column's storage type; manual type selection remains available.
- Untouched DEFAULT fields retain database defaults. Explicit DEFAULT/NULL choices clear the draft; empty TEXT and literal "NULL" remain distinct from SQL NULL.
- Fixed Delete record requiring a current column: row-header and data-cell selections both work.
- Pending inline edits are validated first. Deleting after changing a primary key uses the updated identity; no selection cannot delete a stale current record.
Crypto: FH6 profiles
- Added C_ProfileData decrypt/re-encrypt to the existing Crypto buttons. Decrypt extracts a standalone
C_ProfileData.sqlitefor DB Browser or an external SQLite editor. Re-encryption reinserts the edited database into the matching original save template, preserving the other three sections byte-for-byte. Older full-payload.decryptedexports remain supported; Profile Editor and Garage Viewer still load complete profiles. - Added an independently remembered Profile template, shown instead of the DB template when a profile is staged. Profile SQLite is identified by its save-specific schema even if renamed, and is never re-encrypted as a GameDB. Committed WAL changes are included through a consistent SQLite snapshot; changing inputs abort without output.
- Profile templates/outputs must authenticate; all section markers and embedded SQLite integrity are checked. Re-encryption verifies exact payload bytes. Corrupt inputs, wrong/missing templates and existing outputs are rejected; originals are never overwritten. Save Swap is unchanged, and FM8 profiles are not supported.