Skip to content

crxhvrd/fxReloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fxReloader

Realtime, in-world reloader and editor for GTA V graphics data files. Edit visualsettings.dat or timecycle files, save, and see the change applied live — no game restart, no reloading a save, no leaving the area.

Supports both editions of the game with a single .asi (auto-detected at runtime):

  • GTA V Legacy (GTA5.exe)
  • GTA V Enhanced (GTA5_Enhanced.exe)

Covered files:

File Reload
visualsettings.dat CVisualSettings::LoadAll() — re-parses and re-pushes to every subsystem
timecycle cycles (w_*.xml) CTimeCycle::Init(4) — rebuilds all weather cycles
timecycle modifiers (timecycle_mods_*.xml) in-place value patching, or the game's modifier loader for structural changes

Features

  • Live reload on save. A file watcher picks up changes to the served files and applies only what changed. A hotkey (default F10) force-reloads everything.
  • In-game editor (optional, requires ReShade with add-on support): an overlay for editing visualsettings.dat and timecycle files directly in the game —
    • value grids with per-keyframe columns for cycles (time-of-day headers) and an ALL column that sets a whole row at once
    • HDR color pickers for *_col_r/_g/_b and *.red/.green/.blue triples
    • add / remove modifier parameters (full timecycle var list to pick from)
    • searchable file / modifier / category dropdowns, name filter, modified-only view
    • right-click row menu: reset to disk values, copy/paste values
    • changes auto-apply as you drag (can be turned off)
  • Backups. Every save snapshots the file first (backup\ next to it): a pristine .orig made once, plus rolling .bak1..bak3. The overlay has Restore original / Undo last save buttons, and detects files changed by an external editor while you have unsaved edits.
  • Active at boot. The loader-level redirect means the files you serve are also what the game loads on startup — the reloader doubles as a loose-file loader for these files.

Requirements

  • GTA V (Legacy or Enhanced), single-player. Do not use with GTA Online.
  • An ASI loader (e.g. Ultimate ASI Loader).
  • Optional, for the editor overlay: ReShade installed with full add-on support. Without ReShade the ASI still does hotkey + file-watch reloading.

Installation

  1. Copy fxReloader.asi next to the game executable.
  2. Start the game once — fxReloader.ini and an empty fxReloader\ folder are created next to the executable.
  3. Open fxReloader.ini and set:
    redirectFromOwnFolder = true
  4. Put the files you want to edit into the fxReloader\ folder, mirroring the game's data layout:
    fxReloader\
      visualsettings.dat
      timecycle\
        w_extrasunny.xml
        w_clear.xml
        timecycle_mods_1.xml
        ...
    
    Files you don't put there stay stock. Everything in the folder is active from the next game start.

Usage

  • Edit a served file with any editor and save → the change applies in-game within a moment. Or press F10 to force a full reload.
  • With ReShade: open the ReShade overlay → Add-ons tab → fxReloader. The Status tab shows whether all game functions resolved and has manual reload buttons; visualsettings and Timecycle are the editors.
  • Everything the tool does is logged to fxReloader.log next to the game executable — check it first if something doesn't apply.

Configuration (fxReloader.ini)

key default meaning
reloadHotkey F10 VK code (0x79), decimal, or Fxx (F1..F24)
watchFiles true auto-reload when a file in watchFolder changes
watchFolder the fxReloader folder directory to monitor
redirectFromOwnFolder false serve files from the fxReloader folder (set true — required for edits to take effect)
unsafeReloadFromHotkeyThread false debugging only; leave false

How it works

fxReloader reuses the game's own code instead of re-implementing it:

  1. Redirect — thin hooks on the game's file loaders swap the path of a served file to the copy in fxReloader\. This works for the initial load at boot as well as for reloads.
  2. Reload — on hotkey/save, the game's own reload routine is called for the affected subsystem only.
  3. Marshal — reloads are requested from a watcher thread but always executed at a per-frame hook on the game's update thread; the affected structures are read every frame and must not be rewritten from another thread.
  4. Modifier patching — timecycle modifier values are written directly into the loaded tcModData entries rather than re-run through the game's loader (reloading a modifier file reorders the internal modifier array, which breaks everything referencing modifiers by index). The variable-name→index mapping is obtained by loading a temporary probe modifier through the game's own parser, so no version-specific memory patterns are involved. When the loader is unavoidable (added/removed parameters), the array order is restored afterwards.

Game function addresses are resolved by scanning the running process with byte-pattern signatures (both editions' patterns live in src/game/signatures.h). On a game update that breaks them, see FINDINGS.md for the full re-resolution walkthrough.

Building

Visual Studio 2022, CMake ≥ 3.13:

cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release

Output: build\BIN\Release\fxReloader.asi.

The editor overlay is built against the ReShade add-on API v17 / ImGui 1.91.9 headers vendored in external/. An incompatible (or absent) ReShade at runtime simply disables the overlay — reloading is unaffected.

License

fxReloader is free software, licensed under the GNU General Public License v3.0 — see LICENSE. Copyright (C) 2026 CoreFX (crxhvrd@proton.me).

Bundled third-party components keep their own licenses:

  • src/utils/memory.h — derived from RageOpenV by Chiheb Bacha (GPL-3.0)
  • src/vendor/minhook — MinHook (BSD 2-Clause)
  • external/reshade — ReShade add-on API headers (BSD 3-Clause)
  • external/imgui — Dear ImGui headers (MIT)

About

Realtime in-world reloader and editor for GTA V graphics data files (visualsettings / timecycle), Legacy + Enhanced, with a ReShade add-on editor overlay

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors