/YimMenu

YimMenu, a GTA V menu oriented at protecting from crashes (not all currently) and improving the overall experience.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

YimMenu

A mod menu base for Grand Theft Auto V. Strictly for educational purposes.

YimMenu is originally based of off BigBaseV2 which was an amazing base at the time but nowadays is a bit dated. So here I am with an up-to-date menu focusing on protecting the user from toxic modders.

Table of contents

How to build

Requirements:

If you have both of the above requirements you can skip to cloning the git repo and generating the project files.

Curl

Curl should be already installed on your computer, but if you are having issues with building the project, you will need to download and install it.

Download Link

Git

If you haven't installed git on your system go and do so as it is REQUIRED for setting up a working build environment.

Download Link

CMake

CMake is used to generate our project files, if you haven't used it before you will need to download and install it.

Download Link

Cloning and generating project files

  • Make sure that you have installed Git and CMake.

  • Clone the repository:

    git clone https://github.com/YimMenu/YimMenu.git
  • Go into the directory you just cloned:

cd YimMenu

Generate project files

Note You will have cd build and cmake again if you add any files or you will get an error when building.

  • Windows Only

    • Visual Studio

      If you only use Visual Studio and don't want to mess with command lines, Visual Studio has a CMake extension that does all the work.

      Make sure it is installed.

      Then, just open Visual Studio, open a local folder, and select the YimMenu folder that the git clone command just created.

      Let the CMake extension generate the needed files for building, you can follow the progress in the Output tab of Visual Studio.

      Then, you can just build by using the Build menu at the top and clicking Build All.

  • Other OSs / IDEs

    If you use something else or prefer using the console on Windows, just follow this:

    mkdir build
    cd build
    cmake ..

    Now, you will be able to open the solution, and build it.

Staying Up To Date

Pull the latest changes from this repository.

With a command line it is as easy as:

git pull

CMake should be handling removed / added files automatically without any user input.

If this is not the case for some reason you'll have to redo the steps in the Generate project files section above.

If you are doing custom modifications to the codebase and have a fork you are on your own for staying up to date with upstream (this repository), google stuff like "merge from upstream" and learn how to use Git.

Project Structure

  • backend/ all features that should be ran in a loop are in here sorted by category
  • gui/ includes everything related to UI elements
  • hooks/ function hooks
  • native_hooks/ hooks to natives
  • services/ service files to interact and maintain stuff
  • util/ general utility functions to keep code as compact and as much in one place as possible

Features

Below is an incomplete list of feature that I believe are notable to this "base" or menu.

  • Return Native spoofing
  • Custom settings with deep compare if changes were made, including auto saving
  • Clear and well structured source code
  • Includes a thread pool to queue tasks that shouldn't block the game thread, very similar to fiber pool
  • Updated natives.hpp from https://nativedb.spyral.dev
  • ReClass.NET structures implemented, accessible from a global called g_local_player defined in common.hpp

Contributing

You're free to contribute to YimMenu as long as the features are useful, not overly toxic and do not contain anything money related that might get the menu targeted by Take2.

Make sure to read the CONTRIBUTING.md file.