Arma 3 Scripting

Arma 3: Revive

  • Also known as Arma 3 Revive, Revive, Revive remastered

Topic · Markdown · JSON · original wiki page

Arma 3 v1.62 Revive is a multiplayer system built to enhance teamwork during infantry gameplay. Its main highlights are:

Settings

Revive's settings can be controlled from 3 different places. The most convenient is to use the (Eden) Editor. Other methods include the mission config (Description.ext) and the server setting in the multiplayer Lobby. If Revive settings are found on more than one location, the local settings take precedence:

  1. Server settings (in the multiplayer Lobby) overwrite everything
  2. Mission config (defined in the description.ext) overwrites Editor/mission settings
  3. Editor/mission settings are considered last and do not overwrite anything

The following settings can be changed:

Editor Settings

Controlling Revive from the Eden Editor settings is the recommended and most comfortable method. It is meant to be used to set the default Revive behavior for that particular mission.

The Editor settings also allow turning Revive on or off on a per-unit basis. This option is only available if "Revive Mode" is set to "Controlled by Player Attributes". The unit attribute covers both aspects of the system, incapacitation and ability to revive.

Mission settings
Mission settings
Unit settings
Unit settings

To access the Revive settings go to: Attributes >> Multiplayer >> Revive.

Notice that, by default, Revive is disabled. Use "Revive Mode" to enable it. Check the tooltips of each section and non-numerical values to get more information about their purposes.

Config settings

Revive can also be controlled outside the Editor. Setting Revive this way is not that intuitive, but it has its benefits:

ReviveMode = 1;                        //0: disabled, 1: enabled, 2: controlled by player attributes
ReviveUnconsciousStateMode = 0;        //0: basic, 1: advanced, 2: realistic
ReviveRequiredTrait = 0;            //0: none, 1: medic trait is required
ReviveRequiredItems = 2;            //0: none, 1: medkit, 2: medkit or first aid kit
ReviveRequiredItemsFakConsumed = 1;    //0: first aid kit is not consumed upon revive, 1: first aid kit is consumed
ReviveDelay = 6;                    //time needed to revive someone (in secs)
ReviveMedicSpeedMultiplier = 2;        //speed multiplier for revive performed by medic
ReviveForceRespawnDelay = 3;        //time needed to perform force respawn (in secs)
ReviveBleedOutDelay = 120;            //unconscious state duration (in secs)

Multiplayer Lobby Settings

class Params
{
    #include "\a3\Functions_F\Params\paramRevive.hpp"
};
Mission settings

Damage Modeling

Because Revive can change game play significantly, we had to make sure its behavior can fit as many scenario types as possible. Because of this there are now 3 different damage presets. Each preset handles damage, incapacitation and death with different levels of realism.

Basic

Basic is the least-harsh preset. Damage received is calculated in the same way as is in vanilla, non-modded Arma 3. The defining difference is that the player will always enter the incapacitated state when they would otherwise be killed.

Advanced

The Advanced preset uses a new damage calculation system which is built around the unconscious state. The calculation is more harsh in general, and improves effectiveness of lower-caliber weapons.

The new preset highlights are:

Realistic

The Realistic preset uses the same calculation as the Advanced preset, but the death threshold is lower. As a result, becoming incapacitated is more rare and dying is more common.

Interaction

The new Revive system uses new technology that was developed specifically for it - continuous actions. These actions use the same framework as normal fire & forget actions, but their execution takes time. They are ideal for activities that should not have an instant effect.

In Revive there are 2 such activities: reviving of am unconscious unit, and forcing respawn when incapacitated. Both can be executed directly from the 3D scene by using the "Default Action" keybind (Middle Mouse Button or Space by default). These actions are also accessible from the Action Menu.

Revive

The action will appear when the player approaches an incapacitated unit. The player must be close enough and have the unit highlighted.

Note: If there are any special requirements in the mission for revive (like being a medic), the player needs to meet them too. If the requirements are not met, the action won't appear.

Force Respawn available
Behavior & visualization (same as Revive):
- There is a static heartbeat icon in the center.
- The icon starts to pulsate between a heartbeat and skull as the unit gets closer to dying.
- The more-intense the pulsing (skull pops-up more often) the sooner the unit will die.
- The circular progress bar plays an idle pulsating animation to indicate that it is a continuous action
Force Respawn in progress
Behavior & visualization (similar to Revive):
- The icon in the center changes to a skull.
- The circular progress bar enlarges and will start to fill-up as the action progresses.

Force Respawn

The force respawn action appears to players when they enter the unconscious state while the Revive system is active. The action allows them to terminate the bleeding process and kill themselves without waiting to be revived. This feature is useful in situations where player do not expect to be revived due to their position, team composition, or if the situation in general is not going to work out.

Note: Forcing respawn does not incur any additional consequences.

3D Visualization

The 3D visualization uses similar logic to the 2D visualization. There is no circular progress bar as displaying the progress in such a detailed manner would require sending frequent updates over the network.

Icon (Unit State)

Color (Interactivity)

Shape (Group)

Sample visualization

Incapacitated unit Dead unit
Incapacitated group member Dead group member

Limitations and Notes

There are several limitations with the current state of Revive. Please take them into consideration when building your scenarios: