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 ->
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.
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
ScriptHookVDotNet2.dllto 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.
.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.
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.
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
- The entry is added to
dlclist.xml. The exact location is
GTAV_root/mods/update/update.rpf/common/data/dlclist.xml. This entry looks like
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.
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 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
.vb extensions are usually ScriptHookVDotNet mods and go in the
RAGEPluginHook go in the
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
.cs, but sometimes the configuration files also need replacement.
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
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.
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
Things to pay attention to:
- The new
dlclist.xmlprobably has a new entry, so take care copy-pasting your modded
gameconfig.xmlis very version-dependent. If you use add-on mods, it's very likely you'll need to wait for a new updated
gameconfig.xmlthat 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)
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.
Outside of the common update woes, things can of course go wrong. Here are a few common things that go wrong:
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
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.
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).
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.
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.
You might want to check this thread.
Things to pay attention to:
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 :)
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 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:
- 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:
- Any other logs the script might have generated