Skip to content

CBasePlayerController (client)

Base class for all player controller entities in Source 2. A controller is the persistent, session-level entity that represents a connected client; it is never recreated between rounds. The controller owns one or more pawn entities (the physical in-world representation).

CS2 build 25218825 · Steam date 2026-09-09 · platform windows-x86_64 · cs2_schema.json

Kind: classSize: 2040 bytes (0x7f8)Alignment: 8 bytesModule: clientBinary: client.dll

Relationships

Inherits from: C_BaseEntity

Same name in another module: CBasePlayerController (server)

Derived by: CCSPlayerController

Used by (4) as a field type

Inheritance tree
Relationship diagram (5 edges)
classDiagram
    CEntityInstance <|-- C_BaseEntity
    C_BaseEntity <|-- CBasePlayerController
    CBasePlayerController <|-- CCSPlayerController
    CBasePlayerController *-- C_CommandContext
    CBasePlayerController --> C_BasePlayerPawn
Inheritance chain, direct subclasses (up to 20) and a few composition edges

Memory layout

102 fields, 17 declared here and 85 inherited. Offsets are absolute from the object base on windows-x86_64.

CEntityInstanceC_BaseEntityCBasePlayerController

OffsetFieldTypeFromAnnotations
0x8m_iszPrivateVScriptsCUtlSymbolLargeCEntityInstance
0x10m_pEntityCEntityIdentity*CEntityInstanceCEntityIdentity pointer: the entity's identity record (name, class, handle, flags).
0x28m_CScriptComponentCScriptComponent*CEntityInstanceVScript component attached to the entity, when scripted.
0x30m_CBodyComponentCBodyComponent*C_BaseEntity
0x38m_NetworkTransmitComponentCNetworkTransmitComponentC_BaseEntityMNotSaved
0x328m_nLastThinkTickGameTick_tC_BaseEntityMNotSaved
0x330m_pGameSceneNodeCGameSceneNode*C_BaseEntityMNotSaved
0x338m_pRenderComponentCRenderComponent*C_BaseEntityMNotSaved
0x340m_pCollisionCCollisionProperty*C_BaseEntityMNotSaved
0x348m_iMaxHealthint32C_BaseEntityMNotSaved
0x34cm_iHealthint32C_BaseEntity
0x350m_flDamageAccumulatorfloat32C_BaseEntityMNotSaved
0x354m_lifeStateuint8C_BaseEntityMNotSaved
0x355m_bTakesDamageboolC_BaseEntityMNotSaved
0x358m_nTakeDamageFlagsTakeDamageFlags_tC_BaseEntityMNotSaved
0x360m_nPlatformTypeEntityPlatformTypes_tC_BaseEntity
0x361m_ubInterpolationFrameuint8C_BaseEntityMNotSaved
0x364m_hSceneObjectControllerCHandle< C_BaseEntity >C_BaseEntity
0x368m_nNoInterpolationTickint32C_BaseEntityMNotSaved
0x36cm_nVisibilityNoInterpolationTickint32C_BaseEntityMNotSaved
0x370m_flProxyRandomValuefloat32C_BaseEntityMNotSaved
0x374m_iEFlagsint32C_BaseEntityMNotSaved
0x378m_nWaterTypeuint8C_BaseEntityMNotSaved
0x379m_bInterpolateEvenWithNoModelboolC_BaseEntityMNotSaved
0x37am_bPredictionEligibleboolC_BaseEntityMNotSaved
0x37bm_bApplyLayerMatchIDToModelboolC_BaseEntityMNotSaved
0x37cm_tokLayerMatchIDCUtlStringTokenC_BaseEntityMNotSaved
0x380m_nSubclassIDCUtlStringTokenC_BaseEntity
0x390m_nSimulationTickint32C_BaseEntityMNotSaved
0x394m_iCurrentThinkContextint32C_BaseEntityMNotSaved
0x398m_aThinkFunctionsCUtlVector< thinkfunc_t >C_BaseEntityMNotSaved
0x3b0m_bDisabledContextThinksboolC_BaseEntity
0x3b4m_flAnimTimefloat32C_BaseEntityMNotSaved
0x3b8m_flSimulationTimefloat32C_BaseEntityMNotSaved
0x3bcm_nSceneObjectOverrideFlagsuint8C_BaseEntity
0x3bdm_bHasSuccessfullyInterpolatedboolC_BaseEntityMNotSaved
0x3bem_bHasAddedVarsToInterpolationboolC_BaseEntityMNotSaved
0x3bfm_bRenderEvenWhenNotSuccessfullyInterpolatedboolC_BaseEntityMNotSaved
0x3c0m_nInterpolationLatchDirtyFlagsint32[2]C_BaseEntityMNotSaved
0x3c8m_ListEntryuint16[11]C_BaseEntityMNotSaved
0x3e0m_flCreateTimeGameTime_tC_BaseEntityMNotSaved
0x3e4m_EntClientFlagsuint16C_BaseEntityMNotSaved
0x3e6m_bClientSideRagdollboolC_BaseEntityMNotSaved
0x3e7m_iTeamNumuint8C_BaseEntityMNotSaved
0x3e8m_spawnflagsuint32C_BaseEntity
0x3ecm_nNextThinkTickGameTick_tC_BaseEntityMNotSaved
0x3f4m_fFlagsuint32C_BaseEntityMSaveBehavior
0x3f8m_vecAbsVelocityVectorC_BaseEntityMNotSaved
0x404m_vecServerVelocityCNetworkVelocityVectorC_BaseEntityMNotSaved
0x430m_vecVelocityCNetworkVelocityVectorC_BaseEntity
0x510m_vecBaseVelocityVectorC_BaseEntityMNotSaved
0x51cm_hEffectEntityCHandle< C_BaseEntity >C_BaseEntityMNotSaved
0x520m_hOwnerEntityCHandle< C_BaseEntity >C_BaseEntity
0x524m_MoveCollideMoveCollide_tC_BaseEntityMNotSaved
0x525m_MoveTypeMoveType_tC_BaseEntity
0x526m_nActualMoveTypeMoveType_tC_BaseEntity
0x528m_flWaterLevelfloat32C_BaseEntityMNotSaved
0x52cm_fEffectsuint32C_BaseEntityMNotSaved
0x530m_hGroundEntityCHandle< C_BaseEntity >C_BaseEntityMNotSaved
0x534m_nGroundBodyIndexint32C_BaseEntityMNotSaved
0x538m_flFrictionfloat32C_BaseEntityMNotSaved
0x53cm_flElasticityfloat32C_BaseEntityMNotSaved
0x540m_flGravityScalefloat32C_BaseEntityMNotSaved
0x544m_flTimeScalefloat32C_BaseEntityMNotSaved
0x548m_bAnimatedEveryTickboolC_BaseEntityMNotSaved
0x549m_bGravityDisabledboolC_BaseEntity
0x54cm_flNavIgnoreUntilTimeGameTime_tC_BaseEntityMNotSaved
0x550m_hThinkuint16C_BaseEntityMNotSaved
0x560m_fBBoxVisFlagsuint8C_BaseEntityMNotSaved
0x564m_flActualGravityScalefloat32C_BaseEntity
0x568m_bGravityActuallyDisabledboolC_BaseEntity
0x569m_bPredictableboolC_BaseEntityMNotSaved
0x56am_bRenderWithViewModelsboolC_BaseEntity
0x56cm_nFirstPredictableCommandint32C_BaseEntityMNotSaved
0x570m_nLastPredictableCommandint32C_BaseEntityMNotSaved
0x574m_hOldMoveParentCHandle< C_BaseEntity >C_BaseEntityMNotSaved
0x578m_ParticlesCParticlePropertyC_BaseEntityMNotSaved
0x5a8m_vecAngVelocityQAngleC_BaseEntity
0x5b4m_DataChangeEventRefint32C_BaseEntityMNotSaved
0x5b8m_dependenciesCUtlVector< CEntityHandle >C_BaseEntityMNotSaved
0x5d0m_nCreationTickint32C_BaseEntityMNotSaved
0x5e1m_bAnimTimeChangedboolC_BaseEntityMNotSaved
0x5e2m_bSimulationTimeChangedboolC_BaseEntityMNotSaved
0x5f0m_sUniqueHammerIDCUtlStringC_BaseEntityMNotSaved
0x5f8m_nBloodTypeBloodTypeC_BaseEntity
0x608m_CommandContextC_CommandContextMNotSaved
0x6b0m_nInButtonsWhichAreTogglesuint64MNotSaved
0x6b8m_nTickBaseuint32Server tick number at the time of the most-recent usercmd from this client. MNotSaved
0x6bcm_hPawnCHandle< C_BasePlayerPawn >CHandle to the base pawn currently controlled by this controller.
0x6c0m_bKnownTeamMismatchbool
0x6c4m_hPredictedPawnCHandle< C_BasePlayerPawn >MNotSaved
0x6c8m_nSplitScreenSlotCSplitScreenSlotMNotSaved
0x6ccm_hSplitOwnerCHandle< CBasePlayerController >MNotSaved
0x6d0m_hSplitScreenPlayersCUtlVector< CHandle< CBasePlayerController > >MNotSaved
0x6e8m_bIsHLTVbool
0x6ecm_iConnectedPlayerConnectedStatePlayerConnectedState enum – 0 = Disconnected, 1 = Connected, 2 = Connecting. MNotSaved
0x6f0m_iMostConnectedPlayerConnectedStateMNotSaved
0x6f4m_iszPlayerNamechar[128]Display name of the player, as reported by Steam (up to 128 bytes, UTF-8). MNotSaved
0x780m_steamIDuint6464-bit Steam account ID (SteamID64) of the connected client. MNotSaved
0x788m_bIsLocalPlayerControllerboolMNotSaved
0x789m_bNoClipEnabledboolTrue when sv_cheats noclip is active for this player.
0x78cm_iDesiredFOVuint32Field-of-view override requested by the player (0 = use server default).