Skip to content
PHLF edited this page May 27, 2017 · 1 revision

author:

  • Roland Brochard title: FBI tags in TA3D

Tags can be of several types:

  • integers

  • decimal numbers

  • booleans (1/0 or true/false)

  • strings

When an integer is expect and you provide a decimal number, only the integer part is read.

Angles are expressed in OTA units:

Radians/Degrees to OTA units

By default booleans are false if not defined.

Acceleration

The unit acceleration, can be a decimal number. Expressed in $map blocs/OTA tick$, $1 map bloc = 16 pixels$, $10 OTA ticks = 1s$.

ActivateWhenBuilt

I’s a boolean. When set to true, the unit is ACTIVATED (or ON) when built.

altfromsealevel

It’s an integer. Altitude from sea. For flying units.

amphibious

It’s a boolean. Is the unit amphibious (can go under water, & on land).

antiweapons

It’s a boolean. Set to true if your unit can shoot at weapons of other units (eg. Missile defence systems).

attackrunlength

It’s an integer. For planes. The distance they must travel before being able to drop their bombs/shoot their missiles.

BMcode

It’s a boolean. false for buildings, true for mobile units.

BadTargetCategory

A list of The type of target that is not good for that low accuracy at this type of unit. In general. The value specified identifies all units that have that value specified in their own “Category” settings. BadTargetCategory=VTOL;

BrakeRate

Like acceleration but when the unit wants to slow down. In $map blocs/OTA tick$, $1 map bloc = 16 pixels$, $10 OTA ticks = 1s$.

BuildAngle

It’s an integer. It is the maximum angle between the unit’s heading and its build target when building. Setting this to 0 means when your unit is building something it’ll be facing it (but don’t do it, you should at least let a small error tolerance).

BuildCostEnergy

It’s an integer. The cost in energy of building this unit. The amount of energy that will be consumed during the building of this unit.

BuildCostMetal

It’s an integer. The cost in metal of building this unit. The amount of metal that will be consumed during the building of this unit.

BuildTime

It’s an integer. The time is takes to build this unit. On average, 10000 is medium time, things like fusion plants are more like 100000, and krogoth like 300000. If a builder has a WorkerTime flag set to 1, this correspond to the number of seconds it takes to build the unit (See WorkerTime).

Builddistance

This is a decimal number. The distance at which a unit can build if it is a builder, in pixels.

Builder

It’s a boolean. True if this unit can build other units.

canattack

It’s a boolean. True if this unit can attack.

CanCapture

It’s a boolean. True if this unit can capture other units.

CanDgun

It’s a boolean. True if the unit can DGUN (ie. has a gun like the commander)

Canfly

It’s a boolean. True for flying units.

canguard

It’s a boolean. True if this unit can guard/assist other units.

canhover

It’s a boolean. True if this unit can hover.

canload

It’s a boolean. True if this unit can transport(or load) other units.

canmove

It’s a boolean. True if this unit can move.

canpatrol

It’s a boolean. True if this unit can patrol.

CanReclamate

It’s a boolean. True if this unit can reclaim things.

canstop

It’s a boolean. True if this unit can stop.

cantbetransported

It’s a boolean. True if this is a unit transports cannot load eg. Ships, krogoth

Category

It’s a string (a space separated list). A category class. Look at some of the FBI files in totala1.hpi for examples. Essentially, this places the unit in several named catagories that can be named in other variables such as “wpri_badTargetCategory” described below, and in the AI Text files as well.

For instance:
Category=ARM TANK LEVEL2 CONSTR NOWEAPON NOTAIR NOTSUB CTRL_B;

Some categories have been internally optimized in the engine:

  • kamikaze

  • notair

  • notsub

  • jam

  • commander

  • weapon

  • level3

CloakCost

It’s an integer. The energy cost of this unit remaining cloaked when standing still. It is expressed in $energy units/s$.

CloakCostMoving

It’s an integer. The energy cost of this unit remaining cloaking while moving. It is expressed in $energy units/s$.

Commander

This is a boolean. True if the unit is a commander.

Corpse

This is a string. The name of the corpse of this unit (Defined in the TDF file in the corpses directory).
(12/29/98) From Draconious: The name of the feature the unit turns into when the unit dies. If the unit is a feature (Dragons Teeth) the unit instantly turns into this feature, when it is finished being built. (this is not the 3d model file of the feature, the feature entry tells the 3d model file to use in the feautres OBJECT variable).

cruisealt

This is an integer. The altitude at which the unit flys.

DamageModifier

This is a decimal number. This is the part of weapon damages the unit will take. By default it is set to 1.0 (full damage), if set to 0.0 the unit is undestructible, if set to 0.5 it only takes half the damages.

