A Windows desktop application for updating gameconfig.xml in GTA V Switch update.rpf files without using OpenIV or CodeWalker directly.
- Allows users to select their own
gameconfig.xmlfile - Opens the
update.rpffile from their GTA V Switch installation - Replaces the existing
gameconfig.xmlinside the RPF with the user's version - Saves the updated RPF to a user-selected location
To run the published exe:
- Windows 10/11 x64 (nothing else — the build is self-contained and portable)
To build it yourself:
- Windows 10/11 x64
- .NET 4.8 SDK/Dev Pack
- Git
- Launch
GTASwitchGCUpdater.exe - Click Browse next to "1. Select gameconfig.xml" and choose your gameconfig.xml file
- Click Browse next to "2. Select update.rpf file" and choose your GTA V Switch
update.rpf - Click 3. Update RPF
- Choose a location other than where it is to save the updated
update.rpffile - Done! Replace your original
update.rpfwith the newly generated file
- If you want to edit your GTA radio, the same method applies but with different .rpf files and your own music files. -> gta-radio-editor
Clone with submodules to include CodeWalker Core:
git clone --recurse-submodules https://github.com/Geekmaxxer/GTA5SwitchGCUpdater
cd gta-gameconfig-updater\GTASwitchGCUpdater
dotnet restore .\GTA5SwitchGCUpdater\GTA5SwitchGCUpdater.csproj
dotnet msbuild GTA5SwitchGCUpdater\GTA5SwitchGCUpdater.csproj `
-target:BuildNet48SingleExe `
-property:Configuration=Release `
-property:TargetFramework=net48
The project file already sets RuntimeIdentifier, SelfContained, and PublishSingleFile,
so no extra command-line flags are needed — the command above is enough to produce a fully
portable, single-file .exe.
The build will be output to:
GTA5SwitchGCUpdater\bin\Release\net48
GTA5SwitchGCUpdater.exe in that folder is the finished, portable app: it's a single file
with no dependent DLLs, requires no .NET runtime installed on the target machine, and can be
copied to and run from anywhere (a USB drive, another PC, etc.).
Note: because it's self-contained, the exe bundles its own copy of the .NET runtime, so
On startup, the app silently checks
/releases/latest
on GitHub and compares its tag to the running app's version (shown in small
text in the status bar, and in the title bar). That endpoint always
resolves to the newest published, non-draft, non-prerelease release, so a
beta build with a higher-looking version number - like the earlier
v0.1-beta/v0.2-beta/v0.3-beta tags - is never mistaken for the latest
stable release.
If a newer version is found, a small dialog offers Take me there (opens the release page in your browser) or I'm good (dismisses it for the rest of that session). There's no persisted "don't ask again" - closing and reopening the app checks again.
If you're maintaining this repo: bump AppVersion.Current in
AppVersion.cs (and <Version> in the .csproj) every time you cut a new
version, and make sure it's published as an actual GitHub Release with
the "pre-release" checkbox left unchecked - a bare git tag, or a release
still flagged as pre-release, won't be picked up by /releases/latest. If
the check fails for any reason (offline, rate-limited, no stable release
published yet), it fails silently and the app works normally.
- The application uses CodeWalker Core for RPF parsing and serialization
- The output RPF is a new file, providing a simple rollback path
- Always keep a backup of your original
update.rpfbefore using this tool - This tool is designed specifically for Switch GTA V builds
- CodeWalker Core for RPF handling
GNU General Public License v3.0 - See LICENSE file for details.