How to Make Your First Gorilla Tag Mod with C# and Unity (Beginner Tutorial)
A complete beginner tutorial on coding Gorilla Tag mods. Learn Visual Studio setup, Harmony runtime patching, GorillaLocomotion access, and building your first DLL.

Introduction: Why Code Your Own Gorilla Tag Mods?
Instead of relying solely on other people’s downloads, learning to create your own Gorilla Tag mods unlocks complete creative freedom. Whether you want to prototype a custom game mode, build unique physics modifiers, or create helpful streaming utilities, the Gorilla Tag modding API is surprisingly accessible once you understand the fundamentals.
This tutorial guides you through writing and compiling your very first working mod from scratch using C#, Visual Studio, and the Harmony runtime patcher.
Part 1: Setting Up Your Development Environment
Step 1: Install Visual Studio 2022
- Download Visual Studio 2022 Community Edition (free from Microsoft).
- During the installation wizard, ensure you check the workload:
- .NET desktop development (includes C# compilers and build tools).
Step 2: Create a New Class Library Project
- Open Visual Studio and click Create a new project.
- Search for the template: Class Library (.NET Standard or .NET Framework).
- Name your project (e.g.,
MyFirstGTagMod) and choose .NET Framework 4.7.2 or .NET Standard 2.1 (matching Unity’s runtime).
Step 3: Add Essential Assembly References
Your mod needs to interact with Unity and Gorilla Tag’s compiled code. In the Visual Studio Solution Explorer, right-click Dependencies > Add Reference > Browse, and select these DLLs from your game directory:
Gorilla Tag\BepInEx\core\BepInEx.dllGorilla Tag\BepInEx\core\0Harmony.dllGorilla Tag\Gorilla Tag_Data\Managed\UnityEngine.dllGorilla Tag\Gorilla Tag_Data\Managed\UnityEngine.CoreModule.dllGorilla Tag\Gorilla Tag_Data\Managed\Assembly-CSharp.dll(Contains Gorilla Tag core logic)
Part 2: Writing the Plugin Code
Replace the code in Class1.cs with the following foundation:
using System;
using BepInEx;
using UnityEngine;
using HarmonyLib;
namespace MyFirstGTagMod
{
[BepInPlugin("com.yourname.gorillatag.firstmod", "My First Mod", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
void Awake()
{
// Apply Harmony Patches
var harmony = new Harmony("com.yourname.gorillatag.firstmod");
harmony.PatchAll();
Logger.LogInfo("My First Gorilla Tag Mod has loaded successfully!");
}
void Update()
{
// Example: Press spacebar on keyboard to trigger debug print
if (UnityInput.Current.GetKeyDown(KeyCode.Space))
{
Debug.Log("Spacebar pressed in VR test mode!");
}
}
}
}
Part 3: Understanding Harmony Patches
Gorilla Tag uses compiled C# methods inside Assembly-CSharp.dll. Because you cannot directly edit the game’s source code, Harmony allows you to inject code before (Prefix) or after (Postfix) the game’s methods execute.
Example: Modifying Jump Velocity
To tweak player jump multiplier, you patch the GorillaLocomotion.Player class:
[HarmonyPatch(typeof(GorillaLocomotion.Player))]
[HarmonyPatch("GetSlidePercentage", MethodType.Normal)]
public class SlidePatch
{
static void Postfix(ref float __result)
{
// Alter slide friction or surface response
}
}
Part 4: Building and Testing Your Mod
- In Visual Studio, set your build configuration to Release (not Debug).
- Click Build > Build Solution (or press Ctrl + Shift + B).
- Open your project output directory (
bin\Release\netstandard2.1\). - Copy your compiled
MyFirstGTagMod.dllfile directly into:Gorilla Tag\BepInEx\plugins\ - Launch Gorilla Tag. Check the BepInEx console log to see your initialization message!
GTMods is an educational resource and mod testing community. We strongly advocate for fair play in VR gaming. Mods that introduce flight, speed modifications, or custom physical parameters must exclusively be run in private, modded custom lobbies. Running unauthorized modifications in public matchmaking queues violates game rules and will lead to an account ban.