Uninstalling an OIV Mess
Why the police car? Because it's crime to use an OIV installer and a felony to package one in the first place. We hate OIVs for so many reasons. One of which is you can't uninstall them easily. In fact it can be a huge pain to get rid of them.
Read on to find out how, but it won't be fun, and don't attempt this if you're not totally comfortable with editing files and using OpenIV.
OIVs are just archives, just like a zip, rar, or 7z. In fact we can use 7z to peek inside an OIV. There we will find a file called assembly.xml. This file is the recipe, the instructions, for where the OIV will install the modded files and by the same token, we will use this file to uninstall the mess the OIV created. You will need your vanilla game files in many cases to restore the files the OIV replaced. If they are new files, then we will just delete them.
Unfortunately, the OIV itself can be very complex, adding and/or replacing dozens of files in dozens of different paths. We will use a simple example to allow you to understand the process, but there aren't any shortcuts other than replacing complete packages such as update.rpf with a new one.
Note: Some OIVs have "uninstallers" but OIVs don't backup your files, all they do is keep their versions of the original files. Problem is their originals might be from 2020 whereas the files they replaced were from 2023 - so this is really hit or miss but either way it is a lame attempt. There is an exception however. Some OIV uninstallers will simply delete or remove new files. In other words they didn't replace any files. Of course you won't know what they're doing until you examine the assembly.xml and see tags like <remove xpath="/thePath/theItem"/> or <delete>path/file.ymt</delete>
So here is our simple example, replacing dlclist.xml, that I wrote myself for this article. Note: OIVs have a folder called content, and possibly subfolders, where the OIV files, to add or replace, are stored.
<content>
<archive path="\update\update.rpf" createIfNotExist="True" type="RPF7">
<add source="Vanilla\dlclist.xml">\common\data\dlclist.xml</add>
</archive>
</content>
This recipe replaces the mod version of dlclist.xml with one in a subfolder of the content folder called Vanilla. To uninstall, we know we need to replace a backup version of dlclist.xml and place it in \update\update.rpf\common\data. The key is we need a backup!
And here is a more complicated example, again that I wrote myself for this article. This time for a replacement vehicle mod.
<archive path="update\x64\dlcpacks\patchday24ng\dlc.rpf" createIfNotExist="True" type="RPF7">
<archive path="\x64\levels\gta5\vehicles.rpf" createIfNotExist="True" type="RPF7">
<add source="monroe.yft">monroe.yft</add>
<add source="monroe.ytd">monroe.ytd</add>
<add source="monroe_hi.yft">monroe_hi.yft</add>
<add source="monroe+hi.ytd">monroe+hi.ytd</add>
</archive>
</archive>
The recipe above instructs OpenIV to install a car as a replacement. To uninstall, we do the opposite. We know from above that the mod replacement for the monroe car was installed in the dlcpack called patchday24ng. So now there are 2 possibilities. If the original game file is in that folder, all we need to do is delete the monroe replacement files above. That's the actual case. However, if the OIV had used the path for the game version, we would need to replace the monroe files with the original. (The original path is \x64e.rpf\levels\gta5\vehicles.rpf).
Also Read: