From 0b90598356a4e00dad32523b6b890a1bbf89bd4b Mon Sep 17 00:00:00 2001
From: Jadis0x <49281043+jadis0x@users.noreply.github.com>
Date: Fri, 7 Jun 2024 19:07:09 +0300
Subject: [PATCH] Reorganized UnityEngine namespace
Reorganized UnityEngine namespace by splitting headers into individual classes
---
IL2CppDLL.vcxproj | 25 +++++---
IL2CppDLL.vcxproj.filters | 81 ++++++++++++++++++++------
lib/UnityEngine.cpp | 81 --------------------------
lib/UnityEngine.h | 72 -----------------------
lib/{ => private}/ClientHelper.cpp | 38 +++++-------
lib/private/UnityEngine/Camera.cpp | 8 +++
lib/private/UnityEngine/GameObject.cpp | 29 +++++++++
lib/private/UnityEngine/Input.cpp | 9 +++
lib/private/UnityEngine/Math.cpp | 16 +++++
lib/private/UnityEngine/Object.cpp | 30 ++++++++++
lib/private/UnityEngine/Transform.cpp | 19 ++++++
lib/{ => private}/wrapper.cpp | 0
lib/{ => public}/ClientHelper.h | 1 -
lib/public/UnityEngine/Camera.h | 5 ++
lib/public/UnityEngine/Engine.hpp | 7 +++
lib/public/UnityEngine/GameObject.h | 6 ++
lib/public/UnityEngine/Input.h | 5 ++
lib/public/UnityEngine/Math.h | 8 +++
lib/public/UnityEngine/Object.h | 37 ++++++++++++
lib/public/UnityEngine/Transform.h | 6 ++
lib/{ => public}/wrapper.h | 0
user/features/esp/esp.cpp | 6 +-
user/features/misc/misc.cpp | 32 +++++-----
user/hooks/hooks.cpp | 10 ++--
user/main.cpp | 4 +-
user/players/players.cpp | 12 ++--
26 files changed, 311 insertions(+), 236 deletions(-)
delete mode 100644 lib/UnityEngine.cpp
delete mode 100644 lib/UnityEngine.h
rename lib/{ => private}/ClientHelper.cpp (68%)
create mode 100644 lib/private/UnityEngine/Camera.cpp
create mode 100644 lib/private/UnityEngine/GameObject.cpp
create mode 100644 lib/private/UnityEngine/Input.cpp
create mode 100644 lib/private/UnityEngine/Math.cpp
create mode 100644 lib/private/UnityEngine/Object.cpp
create mode 100644 lib/private/UnityEngine/Transform.cpp
rename lib/{ => private}/wrapper.cpp (100%)
rename lib/{ => public}/ClientHelper.h (90%)
create mode 100644 lib/public/UnityEngine/Camera.h
create mode 100644 lib/public/UnityEngine/Engine.hpp
create mode 100644 lib/public/UnityEngine/GameObject.h
create mode 100644 lib/public/UnityEngine/Input.h
create mode 100644 lib/public/UnityEngine/Math.h
create mode 100644 lib/public/UnityEngine/Object.h
create mode 100644 lib/public/UnityEngine/Transform.h
rename lib/{ => public}/wrapper.h (100%)
diff --git a/IL2CppDLL.vcxproj b/IL2CppDLL.vcxproj
index 359e13e..fa26749 100644
--- a/IL2CppDLL.vcxproj
+++ b/IL2CppDLL.vcxproj
@@ -50,9 +50,14 @@
-
-
-
+
+
+
+
+
+
+
+
@@ -93,9 +98,15 @@
-
-
-
+
+
+
+
+
+
+
+
+
@@ -226,7 +237,7 @@
Use
pch-il2cpp.h
true
- $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)lib
+ $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)lib\public;
Windows
diff --git a/IL2CppDLL.vcxproj.filters b/IL2CppDLL.vcxproj.filters
index 218659f..b5db620 100644
--- a/IL2CppDLL.vcxproj.filters
+++ b/IL2CppDLL.vcxproj.filters
@@ -16,9 +16,6 @@
framework
-
- lib
-
include\imgui
@@ -64,18 +61,12 @@
user\settings
-
- lib
-
user\utils
user\features\misc
-
- lib
-
user\players
@@ -85,6 +76,30 @@
user\network
+
+ lib\private
+
+
+ lib\private
+
+
+ lib\private\UnityEngine
+
+
+ lib\private\UnityEngine
+
+
+ lib\private\UnityEngine
+
+
+ lib\private\UnityEngine
+
+
+ lib\private\UnityEngine
+
+
+ lib\private\UnityEngine
+
@@ -120,9 +135,6 @@
framework
-
- lib
-
include\imgui
@@ -183,9 +195,6 @@
user\settings
-
- lib
-
user\utils
@@ -195,9 +204,6 @@
include
-
- lib
-
user\players
@@ -210,6 +216,33 @@
include
+
+ lib\public
+
+
+ lib\public
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
+
+ lib\public\UnityEngine
+
@@ -257,5 +290,17 @@
{faef4024-c359-4051-90fc-8735a4acbe8f}
+
+ {22144ae2-ce2d-48f4-ac56-0cefde863748}
+
+
+ {b83e2b95-1a9b-4065-8f3b-750d80fa32da}
+
+
+ {a4d2670d-9928-419c-ab6d-12fd69137e9f}
+
+
+ {289d934d-1844-4207-b865-47a910a88c81}
+
\ No newline at end of file
diff --git a/lib/UnityEngine.cpp b/lib/UnityEngine.cpp
deleted file mode 100644
index 4de7cf2..0000000
--- a/lib/UnityEngine.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "pch-il2cpp.h"
-
-#include "UnityEngine.h"
-#include
-
-app::Component* UnityEngine::GameObject::GetComponentByName(app::GameObject* go, const char* type)
-{
- app::Component* component = app::GameObject_GetComponentByName(go, ConvertToSystemString(type), nullptr);
-
- return component ? component : nullptr;
-}
-
-app::Component__Array* UnityEngine::GameObject::LogComponents(app::GameObject* go)
-{
- Wrapper obj("UnityEngine.CoreModule.dll");
-
- Il2CppObject* object = obj.find_class("UnityEngine", "Component").get_class();
-
- if (!object) return nullptr;
-
- app::Type* type = reinterpret_cast(object);
- if (!type) return nullptr;
-
- app::Component__Array* __components = app::GameObject_GetComponents(go, type, nullptr);
-
- return __components ? __components : nullptr;
-}
-
-const char* UnityEngine::Math::Vector3::ToString(app::Vector3* v)
-{
- app::String* str = app::Vector3_ToString(v, nullptr);
-
- return str ? il2cppi_to_string(str).c_str() : "Vector::ToString returned nullptr!\n";
-}
-
-const char* UnityEngine::Math::Vector3::ToString(app::Vector3 v)
-{
- return ("x: " + std::to_string(v.x) + " y: " + std::to_string(v.y) + " z: " + std::to_string(v.z)).c_str();
-}
-
-app::Transform* UnityEngine::Transform::Get(app::GameObject* go)
-{
- if (!go || !app::GameObject_get_transform) return nullptr;
-
- app::Transform* __transform = app::GameObject_get_transform(go, nullptr);
-
- return __transform ? __transform : nullptr;
-}
-
-app::Vector3 UnityEngine::Transform::Position(app::Transform* transform)
-{
- if (!transform || !app::Transform_get_position) return app::Vector3();
-
- return app::Transform_get_position(transform, nullptr);
-}
-
-app::Camera* UnityEngine::Camera::GetMainCamera() {
- return app::Camera_get_main(nullptr) ? app::Camera_get_main(nullptr) : nullptr;
-}
-
-const char* UnityEngine::Object::GetObjectName(app::Object_1* obj)
-{
- static std::string name = il2cppi_to_string(app::Object_1_GetName(obj, nullptr));
- return name.c_str();
-}
-
-app::GameObject__Array* UnityEngine::Object::FindGameObjectsWithTag(const char* tag)
-{
- app::GameObject__Array* go_array_result = app::GameObject_FindGameObjectsWithTag(ConvertToSystemString(tag), nullptr);
-
- return go_array_result ? go_array_result : nullptr;
-}
-
-void UnityEngine::Object::FindObjectFromInstanceID(int32_t instanceID)
-{
-}
-
-float UnityEngine::Input::GetAxis(const char* axisName)
-{
- return app::Input_1_GetAxis(ConvertToSystemString(axisName), nullptr);
-}
diff --git a/lib/UnityEngine.h b/lib/UnityEngine.h
deleted file mode 100644
index 9bebf03..0000000
--- a/lib/UnityEngine.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#pragma once
-
-#include "Wrapper.h"
-#include "helpers.h"
-#include "ClientHelper.h"
-
-namespace UnityEngine {
- namespace GameObject {
- app::Component* GetComponentByName(app::GameObject* go, const char* type);
- app::Component__Array* LogComponents(app::GameObject* go);
- }
-
- namespace Math {
- namespace Vector3 {
- const char* ToString(app::Vector3* v);
- const char* ToString(app::Vector3 v);
- }
- }
-
- namespace Transform {
- app::Transform* Get(app::GameObject* go);
- app::Vector3 Position(app::Transform* transform);
- }
-
- struct Input {
- static float GetAxis(const char* axisName);
- };
-
- struct Behaviour {
- template
- static inline bool Enabled(T* behaviour) {
- return app::Behaviour_get_enabled((app::Behaviour*)behaviour, nullptr);
- }
-
- template
- static inline void Enabled(T* behaviour, bool value) {
- app::Behaviour_set_enabled((app::Behaviour*)behaviour, value, nullptr);
- }
- };
-
- struct Camera {
- static app::Camera* GetMainCamera();
- };
-
- struct Object {
-
- static const char* GetObjectName(app::Object_1* obj);
-
- static app::GameObject__Array* FindGameObjectsWithTag(const char* tag);
-
- // Object_1_FindObjectFromInstanceID
- static void FindObjectFromInstanceID(int32_t instanceID);
-
- template
- static inline T* FindObjectOfType(const char* className, const char* classNamespace = "", const char* assemblyName = "Assembly-CSharp.dll") {
-
- Wrapper obj(assemblyName);
-
- Il2CppObject* object = obj.find_class(classNamespace, className).get_class();
-
- if (!object || !app::Object_1_FindObjectOfType) return nullptr;
-
- app::Object_1* obj_1 = app::Object_1_FindObjectOfType(reinterpret_cast(object), nullptr);
-
- if (!obj_1 || IsNull(obj_1)) return nullptr;
-
- return reinterpret_cast(obj_1);
- }
-
- };
-
-}
\ No newline at end of file
diff --git a/lib/ClientHelper.cpp b/lib/private/ClientHelper.cpp
similarity index 68%
rename from lib/ClientHelper.cpp
rename to lib/private/ClientHelper.cpp
index 348a73b..a2c0db9 100644
--- a/lib/ClientHelper.cpp
+++ b/lib/private/ClientHelper.cpp
@@ -4,7 +4,7 @@
#include "ClientHelper.h"
#include "players/players.h"
-#include "UnityEngine.h"
+#include "UnityEngine/Engine.hpp"
bool IsSinglePlayer()
{
@@ -43,27 +43,23 @@ bool IsPlayerCrawling()
bool IsPlayerCrawling(app::GameObject* go)
{
- if (go == NULL)
+ if (go == nullptr) return false;
+
+ app::Component* nbComponent = GameObject::GetComponentByName(go, "NolanBehaviour");
+
+ if (nbComponent) return false;
+
+ app::NolanBehaviour* nb = reinterpret_cast(nbComponent);
+
+ if (nb)
+ return app::NolanBehaviour_IsCrawling(nb, nullptr);
+ else
return false;
-
- if (app::GameObject_GetComponentByName != NULL) {
- app::Component* nbComponent = app::GameObject_GetComponentByName(go, ConvertToSystemString("NolanBehaviour"), nullptr);
-
- if (nbComponent) {
- app::NolanBehaviour* nb = reinterpret_cast(nbComponent);
-
- if (nb) {
- return app::NolanBehaviour_IsCrawling(nb, nullptr);
- }
- }
- }
-
- return app::NolanBehaviour_IsCrawling(Player::GetNolan(), nullptr);
}
bool IsInGame()
{
- app::OptionsHelpers* optionsHelpers = UnityEngine::Object::FindObjectOfType("OptionsHelpers");
+ app::OptionsHelpers* optionsHelpers = Object::FindObjectOfType("OptionsHelpers");
if (optionsHelpers)
return optionsHelpers->fields._inGame_k__BackingField;
@@ -71,14 +67,6 @@ bool IsInGame()
return false;
}
-bool IsNull(app::Object_1* obj)
-{
- if (obj == nullptr)
- return true;
-
- return !app::Object_1_op_Implicit(obj, nullptr);
-}
-
app::GameObject* GetAzazel(app::Survival* survival)
{
app::GameObject* ai = app::Survival_GetAzazel(survival, nullptr);
diff --git a/lib/private/UnityEngine/Camera.cpp b/lib/private/UnityEngine/Camera.cpp
new file mode 100644
index 0000000..32071c3
--- /dev/null
+++ b/lib/private/UnityEngine/Camera.cpp
@@ -0,0 +1,8 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/Camera.h"
+
+app::Camera* Camera::GetMainCamera()
+{
+ return app::Camera_get_main(nullptr) ? app::Camera_get_main(nullptr) : nullptr;
+}
diff --git a/lib/private/UnityEngine/GameObject.cpp b/lib/private/UnityEngine/GameObject.cpp
new file mode 100644
index 0000000..f1fec1a
--- /dev/null
+++ b/lib/private/UnityEngine/GameObject.cpp
@@ -0,0 +1,29 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/GameObject.h"
+
+#include "wrapper.h"
+#include
+
+app::Component* GameObject::GetComponentByName(app::GameObject* go, const char* type)
+{
+ app::Component* component = app::GameObject_GetComponentByName(go, ConvertToSystemString(type), nullptr);
+
+ return component ? component : nullptr;
+}
+
+app::Component__Array* GameObject::LogComponents(app::GameObject* go)
+{
+ Wrapper obj("UnityEngine.CoreModule.dll");
+
+ Il2CppObject* object = obj.find_class("UnityEngine", "Component").get_class();
+
+ if (!object) return nullptr;
+
+ app::Type* type = reinterpret_cast(object);
+ if (!type) return nullptr;
+
+ app::Component__Array* __components = app::GameObject_GetComponents(go, type, nullptr);
+
+ return __components ? __components : nullptr;
+}
diff --git a/lib/private/UnityEngine/Input.cpp b/lib/private/UnityEngine/Input.cpp
new file mode 100644
index 0000000..96e128e
--- /dev/null
+++ b/lib/private/UnityEngine/Input.cpp
@@ -0,0 +1,9 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/Input.h"
+#include
+
+float Input::GetAxis(const char* axisName)
+{
+ return app::Input_1_GetAxis(ConvertToSystemString(axisName), nullptr);
+}
diff --git a/lib/private/UnityEngine/Math.cpp b/lib/private/UnityEngine/Math.cpp
new file mode 100644
index 0000000..0047d1c
--- /dev/null
+++ b/lib/private/UnityEngine/Math.cpp
@@ -0,0 +1,16 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/Math.h"
+#include
+
+const char* Math::Vector3::ToString(app::Vector3* v)
+{
+ app::String* str = app::Vector3_ToString(v, nullptr);
+
+ return str ? il2cppi_to_string(str).c_str() : "Vector::ToString returned nullptr!\n";
+}
+
+const char* Math::Vector3::ToString(app::Vector3 v)
+{
+ return ("x: " + std::to_string(v.x) + " y: " + std::to_string(v.y) + " z: " + std::to_string(v.z)).c_str();
+}
diff --git a/lib/private/UnityEngine/Object.cpp b/lib/private/UnityEngine/Object.cpp
new file mode 100644
index 0000000..9cb93ee
--- /dev/null
+++ b/lib/private/UnityEngine/Object.cpp
@@ -0,0 +1,30 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/Object.h"
+#include
+#include
+
+const char* Object::GetObjectName(app::Object_1* obj)
+{
+ static std::string name = il2cppi_to_string(app::Object_1_GetName(obj, nullptr));
+ return name.c_str();
+}
+
+app::GameObject__Array* Object::FindGameObjectsWithTag(const char* tag)
+{
+ app::GameObject__Array* go_array_result = app::GameObject_FindGameObjectsWithTag(ConvertToSystemString(tag), nullptr);
+
+ return go_array_result ? go_array_result : nullptr;
+}
+
+void Object::FindObjectFromInstanceID(int32_t instanceID)
+{
+}
+
+bool Object::IsNull(app::Object_1* obj)
+{
+ if (obj == nullptr)
+ return true;
+
+ return !app::Object_1_op_Implicit(obj, nullptr);
+}
diff --git a/lib/private/UnityEngine/Transform.cpp b/lib/private/UnityEngine/Transform.cpp
new file mode 100644
index 0000000..ae10a07
--- /dev/null
+++ b/lib/private/UnityEngine/Transform.cpp
@@ -0,0 +1,19 @@
+#include "pch-il2cpp.h"
+
+#include "UnityEngine/Transform.h"
+
+app::Transform* Transform::Get(app::GameObject* go)
+{
+ if (!go || !app::GameObject_get_transform) return nullptr;
+
+ app::Transform* __transform = app::GameObject_get_transform(go, nullptr);
+
+ return __transform ? __transform : nullptr;
+}
+
+app::Vector3 Transform::Position(app::Transform* transform)
+{
+ if (!transform || !app::Transform_get_position) return app::Vector3();
+
+ return app::Transform_get_position(transform, nullptr);
+}
diff --git a/lib/wrapper.cpp b/lib/private/wrapper.cpp
similarity index 100%
rename from lib/wrapper.cpp
rename to lib/private/wrapper.cpp
diff --git a/lib/ClientHelper.h b/lib/public/ClientHelper.h
similarity index 90%
rename from lib/ClientHelper.h
rename to lib/public/ClientHelper.h
index c417a92..653c061 100644
--- a/lib/ClientHelper.h
+++ b/lib/public/ClientHelper.h
@@ -8,7 +8,6 @@ bool IsLocalPlayer(app::NolanBehaviour* player);
bool IsPlayerCrawling();
bool IsPlayerCrawling(app::GameObject* go);
bool IsInGame();
-bool IsNull(app::Object_1* obj);
app::GameObject* GetAzazel(app::Survival* survival);
diff --git a/lib/public/UnityEngine/Camera.h b/lib/public/UnityEngine/Camera.h
new file mode 100644
index 0000000..ba518f5
--- /dev/null
+++ b/lib/public/UnityEngine/Camera.h
@@ -0,0 +1,5 @@
+#pragma once
+
+struct Camera {
+ static app::Camera* GetMainCamera();
+};
\ No newline at end of file
diff --git a/lib/public/UnityEngine/Engine.hpp b/lib/public/UnityEngine/Engine.hpp
new file mode 100644
index 0000000..1c34637
--- /dev/null
+++ b/lib/public/UnityEngine/Engine.hpp
@@ -0,0 +1,7 @@
+#pragma once
+
+#include "UnityEngine/Camera.h"
+#include "UnityEngine/GameObject.h"
+#include "UnityEngine/Input.h"
+#include "UnityEngine/Object.h"
+#include "UnityEngine/Transform.h"
diff --git a/lib/public/UnityEngine/GameObject.h b/lib/public/UnityEngine/GameObject.h
new file mode 100644
index 0000000..86de56f
--- /dev/null
+++ b/lib/public/UnityEngine/GameObject.h
@@ -0,0 +1,6 @@
+#pragma once
+
+namespace GameObject {
+ app::Component* GetComponentByName(app::GameObject* go, const char* type);
+ app::Component__Array* LogComponents(app::GameObject* go);
+};
\ No newline at end of file
diff --git a/lib/public/UnityEngine/Input.h b/lib/public/UnityEngine/Input.h
new file mode 100644
index 0000000..ba5d956
--- /dev/null
+++ b/lib/public/UnityEngine/Input.h
@@ -0,0 +1,5 @@
+#pragma once
+
+struct Input {
+ static float GetAxis(const char* axisName);
+};
\ No newline at end of file
diff --git a/lib/public/UnityEngine/Math.h b/lib/public/UnityEngine/Math.h
new file mode 100644
index 0000000..db90cea
--- /dev/null
+++ b/lib/public/UnityEngine/Math.h
@@ -0,0 +1,8 @@
+#pragma once
+
+namespace Math {
+ namespace Vector3 {
+ const char* ToString(app::Vector3* v);
+ const char* ToString(app::Vector3 v);
+ }
+}
\ No newline at end of file
diff --git a/lib/public/UnityEngine/Object.h b/lib/public/UnityEngine/Object.h
new file mode 100644
index 0000000..b42daa5
--- /dev/null
+++ b/lib/public/UnityEngine/Object.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "wrapper.h"
+
+struct Object {
+ static const char* GetObjectName(app::Object_1* obj);
+ static app::GameObject__Array* FindGameObjectsWithTag(const char* tag);
+ static void FindObjectFromInstanceID(int32_t instanceID);
+
+ static bool IsNull(app::Object_1* obj);
+
+ template
+ static inline T* FindObjectOfType(const char* className, const char* classNamespace = "", const char* assemblyName = "Assembly-CSharp.dll") {
+
+ Wrapper obj(assemblyName);
+
+ Il2CppObject* object = obj.find_class(classNamespace, className).get_class();
+
+ if (!object || !app::Object_1_FindObjectOfType) return nullptr;
+
+ app::Object_1* obj_1 = app::Object_1_FindObjectOfType(reinterpret_cast(object), nullptr);
+
+ if (!obj_1 || IsNull(obj_1)) return nullptr;
+
+ return reinterpret_cast(obj_1);
+ }
+
+ template
+ static inline bool Enabled(T* behaviour) {
+ return app::Behaviour_get_enabled((app::Behaviour*)behaviour, nullptr);
+ }
+
+ template
+ static inline void Enabled(T* behaviour, bool value) {
+ app::Behaviour_set_enabled((app::Behaviour*)behaviour, value, nullptr);
+ }
+};
\ No newline at end of file
diff --git a/lib/public/UnityEngine/Transform.h b/lib/public/UnityEngine/Transform.h
new file mode 100644
index 0000000..0f4b33f
--- /dev/null
+++ b/lib/public/UnityEngine/Transform.h
@@ -0,0 +1,6 @@
+#pragma once
+
+namespace Transform {
+ app::Transform* Get(app::GameObject* go);
+ app::Vector3 Position(app::Transform* transform);
+}
\ No newline at end of file
diff --git a/lib/wrapper.h b/lib/public/wrapper.h
similarity index 100%
rename from lib/wrapper.h
rename to lib/public/wrapper.h
diff --git a/user/features/esp/esp.cpp b/user/features/esp/esp.cpp
index c01232d..d6fc615 100644
--- a/user/features/esp/esp.cpp
+++ b/user/features/esp/esp.cpp
@@ -2,7 +2,7 @@
#include
#include "ClientHelper.h"
-#include "UnityEngine.h"
+#include "UnityEngine/Engine.hpp"
#include "players/players.h"
#include "helpers.h"
#include "esp.hpp"
@@ -31,11 +31,11 @@ static void DrawBoxESP(app::GameObject *it, float footOffset, float headOffset,
if (!it || cam == nullptr)
return;
- app::Transform* _transform = UnityEngine::Transform::Get(it);
+ app::Transform* _transform = Transform::Get(it);
if (_transform == nullptr)
return;
- app::Vector3 pos = UnityEngine::Transform::Position(_transform);
+ app::Vector3 pos = Transform::Position(_transform);
app::Vector3 footpos = app::Camera_WorldToScreenPoint_1(cam, app::Vector3{pos.x, pos.y + footOffset, pos.z}, NULL);
app::Vector3 headpos = app::Camera_WorldToScreenPoint_1(cam, app::Vector3{pos.x, pos.y + headOffset, pos.z}, NULL);
diff --git a/user/features/misc/misc.cpp b/user/features/misc/misc.cpp
index 209d76a..c3d69f9 100644
--- a/user/features/misc/misc.cpp
+++ b/user/features/misc/misc.cpp
@@ -5,7 +5,7 @@
#include "ClientHelper.h"
#include "players/players.h"
#include "helpers.h"
-#include "UnityEngine.h"
+#include "UnityEngine/Engine.hpp"
#include
#include "Windows.h"
#include