diff --git a/r5dev/client/cdll_engine_int.h b/r5dev/client/cdll_engine_int.h
index f09e9ce0..33a604ba 100644
--- a/r5dev/client/cdll_engine_int.h
+++ b/r5dev/client/cdll_engine_int.h
@@ -1,7 +1,8 @@
 #pragma once
 #ifndef DEDICATED // We should think about not including this file at all in dedicated tbh.
 #include "public/include/client_class.h"
-#endif
+#include "public/include/icliententitylist.h"
+#endif // !DEDICATED
 
 enum class ClientFrameStage_t : int
 {
@@ -63,6 +64,9 @@ inline bool* cl_time_use_host_tickcount = nullptr;
 
 inline CHLClient* gHLClient = nullptr;
 inline CHLClient* g_pHLClient = nullptr;
+#ifndef DEDICATED 
+inline IClientEntityList* g_pClientEntityList = nullptr;
+#endif // !DEDICATED
 
 ///////////////////////////////////////////////////////////////////////////////
 void CHLClient_Attach();
diff --git a/r5dev/client/vengineclient_impl.cpp b/r5dev/client/vengineclient_impl.cpp
index 5f452f30..8e20668b 100644
--- a/r5dev/client/vengineclient_impl.cpp
+++ b/r5dev/client/vengineclient_impl.cpp
@@ -55,9 +55,14 @@ bool CEngineClient::GetRestrictClientCommands() const
 //---------------------------------------------------------------------------------
 // Purpose: get local player
 // Input  :
-// Output : void* (C_Player)
+// Output : int
 //---------------------------------------------------------------------------------
-void* CEngineClient::GetLocalPlayer() const
+int CEngineClient::GetLocalPlayer()
 {
-	return CEngineClient_GetLocalPlayer();
+#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
+	const int index = 35;
+#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
+	const int index = 36;
+#endif
+	return CallVFunc<int>(index, this);
 }
\ No newline at end of file
diff --git a/r5dev/client/vengineclient_impl.h b/r5dev/client/vengineclient_impl.h
index a8b70e1d..7142b403 100644
--- a/r5dev/client/vengineclient_impl.h
+++ b/r5dev/client/vengineclient_impl.h
@@ -7,7 +7,7 @@ public:
 	bool GetRestrictServerCommands() const;
 	void SetRestrictClientCommands(bool bRestrict);
 	bool GetRestrictClientCommands() const;
-	void* GetLocalPlayer() const; // Is actually C_Player.
+	int GetLocalPlayer(); // Local player index.
 };
 
 /* ==== CVENGINECLIENT ================================================================================================================================================== */
@@ -30,6 +30,7 @@ class HVEngineClient : public IDetour
 	virtual void GetAdr(void) const
 	{
 		spdlog::debug("| FUN: IVEngineClient::CommandExecute       : {:#18x} |\n", p_CEngineClient_CommandExecute.GetPtr());
+		spdlog::debug("| FUN: IVEngineClient::GetLocalPlayer       : {:#18x} |\n", p_CEngineClient_GetLocalPlayer.GetPtr());
 		spdlog::debug("| VAR: m_bRestrictServerCommands            : {:#18x} |\n", reinterpret_cast<uintptr_t>(m_bRestrictServerCommands));
 		spdlog::debug("| VAR: m_bRestrictClientCommands            : {:#18x} |\n", reinterpret_cast<uintptr_t>(m_bRestrictClientCommands));
 		spdlog::debug("| CON: g_ppEngineClient                     : {:#18x} |\n", reinterpret_cast<uintptr_t>(g_ppEngineClient));
diff --git a/r5dev/game/client/animationlayer.h b/r5dev/game/client/animationlayer.h
new file mode 100644
index 00000000..e69de29b
diff --git a/r5dev/game/client/c_baseanimating.h b/r5dev/game/client/c_baseanimating.h
new file mode 100644
index 00000000..e69de29b
diff --git a/r5dev/game/client/c_basecharacter.h b/r5dev/game/client/c_basecharacter.h
new file mode 100644
index 00000000..e69de29b
diff --git a/r5dev/game/client/c_baseentity.cpp b/r5dev/game/client/c_baseentity.cpp
new file mode 100644
index 00000000..8e55b350
--- /dev/null
+++ b/r5dev/game/client/c_baseentity.cpp
@@ -0,0 +1,11 @@
+//====== Copyright 1996-2005, Valve Corporation, All rights reserved. =======//
+//
+// Purpose: 
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#include "core/stdafx.h"
+#include "game/client/c_baseentity.h"
+#include "game/client/c_baseplayer.h"
+
diff --git a/r5dev/game/client/c_baseplayer.h b/r5dev/game/client/c_baseplayer.h
new file mode 100644
index 00000000..6b6fafe8
--- /dev/null
+++ b/r5dev/game/client/c_baseplayer.h
@@ -0,0 +1,51 @@
+#ifndef C_BASEPLAYER_H
+#define C_BASEPLAYER_H
+
+#include "public/include/icliententity.h"
+#include "public/include/icliententitylist.h"
+#include "public/include/iclientnetworkable.h"
+#include "public/include/iclientrenderable.h"
+#include "public/include/iclientthinkable.h"
+#include "public/include/iclientunknown.h"
+#include "public/include/ihandleentity.h"
+#include "public/include/ivscript.h"
+
+
+class C_BaseCombatCharacter
+{
+	int m_nPredictionData; // Unk
+	//int unk; // Padding?
+};
+
+class C_BaseEntity : public IClientEntity
+{
+	const char* m_pszModelName;
+	int unk0;
+	char pad[4]; // unk;
+	HSCRIPT m_hScriptInstance;
+	const char* m_iszScriptId;
+};
+
+
+class C_BaseAnimating : public C_BaseEntity
+{
+
+};
+
+class C_BaseAnimatingOverlay : public C_BaseAnimating
+{
+
+};
+
+class C_Player : public C_BaseCombatCharacter, public C_BaseAnimatingOverlay
+{
+
+};
+
+
+void F()
+{
+	sizeof(C_Player);
+}
+
+#endif // C_BASEPLAYER_H
diff --git a/r5dev/launcher/IApplication.cpp b/r5dev/launcher/IApplication.cpp
index 155663b7..0868b9eb 100644
--- a/r5dev/launcher/IApplication.cpp
+++ b/r5dev/launcher/IApplication.cpp
@@ -58,8 +58,9 @@ bool CModAppSystemGroup::Create(CModAppSystemGroup* pModAppSystemGroup)
 #endif // DEDICATED
 	g_pConCommand->Init();
 	g_pFactory->GetFactoriesFromRegister();
-
 #ifndef DEDICATED
+	g_pClientEntityList = g_pFactory->GetFactoryPtr("VClientEntityList003", false).RCast<IClientEntityList*>();
+
 	for (auto& map : g_pCVar->DumpToMap())
 	{
 		g_pConsole->m_vsvCommandBases.push_back(
diff --git a/r5dev/public/include/client_class.h b/r5dev/public/include/client_class.h
index 2b595ec3..48a7dfed 100644
--- a/r5dev/public/include/client_class.h
+++ b/r5dev/public/include/client_class.h
@@ -1,6 +1,5 @@
 #pragma once
-
-class IClientNetworkable;
+#include "public/include/iclientnetworkable.h"
 
 typedef IClientNetworkable* (*CreateClientClassFn)(int entNum, int serialNum);
 typedef IClientNetworkable* (*CreateEventFn)();
diff --git a/r5dev/public/include/icliententity.h b/r5dev/public/include/icliententity.h
new file mode 100644
index 00000000..9e47c540
--- /dev/null
+++ b/r5dev/public/include/icliententity.h
@@ -0,0 +1,15 @@
+#ifndef ICLIENTENTITY_H
+#define ICLIENTENTITY_H
+
+#include "iclientunknown.h"
+#include "iclientrenderable.h"
+#include "iclientnetworkable.h"
+#include "iclientthinkable.h"
+
+class IClientEntity : public IClientUnknown, public IClientRenderable, public IClientNetworkable, public IClientThinkable
+{
+	void* __vftable /*VFT*/;
+};
+
+
+#endif // ICLIENTENTITY_H
\ No newline at end of file
diff --git a/r5dev/public/include/icliententitylist.h b/r5dev/public/include/icliententitylist.h
index 57355c0c..f44a1b6c 100644
--- a/r5dev/public/include/icliententitylist.h
+++ b/r5dev/public/include/icliententitylist.h
@@ -1,8 +1,8 @@
 #pragma once
+#include "iclientnetworkable.h"
+#include "icliententity.h"
 
 using CBaseHandle = unsigned long;
-class IClientNetworkable;
-class IClientEntity;
 
 class IClientEntityList // Fully reversed beside index 0 which is probably a destructor.
 {
diff --git a/r5dev/public/include/iclientnetworkable.h b/r5dev/public/include/iclientnetworkable.h
new file mode 100644
index 00000000..7156dbb9
--- /dev/null
+++ b/r5dev/public/include/iclientnetworkable.h
@@ -0,0 +1,9 @@
+#ifndef ICLIENTNETWORKABLE_H
+#define ICLIENTNETWORKABLE_H
+
+class IClientNetworkable
+{
+	void* __vftable /*VFT*/;
+};
+
+#endif // ICLIENTNETWORKABLE_H
\ No newline at end of file
diff --git a/r5dev/public/include/iclientrenderable.h b/r5dev/public/include/iclientrenderable.h
new file mode 100644
index 00000000..68f0f9d1
--- /dev/null
+++ b/r5dev/public/include/iclientrenderable.h
@@ -0,0 +1,25 @@
+#ifndef ICLIENTRENDERABLE_H
+#define ICLIENTRENDERABLE_H
+
+//-----------------------------------------------------------------------------
+// Handle to an renderable in the client leaf system
+//-----------------------------------------------------------------------------
+typedef unsigned short ClientRenderHandle_t;
+
+enum
+{
+	INVALID_CLIENT_RENDER_HANDLE = (ClientRenderHandle_t)0xffff,
+};
+
+class IClientRenderable
+{
+	void* __vftable /*VFT*/;
+};
+
+class IClientModelRenderable
+{
+	void* __vftable /*VFT*/;
+};
+
+
+#endif // ICLIENTRENDERABLE_H
\ No newline at end of file
diff --git a/r5dev/public/include/iclientthinkable.h b/r5dev/public/include/iclientthinkable.h
new file mode 100644
index 00000000..026f5a60
--- /dev/null
+++ b/r5dev/public/include/iclientthinkable.h
@@ -0,0 +1,9 @@
+#ifndef ICLIENTTHINKABLE_H
+#define ICLIENTTHINKABLE_H
+
+class IClientThinkable
+{
+	void* __vftable /*VFT*/;
+};
+
+#endif // ICLIENTTHINKABLE_H
\ No newline at end of file
diff --git a/r5dev/public/include/iclientunknown.h b/r5dev/public/include/iclientunknown.h
new file mode 100644
index 00000000..cbaf419e
--- /dev/null
+++ b/r5dev/public/include/iclientunknown.h
@@ -0,0 +1,10 @@
+#ifndef ICLIENTUNKNOWN_H
+#define ICLIENTUNKNOWN_H
+
+class IClientUnknown
+{
+	void* __vftable /*VFT*/;
+};
+
+
+#endif // ICLIENTUNKNOWN_H
\ No newline at end of file
diff --git a/r5dev/public/include/ihandleentity.h b/r5dev/public/include/ihandleentity.h
new file mode 100644
index 00000000..4859afba
--- /dev/null
+++ b/r5dev/public/include/ihandleentity.h
@@ -0,0 +1,9 @@
+#ifndef IHANDLEENTITY_H
+#define IHANDLEENTITY_H
+
+class IHandleEntity
+{
+	void* __vftable /*VFT*/;
+};
+
+#endif // IHANDLEENTITY_H
\ No newline at end of file
diff --git a/r5dev/public/include/ivscript.h b/r5dev/public/include/ivscript.h
new file mode 100644
index 00000000..042b67f5
--- /dev/null
+++ b/r5dev/public/include/ivscript.h
@@ -0,0 +1,22 @@
+#ifndef IVSCRIPT_H
+#define IVSCRIPT_H
+
+enum ScriptLanguage_t
+{
+	SL_NONE,
+	SL_GAMEMONKEY,
+	SL_SQUIRREL,
+	SL_LUA,
+	SL_PYTHON,
+
+	SL_DEFAULT = SL_SQUIRREL
+};
+
+//-----------------------------------------------------------------------------
+// 
+//-----------------------------------------------------------------------------
+
+DECLARE_POINTER_HANDLE(HSCRIPT);
+#define INVALID_HSCRIPT ((HSCRIPT)-1)
+
+#endif // IVSCRIPT_H
diff --git a/r5dev/tier0/basetypes.h b/r5dev/tier0/basetypes.h
index 491b5fe6..c0d51a09 100644
--- a/r5dev/tier0/basetypes.h
+++ b/r5dev/tier0/basetypes.h
@@ -268,3 +268,78 @@ struct vrect_t
 
 constexpr int MAX_NETCONSOLE_INPUT_LEN = 4096;
 constexpr int MSG_NOSIGNAL             = 0;
+
+//-----------------------------------------------------------------------------
+// Declares a type-safe handle type; you can't assign one handle to the next
+//-----------------------------------------------------------------------------
+
+// 32-bit pointer handles.
+
+// Typesafe 8-bit and 16-bit handles.
+template< class HandleType >
+class CBaseIntHandle
+{
+public:
+
+	inline bool			operator==(const CBaseIntHandle& other) { return m_Handle == other.m_Handle; }
+	inline bool			operator!=(const CBaseIntHandle& other) { return m_Handle != other.m_Handle; }
+
+	// Only the code that doles out these handles should use these functions.
+	// Everyone else should treat them as a transparent type.
+	inline HandleType	GetHandleValue() { return m_Handle; }
+	inline void			SetHandleValue(HandleType val) { m_Handle = val; }
+
+	typedef HandleType	HANDLE_TYPE;
+
+protected:
+
+	HandleType	m_Handle;
+};
+
+template< class DummyType >
+class CIntHandle16 : public CBaseIntHandle< unsigned short >
+{
+public:
+	inline			CIntHandle16() {}
+
+	static inline	CIntHandle16<DummyType> MakeHandle(HANDLE_TYPE val)
+	{
+		return CIntHandle16<DummyType>(val);
+	}
+
+protected:
+	inline			CIntHandle16(HANDLE_TYPE val)
+	{
+		m_Handle = val;
+	}
+};
+
+
+template< class DummyType >
+class CIntHandle32 : public CBaseIntHandle< uint32 >
+{
+public:
+	inline			CIntHandle32() {}
+
+	static inline	CIntHandle32<DummyType> MakeHandle(HANDLE_TYPE val)
+	{
+		return CIntHandle32<DummyType>(val);
+	}
+
+protected:
+	inline			CIntHandle32(HANDLE_TYPE val)
+	{
+		m_Handle = val;
+	}
+};
+
+
+// NOTE: This macro is the same as windows uses; so don't change the guts of it
+#define DECLARE_HANDLE_16BIT(name)	typedef CIntHandle16< struct name##__handle * > name;
+#define DECLARE_HANDLE_32BIT(name)	typedef CIntHandle32< struct name##__handle * > name;
+
+#define DECLARE_POINTER_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
+#define FORWARD_DECLARE_HANDLE(name) typedef struct name##__ *name
+
+#define DECLARE_DERIVED_POINTER_HANDLE( _name, _basehandle ) struct _name##__ : public _basehandle##__ {}; typedef struct _name##__ *_name
+#define DECLARE_ALIASED_POINTER_HANDLE( _name, _alias ) typedef struct _alias##__ *name
\ No newline at end of file
diff --git a/r5dev/vproj/clientsdk.vcxproj b/r5dev/vproj/clientsdk.vcxproj
index bcd55ce0..43876ec4 100644
--- a/r5dev/vproj/clientsdk.vcxproj
+++ b/r5dev/vproj/clientsdk.vcxproj
@@ -51,6 +51,7 @@
     <ClCompile Include="..\filesystem\filesystem.cpp" />
     <ClCompile Include="..\gameui\IConsole.cpp" />
     <ClCompile Include="..\gameui\IBrowser.cpp" />
+    <ClCompile Include="..\game\client\c_baseentity.cpp" />
     <ClCompile Include="..\game\client\spritemodel.cpp" />
     <ClCompile Include="..\game\shared\animation.cpp" />
     <ClCompile Include="..\inputsystem\inputsystem.cpp" />
@@ -190,6 +191,7 @@
     <ClInclude Include="..\gameui\IConsole.h" />
     <ClInclude Include="..\gameui\IBrowser.h" />
     <ClInclude Include="..\game\client\c_baseentity.h" />
+    <ClInclude Include="..\game\client\c_baseplayer.h" />
     <ClInclude Include="..\game\client\enginesprite.h" />
     <ClInclude Include="..\game\client\hud.h" />
     <ClInclude Include="..\game\shared\animation.h" />
@@ -233,11 +235,18 @@
     <ClInclude Include="..\public\include\const.h" />
     <ClInclude Include="..\public\include\edict.h" />
     <ClInclude Include="..\public\include\globalvars_base.h" />
+    <ClInclude Include="..\public\include\icliententity.h" />
+    <ClInclude Include="..\public\include\iclientnetworkable.h" />
+    <ClInclude Include="..\public\include\iclientrenderable.h" />
+    <ClInclude Include="..\public\include\iclientthinkable.h" />
+    <ClInclude Include="..\public\include\iclientunknown.h" />
     <ClInclude Include="..\public\include\icommandline.h" />
     <ClInclude Include="..\public\include\idebugoverlay.h" />
+    <ClInclude Include="..\public\include\ihandleentity.h" />
     <ClInclude Include="..\public\include\inetchannel.h" />
     <ClInclude Include="..\public\include\inetmsghandler.h" />
     <ClInclude Include="..\public\include\ivrenderview.h" />
+    <ClInclude Include="..\public\include\ivscript.h" />
     <ClInclude Include="..\public\include\memaddr.h" />
     <ClInclude Include="..\public\include\binstream.h" />
     <ClInclude Include="..\public\include\httplib.h" />
diff --git a/r5dev/vproj/clientsdk.vcxproj.filters b/r5dev/vproj/clientsdk.vcxproj.filters
index 15539df3..cf8bfd33 100644
--- a/r5dev/vproj/clientsdk.vcxproj.filters
+++ b/r5dev/vproj/clientsdk.vcxproj.filters
@@ -555,6 +555,9 @@
     <ClCompile Include="..\tier0\threadtools.cpp">
       <Filter>sdk\tier0</Filter>
     </ClCompile>
+    <ClCompile Include="..\game\client\c_baseentity.cpp">
+      <Filter>sdk\game\client</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\client\cdll_engine_int.h">
@@ -1613,6 +1616,30 @@
     <ClInclude Include="..\tier0\memstd.h">
       <Filter>sdk\tier0</Filter>
     </ClInclude>
+    <ClInclude Include="..\game\client\c_baseplayer.h">
+      <Filter>sdk\game\client</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientrenderable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientthinkable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientunknown.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\ihandleentity.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientnetworkable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\icliententity.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\ivscript.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Image Include="..\shared\resource\lockedserver.png">
diff --git a/r5dev/vproj/dedicated.vcxproj b/r5dev/vproj/dedicated.vcxproj
index 51f3ddb1..b8bb06b3 100644
--- a/r5dev/vproj/dedicated.vcxproj
+++ b/r5dev/vproj/dedicated.vcxproj
@@ -219,6 +219,7 @@
     <ClInclude Include="..\public\include\inetchannel.h" />
     <ClInclude Include="..\public\include\inetmsghandler.h" />
     <ClInclude Include="..\public\include\iserver.h" />
+    <ClInclude Include="..\public\include\ivscript.h" />
     <ClInclude Include="..\public\include\memaddr.h" />
     <ClInclude Include="..\public\include\bansystem.h" />
     <ClInclude Include="..\public\include\binstream.h" />
diff --git a/r5dev/vproj/dedicated.vcxproj.filters b/r5dev/vproj/dedicated.vcxproj.filters
index 20d95716..6cfe03d6 100644
--- a/r5dev/vproj/dedicated.vcxproj.filters
+++ b/r5dev/vproj/dedicated.vcxproj.filters
@@ -1173,6 +1173,9 @@
     <ClInclude Include="..\tier0\memstd.h">
       <Filter>sdk\tier0</Filter>
     </ClInclude>
+    <ClInclude Include="..\public\include\ivscript.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\common\opcodes.cpp">
diff --git a/r5dev/vproj/gamesdk.vcxproj b/r5dev/vproj/gamesdk.vcxproj
index c5cb08b2..26f6e1cf 100644
--- a/r5dev/vproj/gamesdk.vcxproj
+++ b/r5dev/vproj/gamesdk.vcxproj
@@ -53,6 +53,7 @@
     <ClCompile Include="..\filesystem\filesystem.cpp" />
     <ClCompile Include="..\gameui\IConsole.cpp" />
     <ClCompile Include="..\gameui\IBrowser.cpp" />
+    <ClCompile Include="..\game\client\c_baseentity.cpp" />
     <ClCompile Include="..\game\client\spritemodel.cpp" />
     <ClCompile Include="..\game\server\ai_network.cpp" />
     <ClCompile Include="..\game\server\ai_networkmanager.cpp" />
@@ -201,6 +202,7 @@
     <ClInclude Include="..\gameui\IConsole.h" />
     <ClInclude Include="..\gameui\IBrowser.h" />
     <ClInclude Include="..\game\client\c_baseentity.h" />
+    <ClInclude Include="..\game\client\c_baseplayer.h" />
     <ClInclude Include="..\game\client\enginesprite.h" />
     <ClInclude Include="..\game\client\hud.h" />
     <ClInclude Include="..\game\server\ai_network.h" />
@@ -254,13 +256,20 @@
     <ClInclude Include="..\public\include\const.h" />
     <ClInclude Include="..\public\include\edict.h" />
     <ClInclude Include="..\public\include\globalvars_base.h" />
+    <ClInclude Include="..\public\include\icliententity.h" />
     <ClInclude Include="..\public\include\icliententitylist.h" />
+    <ClInclude Include="..\public\include\iclientnetworkable.h" />
+    <ClInclude Include="..\public\include\iclientrenderable.h" />
+    <ClInclude Include="..\public\include\iclientthinkable.h" />
+    <ClInclude Include="..\public\include\iclientunknown.h" />
     <ClInclude Include="..\public\include\icommandline.h" />
     <ClInclude Include="..\public\include\idebugoverlay.h" />
+    <ClInclude Include="..\public\include\ihandleentity.h" />
     <ClInclude Include="..\public\include\inetchannel.h" />
     <ClInclude Include="..\public\include\inetmsghandler.h" />
     <ClInclude Include="..\public\include\iserver.h" />
     <ClInclude Include="..\public\include\ivrenderview.h" />
+    <ClInclude Include="..\public\include\ivscript.h" />
     <ClInclude Include="..\public\include\memaddr.h" />
     <ClInclude Include="..\public\include\bansystem.h" />
     <ClInclude Include="..\public\include\binstream.h" />
diff --git a/r5dev/vproj/gamesdk.vcxproj.filters b/r5dev/vproj/gamesdk.vcxproj.filters
index 48f8597e..078d22aa 100644
--- a/r5dev/vproj/gamesdk.vcxproj.filters
+++ b/r5dev/vproj/gamesdk.vcxproj.filters
@@ -591,6 +591,9 @@
     <ClCompile Include="..\server\persistence.cpp">
       <Filter>sdk\server</Filter>
     </ClCompile>
+    <ClCompile Include="..\game\client\c_baseentity.cpp">
+      <Filter>sdk\game\client</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\client\cdll_engine_int.h">
@@ -1697,6 +1700,30 @@
     <ClInclude Include="..\tier0\memstd.h">
       <Filter>sdk\tier0</Filter>
     </ClInclude>
+    <ClInclude Include="..\game\client\c_baseplayer.h">
+      <Filter>sdk\game\client</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\icliententity.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientthinkable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientunknown.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\ihandleentity.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientnetworkable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\iclientrenderable.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\public\include\ivscript.h">
+      <Filter>sdk\public\include</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Image Include="..\shared\resource\lockedserver.png">