Jump to content

Disguise Logic

From ModEnc²
Revision as of 01:43, 5 April 2025 by ATHSE (talk | contribs) (remove redundancy, moved some to bugs section)
Tiberian Dawn Red Alert Tiberian Sun Firestorm Red Alert 2 Yuri's Revenge
Flag: Disguise Logic
File(s): Rules(md).ini
Values: Strings (names of InfantryTypes)
Default: none
Applicable to: General


The Disguise mechanic has been around since Red Alert for the Allied spy, and persists right through to Yuri's Revenge.

The summary below will focus on YR functionality as it is more extensive.

Infantry Disguises (RA2 & YR)

By default, InfantryType with PermaDisguise=yes and CanDisguise=yes can automatically disguise as enemy basic infantries if its MakeUpKit weapon is not used, which is the case when there is no enemy InfantryTypes on the map. In game this is applied to vanilla Allied Spy.

  • To periodically remind the player of a unit's disguised status, the unit's original image will briefly appear to its owner before reverting to its disguise.

The automatic disguise of said Infantry is automatically assigned to Owner unit, and utilized when a faction outside of Allied side captured their Barrack whilst having their Battle Lab in the vanilla game. The disguises are as follow:

  1. AlliedDisguise= will show enemies the specified unit as an Allied player
  2. SovietDisguise= will show enemies the specified unit as a Soviet player
  3. ThirdDisguise= (YR only) will show enemies the specified unit as a Yuri Country player

If a disguise is acquired on enemy unit, enemy combat units and structures will not target them until manually ordered so by player.

  • Alternatively, TechnoTypes with DetectDisguise=yes can auto acquire and damage them. In vanilla they are applied to Attack Dogs and Yuri's Clone. This tag is not functional in Tiberian Sun.

Vehicle Disguises (RA2 & YR)

The only disguising vehicle added in RA2/YR is the Mirage Tank, and it operates entirely differently to the infantry described above. This kind of disguise requires CanDisguise=yes, but not PermaDisguise=yes, since it cycles through a list of DefaultMirageDisguises values. This means on any given map, the same trees by default are chosen for the effect. A map author will wisely consider what trees are used on their map, and set the available disguise trees manually to match, inside the map code, thereby giving Mirage Tanks the best chance of concealment.

If you want to let vehicles pick their own disguises, you once again need a warhead with MakesDisguise=yes, but since the Mirage Tank uses terrain objects instead of infantry as disguise, you will also want to add TerrainFire=yes to the weapon, which makes the vehicle able to target trees and other terrain objects without having to use force-fire.

Modders can make Mirage Tanks able to pick their tree disguise by making trees targetable using TreeTargeting=yes. Keep in mind the effect of this tag works differently in YR compared to base RA2.

Bugs/Side-Effects/Unexpected Limitations Disguising units cannot disguise as other voxel units ie. VehicleTypes.

Giving a vehicle PermaDisguise=yes, it will use the Allied/Soviet/ThirdDisguise instead of DefaultMirageDisguises, and end up looking like infantry with nasty side-effects!

Disguising units like the Mirage Tank can't have a turret and/or barrel by default, graphical glitches will result. Each individual voxel that's part of the unit will be disguised separately, and appear as multiple trees drawn over top of each other.