This article's documentation is for anything that uses the Source engine. Click here for more information.

Player: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Added information for the "Roundspawn" input and "SetCustomModel" input, according to various testing and information from Ficool2 and Berke)
No edit summary
 
(72 intermediate revisions by 24 users not shown)
Line 1: Line 1:
{{Ent not in fgd|nolink=1}}
{{LanguageBar}}
{{TabsBar}}
{{Ent not in fgd|codeonly=1}}
{{Preserved entity}}
{{CD|player{{!}}... Game Specific ...|base=CBasePlayer|nolink=1|file1=[https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/server/player.cpp CBasePlayer definition]}}
{{this is a|entity|name=player}} The player itself or a [[bot]]. [[NPC]]s are not players. This entity still exists even if the player is dead.


{{base point|player}} The player itself. This entity still exists even if the player is dead.
{{note|Keyvalues, inputs, outputs and [[Dimensions]] vary depending on game and engine version.}}
{{tip|In singleplayer, a pointer to the player can be acquired by using <code>UTIL_GetLocalPlayer()</code>.}}
{{warning|Removing a player entity that a human player is in control of will cause them to either be kicked from the game or prevented them from doing anything.}}


{{Warning|This entity is not intended to be placed in a map manually. Doing so will result in an instant fatal error on map load!}}
{{Important|This entity is not intended to be placed in a map manually. Doing so will result in an instant fatal error on map load!}}
{{Note|Keyvalues, inputs, outputs and [[Dimensions]] vary depending on game and engine version.}}
{{Tip|A pointer to the player can be acquired by using <code>UTIL_GetLocalPlayer()</code>.}}
{{Note|[[NPC]]s are ''not'' players, whereas [[bot]]s are.}}


== Keyvalues ==
[[File:entcreateplayer.jpg|thumb|580px|The consequences of player entity generation.]]
{{note|These keyvalues should be changed on a player with [[AddOutput]].}}
==Keyvalues==
{{KV|Health (health)|integer|The player's health.}}
{{note|Keyvalues can be changed on a player with [[AddOutput]].}}
{{KV|Maximum Health (max_health)|integer|The value of "health" cannot exceed this.}}
{{KV|Health|intn=health|integer|The player's health. {{note|Use SetHealth input instead, as this may not update health properly, leaving player at 0 health while still alive.}}}}
{{KV|Collisions (solid)|choices|Method of collision for the player.}}
{{KV|Maximum Health|intn=max_health|integer|The value of "health" cannot exceed this.}}
:*0: None
{{KV|Base Velocity|intn=BaseVelocity|Vector|Adds to the velocity of the player. <br>Format:<code> <x> <y> <z> </code>}}
:*1: BSP ([[QPhysics]]) {{not in FGD}}
:*2: [[Bounding box|Bounding Box]]
:*3: [[Bounding box|Oriented Bounding Box]] {{not in FGD}}
:*4: [[Bounding box|Oriented Bounding Box]], constrained to Yaw only {{not in FGD}}
:*5: Custom/Test {{not in FGD}}
:*6: [[VPhysics]]
{{KV|Model Index (modelindex)|integer|Changes the player's model to a precached model on the map. Not available in {{tf2}}.}}
{{KV|Lighting Origin (LightingOrigin)|targetname|Select an entity (not {{ent|info_lighting}}!) from which to sample lighting instead of the entity's [[origin]].}}
{{KV|Lighting Origin Offset (LightingOriginHack)|targetname|The {{ent|info_lighting_relative}} from which to sample lighting instead of the entity's origin. Not in {{l4d}}{{l4d2}}.}}
{{KV|Damage Filter Name (damagefilter)|targetname|When this entity receives damage, it will [[filter]] by this entity.}}
{{KV|Start Fade Distance (fademindist)|float|Distance at which the entity starts fading. If <0, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a [[3D Skybox]].}}
{{KV|End Fade Distance (fademaxdist)|float|Distance at which the entity ends fading. If <0, the entity won't disappear at all. The value will scale appropriately if the entity is in a [[3D Skybox]].}}
{{KV|Fade Scale (fadescale)|float|If specified in the {{ent|worldspawn}}, or if the engine is running below DirectX 8, entities will fade out even if the fade distances above aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out at further distances, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also {{ent|$noforcedfade}}.}}
{{KV|[[Render Mode]] (rendermode)|choices|Set a non-standard rendering mode on this entity.}}
:{{ExpandBox|
:*0: Normal
:*1: Color
:*2: Texture
:*3: Glow
:*4: Solid/Alphatest
:*5: Additive
:*6: Removed, does nothing
:*7: Additive Fractional Frame
:*8: Alpha Add
:*9: World Space Glow
:*10: Don't Render}}
{{KV|Render FX / Transparency (0 - 255) (renderamt)|int|Transparency amount, requires a Render Mode other than '''Normal'''. 0 is invisible, 255 is fully visible.}}
{{KV|Render Color (R G B) (rendercolor)|color255|Color tint.}}
{{KV|Render FX (renderfx)|choices|Preset pattern of appearance effects.}}
:{{ExpandBox|
:*'''0:''' None
:*'''1:''' Slow Pulse
:*'''2:''' Fast Pulse
:*'''3:''' Slow Wide Pulse
:*'''4:''' Fast Wide Pulse
:*'''5:''' Slow Fade Away
:*'''6:''' Fast Fade Away
:*'''7:''' Slow Become Solid
:*'''8:''' Fast Become Solid
:*'''9:''' Slow Strobe
:*'''10:''' Fast Strobe
:*'''11:''' Faster Strobe
:*'''12:''' Slow Flicker
:*'''13:''' Fast Flicker
:*'''14:''' Constant Glow
:*'''15:''' Distort
:*'''16:''' Hologram (Distort + fade)
:*'''17:''' Scale Up
:*'''22:''' Spotlight FX
:*'''23:''' Cull By Distance
:*'''24:''' Fade Wider Pulse
:*'''26:''' Fade Near}}
:{{todo|18-21, 25}}
{{KV|Shadow Cast Distance (shadowcastdist)|int|Sets how far the entity casts dynamic shadows. 0 means default distance from the [[shadow_control]] entity.}}
{{KV|Disable Shadows (disableshadows)|boolean|Prevent the entity from creating cheap render-to-texture shadows. Does not affect [[shadow mapping]].}}
{{KV|Disable Receiving Shadows (disablereceiveshadows)|boolean|Prevent the entity from receiving shadows on itself.}}
{{KV|Model Scale (modelscale)|float|A multiplier for the size of the model. Negative values are accepted. Does not alter the physics collisions in most cases, however. Not in {{portal}}, {{l4d}}, {{l4d2}}, sdk 2013.|since=OB}}
:{{warning|Negative or extremely high values can cause crashes!}}
{{KV|Glow Backface Multiple (glowbackfacemult)|float|nofgd=1|If this object has a glow effect, multiply the effect by this much on the sides of the object that are facing away from the viewer.|since=L4D2}}
{{KV|Move Type (MoveType)|choices|Sets a movetype for this entity, which changes its movement behavior.|since=AS|nofgd=1}}
:{{ExpandBox|
:*0: None, don't move
:*1: Isometric
:*2: Walk, player only, moving on ground
:*3: NPC, movement
:*4: Fly, no gravity
:*5: Fly, with gravity
:*6: Physics
:*7: Push
:*8: [[Noclip]]
:*9: Ladder, for players on ladders
:*10: Spectator
:*11: Custom}}
{{KV|Collision Group (CollisionGroup)|choices|Sets a collision group for this entity, which changes its collision behavior.|since=AS|nofgd=1}}
:{{ExpandBox|
:*0: None
:*1: Debris, collides only with the world and static props
:*2: Debris, with trigger interaction
:*3: Interactive Debris, doesn't collide with other debris
:*4: Interactive, collides with everything except debris
:*5: Player
:*6: Breakable Glass
:*7: Vehicle
:*8: Player Movement
:*9: In-Vehicle
:*10: Weapon
:*11: Vehicle Clip
:*12: Projectile
:*13: Door blocker, not permitted to go near doors
:*14: Passable Door
:*15: Dissolving
:*16: Pushaway
:*17: NPC Actor, NPCs ignore the player
:*18: NPC Scripted, NPCs do not collide with each other}}
{{KV|Base Velocity (BaseVelocity)|Vector|Adds to the velocity of the player. <br>Format:<code> <x> <y> <z> </code>|nofgd=1}}
:{{todo|Test for games other than {{portal}},{{portal2}} and {{tf2}}}}
{{KV|Disable ShadowDepth (disableshadowdepth)|boolean|Makes this entity not cast a shadow from {{ent|env_projectedtexture}}s.|since=P2}}
{{KV|Projected Texture Cache (shadowdepthnocache)|choices|Used to hint [[env_projectedtexture|projected texture system]] whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead.|since=P2}}
:*0: Default
:*1: No cache - render every frame
:*2: Cache it - render only once
{{KV|Disable Flashlight (disableflashlight)|boolean|Used to disable [[env_projectedtexture|projected texture]] lighting and shadows on this entity.|since=P2}}
{{KV BaseEntity}}


== Inputs ==
==Inputs==
{{IO|SetHealth|param=integer|Sets the player's health. Values clamped between 0 and <code>max_health</code>.}}
{{I|SetHealth|param=integer|Sets the player's health. Values clamped between 0 and <code>max_health</code>.}}
{{IO|HandleMapEvent|param=string|Tells the game to perform a function, such as unlock an achievement. Hardcoded for specific map names.}}
{{I|HandleMapEvent|param=string|Tells the game to perform a function, such as unlock an achievement. Hardcoded for specific map names.}}
{{IO|SetHUDVisibility|param=boolean|Hides or displays the HUD. Not available in {{hl2}} series.}}
{{I|SetHUDVisibility|param=boolean|Hides or displays the HUD.}}
:{{note|The menu can still be accessed, and some HUD elements such as kill-icons may still be visible.}}
:{{note|The menu can still be accessed, and some HUD elements such as kill-icons may still be visible.}}
{{IO|SetFogController|param=string|Sets the [[env_fog_controller|fog controller]] to use for the [[!activator]]. Not available in {{hl2}} series.}}
:{{warning|Hiding the HUD will disable any weapon-switching of the target. Still available with {{cmd|use}} console command. {{todotest|{{tf2}}{{csgo}}{{l4d2}}{{css}}{{hl2}}{{bms}}}}}}
{{IO|SpeakResponseConcept|param=string|Speak the specified [[Response System|response concept]] immediately. Not available in {{hl2}} series.}}
{{I|SetFogController|param=string|special targets = [[Targetname#Keywords|special targetname]]s are unsupported|Sets the {{ent|env_fog_controller}} to use.}}
{{IO|IgnoreFallDamage|param=float|{{hl2}} Prevent the player from taking fall damage for [n] seconds, but reset back to taking fall damage after the first impact (so players will be hurt if they bounce off what they hit).}}
{{I|PerformForcedWeaponDeploy|param=string|only={{bms}}|Forces the player to use specified weapon with pickup animation.
{{IO|IgnoreFallDamageWithoutReset|param=float|{{hl2}} Absolutely prevent the player from taking fall damage for [n] seconds.}}
:{{note|Pickup animation doesn't always work, this somehow depends on player's ammo and other weapons.}}
{{IO|OnSquadMemberKilled|{{hl2}} Notification of a player's [[NPC]] ally in the players squad being killed.}}
}}
{{IO|DisableFlashlight|{{hl2}} Disables the player's flashlight.}}
{{IO|EnableFlashlight|{{hl2}} Enables the player's flashlight.}}
{{IO|ForceDropPhysObjects|{{hl2}} Force the player to drop any [[prop_physics|physics objects]] they are carrying.}}
{{IO|OnRescueZoneTouch|{{css}}{{csgo}} Fired when a [[hostage_entity|hostage]] is rescued. This input is also available in the code for {{l4d}} and {{l4d2}}.}}
{{IO|SetCommentaryStatueMode|{{l4d}} {{todo}}.}}
{{IO|DisableLedgeHang|{{l4d2}} Disable ledge hanging by player.}}
{{IO|EnableLedgeHang|{{l4d2}} Enable ledge hanging by player.}}
{{IO|TeleportToSurvivorPosition|param=string|{{l4d2}} Teleport a player to an [[info_survivor_position]] entity, then freezes them. To unfreeze them, use the <code>ReleaseSurvivorPositions</code> input from [[info_director]]. }}
{{IO|IgnitePlayer|param=integer|{{tf2}} Ignites the player with a specified lifetime and causes a reaction (sound and speech).}}
:{{note|Does not fire the <code>OnIgnite</code> output.}}
:{{bug|Broken since the [https://wiki.teamfortress.com/wiki/Jungle_Inferno_Update Jungle Inferno] update, only initiates sound and speech but no actual fire. Use [[trigger_ignite]] as a workaround.}}
{{IO|ExtinguishPlayer|{{tf2}} Extinguishes the player.}}
{{IO|BleedPlayer|param=integer|{{tf2}} Bleeds the player with a specified length.}}
{{IO|RollRareSpell|{{tf2}} Forces the player to roll a rare spell. Only available if spells are enabled on the map.}}
{{IO|SetCustomModel|param=string|{{tf2}} Set a custom player model ''without'' animations.}}
:{{note|Using <code>""</code> as the model argument will instead clear the target's custom model, returning the player to normal.}}
{{IO|SetCustomModelOffset|param=vector|{{tf2}} Set a custom player model position on the player.}}
{{IO|SetCustomModelRotation|param=vector|{{tf2}} Set a custom player model rotation on the player.}}
{{IO|ClearCustomModelRotation|{{tf2}} Clears the custom player model rotation.}}
{{IO|SetCustomModelRotates|param=boolean|{{tf2}} Set if the custom model rotates or not to the player's angles.}}
{{IO|SetCustomModelVisibleToSelf|param=boolean|{{tf2}} Set if the custom model is visible to the player, in thirdperson.}}
{{IO|SetForcedTauntCam|param=boolean|{{tf2}} Forces the player into thirdperson mode.}}
{{IO|SpeakResponseConcept|param=string|{{tf2}} Forces the player to speak the specified response concept, an example being <code>halloweenlongfall</code>.}}
{{IO|TriggerLootIslandAchievement|{{tf2}} {{todo}}.}}
{{IO|TriggerLootIslandAchievement2|{{tf2}} {{todo}}.}}
{{IO|RoundSpawn|{{tf2}} Clears any [https://wiki.teamfortress.com/wiki/Magic_spells magic spell] within the player's current spell book.}}
{{I BaseEntity}}
{{I BaseAnimating}}
 
== Outputs ==
{{O BaseEntity|l4d=1}}
{{O BaseAnimating}}

Latest revision as of 07:46, 29 May 2025

English (en)中文 (zh)Translate (Translate)
edit
Icon-NotInFGD.png
This entity is not in the FGD by default.
It should not be put directly in a map because it can only be configured through code.
Recycle-warning.png
This is a preserved entity in Counter-Strike: SourceHalf-Life 2: DeathmatchDay of Defeat: SourceTeam Fortress 2Left 4 DeadLeft 4 Dead 2Alien SwarmAlien Swarm: Reactive DropPortal 2Counter-Strike: Global Offensive
If the game has round restart mechanics this entity may not behave as expected.
C++ Class hierarchy
... Game Specific ...
CBasePlayer
CBaseCombatCharacter
CBaseFlex
CBaseAnimatingOverlay
CBaseAnimating
CBaseEntity
C++ CBasePlayer definition

player is an entity available in all Source Source games. The player itself or a bot. NPCs are not players. This entity still exists even if the player is dead.

Note.pngNote:Keyvalues, inputs, outputs and Dimensions vary depending on game and engine version.
Tip.pngTip:In singleplayer, a pointer to the player can be acquired by using UTIL_GetLocalPlayer().
Warning.pngWarning:Removing a player entity that a human player is in control of will cause them to either be kicked from the game or prevented them from doing anything.
Icon-Important.pngImportant:This entity is not intended to be placed in a map manually. Doing so will result in an instant fatal error on map load!
The consequences of player entity generation.

Keyvalues

Note.pngNote:Keyvalues can be changed on a player with AddOutput.
Health (health) <integer>
The player's health.
Note.pngNote:Use SetHealth input instead, as this may not update health properly, leaving player at 0 health while still alive.
Maximum Health (max_health) <integer>
The value of "health" cannot exceed this.
Base Velocity (BaseVelocity) <vector>
Adds to the velocity of the player.
Format: <x> <y> <z>

Inputs

SetHealth <integerRedirectInput/integer>
Sets the player's health. Values clamped between 0 and max_health.
HandleMapEvent <stringRedirectInput/string>
Tells the game to perform a function, such as unlock an achievement. Hardcoded for specific map names.
SetHUDVisibility <booleanRedirectInput/boolean>
Hides or displays the HUD.
Note.pngNote:The menu can still be accessed, and some HUD elements such as kill-icons may still be visible.
Warning.pngWarning:Hiding the HUD will disable any weapon-switching of the target. Still available with use console command.  (tested in: Team Fortress 2Counter-Strike: Global OffensiveLeft 4 Dead 2Counter-Strike: SourceHalf-Life 2Black Mesa)
SetFogController <stringRedirectInput/string>
special targetnames are unsupported
Sets the env_fog_controller to use.
PerformForcedWeaponDeploy <stringRedirectInput/string> (only in Black Mesa)
Forces the player to use specified weapon with pickup animation.
Note.pngNote:Pickup animation doesn't always work, this somehow depends on player's ammo and other weapons.