BP_LPSP_PCH
Introduction
This is the main blueprint in the asset. It represents the character actor that the player controls and contains all the functionality that ties in the asset's parts. This includes things like firing, aiming, reloading, inspecting, and more, all of which are handled here. Additionally, we handle transitions from first to third person and so on.
If you seek to access the BP_LPSP_PCH Blueprint, it is conveniently located at the following path: LowPolyShooterPack/Core/Characters/BP_LPSP_PCH.
Functions
Play Footsteps:
This function plays a footstep Sound Cue whenever it is needed. For better effect, it should be called every frame. Although currently bare-bones, the function works well enough to be kept in the codebase.
Should Be Aiming:
This function returns true if the character should be aiming right now. We use it to check whether we should start or stop aiming after we already know that the player wants to do so.
Can Fire:
This function returns true if the character can fire their weapon.
Has Time Passed:
Returns true if a certain time has passed.
Has Rate Passed:
Returns true if a certain fire rate has passed.
Should Be Running:
This function returns true if the character should be running at the moment. We use it to determine whether to start or stop running after we have determined that the player wants to do so.
Is Weapon Ammunition Full:
This function returns true if the character's equipped weapon is fully loaded with ammunition, meaning that its current magazine is full.
Is Weapon Ammunition Empty:
This function returns true if the character's equipped weapon has no ammunition.
Try Launch Grenade:
This function spawns and launches a grenade forward from the character, but only if there are enough grenades left. It does not play any animations. Its sole purpose is to spawn the grenade. Any throwing animations are played in the Input Graph, after the Input Grenade event.
Stop Inspecting:
Stops the animation montage inspection from playing.
Update Inspecting For States:
This code checks whether the character is aiming or running. If it is, it immediately stops the inspection of the Animation Montage.
Get Animation Values:
Updates local values based on the animation curves.
Try Enabling Weapon Laser:
This function attempts to activate the laser on the currently equipped weapon. Before doing so, it checks whether it is allowed to by retrieving a value from CanUpdateLaser.
Try Toggling Weapon Laser:
This action attempts to turn off the laser of the currently equipped weapon. Before doing so, it verifies whether this is allowed by calling the CanUpdateLaser method, which retrieves a boolean value.
Disable Weapon Laser:
Disables the laser of the equipped weapon immediately.
Aim:
Update all values to reflect that the character is now aiming.
Disable Player Input:
This function disables input for the character and ensures that all private variables remain compatible with it. If you call the normal Actor Disable Input function instead of this one, issues may arise, such as players holding buttons.
Add Widgets To Viewport:
Add the user interface to the screen.
Can Update Weapon Laser:
Return true if the character can change the state of its weapon lasers.
Game Ability Stop:
This function stops a game ability and adds back the removed tags if there is no other animation montage currently playing. We check if a montage is playing before adding back the removed tags because tags are frequently added and removed when animations play, which could cause issues.
Get View Location:
This function returns the offset from the top of the character's capsule at which we should position the first-person view.
Update Current Weapon:
Update the current weapon to match the new index. Do not call this function if you have not first changed the "Weapon Inventory Index" property, otherwise there may be unintended consequences.
Create Widget Crosshair:
This function creates and adds the crosshair User Widget to the screen.
Try Change Weapon Settings Physical:
This changes the physical settings of the character-equipped weapon.
Is Allowed To Interact:
This function returns true if the character can interact with the world without any problems.
Get Movement Speed:
This function returns the current SSpeed struct value to use for the character's movement speed. The SSpeed struct contains movement data that needs to be refreshed every frame.
Has Any Ammunition Of Weapon Type:
This function returns true if the character currently has any ammunition of the weapon type equipped.
Get Forward Rotation:
This function returns the rotation towards which the character is looking, accounting for various additional factors and rotation smoothing.
Can Lower Weapon:
This function returns true if the equipped weapon can be lowered.
Check Automatic Leaning:
This function checks if the character should automatically lean, and if so, updates all values to match that. It performs all necessary operations to allow the character to peek from corners (i.e. automatically lean).
Is Holding Fire Pure:
This function returns true if the player is holding the firing button and the character is allowed to fire. It is used to prevent actions like running while firing. Although it isn't perfect, we continuously improve its feel with each update.
Is Moving:
The Is Moving function is responsible for determining whether the character is currently moving. It returns a boolean value of true if the character is in motion, and false if the character is stationary. This function is used in various parts of the codebase to determine the character's movement state and adjust gameplay accordingly.
For example, it could be used to prevent the player from firing while moving, or to trigger certain animations or sound effects when the character starts or stops moving. This function is an essential part of the BP_LPSP_PCH blueprint and provides critical functionality for controlling character movement in the game.
Get Added Rotations:
The Get Added Rotations function is responsible for calculating and returning the final Rotator value that should be added to the Character's control rotation to obtain the Camera's final rotation. This value is crucial for ensuring that the Camera is pointing in the correct direction based on the character's movement and rotation.
Trace For Lowered State:
To determine if a character should lower their weapon, check for traces in front of them. If the equipped weapon should be lowered, this ability will also be activated.
Trace For Forward Blocked:
We use traces in front of the character to determine if there is a wall. This technique is useful for corner peeking.
Update Leaning Values:
Interpolates and sets all the leaning values.
Get Avoidance Trace Inputs:
This utility function returns the values that should be used to trace from the character when checking for walls to avoid. It provides all the necessary values for avoidance and corner peeking.
Trace For Leaning Side:
Trace from one side of the character forward. This is helpful for checking if there are walls in front of the character when it leans in a specific direction. We call this repeatedly when tracing for corner peeking.
Update Movement Values:
Update all of the character's movement values based on settings that come from the weapon. Call this every frame for better results.
Update Show Reload Prompt:
Updates the value of "Show Reload Prompt.”
Interpolate Camera Recoil:
This function retrieves the recoil value of the currently equipped weapon at a specified time. It then uses a custom Spring Interpolation node to interpolate the value.
Is Out Of Weapon Ammunition Type:
This function returns true if the character's ammunition pool is empty for the given ammunition type, and the current weapon also has no ammunition.
Is Low On Ammo:
This function returns true if the character is running low on a given type of ammunition. We use it to determine when to display the "Low Ammo" prompt.
Try Set Field Of View Alpha:
This function enables easy setting of the field of view for the arms and other first-person specific aspects of the character. It is crucial to call this function when starting the game to correct the field of view and prevent clipping with walls.
Set Up All Timeline Curves:
Calling this function in BeginPlay ensures that all timelines in the character blueprint are properly initialized and ready to play the correct curves during gameplay.
Set Up Mapping Context:
This function adds a mapping context to the input subsystem, which enables all actions to be properly mapped to inputs. It is a basic necessity when using the Enhanced Input System.
Interpolate Camera Jumping Curves:
This function interpolates the camera's jumping-related curves to their target and ensures that the value is set, so we can later read it when applying rotations to the camera.
It is a local player function that does not need to be called outside of it.
Interpolate Viewmodel Curves:
This function handles the spring interpolations for all viewmodel curves. It needs to be called every frame for proper functionality, as interpolation is tied to frames.
Reset Recoil:
This function resets the camera's recoil and sets its control rotation to match the current rotation, preventing any strange snapping issues.
Handle Playing Falling Timeline:
Make sure that the viewmodel's falling values are only applied when the character is actually falling. These values should be cleared when grounded.
Get Equipped Item Pure:
Returns the currently equipped item.
Get Holster State Pure:
Returns the currently equipped item.
Update Field Of View:
Updates the general viewmodel field of view to the correct value.
Is Inputing Movement:
Returns true if the Character is moving.
Manage Rotations:
Ideally, this function should be called every frame to update the capsule and spring arm rotation values. This is necessary for the character to face in the correct direction, particularly in third-person view.
Set Capsule Rotation:
Sets the value of Capsule Rotation.
Set Rotations:
This function sets the relative rotation of the capsule component to the correct capsule rotation. It is necessary to call this function every frame for things to work properly.
Update Spring Arm Properties:
This updates the properties necessary for the Spring Arm component to work properly. This includes things like its distance from the character and the offset at which it is positioned. This can be especially helpful for third-person blending, which is the main function of the component.
Update Values For Perspective:
This step updates all the necessary values for the character to be properly set up in either first or third person perspective. This includes updating mesh visibility, fields of view, and other relevant factors.
Play Level Fade:
Plays a sequence that fades in the level. This may be a remnant of an earlier setup.
Update Character Materials:
Update the materials for both the first and third person character meshes based on the setup in the Character Material variable.
Set Up Full Body Meshes:
This code adds all the meshes that should only be visible for the full body character to an array, and updates the required properties for all of them. One of these properties is the field of view material value.
Get Inventory Attach Component:
This component specifies where to attach the inventory component to ensure that all equipped items appear correctly on screen. The attachment location depends on several variables.
Is Third Person Aiming Angle Incorrect:
This function returns true if the character is looking in a direction that should block aiming by default. This is very helpful because some things break when looking in odd directions.
Force Third Person Angle Lowered:
This function returns true if the equipped item of the character should be lowered due to the angle at which they are currently looking.
Update Equipped Item Physical Settings:
This method updates the physical settings of the equipped item to match the character's current state, including third-person and holstered states.
Update Field Of View Materials For View:
This method updates the character's materials field of view parameter to match its current view mode. For example, when in third-person, we don't want the field of view material to have any effect, but when in first-person, we want it to be active. That's the essence of what this method does.
Update Character Material Type For View:
This method helps update the character's materials, ensuring each is of the correct "type." Each material has a "type" value that determines whether it uses a first-person texture (at zero) or a third-person one (at one). These values need to be set differently for the arms and the full-body character, which is what this method accomplishes.
Is AI:
This variable returns true if the character is controlled by AI, as opposed to a human player.
Get Blackboard Target:
This function retrieves the current target from the character's blackboard. The blackboard is an object that stores key-value pairs for use by AI controllers.
Stop Montage Local:
This function stops a local (i.e., not replicated) animation montage from playing.
Can Trigger Throw Grenade Pure:
This function returns true if the character can currently throw a grenade.
Can Trigger Melee Pure:
This function returns true if the character can currently perform a melee attack.
Get Grenade Throw Rotation Pure:
This function returns the rotation that should be applied to a thrown grenade based on the character's current stance and position.
Try Update Viewmode:
This function attempts to update the character's view mode to the specified value.
Try Toggle Viewmode:
This function attempts to toggle the character's view mode between first person and third person.
Update Equipped Item Viewmodel:
This function updates the viewmodel of the equipped item.
Try Update Movement Values:
This function attempts to update the character's movement values.
Set AI Rotations:
This function sets the rotations of the AI character to the correct values to ensure proper movement and behavior.
Try Update AI Rotation Values:
This function attempts to update the rotation values of the AI character.
End Tactical Sprinting:
This function stops the tactical sprinting action and resets relevant values.
Try Handle Tactical Sprinting:
This function checks whether the character should start or stop tactical sprinting based on the input received.
Reset Tactical Sprinting:
This function resets the character's state after tactical sprinting has ended.
Is Allowed To Tactical Sprint:
This function returns true if the character is allowed to start tactical sprinting.
Posessed:
This function handles initialization when the character is possessed by a controller.
Remove Interface:
This function removes the user interface from the screen.
Remove Crosshair:
This function removes the crosshair from the screen.
Try Show Spawn Menu:
This function attempts to show the spawn menu for the character.
Drop Equipped Item:
This function drops the currently equipped item.
Remove Healthbar:
This function removes the healthbar from the screen.
Try Reset Toggle Running:
This function ensures that the character does not attempt to run if they are in toggle hold mode for running. This is important because when we stop while in tap mode, we want the player to have to tap again before running.
Try Reset Toggle Aiming:
This function ensures that the character does not attempt to aim if they are in toggle hold mode for aiming. This is important because when we stop while in tap mode, we want the player to have to tap again before aiming.
Editable Variables
Speed Multiplier Horizontal:
This value determines how much to multiply the character's speed when moving horizontally. If you want the character to maintain the same speed when moving forward, set this value to one.
Speed Multiplier Backwards:
This parameter determines the factor by which to multiply the character's speed when moving backward. If you want the character to maintain the same speed when moving backward, set this value to one.
Maximum Running Angle:
This determines the maximum angle (from the front) in which the character can run. Anything beyond this angle will prevent the character from running.
Allow Running While Crouching:
This function determines whether the character can start running while crouching. Although not currently utilized in our demo scenes, it is certainly a cool option to have.
Can Run:
This variable controls whether the character can run or not. It's an important feature because it allows game developers to restrict the character's movement when necessary.
Can Tactical Sprint:
This variable determines whether the character can perform a tactical sprint or not.
Tactical Sprinting Duration:
This variable determines how long the character can perform a tactical sprint before their stamina runs out. Once the stamina is depleted, the character will be forced to stop sprinting.
Running Input Type:
This variable determines the input type for running. It determines whether a player needs to hold down the running button or just tap it once.
Aiming Input Type:
This variable determines the input type for aiming. It determines whether a player needs to hold down the button or just tap it once.
Widget Class Interface:
This function determines the class of the user widget that appears as the player's interface. By default, it should be set to WBP_LPSP_Interface, which is our main user widget.
Sound Cue Aiming Start:
Specifies the sound cue to be played when the character begins aiming.
Sound Cue Aiming Stop:
This setting determines the sound cue that plays when the character stops aiming.
It's not commonly used, as we currently don't have any suitable sounds for it. Additionally, playing the same sound for both aiming in and aiming out is not ideal.
Sound Cue Land:
This function determines the sound cue played when the character lands on the ground.
Sound Cue Footstep:
This sound cue plays occasionally when the character moves, and indicates the sound of their footsteps.
Sound Cue Pick Up:
This determines the sound cue played when picking up a weapon from the ground.
Show Helmet:
Should this character wear a helmet?
Show Headset:
Should this character wear a headset?
Show Goggles:
Should this character wear goggles?
Third Person:
This value is true whenever the player is seeing this character from a third-person perspective.
Left Hand Mode:
Change the character so that weapons are held in the left hand.
This is a cool feature that we teased a long time ago, but we haven't had the chance to finish it properly.
Montage Play Rate Range Fire:
This refers to the possible range of play rates that the firing montage can use when played.
Unlimited Ammo:
Should the character have unlimited ammo? If set to true, no ammunition will be consumed when firing.
Running Out Of Ammo Division:
The "Low Ammo" text will only show up if the total number of ammo and the current amount of ammo have a difference greater than a certain threshold.
Default Sensitivity Multiplier:
This determines the value by which to multiply the look sensitivity when the settings saved in the game cannot be retrieved. This is mainly included to prevent complete malfunction in certain cases when the save game has bugs or cannot be found for any other reason.
Control Rotation Interp Speed:
This setting controls the interpolation speed of the character's rotation while walking around. A value of zero means no interpolation is applied.
Field Of View Default:
This value represents the default field of view, but it usually does not match the in-game field of view as that is determined by the save game settings.
Field Of View Multiplier Running:
This value determines how much to increase the field of view when the character is running.
First Person View Offset:
Determines the offset, from the top of the character's capsule component, at which the first-person view will be placed. This approach ensures that the value continues to work even while crouching.
Settings Camera Unlocking:
Camera unlocking refers to the ability to look around the character without the character itself rotating, as well as the weapons not moving with the camera.
Camera Jump Rotation Curve:
Camera Jump Curve.
Camera Jump Spring:
Camera jumping curve interpolation settings.
Camera Land Rotation Curve:
Camera Land Curve.
Camera Land Spring:
Camera landing curve interpolation settings.
Third Person Settings:
This data asset will be used to determine various settings for the third-person camera view.
Free Look Fly Speed:
Default maximum movement speed while in trailer mode.
Free Look Running Fly Speed:
Maximum flying speed while running in Trailer Mode.
Free Look Vertical Fly Speed:
Maximum up/down speed in trailer mode.
Free Look Control Rotation Interp Speed:
This parameter sets the interpolation speed of the character's rotation while in Trailer Mode. A value of zero means that no interpolation is applied.
Grenade Class:
Specify the type of grenade to spawn.
Unlimited Grenades:
This parameter determines whether the character can throw an unlimited number of grenades. It is mainly included as a cheat and for testing purposes.
Grenade Throw Force Range:
This is the default throwing velocity/force used when throwing grenades. This value may be multiplied by other factors before being applied.
Landing Debug Velocity:
If enabled, the character's velocity at the moment of landing will be printed on screen. This feature is very helpful for dealing with anything related to landing effects.
Landing Minimum Velocity:
This value represents the minimum landing velocity required for the character to trigger landing sound effects and procedural movements. It can be challenging to determine an appropriate number for this, but setting "Landing Debug Velocity" to true can be helpful in this process.
Landing Shake:
Camera shake is applied when the character lands on the ground after falling for a while. Currently, it is not affected by the height or duration of the fall, but it may be in the future.
Landing Amplitude Curve:
This curve maps the character's velocity at the point of landing to the value used to multiply the landing camera shake and procedural effects. The higher the value at a given time in this curve, the more the camera will shake when landing with that velocity.
Game Ability Interact:
This determines the game ability used when trying to pick up a weapon.
Can Lean:
Set to "true" if the character should be able to lean.
Can Corner Peek:
Set this option to true if the character should automatically peek out of corners when aiming.
Corner Peek Division:
This value determines how much the maximum leaning offset should be divided when testing for corner peeking.
A higher value means there will be more distance between corner checks, which could potentially cause the system to fail in detecting corners to peek out of effectively.
Leaning Camera Offset Location:
This refers to the offset applied to the camera when leaning.
Leaning Camera Offset Rotation:
This refers to the rotation offset applied to the camera when leaning.
Ammunition Pool Starting:
These are all the ammo values at the beginning of the game.
Ammunition Pool Max:
This variable represents the maximum amount of ammunition of each type that the character can hold.
Can Randomize Weapon Presets:
If this option is enabled, the character will be able to swap between different weapon presets.
Randomization Duration:
Duration of weapon preset swapping.
Avoidance Distance:
This setting determines the distance at which walls are checked for. Any distance greater than this will not be considered when the weapons are avoiding walls.
Mapping Context:
Input Mapping Context.
Randomization Boop:
The animation montage plays when randomizing a weapon's attachments.
Update Full Body Materials To Match:
When set to true, this variable helps us match third-person and first-person character materials. Otherwise, the full body (third-person) materials can be set separately from the first-person ones.
Allow Material Randomization:
This variable will cause the character's materials (or skin) to change whenever the equipped item's attachments are randomized. It's a cool visual effect.
Randomizable Materials:
This variable stores a reference to the Data Asset that contains references to all the materials that this character can have on it when randomized.
Can Toggle Viewmode:
Setting this variable to true will allow players who use this character to switch between the default view mode and another option, meaning they can switch to third-person if they started in first-person or vice versa.
Unarmed Abilities:
This variable holds a reference to the SAbilities that the character should use when unarmed. These abilities are crucial for performing actions. Since we don't have a dedicated Actor for the arms, we need to manage this information here.
Unarmed Animations:
This variable refers to the Data Table that contains all the AnimMontages for the unarmed state. Similar to abilities, since we don't have a designated Actor to store this information, we keep it here. We then access it through the 'Play Montage by Name' Macro, as we do with all other animations.
Private Variables
Begin Play:
This is used to check when the game is loaded.
Holding Aim Key:
This value is set to true when the player controlling this character holds down the aiming key.
Holding Fire Key:
This value is set to true when the player controlling this character holds down the firing key.
Show Tutorial Text:
This value is set to true when the player controlling this character holds down the show tutorial key.
Holding Run Key:
This value is set to true when the player controlling this character holds down the running key.
Holding Reload Key:
This value is set to true when the player controlling this character holds down the reloading key.
Holding Inspect Key:
This value is set to true when the player controlling this character holds down the inspecting key.
Holding Jump Key:
This value is set to true when the player controlling this character holds down the jump key.
Holding Crouch Key:
This value is set to true when the player controlling this character holds down the crouch key.
Last Position:
This variable holds the player's last position.
Move Distance:
Checks how far the player has moved.
Footstep Distance:
This value determines the length of each footstep and is used for playing the corresponding sound effect.
Shot Count:
This variable counts the number of consecutive bullets that have been fired.
Previous Burst Time:
This refers to the last game time at which a burst was fired.
Previous Shot Time:
This refers to the last game time at which a shot was fired.
Animation State:
This value represents the current state of the character's animation, specifically one for aiming and two for running. Zero represents idle.
Control Rotation:
The character’s control rotation.
Current Control Rotation Interp Speed:
This refers to the current interpolation speed used for updating the control rotation value.
Montage Play Rate Fire:
This value represents the play rate to use when playing the firing montage.
Game Instance:
Game Instance. This object is used for various purposes, but mainly to retrieve settings.
Sensitivity Multiplier:
This holds the current multiplier used for the mouse/controller sensitivity.
Look:
The value of the look input.
Aiming:
This value is set to true when the character is aiming.
Movement:
The value of the movement input.
Running:
This value is set to true when the character is running.
Ability Tags:
This holds the current gameplay tags that determine what this character is able to do at any given time.
Abilities:
This structure contains the tags that we check against our "Ability Tags" variable when attempting to initiate certain abilities. These tags are specific to each item.
Settings Weapon:
This value contains all the settings obtained from the currently-equipped weapon.
Data Table Animations:
Reference to the data table containing all the animations needed for the character to use the equipped item.
Widget Crosshair:
This variable refers to the user widget which we use as the crosshair for the player character.
Weapon Settings Scope:
This value contains all the settings obtained from the currently equipped weapon's scope attachment.
Weapon Settings Laser:
This value contains all the settings obtained from the currently equipped weapon's laser attachment.
Settings Movement:
This value contains all the movement settings that the character needs to use, which are specific to the item.
Hit Result Interaction Trace:
Hit result for the interaction trace.
Data Table Weapon Sounds:
Reference to the data table containing all the sounds needed for the character to use the equipped item.
Last Is Hidden Magazine:
Last value of the “Is Hidden Magazine” variable.
Montage Active Reload:
The reload montage that is currently active refers to the animation being played by the character during the reloading process.
Leaning Target:
This describes the target value for the learning alpha. It represents the value to which the learning alpha will be interpolated.
Leaning Alpha:
This refers to the alpha value of the character's leaning, which represents how much the character is leaning.
Location Camera Up:
This indicates the position of the camera on the z-axis.
Leaning:
This value is true when the character is leaning.
Leaning Previous:
Represents the previous value of the "Leaning Alpha" variable.
Leaning Switched:
This value indicates whether the character has just switched the side they are leaning on.
Lowered:
This value is true when the character's equipped item is lowered.
Lowered Pressed:
This value is set to true when the player presses the "Lower Item" key. This is different from the actual "Lowered" variable.
Holding Fire:
This value is set to true if the character holds fire for an extended period of time.
Ammunition Pool Current:
Represents the character's current stock of ammunition, including every single piece of ammunition they have.
Weapon Ammunition Type:
This refers to the ammunition type used by the character's currently-equipped weapon.
Show Reload Prompt:
This boolean is set to true whenever the reload prompt needs to be shown on the screen.
Camera Unlocked:
This value is true whenever the first-person camera is unlocked from its usual rotation.
Camera Unlocked Start Rotation:
This refers to the rotation of the character's camera when it is not unlocked. We store this value just before unlocking the camera.
Alpha Weapon Lag Look:
Alpha value for the equipped item’s looking lag.
Forward Blocked:
This value is set to true when there is something blocking the character's view immediately before it.
Automatically Leaning:
This value is set to true whenever the character is made to lean automatically.
Leaning Target Pressed:
This is the desired value that the player is currently trying to set the leaning value to.
Leaning Pressed:
This value is set to true when the player presses one of the leaning keys. This is different from the actual "Leaning" variable.
Inspecting:
This value is true whenever the character is inspecting its equipped item.
Main Material Parameter Collection:
This parameter collection contains all parameters related to the specific viewmodel field of view setup.
Inspecting Prev:
This is the previous value of the “Inspecting” variable.
Inspect Montage Name:
Name of the inspect montage being played.
Camera Fully Locked:
This value is true when the character's camera is fully locked into its normal rotation and not unlocked.
Camera Locked Start Rotation:
This value represents the initial rotation for interpolating the camera back to its locked rotation.
Meshes Only Visible In Third Person:
This is an array of all mesh components that are only visible from third-person.
Was In Third Person:
This value is set to true when the character was in third person during the last frame.
Capsule Rotation:
The rotation of the character’s capsule.
Knife Visibility:
This value represents the visibility of the character’s knife.
Third Person Alpha:
This value represents the alpha value of the character's third-person. If the value is zero, then the character is in first-person. If the value is one, then the character is in third-person.
Holster Alpha:
This value represents the alpha value of the character's holster. If the value is one, then the character’s equipped item is holstered.
Randomized Material:
This variable stores the currently-equipped randomized material on the character's arms and full body. It is only assigned when the equipped item's attachments are randomized.
Cached: Can Lower Weapon:
Returns true if the equipped weapon can be lowered.
Cached: Holster State:
Returns the currently equipped item.
Interface_Widget:
This variable stores a reference to the interface widget.
Equipped Item:
The currently equipped item.
Cached: Is AI:
Returns true if the character is controlled by AI, as opposed to a human player.
Tactical Sprinting:
Determines whether the character is performing a tactical sprint or not.
Tactical Sprint End Timer:
This variable stores a Timer Handle for the Timer that takes care of ending the character’s tactical sprint.
Stamina Component Reference:
We maintain a reference to the Stamina Component store here. This approach gives developers the flexibility to remove the component if not needed, making it as optional as reasonably possible.
Played Attack:
We store the name of the last unarmed attack we executed to ensure that we're always displaying different attacks. If we don't do this, things can appear visually monotonous.
Last updated
Was this helpful?

