├── LICENSE ├── README.md ├── Universal-Unity-ESP ├── Hacks.cs ├── Loader.cs ├── Render.cs ├── Universal-Unity-ESP.csproj └── Universal-Unity-ESP.sln └── images ├── OnlinePlayer.PNG └── slapshotESP.gif /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 ethanedits 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Universal-Unity-ESP 2 | This is a *guide to creating* an **Internal ESP** for any [Unity Engine](https://en.wikipedia.org/wiki/Unity_(game_engine)) game. (Source included in the Universal-Unity-ESP folder, video guide [here](https://youtu.be/ww5OKW7GwCk)) 3 | 4 | If you plan to just use the source, make sure you change the DLLs (Project References), and change to your gameobject :) 5 | 6 | NOTICE: If you have not created a Unity Internal before, I suggest you watch [my tutorial](https://youtu.be/VeMZ8NM9f3o) that will introduce you to the basics, and give you knowledge that will be needed for this guide (ex: creating a class library, reversing gameobjects, adding references, setting up loader, etc.) 7 | 8 | ![Example](https://github.com/ethanedits/Universal-Unity-ESP/blob/main/images/slapshotESP.gif) 9 | 10 | ## What Is Unity Engine? 11 | ***Unity Engine*** is one of the worlds **most popular** game engines, supporting a large array of platforms including *Mobile*, *Desktop*, and *Console*. Due to its success, many of the games you play are made in Unity, examples including **Rust**, **Escape from Tarkov**, **Totally Accurate Battlegrounds**, and **Muck** just to name a few. 12 | 13 | Unity Engine is built on GameObjects and Components. To understand the basics of how the engine works, please refer to [this slideshow](https://docs.google.com/presentation/d/1WvvUawFCj1t6eMqJY-LkWjJ2yWhQhqUnKAMLNBLQ2pM/edit?usp=sharing) 14 | 15 | ## Creating an ESP 16 | 17 | ### *Getting the Player GameObject* 18 | --------------------------------------------------- 19 | 20 | In a *regular memory based ESP*, the first step is to find the **Entity List**. The Entity List contains information on each player in the game, such as positional data, health, ammo, and more. 21 | 22 | In our case since we are making an Internal ESP we have access to the game's [GameObjects](https://docs.unity3d.com/ScriptReference/GameObject.html), and we can find the **player** GameObject and manipulate its [Components](https://docs.unity3d.com/ScriptReference/Component.html) directly, creating an **entity loop** by finding *every gameobject of a type in the game scene*. To find the player gameobject we need to use the software [dnSpy](https://github.com/dnSpy/dnSpy), which will allow us to view Unity Assemblies. We simply drag in our Assembly-CSharp and Assembly-CSharp-firstpass DLLs and we can view the games classes. Then trial-and-error your way through finding the right Player class (*usually it will be called something along the lines of player*), as pictured below I found it for **Muck**. All we need is the name of the class, so once you have found it you are ready for the next step. 23 | 24 | ![OnlinePlayer](https://github.com/ethanedits/Universal-Unity-ESP/blob/main/images/OnlinePlayer.PNG) 25 | 26 | ### *Getting GameObject Position* 27 | --------------------------------------------------- 28 | 29 | Instead of having to find *pointers in memory* to the **entitylist** and then getting the entity position from there, we can simply use the [Transform](https://docs.unity3d.com/ScriptReference/Transform.html) component to get the position of the gameobject as a **Vector3**. 30 | ```csharp 31 | Vector3 gameObjectPosition = gameObject.transform.position; 32 | ``` 33 | 34 | ### *Entity Loop* 35 | --------------------------------------------------- 36 | 37 | Now that we know how to get a GameObject's position, and what ***GameObject is our player***, we can start *writing our ESP*. Inside of the `OnGui()` function we are putting our Entity Loop, which is a foreach loop that finds loaded objects of the type `OnlinePlayer` in the scene. 38 | ```csharp 39 | void OnGUI() 40 | { 41 | foreach (OnlinePlayer player in FindObjectsOfType(typeof(OnlinePlayer)) as OnlinePlayer[]) 42 | { 43 | 44 | 45 | } 46 | } 47 | ``` 48 | From here we can implement the player position, but before we do so we need to distinguish the **difference** between the *pivot point* of a gameObject and the *origin point*. 49 | 50 | ### *Pivot Point and Origin Point* 51 | --------------------------------------------------- 52 | 53 | In Unity, when you are getting the `transform.position` of a gameObject, you are getting the location of the pivot point, **not** the location of the origin point. What is the difference, and **why does this matter**? 54 | 55 |

56 | 57 | 58 |

59 | 60 | As you can see _above to the left_, the pivot point is in the _middle_ of the player gameObject on the Y (up/down) axis; with the player model being 2 Units tall, the pivot point is at Y:1. 61 | This **causes issues** once we start rendering our ESP, because we want the ESP box to start at the bottom of the player and end at the head. So to fix this we need to offset the player position on the Y axis to get it to be at where the origin point should be. Some games will fix their pivot points and make them set to the feet of the player, but more often than not, you will find that the pivot point is in the center of the player, **not** at the origin. 62 | 63 | ### *Player Position inside Entity Loop and Player Height* 64 | --------------------------------------------------- 65 | 66 | Now that you understand the **pivot point dilemma**, we can add onto our entity loop. 67 | ```csharp 68 | Vector3 pivotPos = player.transform.position; //Pivot point NOT at the origin, at the center 69 | Vector3 playerFootPos; playerFootPos.x = pivotPos.x; playerFootPos.z = pivotPos.z; playerFootPos.y = pivotPos.y - 2f; //At the feet 70 | Vector3 playerHeadPos; playerHeadPos.x = pivotPos.x; playerHeadPos.z = pivotPos.z; playerHeadPos.y = pivotPos.y + 2f; //At the head 71 | ``` 72 | In the `pivotPos` Vector3 we are setting it to the pivot position (gameObject.transform.position), and using that to get the `playerFootPos` / **origin** position by offsetting the pivotPos by -2f on the Y Axis (this **WILL vary** depending on the height of the player model in **YOUR** game, but for Muck, _2_ works for me.) We are then doing the same for the `playerHeadPos` but instead of subtracting to get the feet, we are adding to the pivot position to get the head position. The Image below should visualize what is being offset, with the total height being roughly 4 Units, and from the pivot point down or up is 2 units. 73 | 74 | ![Offsetting](https://user-images.githubusercontent.com/58463523/128575874-28875bf7-e188-456b-95ea-5c3a97ebe652.png) 75 | 76 | ### *WorldToScreen* 77 | --------------------------------------------------- 78 | 79 | A _WorldToScreen_ function is used for **converting** _in-game coordinates_ (X,Y,Z) to _screen coordinates_ (X,Y). In [memory based ESPs](https://github.com/HeathHowren/CSGO-Cheats/blob/master/CSGO-GDI-ESP/Source.cpp), you need to get the viewmatrix, and use that in the WorldToScreen function. Fortunately, Unity has a [WorldToScreenPoint](https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html) function that allows you to get the screenpoint of a Vector3 from a [Camera](https://docs.unity3d.com/Manual/class-Camera.html) component. 80 | ```csharp 81 | Camera.main.WorldToScreenPoint(Vector3 pos); 82 | ``` 83 | **Time to implement it!** 84 | 85 | Inside our Entity Loop, under the player position code we wrote previously, we will create two Vector3's, that will be getting the **screen position** of the **head and foot positions**. 86 | 87 | ```csharp 88 | 89 | Vector3 w2s_footpos = Camera.main.WorldToScreenPoint(playerFootPos); 90 | Vector3 w2s_headpos = Camera.main.WorldToScreenPoint(playerHeadPos); 91 | ``` 92 | 93 | ### *Rendering* 94 | --------------------------------------------------- 95 | 96 | To _render_ our ESP, we need to add the [Render.cs](https://github.com/ethanedits/Universal-Unity-ESP/blob/main/Universal-Unity-ESP/Render.cs) class to our project, provided in the source. 97 | This will allow us to simply _draw_ **lines**, **boxes**, and **text** on the screen (the functions simplify Unity's GUI functions). 98 | 99 | We will now create a new function called `DrawBoxESP()` that we can call to **draw** the box esp from the OnGUI() function. We need to input our **screen position** Vector3s for our _head and foot_, and we will also include a Color. 100 | ```csharp 101 | public void DrawBoxESP(Vector3 footpos, Vector3 headpos, Color color) 102 | { 103 | 104 | } 105 | ``` 106 | 107 | Inside our newly created function we will create three **floats**. _Height_ is for the _height of our player_, _width offset is the width of our player_, and _width_ is the _width_ of the **esp box**. 108 | 109 | ```csharp 110 | float height = headpos.y - footpos.y; 111 | float widthOffset = 2f; 112 | float width = height / widthOffset; 113 | ``` 114 | 115 | Now we can call `DrawBox()` and `DrawLine()` from our **Render** class to draw our _ESP Box_, and (optional) _Snapline_. 116 | 117 | ```csharp 118 | //ESP BOX 119 | Render.DrawBox(footpos.x - (width / 2), (float)Screen.height - footpos.y - height, width, height, color, 2f); 120 | 121 | //Snapline 122 | Render.DrawLine(new Vector2((float)(Screen.width / 2), (float)(Screen.height / 2)), new Vector2(footpos.x, (float)Screen.height - footpos.y), color, 2f); 123 | ``` 124 | 125 | To change the **snapline** from snapping from the _center of the screen_ to the _bottom_, you can change `(float)(Screen.height / 2))` to `(float)(Screen.height - 1))`. Other than that, you can change the _thickness_ of the Box and Line by changing the _last variable_ which is currently at _2f_. 126 | 127 | Now we are finished with our Drawing function! Time to call it in the entity loop and we will be done! 128 | 129 | **Returning** to our _Entity Loop_, below the `w2s_footpos` and `w2s_headpos` Vector3s, we will check that the esp box is not being drawn off screen, and then calling the `DrawBoxESP()` function. 130 | 131 | ```csharp 132 | if (w2s_footpos.z > 0f) 133 | { 134 | DrawBoxESP(w2s_footpos, w2s_headpos, Color.red); 135 | } 136 | ``` 137 | 138 | ### *Conclusion* 139 | --------------------------------------------------- 140 | 141 | _Finally_ we are finished with the **ESP**, build it, use your favorite mono injector (Class Name is: **Universal_Unity_ESP**, _not_ Universal-Unity-ESP) and you have yourself a **Universal Unity ESP**. 142 | 143 | ![muckESP](https://user-images.githubusercontent.com/58463523/128660273-f91eb9eb-1276-43ac-b3c3-672270f26026.gif) 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /Universal-Unity-ESP/Hacks.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Universal_Unity_ESP 4 | { 5 | class Hacks : MonoBehaviour 6 | { 7 | public void OnGUI() 8 | { 9 | //Replace OnlinePlayer with the name of your Player class, and make sure to change the reference DLLs to the ones for your game! 10 | 11 | foreach (OnlinePlayer player in FindObjectsOfType(typeof(OnlinePlayer)) as OnlinePlayer[]) 12 | { 13 | //In-Game Position 14 | Vector3 pivotPos = player.transform.position; //Pivot point NOT at the feet, at the center 15 | Vector3 playerFootPos; playerFootPos.x = pivotPos.x; playerFootPos.z = pivotPos.z; playerFootPos.y = pivotPos.y - 2f; //At the feet 16 | Vector3 playerHeadPos; playerHeadPos.x = pivotPos.x; playerHeadPos.z = pivotPos.z; playerHeadPos.y = pivotPos.y + 2f; //At the head 17 | 18 | //Screen Position 19 | Vector3 w2s_footpos = Camera.main.WorldToScreenPoint(playerFootPos); 20 | Vector3 w2s_headpos = Camera.main.WorldToScreenPoint(playerHeadPos); 21 | 22 | if (w2s_footpos.z > 0f) 23 | { 24 | DrawBoxESP(w2s_footpos, w2s_headpos, Color.red); 25 | } 26 | } 27 | } 28 | 29 | public void DrawBoxESP(Vector3 footpos, Vector3 headpos, Color color) //Rendering the ESP 30 | { 31 | float height = headpos.y - footpos.y; 32 | float widthOffset = 2f; 33 | float width = height / widthOffset; 34 | 35 | //ESP BOX 36 | Render.DrawBox(footpos.x - (width / 2), (float)Screen.height - footpos.y - height, width, height, color, 2f); 37 | 38 | //Snapline 39 | Render.DrawLine(new Vector2((float)(Screen.width / 2), (float)(Screen.height / 2)), new Vector2(footpos.x, (float)Screen.height - footpos.y), color, 2f); 40 | } 41 | 42 | public void Update() 43 | { 44 | if (Input.GetKeyDown(KeyCode.Delete)) 45 | { 46 | Loader.Unload(); 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Universal-Unity-ESP/Loader.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Universal_Unity_ESP 4 | { 5 | public class Loader 6 | { 7 | public static void Init() 8 | { 9 | Loader.Load = new UnityEngine.GameObject(); 10 | Loader.Load.AddComponent(); 11 | UnityEngine.Object.DontDestroyOnLoad(Loader.Load); 12 | } 13 | 14 | public static void Unload() 15 | { 16 | _Unload(); 17 | } 18 | 19 | private static void _Unload() 20 | { 21 | GameObject.Destroy(Load); 22 | } 23 | 24 | private static GameObject Load; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Universal-Unity-ESP/Render.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Universal_Unity_ESP 4 | { 5 | public class Render : MonoBehaviour 6 | { 7 | public static GUIStyle StringStyle { get; set; } = new GUIStyle(GUI.skin.label); 8 | 9 | public static Color Color 10 | { 11 | get { return GUI.color; } 12 | set { GUI.color = value; } 13 | } 14 | 15 | public static void DrawString(Vector2 position, string label, bool centered = true) 16 | { 17 | var content = new GUIContent(label); 18 | var size = StringStyle.CalcSize(content); 19 | var upperLeft = centered ? position - size / 2f : position; 20 | GUI.Label(new Rect(upperLeft, size), content); 21 | } 22 | 23 | public static Texture2D lineTex; 24 | public static void DrawLine(Vector2 pointA, Vector2 pointB, Color color, float width) 25 | { 26 | Matrix4x4 matrix = GUI.matrix; 27 | if (!lineTex) 28 | lineTex = new Texture2D(1, 1); 29 | 30 | Color color2 = GUI.color; 31 | GUI.color = color; 32 | float num = Vector3.Angle(pointB - pointA, Vector2.right); 33 | 34 | if (pointA.y > pointB.y) 35 | num = -num; 36 | 37 | GUIUtility.ScaleAroundPivot(new Vector2((pointB - pointA).magnitude, width), new Vector2(pointA.x, pointA.y + 0.5f)); 38 | GUIUtility.RotateAroundPivot(num, pointA); 39 | GUI.DrawTexture(new Rect(pointA.x, pointA.y, 1f, 1f), lineTex); 40 | GUI.matrix = matrix; 41 | GUI.color = color2; 42 | } 43 | 44 | public static void DrawBox(float x, float y, float w, float h, Color color, float thickness) 45 | { 46 | DrawLine(new Vector2(x, y), new Vector2(x + w, y), color, thickness); 47 | DrawLine(new Vector2(x, y), new Vector2(x, y + h), color, thickness); 48 | DrawLine(new Vector2(x + w, y), new Vector2(x + w, y + h), color, thickness); 49 | DrawLine(new Vector2(x, y + h), new Vector2(x + w, y + h), color, thickness); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Universal-Unity-ESP/Universal-Unity-ESP.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Universal_Unity_ESP 6 | 7 | 8 | 9 | 10 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\Assembly-CSharp.dll 11 | 12 | 13 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\Assembly-CSharp-firstpass.dll 14 | 15 | 16 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\Unity.Postprocessing.Runtime.dll 17 | 18 | 19 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\Unity.TextMeshPro.dll 20 | 21 | 22 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\Unity.Timeline.dll 23 | 24 | 25 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.dll 26 | 27 | 28 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AccessibilityModule.dll 29 | 30 | 31 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AIModule.dll 32 | 33 | 34 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AndroidJNIModule.dll 35 | 36 | 37 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AnimationModule.dll 38 | 39 | 40 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ARModule.dll 41 | 42 | 43 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AssetBundleModule.dll 44 | 45 | 46 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.AudioModule.dll 47 | 48 | 49 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ClothModule.dll 50 | 51 | 52 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ClusterInputModule.dll 53 | 54 | 55 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ClusterRendererModule.dll 56 | 57 | 58 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.CoreModule.dll 59 | 60 | 61 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.CrashReportingModule.dll 62 | 63 | 64 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.DirectorModule.dll 65 | 66 | 67 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.DSPGraphModule.dll 68 | 69 | 70 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.GameCenterModule.dll 71 | 72 | 73 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.GridModule.dll 74 | 75 | 76 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.HotReloadModule.dll 77 | 78 | 79 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ImageConversionModule.dll 80 | 81 | 82 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.IMGUIModule.dll 83 | 84 | 85 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.InputLegacyModule.dll 86 | 87 | 88 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.InputModule.dll 89 | 90 | 91 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.JSONSerializeModule.dll 92 | 93 | 94 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.LocalizationModule.dll 95 | 96 | 97 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ParticleSystemModule.dll 98 | 99 | 100 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.PerformanceReportingModule.dll 101 | 102 | 103 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.Physics2DModule.dll 104 | 105 | 106 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.PhysicsModule.dll 107 | 108 | 109 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ProfilerModule.dll 110 | 111 | 112 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.ScreenCaptureModule.dll 113 | 114 | 115 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.SharedInternalsModule.dll 116 | 117 | 118 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.SpriteMaskModule.dll 119 | 120 | 121 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.SpriteShapeModule.dll 122 | 123 | 124 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.StreamingModule.dll 125 | 126 | 127 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.SubstanceModule.dll 128 | 129 | 130 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.SubsystemsModule.dll 131 | 132 | 133 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TerrainModule.dll 134 | 135 | 136 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TerrainPhysicsModule.dll 137 | 138 | 139 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TextCoreModule.dll 140 | 141 | 142 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TextRenderingModule.dll 143 | 144 | 145 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TilemapModule.dll 146 | 147 | 148 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.TLSModule.dll 149 | 150 | 151 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UI.dll 152 | 153 | 154 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UIElementsModule.dll 155 | 156 | 157 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UIModule.dll 158 | 159 | 160 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UmbraModule.dll 161 | 162 | 163 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UNETModule.dll 164 | 165 | 166 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityAnalyticsModule.dll 167 | 168 | 169 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityConnectModule.dll 170 | 171 | 172 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityTestProtocolModule.dll 173 | 174 | 175 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll 176 | 177 | 178 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityWebRequestAudioModule.dll 179 | 180 | 181 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityWebRequestModule.dll 182 | 183 | 184 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityWebRequestTextureModule.dll 185 | 186 | 187 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.UnityWebRequestWWWModule.dll 188 | 189 | 190 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.VehiclesModule.dll 191 | 192 | 193 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.VFXModule.dll 194 | 195 | 196 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.VideoModule.dll 197 | 198 | 199 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.VRModule.dll 200 | 201 | 202 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.WindModule.dll 203 | 204 | 205 | D:\Program Files (x86)\SteamLibrary\steamapps\common\Muck\Muck_Data\Managed\UnityEngine.XRModule.dll 206 | 207 | 208 | 209 | 210 | -------------------------------------------------------------------------------- /Universal-Unity-ESP/Universal-Unity-ESP.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30804.86 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Universal-Unity-ESP", "Universal-Unity-ESP.csproj", "{7F8DA6A0-CA6C-4220-B52C-7E4D5C358FE6}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7F8DA6A0-CA6C-4220-B52C-7E4D5C358FE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {7F8DA6A0-CA6C-4220-B52C-7E4D5C358FE6}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {7F8DA6A0-CA6C-4220-B52C-7E4D5C358FE6}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {7F8DA6A0-CA6C-4220-B52C-7E4D5C358FE6}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {6ED343A4-57B2-4252-929D-40116909EDE9} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /images/OnlinePlayer.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanedits/Universal-Unity-ESP/8057f9b91f68252ddeaad6b16245d5669ee0b207/images/OnlinePlayer.PNG -------------------------------------------------------------------------------- /images/slapshotESP.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanedits/Universal-Unity-ESP/8057f9b91f68252ddeaad6b16245d5669ee0b207/images/slapshotESP.gif --------------------------------------------------------------------------------