Blood System

Some survival games make use of more than the standard trio of hunger/thirst/stamina. Some have more advanced systems such as a player blood level. When you get hurt, there’s a chance to bleed. As you reach a state of hypotension (ie. no blood) you then start to lose health rapidly. The MSGT comes with a versatile blood system that allows for the player to receive multiple ‘wounds’. In order to stop bleeding, players need to use an item that stops bleeding, as an item that just gives the player health or blood will only prolong the amount of time they have to live.

Setup

Requirements

The player blood system requires the player controller to have a C_Manager-Health component attached to it to function properly. Optionally, it can also interact with the C_Manager-Stamina component, C_Manager-HUD component and C_Manager-VisualFeedback component.

Initial Setup

After adding the C_Manager-Blood component to your player controller, the component merely needs to be initialized properly. By default, this is all handled automatically in the included SurvivalController blueprint by the Initialize function, which is run on Event BeginPlay.

If attempting to implement the blood manager in your own controller, you will be required to run the components function called Event Initialize on startup, parsing a reference to the player controller.

If feedback is desired on the HUD UI or via the visual feedback system, then those respective components must also be attached tot he controller and references must be set within the blood manager. This is also true for the stamina manager if a stamina limitation impact is desired upon player’s entering a state of hypotension. This is all automatically done via the Initialize function within the blood manager, assuming the required components are attached to it’s parent controller.

Settings

SettingDetailsDefault Value
Disable SystemThis checkbox will disable the blood system and is useful in testing/debugging scenarios.False
Max Player BloodThis value determines what the maximum player blood value can be. In most cases this should not need to be changed for survival game mechanics.100
Bleed ChanceThis value, represented as a decimal percentage, sets the likelihood that a player will start to bleed if they receive damage that exceeds the Minimum Damage value.0.5
Max MultiplierThis value limits the number of times a player can be wounded. Each extra wound makes the player bleed faster.3
Minimum DamageThis is the minimum damage the player must receive to have a chance to start bleeding.10.0
Drain Rate This value determines how much blood the player will lose each second when they are bleeding.2.0
Update Frequency This value determines how many times, per second, this system updates. Higher values will result in smoother mechanics and nicer visual feedback results, but may impact performance (both locally and networked).20
Limit StaminaIf enabled, when the player enters hypotension mode (ie. zero blood remaining), they will suffer a stamina penalty which will lower their maximum stamina value.True
Stamina ReductionThe size of the penalty applied whilst in hypotension mode.50.0
Hypotension Damage This value determines how much damage, per second, the player will receive whilst in hypotension mode.10.0
Low Blood Visual EffectThe visual effect (if any) used to indicate to the player low health values. Will come into effect when the player's blood crosses the Visual Effect Threshold.Low Visibility
Visual Effect ThresholdOnce the player's blood level drops below this level, the Low Blood Visual Effect (if any is set) will kick in.20.0

Considerations

Being that player Blood level can decay quite rapidly when players have multiple wounds, and that it requires a specific item, it is recommended to have this system as one of the systems with a higher update frequency as lower rates may result in slower feedback to your players and a less visually cohesive experience.

Comments

So empty here ... leave a comment!

Leave a Reply

Your email address will not be published. Required fields are marked *

Sidebar