DefaultMissionType

This is a string. The default orders of this unit for missions. Available missions for this tag are:

  • standby (this is the default)

  • vtol_standby

  • guard_nomove

  • standby_mine

Description

This is a string. The description of the unit seen at the bottom of the screen when you hold the cursor over it in the game.
For instance:
Description=Very Heavy Assault Tank;

Designation

This is a string. The designation. This is unimportant and can have virtually any value (there may be a limit to the number of character it will except)

digger

This is a boolean. Does this unit have pieces which extend under ground. I think thats what it means. Things like the pop-up heavy cannon have this = 1.

NB: this is not used by TA3D but OTA uses it.

EnergyMake

This is an integer. The energy this unit produces when ACTIVE. It can be negative.

EnergyStorage

This is an integer. The amount added to the maximum amount of energy you can store while the unit is alive.

EnergyUse

This is an integer. The amount of energy the unit uses while it is ACTIVE. This can be negative.

ExplodeAs

This is a string. The explosion name of the explosion that will happen if the unit explodes. See totala1.hpi for other examples.
It’s something like:
ExplodeAs=LARGE_BUILDINGEX;

ExtractsMetal

It’s an integer. The rate at which the unit extracts metal. (Yes, the MOHOmine only extracts at like 0.01). This is a factor used in a more complex equation which takes the unit footprint surface into account when computing the metal production rate.

firestandorders

This is an integer (0, 1 or 2). This is the default value of the firestandorders button of the unit in its build/orders menu

Floater

This is a boolean. Does this unit float on water.

FootprintX

It’s an integer. The X axis footprint. Should correlate with the unit model’s actual size. The footprint helps control how close units can get to one another. This is expressed in map blocs (1 bloc is equivalent to 16 pixels)

FootprintZ

It’s an integer. As with FootprintX, but the Z axis (ie. up and down on the screen while playing TA). Should correlate with the unit model’s actual size.

FrenchDescription

As description, but in French.

FrenchName

As Name, but in French.

GermanDescription

As description, but in German.

GermanName

As Name, but in german.

HealTime

It’s an integer. The time (in seconds) it take for this unit to heal itself. Typically used by commanders.

HideDamage

It’s a boolean. Whether or not to show the amount of damage done to this unit to the opponent(s). Commanders have this value set.

HoverAttack

It’s a boolean. Will this attack while remaining in the same spot, even though it is an aircraft. Like the brawler.

ImmuneToParalyzer

It’s a boolean. Is this unit immune to being paralyzed.

init_cloaked

It’s a boolean. When built this unit is cloaked.

IsAirBase

It’s a boolean. Is this unit an airbase. Only the air repair pad and aircraft carriers have this as 1. This must be true for repair pads, otherwise they won’t work.

IsFeature

It’s a boolean. Whan true, this unit turns into a feature when built like the dragons teeth. Features do not appear on radar.

istargetingupgrade

It’s a boolean. Does this unit upgrade the targeting so that units shoot at things on radar like at things seen by that unit.

WARNING: this is not used by TA3D yet.

ItalianDescription

As description, but in Italian.

ItalianName

As Name, but in Italian.

JapanesDescription

As description, but in Japanese.

JapaneseName

As Name, but in Japanese.

kamikaze

This is a boolean. Does this unit kill itself to attack its target eg. The roach/invader.

kamikazedistance

This is an integer. How far from the target must the unit be (in pixels) to do a kamikaze attack.

MakesMetal

This is a decimal number. Does this unit make metal. eg. Metal Maker NS. This is also the amount of metal the unit actually “creates” (not extract!). Can be negative.

maneuverleashlength

This is an integer. How far from the course (in pixels) that the unit is patrolling / moving on will it vary if it is attacked / distracted. Also used by planes when repairs are needed if there is a repair pad that is closer than maneuverleashlength.

MaxDamage

This is an integer. Amount of damage unit can take before dying (i.e “Hit Points”). Kbots have about 600, Tanks have about 2000, Planes have about 500, Commander has 3000.

MaxSlope

This is an integer. What is the maximum slope this unit can go on. In TA3D it is used as the maximum difference of altitude between two map blocs the unit can cross, I am not sure OTA uses it the same way. From 0 to 255.

MaxVelocity

This is a decimal number. The maximum speed of this unit. Commander is 1.07, Core Storm is 1.25, Arm Hawk is 12. Expressed in $map blocs/s$

MaxWaterDepth

It’s an integer. What is maximum depth of water this unit can go in. default is 0. (can be anything but only 0-255 makes sense).

MetalMake

Same as MakesMetal, both can be set and they are cumulative.

