• Categories Widget (Show All)

  • Recent Articles

  • Guides

    Published on 11-29-2011 09:42 AM
    Categories:
    1. Guides

    Red Alert 2 Map Editing Guide - Part 1

    Contents
    • General Map File Information
    • Creating A Map File
    • Converting Maps From Red Alert (including Counterstrike And Aftermath)
    • Converting Maps From Tiberium Dawn (including Sole Survivor And Covert Operations)
    • Converting Maps From Tiberian Sun (including Firestorm)
    • Starting Points
    • Using And Modifying The RULES.INI Settings
    • SED Files
    • MAP, MPR & YRM Files
    [Basic]
    [SpecialFlags]
    [Ranking]
    [Header] (Yuri's Revenge Only)
    [Lighting]
    [Map]
    [Preview]
    [PreviewPack]
    [IsoMapPack5]
    [OverlayPack]
    [OverlayData]
    [Countries]
    [Houses]
    [Infantry]
    [Aircraft]
    [Units]
    [Structures]
    [Terrain]
    [Smudge]
    [Tubes]
    [Digest]
    • Adding Your Map Files To The Game

    • General Map File Information

    Map files are INI files. However, instead of having the INI file extension, they come in several formats - MAP, which is used to indicate an official map, MPR (Red Alert 2) or YRM (Yuri's Revenge) which are used to indicate an unofficial multiplayer or Yuri's Revenge map, SED which is used to indicate a map file generated by the game's random map generator (also known as a seeded map as it uses a random fractal generation system), and MMX which is used to indicate an extra multiplayer map (or YRO for Yuri’s Revenge Optional map in Yuri's Revenge). MMX and YRO are a special case, as they are actually a MIX file with a different extension, which contain both a MAP and a PKT file (see later). MMX can only be used in Red Alert 2 - Yuri's Revenge has no support for MMX as it uses YRO for this format.

    The game actually only recognizes, officially at least, the MAP, MMX and SED file extensions, however enhancements made by the 1.005 patch for supporting Final Alert 2 means that the game now correctly handles MPR files (it previously did so unofficially as a result of residual code from Red Alert). Installing Yuri's Revenge also adds support for YRM files (which are identical in format to MPR files with specific additions for Yuri's Revenge). This means that if you want to create your own multiplayer maps for Skirmish mode or Internet/LAN play, then you can easily do so simply by saving it as an MPR or YRM file and placing it directly in the same directory as Red Alert 2. These files will then automatically be detected by the game and listed in the multiplayer map list. The biggest advantage of MPR and YRM files is that they are easily transferable - if you play a game in which the host uses an MPR or YRM map over the Internet or a LAN, the file is transferred to your computer into your Red Alert 2 directory, where it will be available for you to use in the multiplayer map list. However, there are some drawbacks to using these files;-

    • the 'auto transfer' facility is only utilized if you set Official=no in the [Basic] section of the map file.

    • .MPR is the same file extension used by Lotus Approach, so if anybody smart enough in Lotus Script wrote a virus (in the same way that macros cause havoc in the Microsoft Office suite of applications), you could unwittingly have it transferred onto your machine, causing havoc if you have any Lotus applications installed. I have yet to hear of any examples of this, but be aware that it is (albeit remotely) possible. It is more likely the case that game crashes and internal errors are due to problems with the map itself rather than the presence of a malicious Lotus Script.

    • Although increased by the 1.005 patch, there still remains a practical file-size limit on MPR and YRM maps so its worth understanding how big your map files can be without risking server timeout during the transfer process or even disconnections during the game itself. The total time allowed for the map file to be transferred to every player inclusive (known as the synchronization limit) is fixed at 180 seconds (3 minutes). That’s enough time for approximately 1400K of data transfer, but you must divide that amount by the number of players to whom the map is being transferred as they all use that transfer rate simultaneously. A map transferring to 4 players then can be up to 350K in size (limit of 1400K divided by the four players) but at that upper file size limit you still risk timeout depending on the speed and quality of each of those players' connections. The same map being transferred to 8 players would definitely timeout during transfer - with 8 players you'd only have time to transfer 175K (1400K divided by the 8 players). TIP: keep your map files as small as practically possible (see later).

    The game recognizes MAP files as the default map file. However if these are placed directly into the Red Alert 2 directory, the game defaults to them being single player maps (such as the in game missions which make up the campaigns) and will thus be unavailable as multiplayer maps.

    TIP: you can save multiplayer maps as MAP instead of MPR or YRM, put them into a MIX file, and have the game recognize them in the multiplayer map list by including a PKT file in that MIX file and then renaming the MIX file so it becomes an MMX file (or YRO for Yuri's Revenge). The advantage of this is that you get none of the drawbacks detailed above with MPR files therefore eliminating the limit on file sizes and map numbers. As an added bonus, if somebody else has the identical maps (i.e. same MMX or YRO file present), you can play them online or over a LAN as if they were official game maps. The only drawback is that MMX and YRO files are not automatically transferred over the network/Internet so all players must have the maps present to be able to use them. This is the method used by Westwood when they released their Official Map Packs, although this ...
    Published on 11-29-2011 09:41 AM
    Categories:
    1. Guides

    Red Alert 2 Map Editing Guide - Part 2

    Sections Covered
    • A Note On Structure Numbers
    • [Events]
    • [Actions]
    • [Triggers]
    • [Tags]
    • [VariableNames]
    • [Waypoints]
    • [CellTags]
    • [AITriggerTypesEnable]

    NOTE: for information pertaining to the TeamTypes, TaskForces, ScriptTypes and AITriggerTypes sections, please refer to the AI.INI Guide which offers full and conclusive descriptions of what these sections are and how they can be edited. Those sections are parsed and used in an identical way when added to a map file.

    • A Note On Structure Numbers

    When used in an Event, the structure number takes any of several formats and is derived by finding the structure in the [BuildingTypes] list of the RULES file and subtracting ONE from this structures' number in that list (equivalent to renumbering the list from 0) - this is the explicit number of that structure and is the number to use as the second parameter of the action. Any one of several amendments can be made to this number;-

    • add 131072 to the number, so GAPOWR (number 1 in RULES thus number 0 for this purpose) becomes 131072
    • add 196608 to the number, so GAPOWR (number 1 in RULES thus number 0 for this purpose) becomes 196608
    • add 65534 to the number, so GAPOWR (number 1 in RULES thus number 0 for this purpose) becomes 65534

    It has not been determined what significance or effect the different numbering systems have (if any). Changing them at random appears to have no effect although it is thought that there is additional logic attached to them.

    [Events]

    Events are the fundamental backbone of Red Alert 2. The game engine constantly performs tests to see if certain conditions are met, and by specifying an Event matched to one of those conditions, you can tell the game what to do when that Event occurs.

    When specifying an Event, you are telling the game to do something when something happens (a condition is met). If that condition is met, then a Trigger is fired which in turn tells the game to carry out an Action. A Tag is used to tie the whole process together and can be used to attach the Event to an object (structure or unit). A CellTag can be used to attach the Event to a particular cell (kind of a special Waypoint). An Event entry takes the following format;-

    ID=N,A,B,A1,B1...

    ID=
    Is the hexadecimal numbered string which is the unique identifier for this Event. For convention, it is wise to stick to this hex numbering system although this is not strictly necessary. NOTE: this ID should match the ID for the corresponding Trigger= and also the corresponding Action=. The associated Tag= (see later) is what strings the whole process together.

    N
    Is the number of events to be tested. The game will expect this number of Events followed by their parameters in the list.

    A,B,A1,B1...
    This is a list of each Event - as you can see, several can be strung together to specify Actions which will fire a Trigger when every event in that list is satisfied. The 'A' parameters are the Event numbers which specify which condition has been met. Each of the Events require a 'B' parameter which provides information for the Event - they mean different things for different Events. Here's an example of an Event entry;-

    06117B60=2,13,0,5,36,0,3

    In the example you can see that we have 2 events (number of events to satisfy is set to '2') and the data for each of those events follows - the first event is 13,0,5 and the second event is 36,0,3. Using the guide below, that line means that when 5 seconds have expired (13,0,5) AND Local Variable number 3 is set (36,0,3) then the associated Trigger= will be fired.

    A full list of available events and a more detailed description of each follows. TIP: during the detailed descriptions, you will find many references to RULES file entries and sections. These are mentioned since they can also be included in your map file to provide a further degree of customization to the map and gain more control over the events themselves - refer to the RULES.INI Guide for more details.

    0 = No Event - eg 0,0,0
    Used to define a trigger which will never be activated by any Event= in the game. This is useful if you want to make some sort of 'once only' special Action= in the game, and you use the 'force trigger' Action= (see later) to activate it. Both parameters should be set to 0. This is a null event. There is no need to ever use this in a real trigger.

    1 = Attached Object/CellTag Entered - eg 1,0,0
    Used to fire a trigger when the object to which this Event= has a Tag= attached is entered by the House number specified in parameter 2. If you attach the Tag= for this Event= to a structure in the [Structures] section of the map file, the Trigger is fired if the building is entered by any unit which has Infiltrate=yes set. The same applies for the use of a CellTag which should point to this Event=. The second parameter specifies the number of the House= which will trigger this Event=. Triggers when an infantry or vehicle enters the attached object. Typically this trigger is attached to a building or a cell.

    2 = Attached Structure Spied - e.g. 2,0,0
    If you attach the Tag= for this Event= to a structure in the [Structures] section of the map file, the Trigger= is fired if the building is entered by any [InfantryType] which has Infiltrate=yes and Agent=yes set. Note that for this to have any effect, the structure should also have Spyable=yes set as the Spy functionality is structure specific in Red Alert 2.

    3 = Attached Structure Thieved - e.g. 3,0,0
    If you attach the Tag= for this Event= to a structure in the [Structures] section of the map file, the Trigger= is fired if the building is entered by any [InfantryType] which has Thief=yes set and belongs to the House number specified by parameter 2. Note that for this to work, the structure should also have a Storage= value and Spyable=yes set as the thief functionality is related to the Spy logic and thus is structure specific in Red Alert 2.

    4 = Attached Object Is Discovered By Player - e.g. 4,0,0
    Fired when an object to which this is attached is discovered by a human player. Discovered is defined as being revealed from under the shroud when the object falls within the Sight= range of a player owned object. You can only add the Tag= to infantry, units, aircraft or structures in the objects' entry in the relevant section of your map file, and you cannot associate it with a specific side because only human players (houses with PlayerControl=yes set) can activate this Event.

    5 = House Discovered By Player - e.g. 5,0,
    Fired when any object owned by the House number specified in parameter 2 is discovered by a human player. Discovered is defined as being revealed from under the shroud when the object falls within the Sight= range of a player owned object. Note ...
    Published on 11-29-2011 09:39 AM
    Categories:
    1. Guides

    Red Alert 2 RULES.INI Guide Part 1

    Sections Covered
    • [General]
    • [JumpJetControls]
    • [SpecialWeapons]
    • [AudioVisual]
    • [CrateRules]
    • [CombatDamage]
    • [Radiation]
    • [ElevationModel]
    • [WallModel]

    [General]

    UIName=
    Reference name of this INI file as contained in the CSF files. Appears to have little or no significance.

    Name=
    Plain text entry which specifies the name of this file. Does not appear to be used by the game, although since Red Alert it has been stated that you can differentiate between RULE files by naming them RULE*.INI (with * being a DOS wild card, that is any standard ASCII character). In this case, the Name= entry is used to differentiate between them although I have not seen this used. Previous games have always tended to use specific INI files for them (such as AFTRMATH.INI which expanded Red Alert and FIRESTRM.INI which expanded Tiberian Sun).

    • Veteran Factors

    VeteranRatio=
    This determines the multiple of any units' self value that it must destroy to increase one rank up the ladder (see VeteranCap= on how to define number of steps on the ladder). The units 'self value' is defined by its Cost= entry, so if a unit had Cost=10 and you set VeteranRatio=10.0 then the unit will be promoted one step when it destroys 100 credits worth of other units. This does not have to be enemy units - it could destroy neutral things or even its own things if 'force fired' and still get the bonus.

    VeteranCombat=
    Multiplier which determines the bonus to the Damage= caused by each of the units' weapons with each rank it increases.

    VeteranSpeed=
    Multiplier which determines the bonus to the units' Speed= with each rank it increases.

    VeteranSight=
    Multiplier which determines the bonus to the units' Sight= with each rank it increases. This is set to '0', seemingly because values above 10.0 cause crashes although it is not known why.

    VeteranArmor=
    Multiplier which determines the bonus to the units' Strength= with each rank it increases. Note that this does not mean the unit gets much more protection, as the effect is to make it take longer to destroy the unit when it is at full strength.

    VeteranROF=
    Multiplier which determines the bonus to the ROF= of the units Primary= and Secondary= weapon types with each rank it increases.

    VeteranCap=
    Integer which determines the maximum number of ranks that a unit can aspire to. With each successive rise in rank, the unit will continue to accumulate the above bonuses until it reaches the highest rank (specified by this number). The default is '2' which represents Little Experience (0), Veteran (1) and Elite (2). Changing this will cause issues with the abilities granted to each unit with the VeteranAbilities= and EliteAbilities= statements, as well as the ElitePrimary= and EliteSecondary= statements.

    • Repair And Refit

    RefundPercent=
    Percentage of the Cost= value of the structure to be refunded when it is sold. Also applies to vehicles if sold from a Service Depot/Repair Bay.

    ReloadRate=
    Number of minutes it takes to reload each ammo pip for units when docked with their co-ordinating structure (e.g. aircraft types docked with a helipad).

    RepairPercent=
    Percentage of the units' Cost= that it will cost the player (in credits) to fully repair this unit from badly damaged (i.e. health bar is red) when it is docked with a UnitRepair=yes structure. No unit gets repaired for free (unless of course you use a repair vehicle or mechanic).

    RepairRate=
    Minutes between applying the next step of repairing a structure. The purpose of this is to cause a delay during the repair loop so that the structure does not instantly repair when you click on it.

    RepairStep=
    This is the number of Strength= points to restore with each step in the repairing process.

    URepairRate=
    Minutes between applying the next step of repairing a vehicle (unit). The purpose of this is to cause a delay during the repair loop so that the vehicle does not instantly repair.

    IRepairRate=
    As above but for infantry types. This is used for SelfHealing=yes units.

    IRepairStep=
    This is the number of Strength= points to restore with each step in the healing process for infantry types.

    TiberiumHeal=
    Number of minutes between which to apply healing at the rate defined by IRepairStep and IRepairRate when the unit is stood in Tiberium (Ore). Although parsed in Red Alert 2, this is not used, as it only works with units that have TiberiumHeal=true set in their entry, and this is not a valid keyword in Red Alert 2 as it was in Tiberian Sun.

    (YR) SelfHealInfantryFrames=
    Number of frames between healing infantry by the amount specified by SelfHealInfantryAmount= when the player has captured a structure with a InfantryGainSelfHeal= specified. This is an amendment to the Hospital=yes logic that was attached to structures in standard Red Alert 2.

    (YR) SelfHealInfantryAmount=
    Number of Strength= points to restore every SelfHealInfantryFrames= when the player owns a structure with a InfantryGainSelfHeal= specified. This is an amendment to the Hospital=yes logic that was attached to structures in standard Red Alert 2.

    (YR) SelfHealUnitFrames=
    Number of frames between healing units by the amount specified by SelfHealUnitAmount= when the player has captured a structure with a UnitsGainSelfHeal= specified.

    (YR) SelfHealUnitAmount=
    Number of Strength= points to restore every SelfHealUnitFrames= when the player owns a structure with a UnitsGainSelfHeal= specified.

    • Income And Production

    BuildSpeed=
    Number of minutes it takes to produce an item costing 1000 credits.

    BuildupTime=
    Average number of minutes that structure build-up animations run. Although it is parsed (and therefore should not be deleted) this is not used much in Red Alert 2, as being a DirectX-based application it derives this value from the average frame rate (FPS). It is also not necessary because the Normalized=yes statement that appears in many animations' ART.INI entries ensures that this animation sequence is timed to coincide with the FPS.

    GrowthRate=
    Number of minutes to elapse between Ore growth if TiberiumGrows= is set to 'yes' in the [MultiplayerDialogSettings] section.

    SeparateAircraft=
    Despite what the comments in RULES.INI say, this does not get used with structures that have Helipad=yes set, however it can work with structures that have HoverPad=yes set. If set to 'no', this means that you get a free aircraft with a 'hoverpad' when it is produced which only works if the structure only has one docking location (see the tag list in the [BuildingTypes] section for more details).

    SurvivorRate=
    Fraction of the cost of a building which is used to be converted to infantry units when it is sold or destroyed. The infantry you get is determined by the AlliedCrew= and SovietCrew= statements (see Misc). For example, say you have a building costing 1000 credits to construct. That building gets destroyed, and SurvivorRate= is set at 0.1 - this means that 100 credits will be used to 'purchase' survivors. If Crew= is set to 'E1' you will get 100 credits worth of E1 units (in this example, 1 GI). Note: this is not used when you sell a building, only when it is destroyed, because the credits you get when you sell a building (as defined in RefundPercent= above) gives more control over this variable.

    AlliedSurvivorDivisor=
    Should be a value from 0 - 100. The divisor into SurvivorRate= used to determine the number of survivors for Allied armies. In the above example, you could set SurvivorRate= to 0.2 which would yield 200 credits worth of survivors instead, then set this value to 100 and you would only get 200 credits worth (i.e. 1 GI). This can be used to manipulate the ratio of survivors and is useful if you have implemented a strong economy system but don't want a load of survivors from destroyed structures as a result.

    SovietSurvivorDivisor=
    Should be a value from 0 - 100. The divisor into SurvivorRate= used to determine the number of survivors for Soviet armies. In the above example, you could set SurvivorRate= to 0.2 which would yield 200 credits worth of survivors instead, then set this value to 50 and you would only get 100 credits worth (i.e. 1 Conscript). This can be used to manipulate the ratio of survivors and is useful if you have implemented a strong economy system but don't want a load of survivors from destroyed structures as a result.

    (YR) ThirdSurvivorDivisor=
    Should be a value from 0 - 100. The divisor into SurvivorRate= used to determine the number of survivors for Yuri's army. In the above example, you could set SurvivorRate= to 0.2 which would yield 200 credits worth of survivors instead, then set this value to 100 and you would get 200 credits worth (i.e. 1 Initiate). This can be used to manipulate the ratio of survivors and is useful if you have implemented a strong economy system but don't want a load of survivors from destroyed structures as a result.

    HarvesterDumpRate=
    Number of minutes it takes for an Ore Miner to empty its load when docked with an Ore Refinery.

    HarvesterLoadRate=
    Number of minutes it takes for an Ore Miner to fill itself with Ore when engaged in the mining process.

    PlacementDelay=
    The number of minutes to pass before the AI tries to place an object on the map if a temporary blockage is detected (for example a moving unit is in the way). Can be used to slow down or speed up the rate of AI base production.

    WeedCapacity=
    The amount of weed that needs to be collected by a Weed Eater (or any unit defined as such) and deposited into a Waste Facility required to make a Chemical Missile. With a lot of work, this can be made to work in Red Alert 2 although it is a little buggy when the Chemical Missile is launched.

    HarvestersPerRefinery=
    This was hard coded in previous C&C games but can now be used to define how many Ore Miners the AI should build to service each refinery it has. This is used in map files to override the TeamTypes used by the AI and gives the AI a little more 'intelligence'. For example, take two maps - one has an abundance of Ore, the other has very little. If the comp only builds one Ore Miner when it plays on the map with little Ore, its resources will be limited very quickly and income will be slow because the human player will build lots of Ore Miners to grab what little Ore there is very quickly. If the comp builds more Ore Miners on the same map, it will gather all that Ore quicker meaning the human player will have to destroy those Ore Miners to gain control of the Ore fields, and that in turn triggers a lot of AI attack events. In short, this tries to make the computer act more 'human' when gathering resources depending on the map it plays on, and helps when engaged in Mega Wealth mode by over-riding the AI Auto Production triggers thus preventing it making more harvesters when they are not needed. In Yuri's Revenge, this is a list of 3 numbers representing Allied, Soviet and Yuri sides respectively.

    • Computer And Movement Controls

    CurleyShuffle=
    Can be set to 'yes' or 'no' and determines if Helicopters should do the 'suicide shuffle' between shots as in Tiberium Dawn. If set to 'no', helicopters simply hover near their target and continually attack until they run out of ammo or destroy it. See the Weapon Statistics section for what differentiates Helicopters from other aircraft.

    BaseBias=
    This represents the multiplier to the threat target value of an enemy object when it is close to your base, meaning it will take a higher priority when base defenses and units in a defense mission evaluate potential targets. Increasing this value makes the AI more sensitive to threats against its base(s).

    BaseDefenseDelay=
    Time, in minutes, between the AI sending response teams to deal with threats to its base(s). These response teams are usually AI TeamTypes from the AI.INI file which have been specifically recruited for this purpose ('pool' teams).

    CloseEnough=
    If an AI controlled unit is trying to get a location which is blocked, ...
    Published on 11-29-2011 09:38 AM
    Categories:
    1. Guides

    Red Alert 2 RULES.INI Guide Part 2

    Sections Covered
    • [Countries]
    • [Sides]
    • [MultiplayerDialogSettings]
    • [Maximums]
    • [AI]
    • [AIGenerals]
    • [IQ]
    • [Colors]
    • [ColorAdd] (Yuri's Revenge)
    • Difficulty Settings
    • [VariableNames]
    • Mission Control
    • [Tiberiums]
    • [Powerups]
    • Land Characteristics

    [Countries]

    This section lists the countries that are available in the game, primarily for naming purposes. Each side has some basic controls on how they behave when controlled by the computer. Do not remove, override or reorder the 9 major countries for skirmish or LAN game maps. These need to go into the country types array first and without interruption by other types of countries, or you get Internal Errors, as the country numbering constitutes an internal table used for the AI and for tags in map files. There are 13 countries numbered 0 - 12 as follows;-

    0=Americans
    1=Alliance
    2=French
    3=Germans
    4=British
    5=Africans
    6=Arabs
    7=Confederation
    8=Russians
    9=GDI
    10=Nod
    11=Neutral
    12=Special

    In Yuri's Revenge, the list changes to 14 countries numbered 0 - 13;-

    0=Americans
    1=Alliance
    2=French
    3=Germans
    4=British
    5=Africans
    6=Arabs
    7=Confederation
    8=Russians
    9=YuriCountry
    10=GDI
    11=Nod
    12=Neutral
    13=Special

    GDI= is the collective placeholder for 'Allied Countries' and Nod= is the collective placeholder for 'Soviet Countries'. It is not possible to 'truly' add new countries by extending this list as it forms an internal array - the numbering system is very strict as numbers 13 and upwards are used by the game code to refer to houses in multiplayer games (one of which may include an 'observer' if that has been allowed in the game at the expense of another human or AI player) and form the basis of events, actions and triggers. The game is also hard-coded to recognize the above countries and their corresponding numbers only. Each country listed here should also get its own section (for example [Americans] for the first entry in the above list) and here is a list of all statements which can be used in each countries' entry. In Yuri's Revene, this section gets extended by adding 9=YuriCountry to the table so that there are then 14 entries.

    UIName=
    Determines the string containing the in-game & on-screen text to display for the name of this object contained in the .CSF string file. Is usually a Name: type although that is only used for convention.

    Name=
    The internal name used for referring to this country. This is used for map triggers and events as well as determining country specific information.

    Prefix=
    Was used in previous C&C games for determining the internal filename for objects specific to this house (such as loading screens). The string contained here would form the beginning of the filename for that object (e.g. if Prefix= was set to 'A' then loading screens for this house would all have a filename of 'A_rest_of_filename.SHP'). It is not known what significance this has in Red Alert 2 or even if it is used although it is parsed.

    Suffix=
    Was used in previous C&C games for determining the internal filename for objects specific to this house (such as loading screens). The string contained here would form the ending of the filename for that object (continuing the above example, if Suffix= was set to 'B' then loading screens for this house would all have a filename of 'A_rest_of_filename_B.SHP'). It is not known what significance this has in Red Alert 2 or even if it is used although it is parsed. TRIVIA FACT: the 'JP' suffix used to define the [Special]side remains residual from Tiberium Dawn where it was used to reference files with a 'JP' extension - this indicted that the file was used by the Jurassic Park missions!

    Color=
    The color to be used when displaying objects owned by this house. This must be set to one of the colors defined in the [Colors] section (see later).

    Multiplay=
    Can be set to 'yes' or 'no' and determines if this house can be used as a placeholder for multiplayer games (in other words if a player can choose to play as this house). See also MultiplayPassive=.

    MultiplayPassive=
    Can be set to 'true' or 'false' and determines if this is a 'passive' house for the purposes of multiplayer games. A passive house is one that the game uses for firing triggers, events and actions as each must be attached to a house. Passive houses can also be used to place objects on the map (such as neutral structures like Tech Buildings) as each ...
    Published on 11-29-2011 09:37 AM
    Categories:
    1. Guides

    Red Alert 2 RULES.INI Guide Part 3

    Sections Covered
    • [InfantryTypes]
    • [VehicleTypes]
    • [AircraftTypes]
    • [BuildingTypes]

    The following list represents a complete and conclusive list of tags which can be attached to all objects in Red Alert 2 from the InfantryTypes, VehicleTypes, AircraftTypes, and BuildingTypes lists. It is in alphabetical order rather than by object type as many of them can be used on more than one type.

    The [InfantryTypes], [VehicleTypes], [AircraftTypes] and [BuildingTypes] lists all take the same format. They comprise of a list, numbered starting at '1', of all the relevant objects in the game which fall into those categories regardless of whether they or not they are available for players to build. For each entry in the list, the object must be defined in the RULES file with its own section whose name corresponds to the list entry. Each object should then have its own section in ART with the same name, or alternatively a different name in which case use of the Image= tag should be employed on that object.

    NOTE: there appears to be an object heap maximum of 102 on the VehicleTypes list which causes some problems when it is parsed if you exceed this number of objects. The computer will start to renumber buildable objects from '0' when it hits 103, which results in the computer thinking that the last unit is the only one available to it, thus it gets flagged for auto creation. To get around this, you can simply renumber and reorder the list so that all buildable units come first, then placeholder units then civilian units last. The buildable units will then be correctly parsed.

    TIP: there is no need to include a statement if you only intend to set it to its default value - simply omitting the statement altogether on an object's entry means that the default value of the relevant tag is assumed if that statement is applicable to that particular object.

    • A

    Accelerates=
    Can be set to 'true' or 'false' and determines if this unit gets a Speed= boost when it moves continually and uninterrupted.

    AccelerationFactor=
    Percentage multiple over-ride (increase) to apply to the object's Speed= if it has begun to move.

    (YR) ActivateSound=
    This specifies the sound from SOUNDMD.INI to play when this VehicleType is (re)activated if it has PoweredUnit=yes set and is co-ordinated with a BuildingType which has had power restored or has been (re)constructed.

    Adjacent=
    This determines the number of cells away from other structures that this BuildingType can be placed on the map when it has been built. Either way, it can only be placed adjacent to structures which do not have BaseNormal=no set.

    Agent=
    Can be set to 'yes' or 'no' and determines if this InfantryType has the properties of a Spy when it enters specific structures. Also requires Infiltrate=yes set on the unit. Note that this applies to the Spy logic from Red Alert 2 (not the logic from the original Red Alert) and thus is dependant upon the structure that the Spy enters. NOTE: a unit cannot be an Agent= and an Assaulter= - only one or the other.

    AIBasePlanningSide=
    Used by the AI when it is considering what to build next and supports the ability for the AI to play properly in Unholy Alliance games. Should be set to '0' for Allied AI players, '1' for Soviet AI players and '2' for Yuri AI players.

    AIBuildThis=
    Can be set to 'yes' or 'no' and is used as an over-ride to specify whether or not the AI will build this structure. Can only be used on BuildingTypes. Setting this to 'yes' means that the AI will only build one of this structure.

    (YR) AircraftCostBonus=
    If this BuildingType also has FactoryPlant=yes set, then this tag specifies a straight multiplier to the Cost= of AircraftTypes.

    AirportBound=
    Can be set to 'yes' or 'no' and specifies that this AircraftType must dock with its co-ordinating structure between missions (usually a structure with Helipad=yes set). This means the unit can only land on such a structure and thus will crash and be destroyed if the player who owns the aircraft does not possess the relevant structure. All aircraft with this set should also be listed in the PadAircraft= statement to avoid production and build-queue problems.

    AirRangeBonus=
    This specifies the additional range that the objects Primary= weapon gets if that weapon's Projectile= has AA=true set (i.e. it is able to fire at aircraft). This only applies to Primary= weapons and should be set equal to or less than the range of the weapon or targeting problems can arise and the unit may not be able to target anything.

    AllowedToStartInMultiplayer=
    Can be set to 'yes' or 'no' and determines whether or not this unit can be chosen for allocation to a player as part of their starting forces. The forces given to a player at the start of the game consist of a random selection from all units that do not have this set to 'no'. NOTE: it is best not to set this to 'yes' on units which have Naval=yes set or you may get Internal Errors - the game requires the starting units to be placed adjacent to the MCV in multiplayer mode and this is invariably not on water.

    AlphaImage=
    Specifies the ART.INI image to be used as a superimposed 'alpha' lighting effect on this object. This is used primarily on lamp posts to determine the 'shape' of their glow when emitting light.

    AlternateArcticArt=
    Can be set to 'yes' or 'no' and specifies that this InfantryType has an alternative image to be used in the snow theater. The filename of the arctic image must be the same as the standard image with 'A' on the end. This is only used in Red Alert 2 for the SEAL, where the standard image is SEAL.SHP and the snow theater version is SEALA.SHP.

    AltImage=
    This is used to specify the alternate image used by this unit when it is attacking. Applies only to SHP based units and should be a valid animation from the [Animations] list and be listed in ART.INI. This remains residual from the Visceroid in Tiberian Sun and it is not known if the logic can work in Red Alert 2.

    AmbientSound=
    Specifies the sound to make when this object is in existence on the map. This should be set to a valid entry from SOUND.INI and is usually one of the 'ambient' type sounds which loops continually for as long as the object exists. This is used as a 'background' effect and is utilized on the Naval Yards to give the impression of waves on the water and also on the Cow (although on the Cow, the VoiceComment= statement could have been used to the same effect).

    Ammo=
    This states the amount of ammunition (number of 'shots') carried by the object before it must reload. Reloading can be either by docking with a co-ordinating structure or automatically over time. Tech Buildings usually have this set to determine how many times they bestow their effect. Use of -1 indicates unlimited ammo but this value should not be used on AircraftTypes whose landing logic in Red Alert 2 appears to require them to run out of ammo after an attack mission - aircraft are hard coded to require a positive value to get them to return to the structure with which they Dock=.

    (YR) AntiInfantryValue=
    This is a 'rating' for the effectiveness of this structure's weapon(s) against infantry. The 'ratings' are in abstract units and just help the AI pick the right base defense. See the AIForcePredictionFudge= tag for more details.

    (YR) AntiArmorValue=
    This is a 'rating' for the effectiveness of this structure's weapon(s) against vehicles. The 'ratings' are in abstract units and just help the AI pick the right base defense. See the AIForcePredictionFudge= tag for more details.

    (YR) AntiAirValue=
    This is a 'rating' for the effectiveness of this structure's weapon(s) against aircraft. The 'ratings' are in abstract units and just help the AI pick the right base defense. See the AIForcePredictionFudge= tag for more details.

    Armor=
    This is used to specify the type of armor that the object has and thus the effectiveness of the games warheads on it. Can be set to any of the following;-

    None }
    Flak } Infantry
    Plate }

    Light }
    Medium } Vehicles, although the Ore Miners are the only ones that use Medium
    Heavy }

    Wood }
    Steel } Buildings
    Concrete }

    special_1 } Special case used for vehicles with Infantry vulnerabilities (e.g. the Terror Drone)
    special_2 } Special case for spawned rockets to prevent self destruction

    Artillary=
    Should be used only on BuildingTypes. Can be set to 'yes' or 'no' and represents a special case for structures into which a unit has deployed. This tag ensures that the unit turns to face North-East and remains in its current cell before deploying into this structure.

    Armory=
    Can be set to 'yes' or 'no' and determines if this structure 'upgrades' any InfantryTypes which enter it to 'Elite' status (or the highest level determined by VeteranCap=) regardless of their current level. The Ammo= statement can also be used on this structure to determine how many times it can do this.

    Assaulter=
    Can be set to 'yes' or 'no' and determines whether or not this InfantryType can enter Occupied structures and instantly clear the occupants, killing them in the process. The InfantryType should also have an animation specific to this function on its Primary= weapon defined by AssaultAnim= - UCFLASH is used, however UCBLOOD and UCELEC are badly drawn and alternatives should be used. This feature is unused in Red Alert 2's skirmish mode - it does make the unit quite powerful. NOTE: a unit cannot be an Assaulter= and an Agent= - only one or the other.

    AttackCursorOnFriendlies=
    Can be set 'yes' or 'no' and determines if this unit can legally attack objects from the same side. It will accept a command to attack a friendly object from the player, but will not consider friendly units in its threat scan (thus will not automatically attack friendly objects).

    AttackFriendlies=
    Can be set to 'true' or 'false' and determines if this unit can legally attack other units from the same side when scanning for potential targets. The effect of this is that you don’t have to 'force fire' with this unit if you want to use it to destroy things on the same army or an army it is allied with.

    AuxSound1=
    Is used on AircraftTypes only and specifies the sound to be made when the object takes off. Should be a valid entry from the [SoundList] in SOUND.INI.
    ...
    Published on 11-29-2011 09:36 AM
    Categories:
    1. Guides

    Red Alert 2 RULES.INI Guide Part 4

    Sections Covered
    • [VoxelAnims]
    • [ParticleSystems]
    • [Particles]
    • [TerrainTypes]
    • [SmudgeTypes]
    • [OverlayTypes]
    • [Animations]
    • Weapon Statistics
    • Projectile Statistics
    • [Warheads]
    • [SuperWeaponTypes]

    [VoxelAnims]

    This section comprises of a list, numbered starting at '1', of all the available 'voxel' animations in the game. This list is used by the relevant Action= from within map files to display a voxel animation at a specified Waypoint= (see the Map Editing Guide). Each entry in this list should also have a corresponding section defined in the RULES.INI file.

    Voxel animations are meant to be flying debris types which are spawned upon the destruction of an object - things like turrets, tires and axles make good debris animations. Surprisingly, this effect is used comparatively little in Red Alert 2 (it was the same case with Tiberian Sun), presumably to keep the game running at a good pace, although some of the complex calculations required to make some of the following tags work have been known to cause Internal Errors - for this reason, you should use caution when editing these or creating new ones. The following tags are valid when defining a voxel animation with its own section;-

    ShareSource=
    Specifies the voxel object name from which this animation shares its voxel data (if different from its name). The effect of this is that the VXL and HVA files specified with this statement are used for the display of this object. TIP: use the RULES.INI name of the object, not the ART.INI name.

    ShareBarrelData=
    Can be set to 'yes' or 'no' and determines whether or not the barrel from the object specified with ShareSource= should be used for display of this voxel animation (if that object has a barrel file named as xxxxBARL.VXL and xxxxBARL.HVA). This tag cannot be used in conjunction with other 'share data' tags.

    ShareTurretData=
    Can be set to 'yes' or 'no' and determines whether or not the turret from the object specified with ShareSource= should be used for display of this voxel animation (if that object has a turret file named as xxxxTUR.VXL and xxxxTUR.HVA). This tag cannot be used on conjunction with other 'share data' tags.

    ShareBodyData=
    Can be set to 'yes' or 'no' and determines whether or not the body from the object specified with ShareSource= should be used for display of this voxel animation (named as xxxx.VXL and xxxx.HVA). This tag cannot be used on conjunction with other 'share data' tags.

    VoxelIndex=
    If the VXL and HVA files being used for this voxel animation have more than one section, this tag is used to specify which section should be displayed (defaults to '0').

    AttachedSystem=
    Allows you to attach a [ParticleSystem] to the voxel animation when it is spawned by specifying one with this tag. This allows for some pretty neat effects, particularly when 'spark' type systems are used.

    MinZVel=
    Specifies the minimum starting Z velocity. Defaults to 3.5.

    MaxZVel=
    Specifies the maximum starting Z velocity. Defaults to 5.0.

    MaxXYVel=
    Specifies the maximum starting lateral velocity. Defaults to 15.0.

    Duration=
    Specifies the maximum number of frames for which this voxel animation should exist. Defaults to '30' (approximately 2 seconds).

    MaxAngularVelocity=
    Specifies the maximum rate at which the animation is to spin (in degrees). Defaults to 10.0.

    MinAngularVelocity=
    Specifies the minimum rate at which the animation is to spin (in degrees). Defaults to 0.0.

    Translucent=
    Determines whether or not the animation should be drawn with translucency (a kind of transparent effect).

    Elasticity=
    Determines the 'bounciness' of the animation on a scale of 0.0 - 1.0 (default is 0.75).

    StartSound=
    Specifies the sound to be played from the SOUND file when this animation is spawned. Default is none.

    BounceSound=
    Specifies the sound to be played from the SOUND file when this animation bounces. Default is none.

    ExpireSound=
    Specifies the sound to be played from the SOUND file when this animation expires. Default is none.

    BounceAnim=
    Specifies the animation to play from the [Animations] list when the voxel animation bounces.

    ExpireAnim=
    Specifies the animation to play from the [Animations] list when the voxel animation expires.

    TrailerAnim=
    Specifies the animation to play from the [Animations] list as a trailer behind the voxel animation (usually smoke or flames).

    DamageRadius=
    The debris animation damages objects that it collides with if they are closer than this distance (in leptons).

    Damage=
    Specifies the amount of damage to apply to objects that are hit.

    Warhead=
    Specifies the warhead to use for attributing damage caused by impact of this debris animation. Must be from the [Warheads] list and be defined in RULES.INI.

    Spawns=
    Specifies the next [Particle] spawned when this voxel debris explodes. Defaults to 'none'.

    SpawnCount=
    Specifies the number of particles spawned (on average). Defaults to '0'.

    [ParticleSystems] ...
    Published on 11-29-2011 09:07 AM
    Categories:
    1. Guides

    Red Alert 2 UI.INI Guide

    Sections Covered
    • [AdvancedCommandBar]
    • [MultiplayerAdvancedCommandbar]

    This file controls the Advanced Command Bar at the bottom of the screen. Each of the sections is used to detail which buttons are available for the player to use. Note that you should be cautious when enabling these, particularly if you add 'spaces', as the user's screen resolution setting may mean that ...
    Page 1 of 3 123 LastLast