Difference between revisions of "Subsystem"

From FreeSpace Wiki
Jump to: navigation, search
(Added $On Beam Warmdown:)
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{Fileversion|7119}}
 
{{Fileversion|7119}}
  
*All subsystems ship can have must be defined in ships model file (.pof).
+
The Options listed in this article should entered into the '''$Subsystem''' section of the [[Ships.tbl]]. Multiple Subsystems may be defined.
 +
 
 +
*All subsystems a ship can have must be defined in ship's model file (.pof).
 +
*See [[Subobject_and_subsystem_properties|Subobject and subsystem properties]] for information about what subsystems the game has defined meaning for.
  
 
{{Table3610|
 
{{Table3610|
*[[Animation_Code|Animation Code]] can be applied to the subsystems that consist of submodels, like multi-part turrets.}}
+
*[[Animation_Code|Animation Code]] can be applied to the subsystems that consist of submodels, like multi-part turrets.
 +
{{Table220|
 +
'''DEPRECATED''': Unless setting initial orientation of multipart turrets, consider using the [[Animation.tbl]] in combination with [[Ships.tbl#.24Animations:|$Animations:]]
 +
}}
 +
}}
  
  
Line 106: Line 113:
 
===$AWACS:===
 
===$AWACS:===
 
*Sets this subsystem's effective AWACS range. (AWACS reveals stealthed ships, cuts through nebula fog.)
 
*Sets this subsystem's effective AWACS range. (AWACS reveals stealthed ships, cuts through nebula fog.)
*Syntax: '''''Float''''', the maximum range of the AWACS
+
*Syntax: intensity, '''''Float''''', and radius, '''''Float''''', - intensity is an ignored but required field. - radius is the maximum range of the AWACS.
  
 +
===$Scan time:===
 +
{{Table220|
 +
*Scan time for this subsystem.  If this is not set, the scan time for the ship is used for the subsystem
 +
*Syntax: '''''Integer''''' in milliseconds
 +
}}
  
 
===$Maximum Barrel Elevation:===
 
===$Maximum Barrel Elevation:===
 
{{Table3611|
 
{{Table3611|
*Defines the maximum barrel elevation for the turret
+
*Defines the maximum barrel elevation for the turret gun object of a multipart turret.
 
*Basically 'inverse FOV'.
 
*Basically 'inverse FOV'.
 
*Syntax: '''''Integer''''', from 0 to 90}}
 
*Syntax: '''''Integer''''', from 0 to 90}}
Line 118: Line 130:
 
===$Turret Base FOV:===
 
===$Turret Base FOV:===
 
{{Table3611|
 
{{Table3611|
*Defines the FOV of the turret's base.
+
*Defines the FOV of the turret base of a multipart turret, possibly restricting how far it can traverse left and right.
 
*Syntax: '''''Integer''''', from 0 to 359}}
 
*Syntax: '''''Integer''''', from 0 to 359}}
  
 +
===$Turret Barrel FOV:===
 +
{{Table224|
 +
*Defines the overall FOV of the turret, overriding any FOV defined in the POF.
 +
*Syntax: '''''Integer''''', from 0 to 359}}
  
 
===$Turret Reset Delay:===
 
===$Turret Reset Delay:===
Line 224: Line 240:
  
 
===="fov edge checks"====
 
===="fov edge checks"====
*If the predicted target point of the turret falls outside of the field of view this flag but according to ship radius and dot product the target should still be partially visible then this flag attempts to turn the turret to the edge of the FOV closest to the targeted position and allow it to fire along that direction.
+
*The turret will more eagerly acquire targets as long as a sufficient portion of the target is within its fov.
  
 
===="no replace"====
 
===="no replace"====
Line 284: Line 300:
 
===="no impact debris"====
 
===="no impact debris"====
 
*If this subsystem is hit then no impact debris will be generated.
 
*If this subsystem is hit then no impact debris will be generated.
 +
}}
 +
 +
{{Table220|
 +
===="hide turret from loadout stats"====
 +
*This subsystem is not counted as a turret in the auto-generated "+Turrets:" line in the statistics summary window of the ship loadout editor.
 
}}
 
}}
  
 
===[[Animation Code]]===
 
===[[Animation Code]]===
 
