This is a quick and simple guide to the basics of installing and playing with mods on Grand Theft Auto V for Single Player. It won't cover MP mods like FiveM.
Modding GTA:O or console games is not welcome here and will not be discussed.
For a clickable table of contents, click here.
Setting things up
For a fresh start, you'll need the following things:
- An updated, clean, unmodded, legit copy of Grand Theft Auto V (both Steam/Social Club are fine) that works normally
- An internet connection
- An archive manager. I recommend 7-Zip
- Enable showing file extensions in Explorer
- Patience. Read the manuals!
It's best to start out with a clean, unmodded game, to prevent conflicts and instabilities. If you've tampered with the files, it's best to either re-install the game or to let Steam or Social Club verify your files before continuing. If you also had script mods installed and don't remember what to delete, just start out clean.
For reference, the following files enable loading and running mods from the normal launcher:
- dinput8.dll - ASI loader
- ScriptHookV.dll - Script hook
- OpenIV.asi - OpenIV archive loader
If you recognize any of these and don't exactly know why these are there, start out from scratch.
From now on, I'll refer to the GTA V installation folder as "GTAV_root
". Where it's installed depends on where you got the game and your installation preferences. For example, the default folder for an install on Steam is C:\Program Files (x86)\Steam\steamapps\common\Grand Theft Auto V
.
Finding it on Steam: Library
-> Right-click Grand Theft Auto V -> Manage
-> Browse local files
Rockstar Games and Epic Games sadly don't have an installation folder shortcut, so you'll need to find these on your own.
Essentials
GTA V mods roughly exist in two distinct categories: resource mods and scripts. You'll need a couple of things to get this to work!
- ScriptHookV enabled scripts for GTA V.
- OpenIV enables modifying archives and adding archives.
- Optional: ScriptHookVDotNet enables scripts written in .NET languages. It relies on ScriptHookV.
- Optional: RAGE Plugin Hook is like ScriptHookVDotNet, but works standalone and uses a custom launcher for the game.
Download the archives or installers from the websites.
Installation: Follow the READMEs!
- ScriptHookV: Open the archive, extract the files inside the bin folder to your GTA V root.
- ScriptHookVDotNet: Open the archive, extract
ScriptHookVDotNet.asi
andScriptHookVDotNet2.dll
to your GTA V root. - OpenIV: Run the installer.
ScriptHookVDotNet has its scripts inside a separate folder inside the GTA V root folder, so create a scripts
folder in there. .dll
and .cs
scripts you download will go in here.
OpenIV needs some additional setup. Run the program and point it to your GTA V directory if necessary. Go to Tools -> ASI Manager and install ASI Loader
and OpenIV.ASI
if they aren't installed already. You'll also want to set up a mods
folder. This keeps your original game files clean! As a start, put your update.rpf
in the mods folder. You'll need to edit it anyway.
Downloading mods
It's a good idea to only download mods from trusted websites, especially script mods. Remember that scripts are just libraries and can execute any code. Mods that change textures, vehicles and the like are less risky, but always do your research before downloading mods from random websites.
Installing mods
Resource replacement mods (peds, vehicles, maps)
If you download a mod that replaces an original resource, like a vehicle mod that replaces a default vehicle, you'll need to use OpenIV. The mod you download should have come with instructions with which file to replace in which exact folder and archive. FOLLOW THOSE INSTRUCTIONS.
Resource add-on mods (peds, vehicles, maps)
If you download a mod that's marked as an add-on, it means it doesn't replace existing resources. They are added as DLCs. In general they follow the following set-up:
- The data files are placed in
GTAV_root/mods/update/x64/dlcpacks/<mod name>/dlc.rpf
- The entry is added to
dlclist.xml
. The exact location isGTAV_root/mods/update/update.rpf/common/data/dlclist.xml
. This entry looks like<Item>dlcpacks:\myCoolModName\</Item>
When adding an entry to dlclist.xml
, take care to keep the opening and closing tags are exactly Item
. If they are different, the file is invalidated.
Some mod authors also tell you to change extratitleupdatedata.meta
, but this is NOT necessary!
You also need to install the following tools, as they are required to make the game deal with loading more resources:
What version am I running?
There are two versions, the GTA:O version and the executable version. ScriptHookV, ScriptHookVDotNet, RagePluginHook and most version-dependent mods (scripts) use the executable version. You can find this by right-clicking the GTA5.exe file and checking the Details Tab -> File Version. As of writing, the version is 1.0.2215.0.
.oiv files
If you download a mod that ends with .oiv
, this means the mod author prepared a nice package for you. If you installed OpenIV properly, you can just double click the file, after which an OpenIV pacakge installation prompt will open. Check any information in the description window and press install. These mods can add files and/or replace files, so be sure to double-check if you've got the correct package.
Scripts
Scripts allow to add extra functionality to the game in form of extra missions, extra functionality, trainers and much alike. Scripts need to be loaded through their respective library. If you download a script, it will usually say for which library it is made.
Some scripts come with additional configuration files. Extract these files according to the readme of the script.
ScriptHookV: .asi files
Scripts ending with the .asi
extension are ScriptHookV scripts and go in the main GTA V folder.
ScriptHookVDotNet: .dll, .cs, .vb
Scripts ending with the .dll
, .cs
and .vb
extensions are usually ScriptHookVDotNet mods and go in the GTAV_root/scripts/
folder.
RAGEPluginHook: .dll
RAGEPluginHook go in the GTAV_root/Plugins/
folder.
Updating mods
For most resource mods, you should just reinstall the mod completely by using the new files.
For scripts, you should take note of the changelog or other comments the author had. Usually it suffices to just replace the .asi
/.dll
/.cs
, but sometimes the configuration files also need replacement.
Updating game
Rockstar releases new DLC from time to time. Some mods keep working, other break. Here's a basic guide of steps to take to prevent this, or to get back up and running quickly!
Disabling all mods
Moving or renaming dinput8.dll
will stop ScriptHookV, ScriptHookVDotNet and OpenIV from loading. If you properly used OpenIV's mod folder, this disables all mods and you should be able to play the unmodded game and even join a GTA:O session.
Backup / Reverting the update (downgrade game)
BEFORE a new DLC update drops, Rockstar hypes it up. Once a new DLC is announced, ensure you have a backup of the following files
GTAV_root/update/update.rpf
GTAV_root/GTA5.exe
GTAV_root/GTAVLauncher.exe
steam_api64.dll
It's smart to label these. I put them in a folder with the executable version. For Smuggler's Run, this is v1.0.1180.2
. When the next update drops and you want to revert, back up the new files and replace them with your old backups.
Updating your mods
You can also choose to update your mods. In general it's a good idea to wait until some core resources (ScriptHookV, ScriptHookVDotNet) have been updated to the new game version.
Resource mods
Each update, you'll need to update your GTAV_root/mods/update/update.rpf
to match the version of GTAV_root/update/update.rpf
. You can then transplant your changes from your old modded update.rpf
to the new update.rpf
.
Things to pay attention to:
- The new
dlclist.xml
probably has a new entry, so take care copy-pasting your moddeddlclist.xml
. gameconfig.xml
is very version-dependent. If you use add-on mods, it's very likely you'll need to wait for a new updatedgameconfig.xml
that supports add-ons.- Some replacement mods might not work after updating. In this case, the new update package overwrites old changes. (Rockstar sometimes fixes old models)
Script mods
Most scripts rely on ScriptHookV and just use natives. These will work after ScriptHookV gets updated for the new update, and won't need updating themselves.
ScriptHookVDotNet uses offsets for peds and vehicles, so it's wise to wait until ScriptHookVDotNet gets an update to support the new update. Most ScriptHookVDotNet scripts don't need updating themselves.
If a script crashes after an update, just disable it and keep an eye on the mod page. The author might update the script in the coming hours/days/weeks/months/years. It might help to notify the script author.
Troubleshooting
Outside of the common update woes, things can of course go wrong. Here are a few common things that go wrong:
Common problems:
DLC Vehicles disappear when spawning
Rockstar disables MP cars in SP. Most trainers will fix this after an update.
- Add-On Vehicle Spawner automatically enables MP vehicles in SP.
- Enhanced Native Trainer also does this.
- Simple Trainer also works, but needs to be updated after each patch.
- Menyoo also works, but needs to be updated after each patch.
Infinite loading screen or crash during loading
You probably installed a mod pack with many vehicles or manually installed too many vehicles. This is related to gameconfig.xml
and you should find a replacement gameconfig
. Also don't forget the heap adjuster!
Crashing upon full screen
If you're crashing whilst attempting to full screen your game or exiting full screen, this is mostly caused by Reshade not being configured correctly, and thus will be set to inject into the wrong DX version (should be 11). If the reshade .dll
name is anything other than dxgi.dll
, d3d11.dll
or ReShade.dll
, you're targeting the wrong version of DirectX, even if in-game you're running DX9 or 10. To fix this download the Reshade Binary and target GTA5.exe
with DX version 11. After this to ensure compatibility with Boris Vorontsov's ENB, change the ProxyLibrary
value in enblocal.ini
to reflect the respective ReShade dll which has just been created in the root game directory.
Vanilla vehicle spawning upon replacing said vehicle
A simple solution to fix replacement of vanilla vehicles, especially for old mods, is to use the search function in OpenIV (CTRL+F3
) and search for the respective vehicle yft, and consequently replace the one in the most recent dlcpack. If you are not sure about the order in which some DLC packs were added, you can sort them by date modified.
ERR_FIL_PACK_1
GTA V throws this error when game memory allocation runs out, specifically when attempting to load too many DLC packs. You can fix this by, if you haven't already, installing a custom gameconfig.xml
, or else use Heap Adjuster. If however you have already used both these methods. you can remove some, or merge dlc's (guide).
ERR_STR_FAILURE_3
GTA V throws this error in most cases upon spawning an object which references a null entry or when the engine is told to stream an object greater than the max value. As this is mostly a problem when trying to spawn vehicles, you can fix this by reducing the total poly count for the vehicle, modifying the base value of the vehicle in Zmodeler3 or reducing the amount of materials that the car has. Also getting rid of any embedded textures on the yft can sometimes solve this issue.
ERR_MEM_EMBEDALLOC_GUARD_1'
GTA V throws this error when the engine's memory allocator cannot provide enough memory to store a singular or multiple objects. As this is mostly a problem with script mods, you can attempt to fix this by ensuring that said script is not creating too many entities.
Crashing on entering a vehicle
There's a wrong reference to the vehicle handling and/or layout. Check vehicles.meta
for the correct references.
Crash on startup with error on corrupt files
You're not using a mods folder and/or referring to non-imported files in content.xml
. As OpenIV.asi disables the checking of game file integrity, any message referring to corrupt game files means that either Scripthook V or OpenIV.asi is missing.
Others
You might want to check this thread.
Things to pay attention to:
Mod packs
Mod packs can add lots of resources. Usually when installing mod packs, it's necessary to get a gameconfig
that allows many add-ons. Examples of big mod packs:
A small note about "Redux": This is mainly composed of resources stolen from various mod authors. You won't find much support for an unstable game with Redux. Be a nice person and avoid that stolen mess :)
LODs
Level of detail is important for performance and appearance. Some vehicle mods have no good LODs, thus will either require a lot of performance even at a distance, or have a disappearing body. Take care installing these mods, especially if they are replacements. Your framerate can suffer significantly, no matter how good your computer is!
Scripts
Scripts can be unstable, either due to updates or due to how they are written. If the script crashes, this will usually be caught by the hook or runtime.
A ScriptHookV crash will show an error window before closing the game. Write down the crashing script and contact the author. If you do, please provide logs:
ScriptHookV.log
- Any other logs the script might have generated
A ScriptHookVDotNet script crash is silent. The script just doesn't work any more. As with ScriptHookV scripts, report this to the author. Provide:
ScriptHookVDotNet2.log
- Any other logs the script might have generated