Awesome
Chaos Mod V
A replica of the chaos mods found on previous GTA games for GTA V.
See the GTA5-Mods mod page for more information and instructions on how to install it.
Feel free to join the Discord Server for community support or simply to stay up to date on this (and other) mods.
Also make sure to check the Wiki!
Building
Preparation
-
Clone the repo
git clone https://github.com/gta-chaos-mod/ChaosModV.git
-
cd ChaosModV
-
Initialize all submodules
git submodule init
git submodule update --recursive
Building
Check the corresponding subdirectories for instructions on how to compile each project.
Building all projects
<details> <summary>MSBuild (Visual Studio)</summary>NOTE: The methods above are preferred over this one for the ASI (the ChaosMod project). There may be components of the ASI only available to CMake due to complications with third-party libraries.
-
Open
vendor/minhook/build/VC17/MinHookVC17.sln
in Visual Studio (or click on the "Switch between solutions and available views" button and loadMinHookVC17.sln
) -
Compile libMinHook as x64 Release build
-
Open
ChaosMod.sln
in the root folder in Visual Studio (if not open already) -
Compiling should work now. If there's an error referencing
MsBuildMajorVersion
when building either the ConfigApp or TwitchChatProxy projects, close and open Visual Studio again.
Adding new effects
You can easily add and share your own effects using the integrated Lua scripting engine. See here for more information.
Otherwise, if you want to integrate your effect directly into the mod:
- Create a new .cpp file in the appropriate folder under
ChaosMod/Effects/db/
with a fitting name
Layout of the file should look like this:
/*
Effect by <Your Name>
*/
#include <stdafx.h>
static void OnStart()
{
}
static void OnStop()
{
}
static void OnTick()
{
}
// clang-format off
REGISTER_EFFECT(OnStart, OnStop, OnTick, EffectInfo
{
// These are always required, you may have to add more designators depending on your effect
.Name = "Generic Effect",
.Id = "player_funny_stuff"
}
);
The project makes use of clang-format which will mess up the formatting of the list-initialization, thus it's necessary to exempt it using // clang-format off
.
- Add the same info to
ConfigApp/Effects.cs