Weapons Edit

Weapon Mechanics Edit

A weapon consists of 3 parts:
  • Turret ( the weapon )
  • Rack
  • Muzzle
  • A Weapon holds Racks.
  • A Rack holds Muzzles.
  • Racks are controlled by the rate of fire of a weapon.
  • Muzzles are controlled by the rack and their salvo size and delay.
  • A weapon unpacks, charges, fires, reloads and repacks. In that order. Those can be skipped if they are specified as not being part of the weapon.
  • Unpacking/Packing happens when a weapon wants to be open during all of the firing the weapon will do in between getting a target and losing a target.
  • Charge up happens before the racks fire.
  • Reload happens after the racks fire.
  • Firing a rack runs through it's muzzles and does the muzzle salvo there.
  • Rack salvo size is how many times the racks will fire before going to the reload phase.

Cam shake Edit

  • CameraShakeDuration = <time to maintain the camera shake>
  • CameraShakeMax = <Max size of the camera shake>
  • CameraShakeMin = <Minimum size of the camera shake>
  • CameraShakeRadius = <How far from the unit should the camera shake>

Aiming Edit

Aiming is calculated with a combination of rack bones, muzzle bones and can have the option of being turreted in which case yaw, pitch and muzzle need to be defined in order for aiming to be accurate. Note that one of the most important parts of a weapon is the bone’s axis orientation and alignment with muzzle, racks and turrets. All aiming is done with the assumption that bones are oriented on a right hand orientation where the index finger is the Z axis and the thumb is the Y axis: We also need to keep close attention to the alignment of all the bones used in the weapon. A weapon needs for all its aiming bones’ Z axis to be coplanar and pointing along the same + or - direction.
  • BallisticArc = <Ballistic arcs that should be used on the projectile. RULEUBA_None, RULEUBA_LowArc or RULEUBA_HighArc>
  • FiringRandomness = <How much random inaccuracy should we be from the target>
  • FiringTolerance = <How much misalignment can the barrel be before starting to fire. Used when you are trying to target ammo that does not require lots of accuracy due to the size of their damage radius or because the ammo does automatic targetting>
  • MinRadius = <The minimum range we must be to fire at our target>
  • MaxRadius = <How far does the target need to be before we start firing>
  • RangeCategory <UWRC_DirectFire / ?: The range category this weapon satisfies>

Targeting / Firing Edit

Category Strings are string that get converted to unit categories. They work exactly like the strings used for buildable categories. ie: You want TECH1 and MOBILE, the string would be 'TECH1 MOBILE'. If you wanted TECH1 and not MOBILE, it'd be 'TECH1 -MOBILE' and if you want LAND and AIR then you would do ‘LAND, AIR’ where the ‘,’ will be the union token.
 FireTargetLayerCapsTable = {
   Air = 'Land|Water',
   Land = 'Land|Water',
   Water = 'Land|Water',
FireTargetLayerCapsTable allows you to pick which layers you can target in relation to the layer that you are currently at. For example, on the previous block, we can target land or water when we are on the air on land or on water.
  • TargetPriorities = Just what it means, if there are two targets at the same range witch to target first -
  • eg: ( STRUCTURE DEFENSE )  or ( ALLUNITS ) or anything you want.
  • TargetRestrictDisallow = <The categories that we will not allow to target>
  • TargetRestrictOnlyAllow = <Exclusive categories that we will allow to target> TargetCheckInterval = <Interval of time between looking for a target>
  • TrackingRadius = <The radius that the weapon start tracking the target. This does not mean that the weapon will fire. The weapon will only fire when a target enters the maxradius>
  • AutoInitiateAttackCommand = <true/false. Flag to specify if the unit will initiate and attack command when idle and an enemy comes within firing range>
  • AboveWaterFireOnly = <true/false. This weapon will only fire if it is above water>
  • AboveWaterTargetsOnly = <true/false. This weapon will aim only at targets above water>
  • BelowWaterFireOnly = <true/false. This weapon will only fire if it is below water>
  • BelowWaterTargetsOnly = <true/false. This weapon will only aim at targets below water>
  • AlwaysRecheckTarget = <true/false. Always recheck for better target regardless of whether you already have one or not>
  • AttackGroundTries = <int. This determines the number of shots at a ground target before moving on to the next target>
  • LeadTarget = <true/false. Determines if the weapon should lead its target when aiming>
  • YawOnlyOnTarget = <true/false. This weapon is considered on target if the yaw is facing the target>
  • TargetType = <RULEWTT_Unit / ?: The type of entity this unit can target>
  • TargetCheckInterval = <int. Interval between checks for a new target>

Damage Edit

  • CollideFriendly = True/false should the unit collide against friendly meshes
  • DamageFriendly = True/false should we damage friendly units
  • Damage = Damage value.
  • DamageRadius = Radius of the damage
  • DamageType = String specifying the damage type.
  • DoTTime = <True/false. Should we distribute damage over time?>
  • DoTPulses = <The number of times the damage will be dealt.>
  • DamageType = <The type of damage the unit will do. ‘Normal’ will affect all units. >
  • DamageRadius = <Blast Radius>

Economy Edit

  • EnergyDrainPerSecond = How much energy this weapon will drain per second
  • EnergyRequired = How much energy is required to fire this weapon.

Turrets Edit

When a weapon needs to be turreted it means that we are going to use a turret to rotate its rack and muzzle and its aim will be dependant on those bones so the turret needs to define which bones are used for these rotations.
  • TurretBoneMuzzle = Muzzle bone name
  • TurretBonePitch = Bone name that will determine the pitch rotation (rotation along the X axis)
  • TurretBoneYaw = Bone name that will determine the yaw rotation (rotation along the Y axis)
  • Turreted = <true/false, Does this have a turret?>
  • TurretBoneDualPitch = <The second pitch bone for a turret, used for arms on bots as weapons>
  • TurretBoneDualMuzzle = <The second muzzle bone for a turret, used for arms on bots as weapons>
  • TurretBoneMuzzle = <The bone used as the muzzle bone for turrets. This is used for aiming as where the projectile would come out.>
  • TurretBonePitch = <The bone used to pitch the turret.>
  • TurretBoneYaw = <The bone used as the yaw for the turret>
  • TurretDualManipulators = <true/false. Do we need two manipulators? Used for bots with arms>
  • TurretPitch = <The center angle for determining pitch, based off the rest pose of the art>
  • TurretPitchRange = <The angle +/- off the pitch that is a valid angle to turn to>
  • TurretPitchSpeed = <The speed at which the turret can pitch>
  • TurretYaw = <The center angle for determining yaw, based off the rest pose of the art>
  • TurretYawRange = <The angle +/- off the yaw that is a valid angle to turn to>
  • TurretYawSpeed = <The speed at which the turret can yaw>
  • SlavedToBody = <true/false. Flag to specify if the weapon is slaved to the unit, thus requiring the unit to face the target to fire>
An important note to keep in mind is that if a weapon has both the pitch and yaw as the same bone then we require for the muzzle to be collinear If they are not the same bones then they only need to be coplanar. Another important situation that you might encounter is when we get an arm like set of bones like with bots. We need to make sure that all the weapon bones are coplanar and that the Muzzle bone’s z axis is collinear with the point defining the turret pitch Look at the following image to get a better idea of what is described here. The bone set up for the units is 100% the responsibility of the artist in charge of the mesh creation of the unit. Dual muzzle weapons are used with units that have 2 racks working in unison. We find this kind of weapons in bots. UEF light assault bot is a good example of a unit that has this type of weapon. Non-Turreted weapons are mainly set when you have seeking projectiles which do not require the weapon to have a particular direction and the projectile corrects the direction. A good example of such weapon is a torpedo from a sub. In this case the barrel and muzzle would be the same bone and the “Turreted” flag would be set to false. Look at unit URS0203 as an example.

Rack Edit

Racks hold sets of muzzles with in them. You can have multiple sets of muzzles associated to a rack bone which will allow you manipulate their behavior with common attributes. Racks can have telescopes which mean their barrels can recoil at the barrel’s telescope bone. In addition it recoils the entire rack by a small distance. Some weapons like the big guns on Cybran Battleship have multiple sets. This unit fires each muzzle set individually and recoils the entire rack on every fire event. It also does not use a telescope but the result is very similar since we could think of the telescope bone as the rack bone.
  • RackBone = <Bone Used for Rack Recoil>,
  • MuzzleBones = {<List of muzzle bones>},
  • TelescopeBone = <Bone used for telescoping barrel recoil>
  • TelescopeRecoilDistance =
    Fatal error: Not a distance

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.