MetalStorage

It’s an integer. The amount added to your maximum metal storage while this unit is alive.

mincloakdistance

It’s an integer. The distance (in pixels) the unit must have on every side to remain cloaked. If another unit moves into this area, the unit uncloaks.

MinWaterDepth

It’s an integer. The minimum depth of water this unit can be in. See MaxWaterDepth.

MobileStandOrders

0, 1 or 2. Basically, I think, can this unit hold position of all mobile units, only the transports (all of them) have this equal to 0. default : 1

MoveRate1

Planes seem to use this. For example, all planes except the air transports have values of 8, the transports have values of 1.

WARNING: not used by TA3D

MovementClass

This is a string. How the unit moves. See totala1.hpi for examples. Movement classes are typically described in TDF files in the gamedata directory. (The moveinfo.tdf file is a good guess). It is used as a shortcut way of setting certain parameters (such as those listed here) by grouping them and giving them a name. Settings defined that way have priority over ones defined in the FBI file.

Name

It’s a string. The name you see when you move the cursor over the unit in the game. This is the name that appears on the bottom of the screen when you select a unit.

NoAutoFire

It’s a boolean. Double negative. True means this unit will not automatically fire at other units. False means it will.

NoChaseCategory

This is a string. Category the unit will not chase. The value specified identifies all units that have that value specified in their own “Category” settings.

norestrict

