YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-keys, and more!
See the code
YARG (a.k.a. Yet Another Rhythm Game)
YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more! YARG is still in active development, so there may be bugs and missing features.
[!IMPORTANT] YARG stands firmly against all forms of piracy. We neither support nor endorse piracy, as it is a violation of copyright law with serious legal consequences. Our platform's importable content—designed for creators to share their work and for educational purposes—does not justify or excuse piracy.
YARG itself does not use any ripped/pirated assets or music and never will. By using YARG, users agree not to promote or endorse piracy in any way through our platform. Upholding these principles ensures a community that respects copyright, creativity, and legal standards.
YARG stands for "Yet Another Rhythm Game" and NOT for pirates.
It is recommended you download YARG via the YARC Launcher. Downloading the portable option is not recommended as some features may not work.
[!IMPORTANT] If you are on Linux, there are some additional things you need to do in order for controllers to work. See the Linux section for more info.
There are some dependencies that will be needed in order for HID devices (such as PS3 and Wii instruments) to work.
hidapi and libudev:
sudo apt install libhidapi-hidraw0 libudev1.pacman -S hidapi systemd-libs.dnf install hidapi systemd-libs.69-hid.rules inside of /etc/udev/rules.d/ or /usr/lib/udev/rules.d/, with the following contents:KERNEL=="hidraw*", TAG+="uaccess"
sudo, which is not recommended.73-seat-late.rules!For improved compatibility when using the XBOX 360 Wireless Adapter with Linux, create a new udev rules file called 99-yarg-libusb.rules inside of /etc/udev/rules.d/ or /usr/lib/udev/rules.d/, with the following contents:
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0291", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02a9", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0719", MODE="0666"
[!IMPORTANT]
⚠️ If you wish to contribute, use the
devbranch. Your PR will NOT be merged if it's onmaster. ⚠️
[!WARNING]
If you would like to build the game yourself, please follow these instructions.
If you don't follow these instructions, it is possible that YOU WILL NOT BE ABLE TO RUN THE GAME.
If you are planning to contribute, first make a fork of the project.
master branch! You will not be able to set things up correctly otherwise, as the dev branch will not be included in your fork.
Make sure you have the latest version of Blender installed. This is for loading models, even if you don't plan on editing them.
Clone the repository. If you are not familiar with git, GitHub Desktop or Visual Studio Code plus the GitLens extension are both good GUI options. If, however, you want to use the command-line:
git lfs install command.git clone -b dev --recursive <repository url>.git, replacing <repository url> with either:
https://github.com/YARC-Official/YARG) if you just want to build the game.git clone -b dev --recursive https://github.com/YARC-Official/YARG.git.git lfs fetch followed by git lfs checkout to use them when things get updated.git submodule update when things get updated.Install Unity 6000.3.5f2. Easiest method will be using Unity Hub:
Add project from disk, then select the folder you cloned YARG to.Install the .NET SDK. This is required to develop the submodules and their supporting projects.
Open the project in Unity. When prompted about Safe Mode, click "Ignore".

