Skip to content

Profile System

Barden edited this page Aug 27, 2026 · 5 revisions

📁 Profile System & Sharing

🌐 Language / Язык: English | Русский

vWheel Hub features an intuitive 3-tier profile inheritance hierarchy (GameClassCar), a standalone Universal profile, Schema V2 rate-independent storage, transactional Undo / Redo history, and an ultra-compact Share Code codec.


🌳 3-Tier Profile Hierarchy (Game ➔ Class ➔ Car)

Different simulators, vehicle classes, and individual car models require drastically different driving setups. For instance, a Ferrari 499P (Hypercar) in Le Mans Ultimate requires a $580^\circ$ steering lock and progressive high-downforce braking curves, whereas a Porsche 911 GT3 R in Assetto Corsa Competizione requires a $540^\circ$ lock and tailored ABS slip thresholds.

vWheel Hub organizes settings into a clean 3-tier cascading tree:

graph TD
    G["1. Game Profile (e.g. Le Mans Ultimate)"]
    C["2. Car Class Profile (e.g. Hypercar / GT3 / LMP2)"]
    M["3. Car Model Profile (e.g. Ferrari 499P)"]
    U["Standalone: Universal Profile"]

    G --> C --> M
Loading

Cascading Nullable Inheritance:

  1. Car Model Level: When driving a specific car, vWheel Hub first checks if you customized a setting for that exact vehicle model.
  2. Class Level Fallback: If that setting is untouched (unset), it automatically inherits the value defined at the Car Class level.
  3. Game Level Fallback: If the class profile leaves it unassigned, it falls back to the master Game Context profile.
  4. Universal Fallback: Global defaults are provided by the internal base profile.

Tip

Minimal Effort: You only need to configure master mouse sensitivities and polling rates once at the Game level. Then, simply override specific values (like Steering Lock, Brake Attack, or TC Slip Threshold) for individual cars or classes!


💾 Schema V2 Storage Architecture & Safety

All profile data is stored in human-readable JSON under %USERPROFILE%\Documents\vWheel Hub\Profiles\.

Key Storage Features:

  • Schema Version 2: All pedal rates are saved in physical units/second, ensuring your profile behaves identically regardless of what polling rate or hardware you run.
  • Game-Level Polling Rate Sync: When you change the Hub Polling Rate, it synchronizes cleanly across all classes and cars under that game.
  • Atomic File Writes: Profiles are written to .tmp files first and renamed atomically, preventing data corruption during power loss or system crashes.
  • DOS Reserved Name Protection: Sanitizes reserved Windows filenames (e.g. CON, PRN, AUX, NUL, COM1..9, LPT1..9) by appending an underscore (NUL_.json), preventing file system errors.
  • Corrupt File Auto-Quarantine: If an invalid file is detected, vWheel Hub automatically moves it to .corrupt-<timestamp>.json and restores defaults safely.

🧠 Integration with Adaptive Grid Cache

The Adaptive Grid Cache (which learns optimal tire grip limits for ABS and Traction Control) is segregated along the exact same profile hierarchy:

%LOCALAPPDATA%\vWheel Hub\Cache\
├── ABS\
│   └── Le Mans Ultimate\
│       └── Hypercar\
│           └── Ferrari 499P\
│               ├── dry.json
│               └── wet.json
└── TC\
    └── Assetto Corsa Competizione\
        └── GT3\
            └── Ferrari 296 GT3\
                ├── dry.json
                └── wet.json

When you switch cars or classes, vWheel Hub automatically switches to that specific vehicle's learned grip matrix!


🌐 Standalone Universal Profile

The Universal profile exists as an independent, standalone profile for general driving games, unlisted titles, or arcade racers (such as Forza Horizon, Wreckfest, or City Car Driving). It lets you maintain a universal keyboard/mouse preset that works reliably across any game without needing game-specific profiles.


↩️ Transactional Undo & Redo History

Never worry about accidentally losing a fine-tuned setup:

  • Undo (Ctrl + Z): Instantly reverts your last parameter modification.
  • Redo (Ctrl + Y): Re-applies reverted changes.
  • Every slider adjustment, checkbox toggle, and keybinding change is recorded in an in-memory transactional stack.

📤 Sharing Profiles (Share Codes & Files)

vWheel Hub makes sharing setups with friends and the sim racing community effortless.

flowchart LR
    A[User Profile JSON] -->|Deflate Compression| B[Compact Binary Buffer]
    B -->|Base64 URL-Safe Encoding| C["VWH1- Share Code"]
    C -->|Paste in Discord / YouTube| D[Friend's vWheel Hub]
    D -->|Safe Decompression & Validation| E[Import Dialog Preview]
Loading

1. Compact Share Codes (VWH1-...)

  1. Click "Export Profile" in the top navigation bar.
  2. vWheel Hub compresses the profile JSON using Deflate and encodes it into a compact alphanumeric string starting with VWH1-.
  3. Click "Copy Share Code" and paste it directly into Discord, YouTube comments, or forums!

2. Exporting .vwh Files

You can also save setup packages as standalone .vwh files to archive on your hard drive or share as attachments.

3. Importing Profiles & Safety Protection

  1. Click "Import Profile".
  2. Paste the VWH1- share code or browse for a .vwh file.
  3. The interactive Import Dialog displays the author, description, and lets you choose whether to apply the settings to your active car, class, or create a new profile.
  4. Security Protection: The decompressor enforces a strict 1 MB uncompressed limit to protect against malicious zip-bomb payloads.

⏭️ Next Steps

Clone this wiki locally