…in Arma 3 is actually very sophisticated. Today I am going to attempt to describe the logic that governs search for a suitable marker. So, respawn on marker is available for base respawn only, this means description.ext should contain the following param:
Unit respawn slightly differs from vehicle respawn. So lets start with the unit respawn first. The logic is as follows:
- Look for any marker name starting with “respawn_UNITNAME“, where UNITNAME is the name given to the unit in editor or set by script with setVehicleVarName.
- If the personal respawn marker is not found, get unit’s group leader and look for any marker name starting with “respawn_LEADERNAME“, where LEADERNAME is the name given to the leader of unit’s group, in editor or by script.
- If the group leader marker is not found, get unit’s group side and look for any marker name starting with “respawn_GROUPSIDE“, where GROUPSIDE is “west“, “east“, “civilian” or “guerrila” (that’s right only one “l”).
- If the side marker is not found, look for any marker name starting with “respawn“. In this case if you have vehicle markers but no unit markers, your unit will spawn on vehicle marker or even wrong side marker if there is one available.
- If no markers at all are found, respawn unit where it died.
In case a marker is found, there will be further attempt to retrieve all similar named markers in order to select one random marker. For example if there are several markers for side “west“, “respawn_west1“, “respawn_west_blahblah“, “respawn_westilicious“, all 3 will be picked up and then one marker will be selected at random.
Two more things: 1. Marker search and match is case insensitive and 2. Marker search is local. Local means that the search will be for a marker to respawn at the locality where unit died. Naturally it will pick up all global markers, but it will also find all markers local to that PC too.
For vehicle respawn the situation is similar but search fallback is slightly different:
- Look for any marker name starting with “respawn_VEHICLENAME“, where VEHICLENAME is the name given to the vehicle in editor or set by script with setVehicleVarName.
- If named vehicle marker is not found, get vehicle’s respawn side and look for any marker name starting with “respawn_vehicle_RESPAWNSIDE“, where RESPAWNSIDE is “west“, “east“, “civilian” or “guerrila” (one “l”).
- If vehicle respawn side marker is not found, look for any non-vehicle side marker name starting with “respawn_RESPAWNSIDE“, where RESPAWNSIDE is “west“, “east“, “civilian” or “guerrila” (one “l”).
- If no side marker is found, look for any marker name starting with “respawn“.
- If no markers at all are found, respawn unit where it died.
Similar to unit respawn, in case a marker is found, there will be further attempt to retrieve all similar named markers in order to select one random marker. Also the vehicle will respawn at the locality where it was when it got killed. So if Bob was driving when got killed, the vehicle was at Bob’s locality and therefore will respawn on Bob’s PC . Also if you are planning on using respawnVehicle command to adjust the respawn time, make sure it is also executed where vehicle is local at the time.
So you might think, *phew* is that all? Not at all! There is further tweaking to respawn you can do. Finding marker to respawn is only half the process. Depending on the marker found there are 2 options:
- If markerShape is “ICON” or either of A or B in markerSize is 0, the spawn position is assumed as the marker center (markerPosition).
- If markerShape is either “RECTANGLE” or “ELLIPSE” then the position is selected randomly within the marker area.
In any case, if the exact calculated spawn position is already occupied, unit/vehicle will be spawned in a free available space next to intended position. Think this is all for now. I hope the spelling bug would be addressed in the future updates, it is not major, but name of the side could be easily spelt correctly which could result in some undefined behaviour, especially when you consider how search fallback works.
Enjoy,
KK