Click on NuGet on the top menu bar, then click on Restore Packages.
You're ready to go!
Sometimes merge conflicts may happen between Unity scenes. These can be much more difficult to resolve than other merge conflicts, so we recommend using the Unity YAML merge tool to resolve these instead of attempting to do so manually.
Setup:
git config --local --edit[merge]
tool = unityyamlmerge
[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = 'C:\\Program Files\\Unity\\Hub\\Editor\\6000.3.5f2\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
Resolving conflicts:
git merge-tool.If you want to contribute, please feel free! It's recommended you join our Discord so we can provide feedback quickly.
In order to get your name added to the YARG credits, you need to first contribute to any of the following:
After that, you must create a pull request on this repo to get your name added. If you need help with this, feel free to ask in our Discord!
YARG is licensed under the GNU Lesser General Public License v3.0 (or later) - see the LICENSE file for details.
Some libraries/assets are packaged with the source code have licenses that must be included.
Please note that other libraries are not directly packaged within the source code, and are to be installed by NuGet, Unity's packaged manager, or via a Git submodule.
These are assets that are installed by NuGet, Unity's packaged manager, or via a Git submodule. These have varying licenses, but can all be downloaded/accessed by the links given.
| Link | Type | Use |
|---|---|---|
| YARG.Core | Library | Provides most of YARG's backend (engine, replays, etc.) |
| PlasticBand | Reference | Controller Support Info |
| GuitarGame_ChartFormats | Reference | File Format Documentation |
| PlasticBand-Unity | Library | GH/RB Controller Support |
| HIDrogen | Library | Linux HID Controller Support |
| EasySharpIni | Library | Parsing song.ini Files |
| DryWetMidi | Library | Parsing .mid Files |
| Minis | Library | MIDI Input for Unity |
| DOTween | Library | Animation Utility |
| UniTask | Library | Async Library |
| unity-toolbar-extender | Library | Unity Editor Utility |
| SoftMaskForUGUI | Library | UI Utility |
| Unity-Dependencies-Hunter | Library | Unity Editor Utility |
| tmpro-dynamic-data-cleaner | Library | Prevent Git Change Spam |
| openvat-unity | Library | OpenVAT (Vertex Animated Textures) Support |
Some people have expressed interest in donating. This is an open-source project and therefore donating is not required. If you do want to still help out, spread the word or contribute!
13,181 followers · starred Dec 2025
161 followers · starred Jun 2025
342 followers · starred Nov 2023
117 followers · starred May 2023
YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-keys, and more!
See the code
YARG (a.k.a. Yet Another Rhythm Game)
YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more! YARG is still in active development, so there may be bugs and missing features.
[!IMPORTANT] YARG stands firmly against all forms of piracy. We neither support nor endorse piracy, as it is a violation of copyright law with serious legal consequences. Our platform's importable content—designed for creators to share their work and for educational purposes—does not justify or excuse piracy.
YARG itself does not use any ripped/pirated assets or music and never will. By using YARG, users agree not to promote or endorse piracy in any way through our platform. Upholding these principles ensures a community that respects copyright, creativity, and legal standards.
YARG stands for "Yet Another Rhythm Game" and NOT for pirates.
It is recommended you download YARG via the YARC Launcher. Downloading the portable option is not recommended as some features may not work.
[!IMPORTANT] If you are on Linux, there are some additional things you need to do in order for controllers to work. See the Linux section for more info.
There are some dependencies that will be needed in order for HID devices (such as PS3 and Wii instruments) to work.
hidapi and libudev:
sudo apt install libhidapi-hidraw0 libudev1.pacman -S hidapi systemd-libs.dnf install hidapi systemd-libs.69-hid.rules inside of /etc/udev/rules.d/ or /usr/lib/udev/rules.d/, with the following contents:KERNEL=="hidraw*", TAG+="uaccess"
sudo, which is not recommended.73-seat-late.rules!For improved compatibility when using the XBOX 360 Wireless Adapter with Linux, create a new udev rules file called 99-yarg-libusb.rules inside of /etc/udev/rules.d/ or /usr/lib/udev/rules.d/, with the following contents:
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0291", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02a9", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0719", MODE="0666"
[!IMPORTANT]
⚠️ If you wish to contribute, use the
devbranch. Your PR will NOT be merged if it's onmaster. ⚠️
[!WARNING]
If you would like to build the game yourself, please follow these instructions.
If you don't follow these instructions, it is possible that YOU WILL NOT BE ABLE TO RUN THE GAME.
If you are planning to contribute, first make a fork of the project.
master branch! You will not be able to set things up correctly otherwise, as the dev branch will not be included in your fork.
Make sure you have the latest version of Blender installed. This is for loading models, even if you don't plan on editing them.
Clone the repository. If you are not familiar with git, GitHub Desktop or Visual Studio Code plus the GitLens extension are both good GUI options. If, however, you want to use the command-line:
git lfs install command.git clone -b dev --recursive <repository url>.git, replacing <repository url> with either:
https://github.com/YARC-Official/YARG) if you just want to build the game.git clone -b dev --recursive https://github.com/YARC-Official/YARG.git.git lfs fetch followed by git lfs checkout to use them when things get updated.git submodule update when things get updated.Install Unity 6000.3.5f2. Easiest method will be using Unity Hub:
Add project from disk, then select the folder you cloned YARG to.Install the .NET SDK. This is required to develop the submodules and their supporting projects.
Open the project in Unity. When prompted about Safe Mode, click "Ignore".

Click on NuGet on the top menu bar, then click on Restore Packages.
You're ready to go!
Sometimes merge conflicts may happen between Unity scenes. These can be much more difficult to resolve than other merge conflicts, so we recommend using the Unity YAML merge tool to resolve these instead of attempting to do so manually.
Setup:
git config --local --edit[merge]
tool = unityyamlmerge
[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = 'C:\\Program Files\\Unity\\Hub\\Editor\\6000.3.5f2\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
Resolving conflicts:
git merge-tool.If you want to contribute, please feel free! It's recommended you join our Discord so we can provide feedback quickly.
In order to get your name added to the YARG credits, you need to first contribute to any of the following:
After that, you must create a pull request on this repo to get your name added. If you need help with this, feel free to ask in our Discord!
YARG is licensed under the GNU Lesser General Public License v3.0 (or later) - see the LICENSE file for details.
Some libraries/assets are packaged with the source code have licenses that must be included.
Please note that other libraries are not directly packaged within the source code, and are to be installed by NuGet, Unity's packaged manager, or via a Git submodule.
These are assets that are installed by NuGet, Unity's packaged manager, or via a Git submodule. These have varying licenses, but can all be downloaded/accessed by the links given.
| Link | Type | Use |
|---|---|---|
| YARG.Core | Library | Provides most of YARG's backend (engine, replays, etc.) |
| PlasticBand | Reference | Controller Support Info |
| GuitarGame_ChartFormats | Reference | File Format Documentation |
| PlasticBand-Unity | Library | GH/RB Controller Support |
| HIDrogen | Library | Linux HID Controller Support |
| EasySharpIni | Library | Parsing song.ini Files |
| DryWetMidi | Library | Parsing .mid Files |
| Minis | Library | MIDI Input for Unity |
| DOTween | Library | Animation Utility |
| UniTask | Library | Async Library |
| unity-toolbar-extender | Library | Unity Editor Utility |
| SoftMaskForUGUI | Library | UI Utility |
| Unity-Dependencies-Hunter | Library | Unity Editor Utility |
| tmpro-dynamic-data-cleaner | Library | Prevent Git Change Spam |
| openvat-unity | Library | OpenVAT (Vertex Animated Textures) Support |
Some people have expressed interest in donating. This is an open-source project and therefore donating is not required. If you do want to still help out, spread the word or contribute!
13,181 followers · starred Dec 2025
161 followers · starred Jun 2025
342 followers · starred Nov 2023
117 followers · starred May 2023