diff --git a/source/game/BaseCharacter.cpp b/source/game/BaseCharacter.cpp
index 859ba65d862ec8deed5fb3578470da99f6819fff..c0e866e83e7edd1ac96a29e9235628819647822c 100644
--- a/source/game/BaseCharacter.cpp
+++ b/source/game/BaseCharacter.cpp
@@ -76,7 +76,8 @@ void CBaseCharacter::onPostLoad()
 
 	//btTransform startTransform;
 	startTransform.setIdentity();
-	startTransform.setOrigin(F3_BTVEC(m_vPosition + float3(0.0f, m_fCapsHeight * 0.5f, 0.0f)));
+	float3 vPos = getPos() + float3(0.0f, m_fCapsHeight * 0.5f, 0.0f);
+	startTransform.setOrigin(F3_BTVEC(vPos));
 	//startTransform.setOrigin(btVector3(0, 12, 10));
 
 	m_pGhostObject = new btPairCachingGhostObject();
diff --git a/source/game/BaseEntity.h b/source/game/BaseEntity.h
index a53dd17699a90a6df2cd24d59086e23af51c6c33..59106d18b8ffab9cde2bf9944d696180553f7b68 100644
--- a/source/game/BaseEntity.h
+++ b/source/game/BaseEntity.h
@@ -192,23 +192,24 @@ private:
 	bool m_isInOnParentMoved = false;
 	void onParentMoved(bool bAdjustOffsets = false);
 
-protected:
-	virtual void _cleanup();
-	virtual void _initEditorBoxes();
-	virtual void _releaseEditorBoxes();
-
-	CEntityManager *m_pMgr = NULL;
-
 
 	//! Позиция объекта
 	float3_t m_vPosition;
 	//! вращение
 	SMQuaternion m_qOrientation;
+
 	//! Позиция смещения (для иерархической структуры)
 	float3_t m_vOffsetPos;
 	//! Вращение смещения (для иерархической структуры)
 	SMQuaternion m_qOffsetOrient;
 
+protected:
+	virtual void _cleanup();
+	virtual void _initEditorBoxes();
+	virtual void _releaseEditorBoxes();
+
+	CEntityManager *m_pMgr = NULL;
+
 	//! Идентификатор в системе
 	ID m_iId = 0;
 
diff --git a/source/game/BaseTool.cpp b/source/game/BaseTool.cpp
index f68dcd7e72b2927d1958bf81afa93eac27287c5a..877cfd464516e5dedeb4334723e460b0a0ff2a45 100644
--- a/source/game/BaseTool.cpp
+++ b/source/game/BaseTool.cpp
@@ -227,7 +227,7 @@ void CBaseTool::dbgMove(int dir, float dy)
 		printf(COLOR_GREEN "slot_offset = " COLOR_LGREEN "%f %f %f\n"
 			COLOR_GREEN "slot_rotation = " COLOR_LGREEN "%f %f %f %f\n"
 			COLOR_GREEN "center_length = " COLOR_LGREEN "%f\n" COLOR_RESET
-			, m_vOffsetPos.x, m_vOffsetPos.y, m_vOffsetPos.z
+			, m_vSlotPosResult.x, m_vSlotPosResult.y, m_vSlotPosResult.z
 			, m_qSlotRotResult.x, m_qSlotRotResult.y, m_qSlotRotResult.z, m_qSlotRotResult.w
 			, m_fCenterLength);
 		break;
@@ -239,16 +239,6 @@ void CBaseTool::dbgMove(int dir, float dy)
 #if 0
 void CBaseTool::onSync()
 {
-	if(m_pOwner)
-	{
-		float3_t ang = ((CPlayer*)m_pOwner.getEntity())->getWeaponDeltaAngles();
-		m_qOffsetOrient = m_qSlotRotResult * SMQuaternion(ang.x, 'x') * SMQuaternion(ang.y, 'y') * SMQuaternion(ang.z, 'z');
-	}
-	else
-	{
-		m_qOffsetOrient = m_qSlotRotResult;
-	}
-	m_vOffsetPos = m_vSlotPosResult;
 	BaseClass::onSync();
 	if(m_pModel && m_pModel->asAnimatedModel())
 	{
diff --git a/source/game/Player.cpp b/source/game/Player.cpp
index 13b47219c88b435a0c146426562ea5c791a94374..d2f2782e21a8c0f987c60a844ce0a48a34549815 100644
--- a/source/game/Player.cpp
+++ b/source/game/Player.cpp
@@ -203,7 +203,7 @@ void CPlayer::updateInput(float dt)
 
 		if(m_uMoveDir & PM_OBSERVER)
 		{
-			m_vPosition = (float3)(m_vPosition + m_pHeadEnt->getOrient() * (SMVector3Normalize(dir) * dt));
+			setPos(getPos() + m_pHeadEnt->getOrient() * (SMVector3Normalize(dir) * dt));
 		}
 		else
 		{
@@ -292,7 +292,7 @@ void CPlayer::updateInput(float dt)
 				float sin = cosf(m_fViewbobStep * 2.0f);
 				float sin2 = sinf(m_fViewbobStep);
 				float3 vec(1.0f, 0.0f, 0.0f);
-				vec = m_qOrientation * vec;
+				vec = getOrient() * vec;
 				m_fViewbobY = (sin * ((m_uMoveDir & PM_RUN) ? *cl_bob_run_y : *cl_bob_walk_y));
 				m_fViewbobStrafe = (float3)(vec * sin2 * ((m_uMoveDir & PM_RUN) ? *cl_bob_run_x : *cl_bob_walk_x));
 				//m_vOrientation = SMQuaternion(SMToRadian(10) * sinf(m_fViewbobStep), 'z') * m_vOrientation;
@@ -310,7 +310,7 @@ void CPlayer::updateInput(float dt)
 			m_vWpnShakeAngles.x = clampf(m_vWpnShakeAngles.x, -fMaxAng, fMaxAng);
 		}
 
-		GameData::m_pHUDcontroller->setPlayerPos(m_vPosition);
+		GameData::m_pHUDcontroller->setPlayerPos(getPos());
 
 	}
 
@@ -387,7 +387,7 @@ void CPlayer::spawn()
 			m_pCrosshair->enable();
 
 			GameData::m_pHUDcontroller->setPlayerRot(m_vPitchYawRoll);
-			GameData::m_pHUDcontroller->setPlayerPos(m_vPosition);
+			GameData::m_pHUDcontroller->setPlayerPos(getPos());
 			GameData::m_pHUDcontroller->setPlayerHealth(m_fHealth);
 			return;
 		}