It’s a boolean. Is there no resistriction on this unit (presumably for the AI. (12/29/98) From Draconious: If the unit apears in the Unit Restrictions menu, the way the commander does not apear in the list.

WARNING: not used by TA3D.

NoShadow

It’s a boolean. Does this unit not have a shadow (most water units don’t).

NB: since TA3D is an engine with less limitations than OTA’s engine, this is ignored.

Objectname

It’s a string. Name of 3D model file for this unit. This is the name of your 3DO/3DM/S3O/3DS/OBJ/... file without extension. You’ll do that later, for now leave it the same as Unitname (your unit’s “short name”).

onoffable

This is a boolean. Can this unit be turned on and off. On is ACTIVE, OFF is INACTIVE.

RadarDistance

This is an integer. Distance (in pixels) that shown to you on radar by your unit.

RadarDistanceJam

This is an integer. Distance (in pixels) that is jammed by unit.

Scale

This is a decimal number. The size modifier from 3D model file into the game. default : 1.0, better leave this to 1.0 or leave it not set and make a properly scaled model (lighting errors will probably occur with values different from 1.0).

SelfDestructAs

It’s a string. The explosion that happens when a unit self desctructs. See totala1.hpi for examples.
Usually looks like:
SelfDestructAs=SMALL_UNIT;

selfdestructcountdown

It’s an integer. The number (in seconds) the self-destruct count down starts at. default : 5. (from 0 to 255).

ShootMe

It’s a boolean. Does this unit broadcast itself as a target? If this is false, then enemy units will not choose to attack this unit. default : false.

NB: that’s the way units don’t automatically attack non offensive buildings.

ShowPlayerName

It’s a boolean. Show the players name as a description (like the commander).

NB: TA3D doesn’t use it yet.

Side

This is a string. Which side does the unit belong to ARM, or CORE. The side your unit will be for. See gamedata/sidedata.tdf for complete desciption of sides.

SightDistance

It’s an integer. The distance (in pixels) from the unit that everything is shown in. ie. Distance it gets rid of Fog of War. Beware that huge values can slow the game down on big maps with lots of units and fog of war enabled.

SonarDistance

It’s an integer. The distance (in pixels) given to you as sonar, on the mini map.

SonarDistanceJam

It’s an integer. This is how far (in pixels) the unit jams sonar on the mini map.

SoundCategory

It’s a string. The “sound category” the unit uses. Sound categories are typically described in TDF files in the gamedata directory. (The sounds.tdf file is a good place to start). It is used to describe a group of sounds to associate with a unit, such as what sounds does it make when it starts, stops, arrives at a destination, is activated, is deactivated, etc.

SpanishDescription

As description, in Spanish.

SpanishName

As Name, but in Spanish.

StandingFireOrder

This is the initial fire order the unit starts with. 0 = Hold Fire; 1 = Return Fire; 2 = Fire at Will. (default: 1)

StandingMoveOrder

This is the initial movement order the unit starts with. 0 = Hold Position; 1 = Move; 2 = Roam. (default: 1)

Stealth

It’s a boolean. Is this unit inivisible on sonar and radar.

SteeringMode

This is an integer. The way in which the unit turns. See totala1.hpi for options.

WARNING: not used by TA3D.

TEDClass

This is a string. Important... Define what type of unit it is. It also defines the icon that is displayed in tactical zoom mode. Can be any of:

  • water

  • ship

  • energy

  • vtol

  • kbot

  • plant

  • tank

  • special

  • fort

  • metal

  • cnstr

  • commander

teleporter

It’s a boolean. Is this unit a teleporter. The two galatic gates have this = 1.

NB: I don’t know any use of this tag, TA3D just ignores it for now.

TidalGenerator

This is a boolean. Is the unit a Tidal generator?

TransMaxUnits

It’s an integer. Maximum number of units that can be transported.

transportcapacity

It’s an integer. Like TransMaxUnits. The number of units that can be transported.

TurnRate

it’s an integer. How quickly the unit turns in $OTA angle units/s$.

UnitName

It’s a string. The name of the files used for the unit. This is a unit ID. This is the (internal) name of your unit, (what I refer to as the “short name” and the name your files you decided on. e.g.. your file in this case would be called coralpha.fbi.

UnitNumber

It’s an integer. The ID# for the unit. TA3D doesn’t use it but it’s important in OTA that this ID be unique.

Upright

It’s a boolean. Is the unit upright? For kbots - this keeps the unit upgright when climbing hills. For a flying unit laying down on the ground whenever it lands (air unit), setting upright=1 can solve the problem.

Version

TA3D doesn’t use it.

WaterLine

It’s a decimal number. How high up the 3d model to put the water line. For ships.

Weapon1

It’s a string. The unit’s primary weapon. The name specified is the name of a weapon described in any of the number of TDF files found in the weapon subdirectories.

Weapon2

It’s a string. The unit’s secondary weapon. The name specified is the name of a weapon described in any of the number of TDF files found in the weapon subdirectories.

Weapon3

It’s a string. The unit’s third weapon. The name specified is the name of a weapon described in any of the number of TDF files found in the weapon subdirectories.

Weapon[n]

(without ’[’ and ’]’)
It’s a string. The unit’s nth weapon. The name specified is the name of a weapon described in any of the number of TDF files found in the weapon subdirectories. n is an integer >= 1. For n >= 4, all Weapon[p] must be filled for p < n in order to load it (if there is a hole, it’ll stop there).

WindGenerator

It’s an integer. The amount of energy generated by the wind by the unit. default : 0

WorkerTime

It’s an integer. How quickly the unit nanolathes. See BuildTime.

wpri_badTargetCategory

It’s a string. A bad target (lower chance of hitting) for the primary weapon. The value specified identifies all units that have that value specified in their own “Category” settings.

wsec_badTargetCategory

It’s a string. A bad target for the secondary weapon.

wthi_badTargetCategory

It’s a string. A bad target for the third weapon.

w[n]_badTargetCategory

(without ’[’ and ’]’)
It’s a string. A bad target for the nth weapon.

YardMap

It’s a string. Defines in more detail the “footprint” of a construction yard (or any stationary building). As an example, the ARM Adv. Air Plant data at the right has 6 groups of 7 values defining an X-Z coordinate “footprint” for the construction yard. The following values are available:

  • “f” indicates the space is occupied by a feature (e.g. Dragons teeth)

  • “o” indicates occupied points on ground where a unit may not pass. By default, all values are “o”.

  • “O” - Occupied when building is open - never used.

  • “c” defines the “hole” (typically in construction plant units) where the units are built and where they enter or exit. closed yard - “Openyard/Closeyard” on land.

  • “C” - closed yard - “Openyard/Closeyard” on water.

  • “w” seems to indicate those parts of a ship yard that are above water

  • “g” (or “G”) indicates that the space can operate over a geothermal vent. Otherwise, operates just like an “O”. Created specifically for the geothermal plant.

  • “y” - standard yard - no footprint on land

  • “Y” - standard water yard - no footprint on water. “Y” is simply a location that will never have a footprint, no matter what.

As you know, footprints are square, but your units aren’t always. This allows you to shape the footprint a little. (i.e. ARMLAB, the corners are always “footprintless”)

If the unit doesn’t use “OpenYard”/“CloseYard” you can simply state “YardMap=o” no matter the size of the footprint. You could also do the opposite by stating “YardMap=c”, and the whole footprint will appear and disappear no matter the footprint size.

An example:\

// For ARM Adv. Air Plant
// FootprintX=7;
// FootprintZ=6;
YardMap=ooooooo ooooooo occccco occccco occccco occccco;
// Thus, the "South" end
// of the plant is open
// while the other sides
// are blocked.

Spaces are ignored, they are here for readibility.

ZBuffer

It’s a boolean. Of course TA3D uses a depth buffer to render everything so this is useless for us.

Clone this wiki locally