{{Table3610|
 
{{Table3610|
*Option for animating the submodels}}
+
*Option for animating the submodels
 +
{{Table220|
 +
'''DEPRECATED''': Unless setting initial orientation of multipart turrets, consider using the [[Animation.tbl]] in combination with [[Ships.tbl#.24Animations:|$Animations:]]
 +
}}
 +
}}
  
 
===$On Beam Warmdown:===
 
===$On Beam Warmdown:===

Latest revision as of 00:11, 9 November 2023

Revision information.....

SVN revision: 7119
Note: Please update the version number when the page is updated. If your edit had nothing to do with new code entries then please do not edit the version numbers


The Options listed in this article should entered into the $Subsystem section of the Ships.tbl. Multiple Subsystems may be defined.

  • All subsystems a ship can have must be defined in ship's model file (.pof).
  • See Subobject and subsystem properties for information about what subsystems the game has defined meaning for.


FS2 Open 3.6.10:
  • Animation Code can be applied to the subsystems that consist of submodels, like multi-part turrets.
FS2 Open, 22.0:

DEPRECATED: Unless setting initial orientation of multipart turrets, consider using the Animation.tbl in combination with $Animations:


Contents

$Subsystem:

  • The name of the subsystem as defined in .pof file, % of ship's total hitpoints the subsystem has and rotation time (360 degrees) for multi-part turrets. Note: Assigning zero to the %-hitpoint entry causes the subsystem to be without hitpoints, like fighterbays on some capital ships.
  • Syntax: String, Float, Float, name of the subsystem followed by the subsystem hitpoints as % of ships hitpoints and seconds per 360 degree turn. Subsystem name must be the same as described in model file (.pof).
FS2 Open 3.6.10:
  • Entries can be left empty in which case game uses default values
  • Example: communications, 5, 0.0


$Alt Subsystem Name:

FS2 Open 3.6.10:
  • Defines the alternate name for the subsystem. This name is shown for example in the targeting window when subsystem is targeted.
  • Syntax: String
FS2 Open, 3.6.12:
  • Option to use pipe character '|' to force line breaks into the alt subsystem name


$Alt Damage Popup Subsystem Name:

FS2 Open, 3.6.12:
  • Defines the alternate name for the subsystem when it is displayed on the damaged systems popup.
  • Syntax: String


$Armor Type:

FS2 Open 3.6.10:
  • REQUIRES ADDITIONAL TABLE. Defines armor type used for the subsystem. If subsystem armor type is not defined ships armor type is used instead.
  • Syntax: String, as defined in armor.tbl


$Default PBanks:

  • Defines default primary weapon for the turret
  • Syntax: ( "String" )
    • Example: ( "Subach HL-7" )


$PBank Capacity:

FS2 Open 3.6.10:
  • Defines ammunition capacity of turrets ballistic primary weapon.
  • Syntax: ( Integer )


$Default SBanks:

  • Defines default secondary weapon for the turret
  • Syntax: ( "String" )


$SBank Capacity:

  • Defines ammunition capacity of turrets secondary weapon.
  • Syntax: ( Integer )


$Engine Wash:

  • All engines may use information concerning the engine wash. Engine washes are usually used only with larger vessels.
  • Syntax: String, name as defined in Engine Wash section in ships.tbl
    • Example: Default1000


$AliveSnd:

FS2 Open 3.6.10:
  • Specifies a sound to play from the subsystem while it is not destroyed.
  • Syntax: Integer or String, name or identification number of the sound as defined in sounds.tbl


$DeadSnd:

FS2 Open 3.6.10:
  • Specifies a sound to play from the subsystem while it is destroyed.
  • Syntax: Integer or String, name or identification number of the sound as defined in sounds.tbl


$RotationSnd:

FS2 Open, 3.6.14:
  • Can be used to define a sound that is played when this subsystem rotates.
  • Syntax: Integer or String, name or identification number of the sound as defined in sounds.tbl

$Turret Base RotationSnd:

FS2 Open, 3.6.12:
  • Defines the sound which is played when the turrets base rotates
  • Syntax: Integer or String, name or identification number of the sound as defined in sounds.tbl


$Turret Gun RotationSnd:

FS2 Open, 3.6.12:
  • Defines the sound which is played when the turrets guns change their elevation
  • Syntax: Integer or String, name or identification number of the sound as defined in sounds.tbl


$Turret BaseSnd Volume:

FS2 Open, 3.6.12:
  • Defines the multiplier for the sound volume for turret base rotations
  • Syntax: Float


$Turret GunSnd Volume:

FS2 Open, 3.6.12:
  • Defines the multiplier for the sound volume for turret guns change their elevation
  • Syntax: Float


$AWACS:

  • Sets this subsystem's effective AWACS range. (AWACS reveals stealthed ships, cuts through nebula fog.)
  • Syntax: intensity, Float, and radius, Float, - intensity is an ignored but required field. - radius is the maximum range of the AWACS.

$Scan time:

FS2 Open, 22.0:
  • Scan time for this subsystem. If this is not set, the scan time for the ship is used for the subsystem
  • Syntax: Integer in milliseconds

$Maximum Barrel Elevation:

FS2 Open, 3.6.12:
  • Defines the maximum barrel elevation for the turret gun object of a multipart turret.
  • Basically 'inverse FOV'.
  • Syntax: Integer, from 0 to 90


$Turret Base FOV:

FS2 Open, 3.6.12:
  • Defines the FOV of the turret base of a multipart turret, possibly restricting how far it can traverse left and right.
  • Syntax: Integer, from 0 to 359

$Turret Barrel FOV:

FS2 Open, 23.0:
  • Defines the overall FOV of the turret, overriding any FOV defined in the POF.
  • Syntax: Integer, from 0 to 359

$Turret Reset Delay:

FS2 Open, 3.6.12:
  • Defines the time after losing the target before the turret begins to reset itself
  • Syntax: Integer, in milliseconds


$Turret Optimum Range:

FS2 Open, 3.6.12:
  • Defines the optimum range for the turret
  • Syntax: Float


$Turret Direction Preference:

FS2 Open, 3.6.12:
  • Defines the turrets preference to keep targeting targets based how far the turret should turn instead of nearest target
  • The higher the value the higher the preference to keep targeting targets close to previous targets direction
  • Syntax: Integer, from 0 to 100, 0 disables the preference setup


$Target Priority:

FS2 Open, 3.6.12:
  • Defines the target priorities, and their order for the turret
  • Syntax: String list


$Max Turrets per Bomb:

FS2 Open, 3.6.14:
  • Limits the number of turrets that can be targeting the same bomb.
  • When this is set, when this turret tries to target a bomb, it will check to see how many turrets are already targeting it and only choose it as a target if there are less than this number.
  • This allows control over the default behavior, where every turret will fire at the leading bomb.
  • Syntax: Integer

$Max Turrets per Target:

FS2 Open, 3.6.14:
  • Limits the number of turrets that can be targeting the same target.
  • ONLY AFFECTS SMALL TARGETS such as fighters and bombers. This limit does NOT apply vs large ships.
  • When this is set, when this turret tries to target a ship, it will check to see how many turrets are already targeting it and only choose it as a target if there are less than this number.
  • This helps turrets spread their efforts out among multiple targets.
  • Syntax: Integer

$ROF:

FS2 Open, 3.6.14:
  • Defines the modifier applied to the turret rate of fire (ROF).

+Use firingpoints

  • Modifies (multiplies) the rate of fire by the number of firingpoints the turret has.

+Multiplier:

  • Checked only if +Use firingpoints has not been defined
  • If set to larger than 0 the value acts as multiplier
  • If set to 1.0 the feature is disabled
  • If set to equal to or smaller than 0 it as if +Use firingpoints option would have been enabled
  • Syntax: Float

$Flags:

FS2 Open 3.6.10:
  • Can be used to sets additional subsystem related properties
  • Syntax: ( "String" "String" )
  • List of available flags:

"untargetable"

  • Subsystem cannot be targeted

"carry no damage"

  • Damage caused to the subsystem will not carry over to the parent ship

"use multiple guns"

  • Enables the turret to fire all equipped weapons, picking a not-in-use firing point at each trigger. Not to be confused with 'Salvo mode'.

"fire down normals"

  • Forces the turret to fire along the turret normals - regardless of the swarm setting.

"check hull"

  • Forces the firing turret to check against the parent model if valid line of sight exists between the firingpoint and the target.


FS2 Open, 3.6.12:

"fixed firingpoints"

  • Forces the firing turret to retain the firingpoints of their weapons: if the turret has multiple banks, the first bank will only fire from the first firepoint, the second bank only from the second firepoint, and so on. Maximum number of weapons is the same as maximum number of weapons in turret (3 primary, 4 secondary)

"salvo mode"

  • Forces the firing turret to use only the first weapon defined for it but fires it simultaneously from all the firing points. Not to be confused with 'use multiple guns'

"no subsystem targeting"

  • Prevents the firing turret from targeting targets subsystems - instead forces the turret to fire randomly at the targets hull.

"fire on target"

  • Prevents the turret from firing unless the turret barrels (firingpoints) and targets are aligned.

"reset when idle"

  • Forces the turret to reset to its initial position if it has no targets.

"carry shockwave"

  • Forces the turret to carry damage caused by shockwaves to the hull regardless of other flags.


FS2 Open, 3.6.14:

"allow landing"

  • Defines the subsystem as something on which player can attempt to land on

"target requires fov"

  • Prevents turret from accidentally selecting target out of it field of view (fov) when acquiring targets

"fov edge checks"

  • The turret will more eagerly acquire targets as long as a sufficient portion of the target is within its fov.

"no replace"

  • Tells game not to use the replacement submodel (-destroyed) when the subsystem loses all of it's hitpoints.

"no live debris"

  • Prevents the subsystem from releasing live debris pieces when destroyed

"ignore if dead"

  • When subsystem has been destroyed prevents homing weapons from attempting to hit the now destroyed submodel and instead tells them to home on the main hull of the target

"allow vanishing"

  • Allow subsystem to be destroyed from the ship without sound or graphical effects

"damage as hull"

  • Treats subsystem as if it were hull when applying damage.

"starts locked"

  • Turret starts locked and won't shoot until you use a turret-free or turret-free-all SEXP on it.

"no aggregate"

  • Freespace keeps track of a ships overall functionality (such as if a ship is sensorless, disarmed or disabled) via a total hitpoint count of the associated subsystems. For example if a ship has three engines with 100HP each, the 'engines' count will be at 300HP. Shooting at any of the subsystems with the keyword 'engine' in them will decrement this total, and when it is at 0 then the ship becomes disabled.
  • This flag tells FS to ignore the associated subsystem and not count it towards those totals. For example, if a ship had three 100HP engines with one set to 'no aggregate' then the 'engines' count will be 200HP. Shooting the 'no aggregate' engine will not decrement the 'engines' count, and so in other words the status of this engine is irrelevant to whether or not the ship is disabled. In the same way when applied to a turret, the turret's status is irrelevant to whether the ship is disarmed or not.

"wait for animation"

  • When this flag is active, a turret will only fire after any associated subsystem animations (such as a turret hatch opening) have played out.

"play fire sound for player"

  • If this turret is on a player ship, play its associated sounds.

"only target if can fire"

  • Do additional checks to make sure that a turret which cannot fire at its target releases that target.


FS2 Open, 3.6.16:

"no disappear"

  • If this subsystem is a physical subsystem, it won't disappear nor switch to the -destroyed model when destroyed.

"collide submodel"

  • If this subsystem is a physical subsystem, it will only take damage from hits which impact the submodel. By default damage is taken from all hits within the submodel's radius*2. Does not affect area damage such as shockwaves.

"allow destroyed rotation"

  • Allows a rotating subobject to continue to rotate even when it has been destroyed


FS2 Open, 3.7.4:

"turret use ammo"

  • If the subsystem is a turret, it will use ammo.
    • Note: If the turret does not have ammo, it will not fire. Remember that the maximum ammo a turret can hold is the Capacity of the Bank divided by the Cargo Size of the weapon.

"share fire direction"

  • If this subsystem is a turret, whenever the turret fires it will make all of the firing points shoot their weapon in the same direction instead of at the same point or set of points on a target.


FS2 Open, 19.0:

"no damage spew"

  • If this subsystem is hit then there will be no damage spew particles emitted.

"no impact debris"

  • If this subsystem is hit then no impact debris will be generated.


FS2 Open, 22.0:

"hide turret from loadout stats"

  • This subsystem is not counted as a turret in the auto-generated "+Turrets:" line in the statistics summary window of the ship loadout editor.

Animation Code

FS2 Open 3.6.10:
  • Option for animating the submodels
FS2 Open, 22.0:

DEPRECATED: Unless setting initial orientation of multipart turrets, consider using the Animation.tbl in combination with $Animations:

$On Beam Warmdown:

FS2 Open, 21.2:

Specifies an action system program set to be executed when a beam attached to this subsystem is starting its warmdown sequence.

Case Specific Entries

Turret

  • All turrets require information concerning the weapon mounted to the turret. The entry can be either $Default PBanks for turret primaries (including beams) or $Default SBanks for turret secondaries
FS2 Open 3.6.10:
  • Animation Code can be used with multi-part turrets.
  • Multiple defined weapons will all fire but the targeting is handled by the first weapon in the list. Multiple beams are not possible. All weapons alternate between the firingpoints of the turret so turrets do not need to have more than one weapon defined no matter how many barrels or firingpoints they have.

Example

$Subsystem: turret01, 1.0, 1.0
$Default PBanks: ( "Terran Turret" )


Engine

Example

$Subsystem: engine01, 5.0, 0.0
$Engine Wash: Default1000