https://wiki.hard-light.net/api.php?action=feedcontributions&user=Cyborg17&feedformat=atom
FreeSpace Wiki - User contributions [en]
2024-03-28T09:50:27Z
User contributions
MediaWiki 1.31.7
https://wiki.hard-light.net/index.php?title=Game_settings.tbl&diff=64458
Game settings.tbl
2023-01-22T22:05:56Z
<p>Cyborg17: /* $Mod title:: */ Typo</p>
<hr />
<div>{{SCP_table}}<br />
{{TableVersionGit|2022-09-09|bb232382cf7401d6728a3614583e8e3c7d893790}}<br />
{{Tables}}<br />
The '''game_settings.tbl''', also known as mod.tbl, defines options that can be changed globally. All settings are optional.<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-mod.tbm<br />
<br />
==#GAME SETTINGS==<br />
Contains settings that affect how the engine works.<br />
<br />
===$Target Version:===<br />
{{Table373|<br />
Specifies the minimum version of FreeSpace Open that this mod supports. If the version specified here is greater than the version of the current build, an error message is displayed.<br />
}}<br />
{{Table381|<br />
The $Minimum version option has been renamed to $Target Version. The old name is kept with the same functionality for backwards-compatibility.<br />
<br />
The target version specifies what version of the FSO engine this mod was created for. It will be used by the engine to enable or disable backwards-incompatible changes by default. The default value is 2.0 which specifies that the mod targets the retail engine version.<br />
}}<br />
<br />
====+Major:====<br />
{{Table373|<br />
Required. Sets the major component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''3''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Minor:====<br />
{{Table373|<br />
Required. Sets the minor component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''7''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Build:====<br />
{{Table373|<br />
Required. Sets the build component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''3''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Revision:====<br />
{{Table373|<br />
Sets the revision component of the target version. If no revision is given then all builds of that release are supported (even nightly builds if there are any).<br />
For nightly builds this is the date in YYYYMMDD format.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''20151121''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
<br />
===$Window title:===<br />
{{Table382|<br />
Specifies the name of the FSO window when this mod is running. If blank or unspecified, the window will have the default title of "FreeSpace 2".<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Window icon:===<br />
{{Table382|<br />
Specifies the icon filename of the FSO window when this mod is running. If blank or unspecified, the window will have the default icon.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Mod title:===<br />
{{Table224|<br />
Specifies the title of the mod and will be displayed at the mainhall near the FSO version.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
===$Mod version:===<br />
{{Table224|<br />
Specifies the version of the mod and will be displayed at the mainhall near the FSO version. Can be a string or it can be semantic versioning such as 2.0.0.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Unicode mode:===<br />
{{Table382|<br />
Enabled the Unicode text mode for this mod. In Unicode mode all text is assumed to be UTF-8 encoded Unicode and certain features are disabled if they do not have full Unicode support. Most notably, if this is enabled then the engine will no longer support the old bitmap fonts that were used by Retail FreeSpace. Only the newer TrueType fonts will be supported.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
==#LOCALIZATION SETTINGS==<br />
Contains various settings related to localization and language support.<br />
<br />
===$Use tabled strings for the default language:===<br />
{{Table202|<br />
Causes the game to use the text in strings.tbl and tstrings.tbl even when the current language is English. By default, the game will use the literal text in the source code and the data files (tables and missions) and will not look up the entry when the language is English. For other languages, the translation is always used, if it exists, regardless of this setting.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
===$Don't pre-empt training message voice:===<br />
{{Table214|<br />
Prevents training messages from being interrupted by other training messages. If a training message has a voice file associated with it, or simulated speech is active, the next message will not be played until the current message has finished.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
==#CAMPAIGN SETTINGS==<br />
This group contains various Campaign related settings and overrides.<br />
<br />
<br />
===$Default Campaign File Name:===<br />
Defines which campaign will be selected by default for new pilots. A file extension is not needed and, if present, is removed by the code.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===#Ignored Campaign File Names===<br />
Defines which campaigns, if present, will not appear in the Campaign Room. In the original implementation, only single-player campaigns could be ignored and file extensions were required, but see below.<br />
{{Table371|As of 3.7.1, file extensions are not required and, if present, are removed by the code.}}<br />
{{Table382|As of 3.8.2, file name comparisons are not case sensitive and multiplayer campaigns can be ignored.}}<br />
====$Campaign File Name:====<br />
File name of the campaign to ignore. Multiple entries may exist.<br />
*Syntax: '''''String'''''<br />
<br />
===#Ignored Mission File Names===<br />
{{Table382|Defines which standalone missions, if present, will not appear in the Tech Room or Multiplayer Lobby. Both single-player and multiplayer missions can be ignored, but missions which appear in a campaign cannot. File extensions are not required and, if present, are removed by the code. File name comparisons are not case sensitive.<br />
====$Mission File Name:====<br />
File name of the mission to ignore. Multiple entries may exist.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Red-alert applies to delayed ships:===<br />
{{Table372|Controls whether red-alert saved statistics (hitpoints, weapons, subsystem strengths) will be restored for ships that are not present at mission start.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
<br />
==#HUD SETTINGS==<br />
This group contains various HUD behavior settings and overrides<br />
<br />
<br />
===$Directive Wait Time:===<br />
*Defines how long the game will wait before displaying a directive.<br />
*Syntax: '''''Integer'''''<br />
*Values: '''''Greater than or equal to 0 ms'''''<br />
<br />
<br />
===$Cutscene camera displays HUD:===<br />
Show the HUD when the cutscene camera is enabled.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
In earlier versions of the code, this option was controlled by $Cutscene camera disables HUD: and had a default of YES.<br />
<br />
<br />
===$Full color head animations:===<br />
Enables full-color head ANIs. Normal head ANIs will appear in gray.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
In earlier versions of the code, this option was controlled by $Color head animations with hud colors: and had a default of YES.<br />
<br />
<br />
===$Don't automatically select a turret when targeting a ship:===<br />
{{Table220|Uses FS1 behavior where targeting a new ship did not target any turrets. In FS2 a turret is automatically targeted.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Supernova hits at zero:===<br />
{{Table222|<br />
Adjusts the HUD timer so that the timer reaches zero when the supernova hits the player. The actual timing is not affected -- whether the flag is enabled or not, the supernova will always hit the player when 5 seconds remain in the time specified in the sexp.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
===$Always warn player about unbound keys used in Directives Gauge:===<br />
{{Table222|<br />
Ensures that the "Key Unbound" message will pop up for a directive with an unbound key in any single-player mission, not just a training mission. Note, that the default string (index 426) will still say "Warning\nYou have no control bound to the action \"%s\". You must do so before you can continue with training." Thus, it is advised to change the string at index 426 using the -lcl.tbm to "Warning\nYou have no control bound to the action \"%s\". You must do so before you can continue with this mission."<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
==#SEXP SETTINGS==<br />
This group contains SEXP settings and overrides.<br />
<br />
<br />
===$Loop SEXPs Then Arguments:===<br />
Flips how when-argument settings loop. See: [http://www.hard-light.net/forums/index.php?topic=79602.0 SEXP Argument changes via mod.tbl] <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Use Alternate Chaining Behavior:===<br />
When set, this allows all events in a chain to repeat, instead of only the last one. It makes the event chaining behavior act as people expected it to be in [http://scp.indiegames.us/mantis/view.php?id=82 Mantis #82].<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Fixed Chaining To Repeating Events:===<br />
{{Table230|When set, this makes event chaining to repeated events work as designed - that is, the chained event will only be evaluated after the chain delay. If the repeating event's interval is shorter than the chain delay, then the delay countdown will continually be restarted until all repetitions have completed. Without this flag, FSO will emulate retail behavior which, due to a bug, allowed chained events to be evaluated immediately after a repeating event is first evaluated.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Use host orientation for set-camera-facing:===<br />
{{Table220|When set, this will take into account the host orientation for cutscene cameras. This is a bugfix for [https://github.com/scp-fs2open/fs2open.github.com/issues/3889 GitHub issue #3889].<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Show-subtitle uses pixels:===<br />
{{Table222|When set, SEXPs which display subtitles will read their arguments as pixels, not percentages. If <code>$Show-subtitle base resolution:</code> is set, these pixels will be scaled up or down as needed.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
===$Show-subtitle base resolution:===<br />
{{Table222|When set, subtitles are assumed to display at the appropriate size in the specified resolution, and will be scaled up or down if the current screen resolution is different. If this is not set, or is set to a resolution less than (640, 480), subtitles will not be scaled.<br />
*Syntax: '''''(Integer, Integer)'''''<br />
*Default Value: '''''(-1, -1)'''''}}<br />
<br />
==#GRAPHICS SETTINGS==<br />
This group contains settings related to graphics.<br />
<br />
<br />
===$Enable External Shaders:===<br />
Enables the use of external shader files. By default, the engine will use the built-in shaders.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Default Detail Level:===<br />
{{Table3615|<br />
Determines which graphics detail level preset (low, medium, high, very high) acts as the default for new pilots.<br />
*Syntax: '''''Integer''''' (0-3)<br />
*Default Value: '''''3''''' (very high)}}<br />
<br />
<br />
===$Briefing Window FOV:===<br />
{{Table371|<br />
Determines the FOV in the briefing Icon window. Retail default for this is 0.29375; some previous versions of FSO used a value of 0.5.<br />
*Syntax: '''''Float''''' (0.0 to 1.0)<br />
*Default Value: '''''0.29375'''''}}<br />
<br />
===$Generic Pain Flash Factor:===<br />
{{Table373|<br />
Determines the intensity of the pain red flash when the player is hit.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Shield Pain Flash Factor:===<br />
{{Table373|<br />
Determines the intensity of a pain flash when the player's shields are hit. Color will match the current ships shield color defined in ships.tbl. A value of 0 will give retail behavior (no shield effect). Positive values will cause the effect to start at full intensity at full shields and go to next to no intensity at zero shields. Negative values will cause no effect at full shields and full effect at no shields. Values should be kept between -1.0 and 1.0 for good pilot visibility.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''0.0'''''}}<br />
<br />
<br />
===$BMPMAN Slot Limit:===<br />
{{Table382|<br />
Determines the maximum number of textures that can be loaded simultaneously. This includes every frame of an animation, unless that animation is streaming (e.g. command briefing animations, message talking heads, etc). Also includes dynamically-created textures (used internally for various functions).<br />
*Syntax: '''''Int'''''<br />
*Values: '''''Greater than or equal to 3500'''''<br />
*Default Value: '''''4750'''''}}<br />
<br />
===$EMP Arc Color:===<br />
{{Table382|<br />
Allows custom RGB color values to be set for the EMP lightning arc effect. <br />
*'''+Primary Color Option 1:'''<br />
**The RGB color of the first primary color for the EMP lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 5)<br />
*'''+Primary Color Option 2:'''<br />
**The RGB color of the second primary color for the EMP lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (128, 128, 10)<br />
*'''+Secondary Color Option 1:'''<br />
**The RGB color of the secondary color for the EMP lightning arc effect.<br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (255, 255, 10)<br />
}}<br />
<br />
===$EMP Arc Width:===<br />
{{Table224|<br />
Allows setting how the width is calculated for the EMP lightning arc effect. <br />
*'''+Width Default:'''<br />
**The default width of the arc. This value will be multiplied by `+Width Radius Multiplier:` if the radius of the ship is less than or equal to `+Do Not Use Width Multiplier Over Radius:`.<br />
**Syntax: '''''Float'''''<br />
**Default value: 0.9<br />
*'''+Width Radius Multiplier:'''<br />
**The value that the width is multiplied by if the radius of the ship is less than or equal to `+Do Not Use Width Multiplier Over Radius:`.<br />
**Syntax: '''''Float'''''<br />
**Default value: 0.01<br />
*'''+Do Not Use Width Multiplier Over Radius:'''<br />
**If the object is larger than this radius, the `+Width Default:` value is used.<br />
**Syntax: '''''Float'''''<br />
**Default value: 500<br />
*'''+Width Radius Minimum:'''<br />
**Minimum width that the arc can be. Any calculated widths lower than this value will be set to this value. <br />
**Syntax: '''''Float'''''<br />
**Default value: 0.2<br />
}}<br />
<br />
<br />
===$Damage Arc Color:===<br />
{{Table382|<br />
Allows custom RGB color values to be set for the damage lightning arc effect. <br />
*'''+Primary Color Option 1:'''<br />
**The RGB color of the first primary color for the damage lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 255)<br />
*'''+Primary Color Option 2:'''<br />
**The RGB color of the second primary color for the damage lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (128, 128, 255)<br />
*'''+Secondary Color Option 1:'''<br />
**The RGB color of the secondary color for the damage lightning arc effect.<br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 5)<br />
}}<br />
<br />
===$Damage Arc Width:===<br />
{{Table224|<br />
Allows setting how the width is calculated for the EMP lightning arc effect. <br />
*'''+Width Default:'''<br />
**The default width of the arc. This value will be multiplied by `+Width Radius Multiplier:` if the radius of the ship is less than or equal to `+Do Not Use Width Multiplier Over Radius:`.<br />
**Syntax: '''''Float'''''<br />
**Default value: 0.9<br />
*'''+Width Radius Multiplier:'''<br />
**The value that the width is multiplied by if the radius of the ship is less than or equal to `+Do Not Use Width Multiplier Over Radius:`.<br />
**Syntax: '''''Float'''''<br />
**Default value: 0.01<br />
*'''+Do Not Use Width Multiplier Over Radius:'''<br />
**If the object is larger than this radius, the `+Width Default:` value is used.<br />
**Syntax: '''''Float'''''<br />
**Default value: 500<br />
*'''+Width Radius Minimum:'''<br />
**Minimum width that the arc can be. Any calculated widths lower than this value will be set to this value. <br />
**Syntax: '''''Float'''''<br />
**Default value: 0.2<br />
}}<br />
<br />
<br />
===$Requires Rendering Feature:===<br />
{{Table210|Needs description}}<br />
<br />
===$Render player muzzle flashes in cockpit:===<br />
{{Table212|<br />
Determines whether muzzle flashes will be shown within the cockpit view.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
===$Glowpoint nebula visibility factor:===<br />
{{Table220| <br />
*Specifies the degree to which glowpoints are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.2}}<br />
<br />
===$Shield nebula visibility factor:===<br />
{{Table220| <br />
*Specifies the degree to which shield effects are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.2}}<br />
<br />
===$Thruster nebula visibility factor:===<br />
{{Table220| <br />
*Specifies the degree to which thruster flares are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.5}}<br />
<br />
===$Beams affected by nebula visibility:===<br />
{{Table212|<br />
Determines whether beam weapons will be faded by nebula fog.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
====+Constant visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which beam effects are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 4.0}}<br />
<br />
====+Scaled visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which the ''size'' of a beam effect affects its visibility. This is multiplied by the radius of the beam and added to the above for the final value. This results in larger beams being visible from farther away.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.1}}<br />
<br />
===$Weapons affected by nebula visibility:===<br />
{{Table212|<br />
Determines whether lasers, missiles, countermeasures, etc will be faded by nebula fog.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
====+Weapon visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which laser-type weapons are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.3}}<br />
<br />
====+$Trail visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which trails (weapon and ship contrails) are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.0}}<br />
<br />
====+Shockwave visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which shockwave effects are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 2.5}}<br />
<br />
===$Particles affected by nebula visibility:===<br />
{{Table212|<br />
Determines whether particle effects, including impact effects, will be faded by nebula fog.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
====+Constant visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which particle effects are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.0}}<br />
<br />
====+Scaled visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which the ''size'' of a particle effect affects its visibility. This is multiplied by the radius of the particle and added to the above for the final value. This results in larger particles being visible from farther away.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.08}}<br />
<br />
===$Fireballs affected by nebula visibility:===<br />
{{Table212|<br />
Determines whether fireballs from ship explosions will be faded by nebula fog.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
====+Constant visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which fireballs are affected by nebula fog. 1.0 is exactly the same as regular ship hull obscurity, higher means they stay visible for longer.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 1.2}}<br />
<br />
====+Scaled visibility factor:====<br />
{{Table220| <br />
*Specifies the degree to which the ''size'' of a fireball affects its visibility. This is multiplied by the radius of the fireball and added to the above for the final value. This results in larger fireballs being visible from farther away.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.08}}<br />
<br />
===$$Shadow Quality Default:===<br />
{{Table220|<br />
Sets the default level for shadow quality if the 'enable_shadows' command line is used and 'shadow_quality' is not used. By default, the FSO will set the shadow detail level to 2. Valid values are 0 (shadows disabled), 1 (Low, 512x512 shadow map), 2 (Medium, 1024x1024 shadow map), 3 (High, 2048x2048 shadow map), or 4 (Ultra, 4096x4096). Note, the command line 'shadow_quality' will override any value set here. <br />
*Syntax: '''''Integer'''''<br />
*Default Value: '''''2'''''}}<br />
<br />
===$Shadow Cascade Distances:===<br />
{{Table214|<br />
Sets the distances that the shadow map for the game scene uses. Float values must all be greater than 0 and successively larger than each consecutive value.<br />
*Syntax: '''''List of floats'''''<br />
*Default Value: '''''(200.0, 600.0, 2500.0, 8000.0)'''''}}<br />
<br />
===$Shadow Cascade Distances Cockpit:===<br />
{{Table214|<br />
Sets the distances that the shadow map for the cockpit pass scene uses. Will only shadow the cockpit model, and does not interact with the external game scene shadow map. Float values must all be greater than 0 and successively larger than each consecutive value.<br />
*Syntax: '''''List of floats'''''<br />
*Default Value: '''''(0.25, 0.75, 1.5, 3.0)'''''}}<br />
<br />
<br />
===$Shadow Disable Techroom:===<br />
{{Table224|<br />
Disables shadows on ships in the techroom.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Shadow Disable Cockpit:===<br />
{{Table224|<br />
Disables shadows on the player cockpit in mission.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Shadow Disable Brief Weapons:===<br />
{{Table224|<br />
Disables shadows on weapons in the mission briefing.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Shadow Disable Brief Ships:===<br />
{{Table224|<br />
Disables shadows on ships in the mission briefing.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Show Ship Casts Shadow:===<br />
{{Table224|<br />
When cockpit shadows are enabled, enabling this setting will cause the players ship model shown with "show ship" to cast shadow onto the cockpit.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Ship Model And Cockpit Share Coordinate Space:===<br />
{{Table224|<br />
When having the "show ship" flag enabled and cockpit models for a ship, this flag should be on if the cockpits can fit into the actual geometry of the ship model. Disable this flag if this is not the case and the cockpit needs to be rendered on top of the ship regardless of actual coordinates. If this can be enabled, the external show ship model can be rendered using deferred rendering.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
===$Minimum Pixel Size Thrusters:===<br />
{{Table220| <br />
*Specifies the smallest pixel size that thrusters will be rendered. Setting this > 0 can be expensive in larger missions.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.0}}<br />
<br />
===$Minimum Pixel Size Beams:===<br />
{{Table220| <br />
*Specifies the smallest pixel size that beams will be rendered. Setting this > 0 can be expensive in larger missions.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.0}}<br />
<br />
===$Minimum Pixel Size Muzzle Flashes:===<br />
{{Table220| <br />
*Specifies the smallest pixel size that muzzle flashes will be rendered. Setting this > 0 can be expensive in larger missions.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.0}}<br />
<br />
===$Minimum Pixel Size Trails:===<br />
{{Table220| <br />
*Specifies the smallest pixel size that trails will be rendered. Setting this > 0 can be expensive in larger missions.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.0}}<br />
<br />
===$Minimum Pixel Size Lasers:===<br />
{{Table220| <br />
*Specifies the smallest pixel size that lasers will be rendered. Setting this > 0 can be expensive in larger missions.<br />
*Syntax: '''''Float'''''<br />
*Default Value: 0.0}}<br />
<br />
==#NETWORK SETTINGS==<br />
This group contains network-related settings<br />
<br />
<br />
===$FS2NetD port:===<br />
*(description required)<br />
<br />
===$Default object update level for multiplayer:===<br />
{{Table220|<br />
Sets the distances default object update rate for multiplayer matches. By default, the FSO will set the object update level to 2. Valid values are 0 (Low), 1 (Medium), 2 (High), 3 (LAN). FSO caps the bandwidth it uses based on these settings, but they were designed for connections from 1999. LAN has the least restrictive limits and does not require an actual LAN connection. Also, if a player's connection is within the dial-up speed range then game auto force the use of the lowest level during a match. <br />
*Syntax: '''''Integer'''''<br />
*Default Value: '''''2'''''}}<br />
<br />
==#SOUND SETTINGS==<br />
This group contains sound-related settings<br />
<br />
<br />
===$Default Sound Volume:===<br />
{{Table371|<br />
*Defines the default sound fx volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Default Music Volume:===<br />
{{Table371|<br />
*Defines the default music volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.5'''''}}<br />
<br />
<br />
===$Default Voice Volume:===<br />
{{Table371|<br />
*Defines the default voice volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.7'''''}}<br />
<br />
<br />
===$Use weapon class impact sounds for hits to player:===<br />
{{Table224|<br />
Allows weapons that hit the player to play their specific impact sounds, not the hard-coded default sounds.<br />
*Syntax: '''''Boolean'''''<br />
}}<br />
<br />
==#FRED SETTINGS==<br />
This group contains settings for FRED. <br />
<br />
<br />
===$Disable Hard Coded Message Head Ani Files:===<br />
{{table371|<br />
If set, FRED will not fill the head ani selection in the Event Editor with the retail head ani filenames.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
===$Add Message Head Ani Files:===<br />
{{table224|<br />
FRED will append each +Head entry listed below to the head ani selection list in the Event Editor.}}<br />
<br />
====+Head:====<br />
{{table224|<br />
The head ani filename to add. Extensions will be stripped if included.<br />
*Syntax: '''''+Head: String'''''}}<br />
<br />
<br />
===$Enable scripting in FRED:===<br />
{{table382|<br />
If set, scripting will be enabled in FRED. Use with extreme caution. The effects of scripts on FRED have not been fully tested. You can check if a script is running in FRED by using ba.inMissionEditor().<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$FRED Briefing window resolution:===<br />
{{table224|<br />
The width and height of the briefing window in FRED. Defaults to 888x371. Note that changing this only affects FRED and can cause a mismatch to the ingame briefing view which defaults to 888x371 (or 555x232 for 640 base res).<br />
*Syntax: '''''integer, integer'''''<br />
*Default Value: '''''888,371'''''}}<br />
<br />
==#OTHER SETTINGS==<br />
This group contains miscellaneous settings. <br />
<br />
<br />
===$Fixed Turret Collisions:===<br />
Makes all hits to a turret's barrels count as hits to the turret subsystem. By default, this does not happen unless the point of impact falls inside the model radius of the turret's base.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Fixed Missile Detonation:===<br />
{{Table220|<br />
*When this flag is set, missiles which reach the center of a submodel will not detonate immediately; they will delay detonation until they have traveled another radius of the submodel.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Damage Impacted Subsystem First:===<br />
If set, a hit to a physical subsystem will always deal damage to that subsystem first, even if another subsystem is closer to the point of impact. By default, the closest subsystem will always receive damage first.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
===$Use 3d ship select:===<br />
{{Table224|<br />
*Whether or not to use 3D models for ship select instead of animations<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Default ship select effect:===<br />
{{Table3615|<br />
*This specifies which effect to use for ship select animations when no .ani can be found, or the 3d ship select effect is active. This will default to the FS2 effect.<br />
*Syntax: '''''String'''''<br />
*Possible options are "FS2", "FS1", and "off"}}<br />
<br />
<br />
===$Use 3d ship icons:===<br />
{{Table224|<br />
*Whether or not to use 3D models for ships in ship/weapon select instead of icons<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
===$Use 3d weapon select:===<br />
{{Table224|<br />
*Whether or not to use 3D models for weapon select instead of animations<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Default weapon select effect:===<br />
{{Table3615|<br />
*This specifies which effect to use for weapon select animations when no .ani can be found, or the 3d weapon select effect is active. This will default to the FS2 effect.<br />
*Syntax: '''''String'''''<br />
*Possible options are "FS2", "FS1", and "off"}}<br />
<br />
<br />
===$Use 3d weapon icons:===<br />
{{Table224|<br />
*Whether or not to use 3D models for weapons in weapon select instead of icons<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Use 3d overhead ship:===<br />
{{Table224|<br />
*Whether or not to use 3D models for ship overhead view instead of a bitmap in weapon select<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Default overhead ship style:===<br />
{{Table224|<br />
*This specifies which style of overhead view to use if 3d overhead view is active<br />
*Syntax: '''''String'''''<br />
*Possible options are "ROTATE" or "TOPVIEW"}}<br />
<br />
<br />
===$Weapons inherit parent collision group:===<br />
{{Table3615|<br />
*When set to true, Weapons fired by a ship will inherit their parents' collision group setting.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Flight controls follow eyepoint orientation:===<br />
{{Table371|<br />
*Specifies that if the player ship's eyepoint happens to rotate into a non-standard orientation, pitch and yaw axes should stay relative to the eyepoint orientation, not the ship. Note that this does not affect the pitch/yaw turning speed, which always remains relative to the ship.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Beams Use Damage Factors:===<br />
{{Table371|<br />
*Specifies that beam weapons will use the tabled damage factors for Armour, Shields and Subsystems. Default is false (i.e. all factors are treated as 1.0)<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Default fiction viewer UI:===<br />
{{Table373|<br />
*Specifies which fiction viewer layout to use in missions that don't specify one. Possible values are as follows:<br />
**"FS2": Standard layout. Requires (2_)fictionviewer and (2_)fictionviewer-m to be present in data\interface.<br />
**"WCS": Moves the "Accept" button to the lower-left corner of the screen. Requires (2_)fictionviewerb and (2_)fictionviewer-mb to be present in data\interface.<br />
**"auto": Selects "WCS" if the appropriate files are present; otherwise, selects "FS2". This is the default setting.}}<br />
<br />
<br />
===$Movie subtitle font:===<br />
{{Table382|<br />
*Specifies which font should be used for displaying subtitles in the cutscene player. This should be the name given to this font in the fonts table. Since movie subtitles can contain Unicode text it is a good idea to enable Unicode mode when movie subtitles are used but this is not enforced by this option.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Disable built-in translations:===<br />
{{Table382|<br />
*Turns off hard-coded translations, e.g. Transport -> Transporter in German. All strings will either use their XSTR entry or else not be translated.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Weapon shockwave damage respects huge ship flags:===<br />
{{Table382|<br />
*Controls whether weapon shockwaves will respect the huge/supercap ship flags. In retail they do not.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Enable external default scripts:===<br />
{{Table382|<br />
*Enables the loading of external scripts with the same name as a built-in script. Otherwise, uses the version of the script included in the executable (currently, just cfile_require.lua).<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Player warpout speed:===<br />
{{Table190|<br />
*Defines the speed the player must reach to warp out.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''40.0'''''}}<br />
<br />
<br />
===$Target warpout match percent:===<br />
{{Table190|<br />
*Defines how close to the warpout speed the player needs to be to actually warp out.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.05''''' (5%)}}<br />
<br />
<br />
===$Minimum player warpout time:===<br />
{{Table190|<br />
*The [[Ships.tbl#.24Warpout_Engage_Time:|default amount of time]], in seconds, warping out will take before actually starting to check whether the player is the right speed.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''3.0'''''}}<br />
<br />
<br />
===$Enable in-game options:===<br />
{{Table190|<br />
*Experimental mode whereby various settings can be modified by FSO while it's still running, rather than being set by the launcher before execution. Requires custom assets for the in-game options menu to actually be able to change the settings.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Dinky Shockwave Default Multiplier:===<br />
{{Table190|<br />
*Amount of damage, as a multiple of normal shockwave damage, assigned to a weapon's [[Weapons.tbl#.24Dinky shockwave:|dinky shockwave]] by default. To get the same behavior FSO had from 2005-2019, set this to 0.25.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Shockwaves Always Damage Bombs:===<br />
{{Table202|<br />
*Enables all bombs being damaged by shockwaves. Previously only those marked with flags could be damaged.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Shockwaves Damage All Object Types Once:===<br />
{{Table202|<br />
*Keeps any object from being damaged more than once by a shockwave. The default behavior is for asteroids and flagged missiles to be damaged every frame by the shockwave.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Shockwaves Inherit Parent Weapon Damage Type:===<br />
{{Table224|<br />
*When enabled, the shockwaves of weapons that have a defined damage type automatically inherit that damage type, rather than dealing "typeless" damage. As this behavior is more intuitive than when this flag is disabled, mods targeting 22.4 or newer versions of FSO will have it enabled by default.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''True''''' for mods targeting 22.4 or newer versions of FSO, otherwise '''''False'''''}}<br />
<br />
<br />
===$Inherited Shockwave Damage Type Added Suffix:===<br />
{{Table224|<br />
*When combined with "$Shockwaves Inherit Parent Weapon Damage Type:", this string is added to the inherited damage type to define the shockwave's damage type. For example, if a weapon has the damage type "heavy" and the provided suffix is "-shock", then that weapon's shockwave's damage type would default to "heavy-shock".<br />
*Note: When defined, this also implicitly sets the equivalent value for dinky shockwaves, below.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Inherited Dinky Shockwave Damage Type Added Suffix:===<br />
{{Table224|<br />
*The same as "$Inherited Shockwave Damage Type Added Suffix:", except specifically for "dinky" shockwaves.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Default Shockwave Damage Type:===<br />
{{Table224|<br />
*If a weapon's shockwave doesn't have a damage type set, it will have this damage type instead (when "$Shockwaves Inherit Parent Weapon Damage Type:" is enabled, this will only be used if the weapon itself also doesn't have a damage type set).<br />
*Note: When defined, this also implicitly sets the equivalent value for dinky shockwaves, below.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Default Dinky Shockwave Damage Type:===<br />
{{Table224|<br />
*The same as "$Default Shockwave Damage Type:", except specifically for "dinky" shockwaves.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Use Engine Wash Intensity:===<br />
{{Table190|<br />
*Allows the game to use the [[ships.tbl#.24Intensity::|Intensity]] value when calculating Engine Wash effects. <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Swarmers Lead Targets:===<br />
{{Table202|<br />
*Causes swarm missiles to lead their targets by default, and will make use of [[Weapons.tbl#.2BTarget_Lead_Scaler:|Target Lead Scaler]] if specified, like normal aspect seekers. <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Damage Threshold for Weapons Subsystems to Trigger Turret Inaccuracy:===<br />
{{Table202|<br />
*Specifies the damage threshold for when turrets become less accurate due to weapon subsystem damage. In other words, how damaged do a ship's aggregated weapons systems have to be before the turrets become inaccurate? Value must be between 0.0-1.0 (includes 0.0 and 1.0). <br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''0.7'''''}}<br />
<br />
<br />
===$AI use framerate independent turning:===<br />
{{Table202|<br />
*Without this flag, missiles turn rate is directly dependent on the current framerate. When enabled their turn rate will be consistent, with the "true" turning taken to be observed turning at 60fps. This flag also affects ships, but the instability is only apparent at extremely low framerates, and so the change will not be apparent. <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''True'''''}}<br />
<br />
<br />
====+AI respect tabled turn time and rotdamp:====<br />
{{Table202|<br />
*Due to complicated physics issues caused by retail not using the above method, tabled turn times on ships and missiles are not representative of actual observed turn times. The above flag makes it consistent, but this flag will make it accurate to what is actually listed in the table. <br />
*Additionally, rotdamp is now used properly by the AI in a similar manner to players. More rotdamp will result in slower rotational acceleration, and less results in faster acceleration.<br />
*NOTE: BEWARE OF ADDING THIS FLAG TO AN EXISTING MODPACK. NEARLY EVERY SINGLE TURN TIME WILL NEED TO BE CHANGED.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Player starts in third person/chase view by default:===<br />
{{Table212|<br />
*When this flag is set, a player will start the mission in the chase view, not in the cockpit view.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Custom briefing icons always override standard icons:===<br />
{{Table214|<br />
*Custom ship briefing icons will always be shown when the briefing icon is a ship, but not when it is a non-ship icon such as a planet. Set this flag to use custom briefing icons in all cases.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Enable discord rich presence:===<br />
{{Table224|<br />
*Enables or disables the built-in Discord game-status reporting.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''True'''''}}<br />
<br />
<br />
===$Always hide hidden ships in hotkey list:===<br />
{{Table224|<br />
*Whether or not to always hide ships with HIDDEN hotkey (set in FRED), even in the in-mission hotkey menu.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
==#END==<br />
Required. The last line of the table must be #END<br />
<br />
<br />
<br />
==Sample Entry==<br />
<br />
#CAMPAIGN SETTINGS<br />
$Default Campaign File Name: NewCampaignFile<br />
<br />
#Ignored Campaign File Names<br />
$Campaign File Name: FreeSpace2.fc2<br />
<br />
#HUD SETTINGS<br />
$Directive Wait Time: 5000<br />
<br />
#SEXP SETTINGS<br />
$Loop SEXPs Then Arguments: True<br />
<br />
#OTHER SETTINGS<br />
$Fix Turret Collisions: True<br />
<br />
#END<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64395
Compression Support
2023-01-03T15:42:11Z
<p>Cyborg17: /* LZ41 Tests */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
0:50 - NVME Uncompressed<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
<br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br><br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file: the offset table, the num offsets, the block size, and the original filesize. Normally, those would be on a container and cached on container load, but it is not possible for loose files.<br><br><br />
Due to the 31 chars filename limit, the idea of adding an extra extension to the files was dropped, as changing the filename length was just not an option, and since loose files were not getting an extra extension, an uncompressed .pof would be named the same as a compressed .pof. As a result, no need to store compressed files on a different container rather than plain .VP was seen as needed as there were already no difference for loose files. This was later proven to be a mistake because it could cause user confusion.<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The .VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recommended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64394
Compression Support
2023-01-03T15:41:24Z
<p>Cyborg17: /* Future Improvements */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br><br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file: the offset table, the num offsets, the block size, and the original filesize. Normally, those would be on a container and cached on container load, but it is not possible for loose files.<br><br><br />
Due to the 31 chars filename limit, the idea of adding an extra extension to the files was dropped, as changing the filename length was just not an option, and since loose files were not getting an extra extension, an uncompressed .pof would be named the same as a compressed .pof. As a result, no need to store compressed files on a different container rather than plain .VP was seen as needed as there were already no difference for loose files. This was later proven to be a mistake because it could cause user confusion.<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The .VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recommended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64392
Compression Support
2023-01-03T02:17:28Z
<p>Cyborg17: /* LZ41 Design Choices */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br><br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file: the offset table, the num offsets, the block size, and the original filesize. Normally, those would be on a container and cached on container load, but it is not possible for loose files.<br><br><br />
Due to the 31 chars filename limit, the idea of adding an extra extension to the files was dropped, as changing the filename length was just not an option, and since loose files were not getting an extra extension, an uncompressed .pof would be named the same as a compressed .pof. As a result, no need to store compressed files on a different container rather than plain .VP was seen as needed as there were already no difference for loose files. This was later proven to be a mistake because it could cause user confusion.<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64391
Compression Support
2023-01-03T02:13:48Z
<p>Cyborg17: /* LZ41 Compressor Guidelines */ Undo mistake</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br><br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file, the offset table, the num offsets, the block size, the original filesize, normaly those would be on a container and cached on container load, but it is not possible for loose files.<br><br />
Due to the 31 chars filename limit, the idea of adding a extra extension to the files was dropped, as changing the filename lenght was just not an option, and since loose files were getting no extra extension, a uncompressed .pof would be named the same as a compressed .pof, as a result of this, no need to store compressed files on a diferent container rather than plain .VP was seen as needed as there were already no difference for loose files. This will later been prove to be a mistake because it could cause user confunsion.<br />
<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64390
Compression Support
2023-01-03T02:13:26Z
<p>Cyborg17: /* LZ41 Compressor Guidelines */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
|Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
|.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
|.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
|.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
|.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br><br />
|No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file, the offset table, the num offsets, the block size, the original filesize, normaly those would be on a container and cached on container load, but it is not possible for loose files.<br><br />
Due to the 31 chars filename limit, the idea of adding a extra extension to the files was dropped, as changing the filename lenght was just not an option, and since loose files were getting no extra extension, a uncompressed .pof would be named the same as a compressed .pof, as a result of this, no need to store compressed files on a diferent container rather than plain .VP was seen as needed as there were already no difference for loose files. This will later been prove to be a mistake because it could cause user confunsion.<br />
<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64389
Compression Support
2023-01-03T02:12:49Z
<p>Cyborg17: /* LZ41 Compressor Guidelines */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br><br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file, the offset table, the num offsets, the block size, the original filesize, normaly those would be on a container and cached on container load, but it is not possible for loose files.<br><br />
Due to the 31 chars filename limit, the idea of adding a extra extension to the files was dropped, as changing the filename lenght was just not an option, and since loose files were getting no extra extension, a uncompressed .pof would be named the same as a compressed .pof, as a result of this, no need to store compressed files on a diferent container rather than plain .VP was seen as needed as there were already no difference for loose files. This will later been prove to be a mistake because it could cause user confunsion.<br />
<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64388
Compression Support
2023-01-03T02:12:15Z
<p>Cyborg17: /* LZ41 Compressor Guidelines */</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header ("LZ41") <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not. A higher block size will make the large compressed files smaller, but will also make FSO use slightly more RAM.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
.fc2, .fs2, .tbl, .tbm, .eff: Text files should be ignored. Compressing them works fine, but there is little to be gained and the only thing it does is to make the file unreadeable by text editors. <br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some marginal gains, but it is just not worth trying. With ogg its the same problem as with movie files, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br />
.png and apng: These are already compressed and 99% of the time end up with a negative ratio. pngs that aren't compressed are going to go down in size, considerably, but this is uncommon. It might be possible to check the png header for the compression value they already have before trying to compress them.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file, the offset table, the num offsets, the block size, the original filesize, normaly those would be on a container and cached on container load, but it is not possible for loose files.<br><br />
Due to the 31 chars filename limit, the idea of adding a extra extension to the files was dropped, as changing the filename lenght was just not an option, and since loose files were getting no extra extension, a uncompressed .pof would be named the same as a compressed .pof, as a result of this, no need to store compressed files on a diferent container rather than plain .VP was seen as needed as there were already no difference for loose files. This will later been prove to be a mistake because it could cause user confunsion.<br />
<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Compression_Support&diff=64386
Compression Support
2023-01-03T00:59:36Z
<p>Cyborg17: /* LZ41 */ Grammar and spelling</p>
<hr />
<div>== '''Compression Support''' ==<br />
<br />
The major problem in supporting compressed files is random access, FSO needs to be able to do all operations on a compressed file as it would normally do with any file; fopen(), fseek(), fread(), fclose(). Whiout having to decompress the entire file and store it in ram to do those operations. .pof parsing specially uses a lot of fseeks() and small freads(). Generally, file compression algos are intended to decompress the entire file from start to finish in one go and thus random access its non standart for the compression format.<br />
<br />
In FSO 21.2.0 the first compression support was merged into the code, the first implementation uses LZ4/LZ4-HC and it is called internally as "LZ41". The LZ41 implementation is mainly intended for loose files but adding those inside VPs is also supported.<br />
<br />
<br />
== LZ41 ==<br />
The LZ41 design is similar to the lz4 random access example. It uses the lz4 stream compression, with an int table which stores the offsets that indicate at what compressed block the original file position is, an int to indicate the number of these offsets, and the original filesize and blocksize. The major difference being that instead of using a dictionary, the stream is reset at each block, making them independent from each other, and thus you can pick any block you want and decompress that block at will.<br />
Resetting the stream rather than use a dictionary may be less efficient (this is untested as the time of writing this article), but it was the only way to do it for individual files without having to embed the dictionary too.<br />
The LZ41 implementation is non-LZ4 format standard, just like the official example for random access is, as the LZ4 data format does not seems to consider what is needed for random access.<br />
FSO checks for the file header on fopen() and if the file is compressed then the logic for compressed files is used.<br />
<br />
== LZ41 Data Format ==<br />
4 byte header (0x31345A4C // "14ZL" -> "LZ41", inverted) <br><br />
N Blocks<br><br />
N offsets<br><br />
int num_offsets<br><br />
int original_filesize<br><br />
int blocksize<br><br />
<br />
[[File:lz41_structure.png|300px]]<br />
<br />
== LZ41 Tests ==<br />
'''Uncompressed MVP 4.4.1'''<br><br />
12.9GB - Space used on Disk<br><br />
<br><br />
'''Compressed MVP 4.4.1 Block Size: 65536 LZ4-HC L6'''<br><br />
7.01GB - Space used on disk<br><br />
Compression time: 5 minutes (1 thread)<br><br />
<br><br />
'''MVP 4.4.1 - All FS2 Models mission load time'''<br><br />
0:50 - NVME Uncompressed<br><br />
0:50 - NVME Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:01 - SSD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
1:02 - SSD Uncompressed<br><br />
1:49 - HDD Compressed LZ4-HC L6, 7.01GB, BS: 65536<br><br />
2:30 - HDD Uncompressed<br><br />
<br><br />
== LZ41 Compressor Guidelines ==<br />
'''Block Size'''<br><br />
Block size is set by the compressor 8192, 16384, 65536 block sizes were all tested, higher values are untested and may work or not, a higher block size will make the large compressed files smaller, higher block size will also make FSO to use more RAM but not by much.<br><br />
<br><br />
'''Ignore text based file formats'''<br><br />
Text files should be ignored, they do work fine, but there is no much is to be gained and the only thing it does is to make the file unreadeable by text editors: .fc2, .fs2, .tbl, .tbm, .eff.<br><br />
<br><br />
'''Movies are already compressed'''<br><br />
.mp4,.ogg,.mve,.webm: the ratio will be negative most of the time, and when is not, you are just saving a few kb, maybe a mb or two.<br><br />
<br><br />
'''Audio files'''<br><br />
.ogg, .wav: .wav may give you some little gains but it is just not worth to try, with ogg its the same problem as with the movies, these files are already compressed.<br><br />
<br><br />
'''pngs'''<br />
pngs are already compressed and 99% of the time end up with a negative ratio, and since mods use apngs, you are going to waste time trying to compress them. PNG that arent compressed are going to go down in size, considerably, but this is uncommon, maybe check the png header for the compression value they already have before trying to compress.<br><br />
<br><br />
'''Do not keep files that end up with negative ratios'''<br />
No matter if those files are inside a vp or they are loose files, if a compressed file end up being bigger than the original one, it must be discarded.<br><br />
<br><br />
<br />
== Compression Function Example==<br />
<br />
[[File:lz41_example.png|300px]]<br />
<br><br />
Source: VPC Compressor tool<br />
<br />
== LZ41 Design Choices ==<br />
A non standart format was used since the official random access example was already breaking the lz4 frame format.<br><br />
Additional data were added trailing to each file, the offset table, the num offsets, the block size, the original filesize, normaly those would be on a container and cached on container load, but it is not possible for loose files.<br><br />
Due to the 31 chars filename limit, the idea of adding a extra extension to the files was dropped, as changing the filename lenght was just not an option, and since loose files were getting no extra extension, a uncompressed .pof would be named the same as a compressed .pof, as a result of this, no need to store compressed files on a diferent container rather than plain .VP was seen as needed as there were already no difference for loose files. This will later been prove to be a mistake because it could cause user confunsion.<br />
<br />
<br />
== Future Improvements ==<br />
At some point in 23.X.X versions a new guideline for compressing files will be requiered.<br><br />
- The extra extension ".lz41" will be added to loose files. Since recent improvements in FSO code allows for loose files to use more than 31 characters. FSO will ignore this extra extension after load and thus "ship.pof.lz41" will be considered as "ship.pof".<br><br />
- New VP container: .VPC<br><br />
The VPC container format is identical to a .VP container in structure and limits, with one key difference: It may contain uncompressed files just like any normal VP, but it has to contain at least 1 compressed file.<br />
Compressed files stored inside a .vpc container must not have the .lz41 extension or its name changed in any way.<br><br />
While .VP can still tecnically be used to store compressed files, it is recomended not to.<br />
<br><br />
None of these changes break compatibility with files compressed prior to these changes, but just as with any new feature or major changes, older versions of FSO can not use compressed files in this new way.<br />
<br />
== Versioning System ==<br />
In order to avoid compatibility issues with future changes or additions, the file header is used in all fopen(), fseek(), fread() operations, the header tells FSO what to do in those operations, so in the future a new and better way to support compression is found, or a better algo, a different header must be used, lets assume "LZ42", this means FSO can handle "LZ41" files in a way and "LZ42" files in a totally different way whiout breaking any compatibility.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Launcher_engine_interaction&diff=63835
Launcher engine interaction
2022-07-13T14:58:46Z
<p>Cyborg17: /* fs2_open.ini */ Mention when we switched over to exclusive .ini use</p>
<hr />
<div>A launcher for the FreeSpace Open engine is responsible for letting the user configure what mod data FSO should use and also how it should use the available hardware (e.g. joysticks or sound devices). It is also important with what flags FSO is started to allow how the game behaves and looks like. In order for this to work, the launcher needs to follow certain conventions which allow FSO to interpret the data the launcher sets for the engine.<br />
<br />
This article describes the situation as of FSO version 3.8.0. Previous versions used different configuration mechanisms but those will not be listed here.<br />
<br />
=Writing data for the engine to read=<br />
The engine will look for the files described below in the "preferences" path. This path is determined by using the SDL2 function <tt>SDL_GetPrefPath("HardLightProductions", "FreeSpaceOpen")</tt>. Newer engine versions have a way of getting this information without having to link against SDL2, see [[#JSON output|JSON output]] for an alternative way of determining this path.<br />
<br />
There are two major configuration mechanisms FSO uses for reading data which was set by the launcher:<br />
<br />
==data/cmdline_fso.cfg==<br />
This file should contain all the command line options FSO should use. They should be on a single line and parameters which contain spaces (e.g. mods line "Vassago's Dirge") must be enclosed in quotes:<br />
<br />
<pre><br />
-mod "Vassago's Dirge,MediaVPs_2014" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -fb_thrusters -enable_shadows -cache_bitmaps -dualscanlines -targetinfo -orbradar -rearm_timer -ballistic_gauge -3dwarp -snd_preload -nosound -nomovies -fps -window -no_unfocused_pause -benchmark_mode -fxaa_preset 6 -ambient_factor 100 -spec_exp 15 -spec_point 1.2 -spec_static 1.5 -spec_tube 1.5 -ogl_spec 20 -bloom_intensity 45<br />
</pre><br />
<br />
The available flags should not be hardcoded by the launcher. Instead, it should use [[#Getting a list of supported flags and devices|-get_flags]] for determining which flags are supported by the launcher.<br />
<br />
==fs2_open.ini==<br />
This file contains more "permanent" options and is saved in a standard ini format. All operating systems were switched to using this file instead of registry entries as of 3.8.0. The file is separated into multiple "sections" which each contain options specific to that part of the engine:<br />
<br />
<br />
; Default : This is the default section used by FSO if no specific section is selected.<br />
<br />
<br />
:; VideocardFs2open<br />
:: This value determines what display mode FSO will use. It has the following format: <tt>[API]-([width]x[height])x[bits] bit</tt>. <tt>[API]</tt> must be exactly 4 characters long. The only valid option here is "OGL " for using the OpenGL API. The other options are pretty obvious. The width and height should match one of the video modes supported by the display (see [[#JSON output|JSON output]] for a way of getting this information without linking against SDL2). The <tt>bits</tt> parameter should either be 16 or 32 but in almost all cases this should be hard-coded to 32.<br />
<br />
:; OGL_AntiAliasSamples<br />
:: This should be the level of anti-aliasing desired for OpenGL rendering. This should be the multiple of 2 for how many samples should be taken (e.g. a value of 3 means 8x MSAA). If set to 0 anti-aliasing will be disabled. <br />
:::'''Note:''' As of FSO 3.8.0 this option has no effect!<br />
<br />
:; TextureFilter<br />
:: Sets how textures should be filtered. Valid values are 0 for bilinear filtering and 1 for trilinear filtering.<br />
<br />
:; OGL_AnisotropicFilter<br />
:: Specifies the level of anisotropic texture filtering if supported by the OpenGL implementation.<br />
<br />
:; CurrentJoystickGUID<br />
:: Specifies the GUID of the primary joystick. The case of alphabetic characters will be normalized so it doesn't matter if this string is upper or lower case. This GUID can be determined by using SDL2 or with the [[#JSON output|JSON output]] (if supported by the current build).<br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
<br />
:; CurrentJoystick<br />
:: Specified the index of the primary joystick. This will only be used if there are multiple joysticks with the same GUID. This is the index used to open the joystick in SDL2 or the index into the joysticks array in the [[#JSON output|JSON output]]. <br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
<br />
:; Joy0ID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this ID from the ID listed in the exported flags.txt. For details on how to export visit the [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
<br />
:; Joy0GUID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this GUID from the GUID listed in the exported flags.txt, matching the entry used for Joy0ID. For details on how to export visit the wiki's [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
<br />
:; Joy1ID<br />
:: Same as Joy0ID, but for defining your second joystick.<br />
<br />
:; Joy1GUID<br />
:: Same as Joy0GUID, but for defining your second joystick.<br />
<br />
:; Joy2ID<br />
:: Same as Joy0ID, but for defining your third joystick.<br />
<br />
:; Joy2GUID<br />
:: Same as Joy0GUID, but for defining your third joystick.<br />
<br />
:; Joy3ID<br />
:: Same as Joy0ID, but for defining your fourth joystick.<br />
<br />
:; Joy3GUID<br />
:: Same as Joy0GUID, but for defining your fourth joystick.<br />
<br />
:; LastPlayer<br />
:: The name of the last pilot used. Used by the engine to determine which pilot should be at the top of the list and pre-loaded.<br />
<br />
:; GammaD3D<br />
:: The gamma (brightness) value to be used to display the game. <br />
<br />
:; EnableJoystickFF<br />
:: Used to determine if force feedback should be enabled if the joystick supports it. If using the [[#JSON output|JSON output]] then it's possible to determine if a joystick supports this by looking at the '''is_haptic''' field of the joystick object.<br />
<br />
:; EnableHitEffect<br />
:: This can be used to enable or disable a directional hit effect if Force Feedback is enabled.<br />
<br />
:; Language<br />
:: Sets the language of the game. Possible values are "English", "German", "French", and "Polish".<br />
<br />
:; ForceFullscreen : If set to 1, forces the game to start in full screen mode.<br />
<br />
:; ScreenshotNum : The number of screenshots taken by the player.<br />
<br />
:; MaxFPS : Used to set the framerate cap for the game. If set to zero, framerate cap is disabled.<br />
<br />
:; ForcePort : Used to force a specific port for multiplayer connections<br />
<br />
:; ConnectionSpeed<br />
:: Used for setting how fast the internet connection is. Possible values are "Slow", "56K", "ISDN", "Cable", and "Fast". Defaults to "Fast" for non-windows OS's.<br />
<br />
:; SpeechTechroom : Enables or disables text-to-speech in the techroom. Valid values are 1 and 0. Defaults to 0.<br />
<br />
:; SpeechBriefings : Enables or disables text-to-speech in the briefings. Valid values are 1 and 0. Defaults to 0.<br />
<br />
:; SpeechIngame : Enables or disables text-to-speech in game. Valid values are 1 and 0. Defaults to 0.<br />
<br />
:; SpeechMulti : Enables or disables text-to-speech in the multiplayer. Valid values are 1 and 0. Defaults to 0.<br />
<br />
:; SpeechVolume : The volume scale of the text-to-speech sound. Should be in the range of 0 to 100.<br />
<br />
:; SpeechVoice : Sets which voice to use. See [[#JSON output|JSON output]] for a cross-platform way of determining which voices are available.<br />
<br />
:; PXOBanners : Whether or not to use Banners for multiplayer. Valid values are 1 and 0. Defaults to 1.<br />
<br />
:; LowMem : Use Low Memory mode (Allows 2d animations to drop frames)<br />
<br />
:; ProcessorAffinity : Set which processor should be assigned to the game. Defaults to 2. This setting applies only on Windows.<br />
<br />
:; ImageExportNum : The index of the next file to be dds exported from FSO.<br />
<br />
<br />
<br />
; Video : Contains options specific to the video display of FSO.<br />
<br />
<br />
:; Display<br />
:: Used to choose on which display FSO should be displayed on. The [[#JSON output|JSON output]] contains a list of display detected on the system and their index. Alternatively, SDL2 can be used to enumerate this information.<br />
<br />
<br />
; ForceFeedback : Contains options for configuring the force feedback subsystem of FSO.<br />
<br />
<br />
:; Strength : A percentage scale of how strong the effect should be. 0 means completely disabled, 100 means full strength.<br />
<br />
<br />
; Sound : Contains options specific to how sound should be handled in FSO.<br />
<br />
<br />
:; Quality : Specifies the quality of the sound output. The value should be in [1, 3] where 3 is the highest quality and 1 is the lowest.<br />
<br />
:; SampleRate : Explicitly specifies the sample rate the OpenAL context should use.<br />
<br />
:; EnableEFX : Enables or disables usage of OpenAL EFX.<br />
<br />
:; PlaybackDevice : Sets the playback device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available playback devices.<br />
<br />
:; CaptureDevice : Sets the capture device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available capture devices.<br />
<br />
<br />
; PXO : Contains settings related to the PXO multiplayer service<br />
<br />
<br />
:; Login : The login number for the player's account<br />
<br />
:; Password : The password the player uses for logging into the PXO service (not the account's password)<br />
<br />
:; SquadName : The Squad Name the player uses.<br />
<br />
=Getting a list of supported flags and devices=<br />
As of 3.8.1, FSO has two ways of determining what flags are supported by the engine. The JSON output has more information and should be easier to parse but is only supported by newer builds.<br />
<br />
The flags can be queries by passing the <tt>-get_flags</tt> option to FSO (this should be done directly instead of overwriting <tt>cmdline_fso.cfg</tt>). When doing this, the command line should also contain the <tt>-parse_cmdline_only</tt> to make sure that FSO only reads the actual command line and not <tt>cmdline_fso.cfg</tt>. This avoids issues when <tt>cmdline_fso.cfg</tt> contains options not supported by the selected FSO binary. Since 3.8.1, <tt>-get_flags</tt> optionally accepts one string parameter for selecting how the flags data is formatted and where it is written.<br />
<br />
If FSO does not support the parameter for <tt>-get_flags</tt> then it will be ignored silently and the legacy binary format will be used. Every version before 3.8.1 will behave this way. This allows to gracefully degrade to the old legacy behavior if support for older builds is desired. Also, if the build does not support the given <tt>-get_flags</tt> mode then it will print the string "OUTPUT TYPE NOT SUPPORTED!" to <tt>stdout</tt> and default to the version 1 of the JSON output. This is designed so that it is easy for a launcher to be notified if the selected format is not supported.<br />
<br />
==JSON output==<br />
This mode for <tt>-get_flags</tt> was introduced in 3.8.1 and can be enabled by using "json_v1" as the mode parameter <tt>-get_flags</tt> (e.g. <tt>-get_flags json_v1</tt>). In this mode FSO will output a JSON formatted data structure to stdout which will contain information about the supported flags and available devices that FSO detected. The object structure of this output is described in the following by using hierarchical lists for symbolizing if an object key is a child of another element. The root of the output will be a JSON object.<br />
<br />
; "version" : Contains information about the version of this executable.<br />
:; "full" : The full version string as is displayed in the main menu.<br />
:; "major" : The major part of the version as an integer number.<br />
:; "minor" : The minor part of the version as an integer number.<br />
:; "build" : The build part of the version as an integer number.<br />
:; "has_revision" : A boolean to indicate if this version has a valid revision part.<br />
:; "revision" : An integer indicating the revision part of the build version.<br />
:; "revision_str" : A string indicating the full revision part of the build version. This may contain the Git hash of the commit in the case of nightly builds or something like "RC2" for release candidates.<br />
<br />
; "easy_flags" : This is an array of the available "Easy flags" configuration names. The flags array will contain two bitfields where a bit at position n (starting from the last significant bit) will reference the entry of this array which is at position n.<br />
<br />
; "flags" : This is an array of all the flags supported by this binary.<br />
:; "name" : A string which specifies the name of the flag (e.g. <tt>-soft_particles</tt>).<br />
:; "description" : A short description of what this flag does. This should be displayed in the launcher overview.<br />
:; "fso_only" : A boolean indicating whether this flag is only available in FSO builds or not.<br />
:; "on_flags" : An integer which represents a bitfield for which easy flags enable this flag. If the bit n is set in this integer then selecting the easy flag at index n will enable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "off_flags" : An integer which represents a bitfield for which easy flags disable this flag. If the bit n is set in this integer then selecting the easy flag at index n will disable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "type" : Specifies the category of this flag. Typically all flags with the same category will be grouped together.<br />
:; "web_url" : Specifies an URL where more information about this flag can be found.<br />
<br />
; "caps"<br />
: A string array of what capabilities this build has. The following strings may be present in the array:<br />
:; OpenAL : This build uses OpenAL for sound.<br />
:; No D3D : This build has no support for Direct3D rendering, only OpenGL.<br />
:; New Sound : This build has support for the new, enhanced sound code.<br />
:; SDL : This build uses SDL on all platforms.<br />
<br />
; "voices" : An array of all the possible voice names detected by FSO. If a specific voice should be used then to set the <tt>SpeechVoice</tt> key to the index of that voice in this array.<br />
<br />
; "displays" : Contains information about all the displays currently connected to the system.<br />
:; "index" : The index in the array of this display. This should be used for the value of <tt>Video.Display</tt><br />
:; "name" : A more or less human-readable name of this display.<br />
:; "x" : The x offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the x-offset relative to the other displays.<br />
:; "y" : The y offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the y-offset relative to the other displays.<br />
:; "width" : The x-resolution of this display.<br />
:; "height" : The y-resolution of this display.<br />
:; "modes" : Possible video modes of this display.<br />
::; "x": The x-resolution of this video mode.<br />
::; "y": The y-resolution of this video mode.<br />
::; "bits": The bit depth of this video mode (this is typically 32).<br />
<br />
; "openal" : Contains information about detected OpenAL properties and devices.<br />
:; "version_major" : The major version of OpenAL as detected by FSO.<br />
:; "version_minor" : The minor version of OpenAL as detected by FSO.<br />
:; "default_playback" : The default playback device as reported by OpenAL. It is possible that this device does not appear in the playback device list.<br />
:; "default_capture" : The default capture device as reported by OpenAL. It is possible that this device does not appear in the capture device list.<br />
:; "playback_devices" : A string array of all the playback devices detected by OpenAL.<br />
:; "capture_devices" : A string array of all the capture devices detected by OpenAL.<br />
<br />
; "joysticks" : An array of all the joysticks that FSO detected.<br />
:; "name" : A string which specifies a human-readable name of this joystick.<br />
:; "guid" : The GUID ('''G'''lobally '''U'''nique '''Id'''entifier) of this joystick. This should be used for setting <tt>CurrentJoystickGUID</tt> in <tt>fs2_open.ini</tt><br />
:; "num_axes" : The number of axes detected on this joystick.<br />
:; "num_balls" : The number of balls detected in this joystick.<br />
:; "num_buttons" : The number of buttons detected on this joystick.<br />
:; "num_hats" : The number of hats detected on this joystick.<br />
:; "is_haptic" : A boolean indicating if this device supports haptic (Force Feedback) effects.<br />
<br />
; "pref_path" : A string indicating where the preferences path is located.<br />
<br />
==Binary output==<br />
The binary output is basically a dump of the internal data structure used by FSO for representing the supported flags. If <tt>-get_flags</tt> is called without a parameter or with the parameter <tt>binary</tt> then this output mode will be chosen. In this mode FSO will create a file called "<tt>flags.lcg</tt>" in the working directory of the executable and write the binary representation of the flags in that file. The exact format will not be documented here but there are multiple examples of how to parse this (e.g. wxLauncher or Knossos). Please note that the binary format depends on the current architecture and is not normalized to little- or big-endian. Since FSO currently only support x86 based machines this file will always be little endian encoded.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Launcher_engine_interaction&diff=63829
Launcher engine interaction
2022-07-13T02:59:59Z
<p>Cyborg17: /* fs2_open.ini */</p>
<hr />
<div>A launcher for the FreeSpace Open engine is responsible for letting the user configure what mod data FSO should use and also how it should use the available hardware (e.g. joysticks or sound devices). It is also important with what flags FSO is started to allow how the game behaves and looks like. In order for this to work, the launcher needs to follow certain conventions which allow FSO to interpret the data the launcher sets for the engine.<br />
<br />
This article describes the situation as of FSO version 3.8.0. Previous versions used different configuration mechanisms but those will not be listed here.<br />
<br />
=Writing data for the engine to read=<br />
The engine will look for the files described below in the "preferences" path. This path is determined by using the SDL2 function <tt>SDL_GetPrefPath("HardLightProductions", "FreeSpaceOpen")</tt>. Newer engine versions have a way of getting this information without having to link against SDL2, see [[#JSON output|JSON output]] for an alternative way of determining this path.<br />
<br />
There are two major configuration mechanisms FSO uses for reading data which was set by the launcher:<br />
<br />
==data/cmdline_fso.cfg==<br />
This file should contain all the command line options FSO should use. They should be on a single line and parameters which contain spaces (e.g. mods line "Vassago's Dirge") must be enclosed in quotes:<br />
<br />
<pre><br />
-mod "Vassago's Dirge,MediaVPs_2014" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -fb_thrusters -enable_shadows -cache_bitmaps -dualscanlines -targetinfo -orbradar -rearm_timer -ballistic_gauge -3dwarp -snd_preload -nosound -nomovies -fps -window -no_unfocused_pause -benchmark_mode -fxaa_preset 6 -ambient_factor 100 -spec_exp 15 -spec_point 1.2 -spec_static 1.5 -spec_tube 1.5 -ogl_spec 20 -bloom_intensity 45<br />
</pre><br />
<br />
The available flags should not be hardcoded by the launcher. Instead, it should use [[#Getting a list of supported flags and devices|-get_flags]] for determining which flags are supported by the launcher.<br />
<br />
==fs2_open.ini==<br />
This file contains more "permanent" options and is saved in a standard ini format. The file is separated into multiple "sections" which each contain options specific to that part of the engine:<br />
<br />
<br />
; Default : This is the default section used by FSO if no specific section is selected.<br />
<br />
<br />
:; VideocardFs2open<br />
:: This value determines what display mode FSO will use. It has the following format: <tt>[API]-([width]x[height])x[bits] bit</tt>. <tt>[API]</tt> must be exactly 4 characters long. The only valid option here is "OGL " for using the OpenGL API. The other options are pretty obvious. The width and height should match one of the video modes supported by the display (see [[#JSON output|JSON output]] for a way of getting this information without linking against SDL2). The <tt>bits</tt> parameter should either be 16 or 32 but in almost all cases this should be hard-coded to 32.<br />
:; OGL_AntiAliasSamples<br />
:: This should be the level of anti-aliasing desired for OpenGL rendering. This should be the multiple of 2 for how many samples should be taken (e.g. a value of 3 means 8x MSAA). If set to 0 anti-aliasing will be disabled. <br />
:::'''Note:''' As of FSO 3.8.0 this option has no effect!<br />
:; TextureFilter<br />
:: Sets how textures should be filtered. Valid values are 0 for bilinear filtering and 1 for trilinear filtering.<br />
:; OGL_AnisotropicFilter<br />
:: Specifies the level of anisotropic texture filtering if supported by the OpenGL implementation.<br />
:; CurrentJoystickGUID<br />
:: Specifies the GUID of the primary joystick. The case of alphabetic characters will be normalized so it doesn't matter if this string is upper or lower case. This GUID can be determined by using SDL2 or with the [[#JSON output|JSON output]] if supported by the current build).<br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; CurrentJoystick<br />
:: Specified the index of the primary joystick. This will only be used if there are multiple joysticks with the same GUID. This is the index used to open the joystick in SDL2 or the index into the joysticks array in the [[#JSON output|JSON output]]. <br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; Joy0ID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this ID from the ID listed in the exported flags.txt. For details on how to export visit the [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy0GUID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this GUID from the GUID listed in the exported flags.txt, matching the entry used for Joy0ID. For details on how to export visit the wiki's [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy1ID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy1GUID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy2ID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy2GUID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy3ID<br />
:: Same as above, for defining your fourth joystick.<br />
:; Joy3GUID<br />
:: Same as above, for defining your fourth joystick.<br />
:; LastPlayer<br />
:: The name of the last pilot used. Used by the engine to determine which pilot should be at the top of the list and pre-loaded.<br />
:; GammaD3D<br />
:: The gamma (brightness) value to be used to display the game. <br />
:; EnableJoystickFF<br />
:: Used to determine if force feedback should be enabled if the joystick supports it. If using the [[#JSON output|JSON output]] then it's possible to determine if a joystick supports this by looking at the '''is_haptic''' field of the joystick object.<br />
:; EnableHitEffect<br />
:: This can be used to enable or disable a directional hit effect if Force Feedback is enabled.<br />
:; Language<br />
:: Sets the language of the game. Possible values are "English", "German", "French", and "Polish".<br />
:; ForceFullscreen : If set to 1, forces the game to start in full screen mode.<br />
:; ScreenshotNum : The number of screenshots taken by the player.<br />
:; MaxFPS : Used to set the framerate cap for the game. If set to zero, framerate cap is disabled.<br />
:; ForcePort : Used to force a specific port for multiplayer connections<br />
:; ConnectionSpeed<br />
:: Used for setting how fast the internet connection is. Possible values are "Slow", "56K", "ISDN", "Cable", and "Fast".<br />
:; SpeechTechroom : Enables or disables text-to-speech in the techroom. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechBriefings : Enables or disables text-to-speech in the briefings. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechIngame : Enables or disables text-to-speech in game. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechMulti : Enables or disables text-to-speech in the multiplayer. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechVolume : The volume scale of the text-to-speech sound. Should be in the range of 0 to 100.<br />
:; SpeechVoice : Sets which voice to use. See [[#JSON output|JSON output]] for a cross-platform way of determining which voices are available.<br />
:; PXOBanners : Whether or not to use Banners for multiplayer. Valid values are 1 and 0. Defaults to 1.<br />
:; LowMem : Use Low Memory mode (Allows 2d animations to drop frames)<br />
:; ProcessorAffinity : Set which processor should be assigned to the game. Defaults to 2. This setting applies only on Windows.<br />
:; ImageExportNum : The index of the next file to be dds exported from FSO.<br />
<br />
<br />
; Video : Contains options specific to the video display of FSO.<br />
<br />
<br />
:; Display<br />
:: Used to choose on which display FSO should be displayed on. The [[#JSON output|JSON output]] contains a list of display detected on the system and their index. Alternatively, SDL2 can be used to enumerate this information.<br />
<br />
<br />
; ForceFeedback : Contains options for configuring the force feedback subsystem of FSO.<br />
<br />
<br />
:; Strength : A percentage scale of how strong the effect should be. 0 means completely disabled, 100 means full strength.<br />
<br />
<br />
; Sound : Contains options specific to how sound should be handled in FSO.<br />
<br />
<br />
:; Quality : Specifies the quality of the sound output. The value should be in [1, 3] where 3 is the highest quality and 1 is the lowest.<br />
:; SampleRate : Explicitly specifies the sample rate the OpenAL context should use.<br />
:; EnableEFX : Enables or disables usage of OpenAL EFX.<br />
:; PlaybackDevice : Sets the playback device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available playback devices.<br />
:; CaptureDevice : Sets the capture device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available capture devices.<br />
<br />
<br />
; PXO : Contains settings related to the PXO multiplayer service<br />
<br />
<br />
:; Login : The login number for the player's account<br />
:; Password : The password the player uses for logging into the PXO service (not the account's password)<br />
:; SquadName : The Squad Name the player uses.<br />
<br />
=Getting a list of supported flags and devices=<br />
As of 3.8.1, FSO has two ways of determining what flags are supported by the engine. The JSON output has more information and should be easier to parse but is only supported by newer builds.<br />
<br />
The flags can be queries by passing the <tt>-get_flags</tt> option to FSO (this should be done directly instead of overwriting <tt>cmdline_fso.cfg</tt>). When doing this, the command line should also contain the <tt>-parse_cmdline_only</tt> to make sure that FSO only reads the actual command line and not <tt>cmdline_fso.cfg</tt>. This avoids issues when <tt>cmdline_fso.cfg</tt> contains options not supported by the selected FSO binary. Since 3.8.1, <tt>-get_flags</tt> optionally accepts one string parameter for selecting how the flags data is formatted and where it is written.<br />
<br />
If FSO does not support the parameter for <tt>-get_flags</tt> then it will be ignored silently and the legacy binary format will be used. Every version before 3.8.1 will behave this way. This allows to gracefully degrade to the old legacy behavior if support for older builds is desired. Also, if the build does not support the given <tt>-get_flags</tt> mode then it will print the string "OUTPUT TYPE NOT SUPPORTED!" to <tt>stdout</tt> and default to the version 1 of the JSON output. This is designed so that it is easy for a launcher to be notified if the selected format is not supported.<br />
<br />
==JSON output==<br />
This mode for <tt>-get_flags</tt> was introduced in 3.8.1 and can be enabled by using "json_v1" as the mode parameter <tt>-get_flags</tt> (e.g. <tt>-get_flags json_v1</tt>). In this mode FSO will output a JSON formatted data structure to stdout which will contain information about the supported flags and available devices that FSO detected. The object structure of this output is described in the following by using hierarchical lists for symbolizing if an object key is a child of another element. The root of the output will be a JSON object.<br />
<br />
; "version" : Contains information about the version of this executable.<br />
:; "full" : The full version string as is displayed in the main menu.<br />
:; "major" : The major part of the version as an integer number.<br />
:; "minor" : The minor part of the version as an integer number.<br />
:; "build" : The build part of the version as an integer number.<br />
:; "has_revision" : A boolean to indicate if this version has a valid revision part.<br />
:; "revision" : An integer indicating the revision part of the build version.<br />
:; "revision_str" : A string indicating the full revision part of the build version. This may contain the Git hash of the commit in the case of nightly builds or something like "RC2" for release candidates.<br />
<br />
; "easy_flags" : This is an array of the available "Easy flags" configuration names. The flags array will contain two bitfields where a bit at position n (starting from the last significant bit) will reference the entry of this array which is at position n.<br />
<br />
; "flags" : This is an array of all the flags supported by this binary.<br />
:; "name" : A string which specifies the name of the flag (e.g. <tt>-soft_particles</tt>).<br />
:; "description" : A short description of what this flag does. This should be displayed in the launcher overview.<br />
:; "fso_only" : A boolean indicating whether this flag is only available in FSO builds or not.<br />
:; "on_flags" : An integer which represents a bitfield for which easy flags enable this flag. If the bit n is set in this integer then selecting the easy flag at index n will enable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "off_flags" : An integer which represents a bitfield for which easy flags disable this flag. If the bit n is set in this integer then selecting the easy flag at index n will disable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "type" : Specifies the category of this flag. Typically all flags with the same category will be grouped together.<br />
:; "web_url" : Specifies an URL where more information about this flag can be found.<br />
<br />
; "caps"<br />
: A string array of what capabilities this build has. The following strings may be present in the array:<br />
:; OpenAL : This build uses OpenAL for sound.<br />
:; No D3D : This build has no support for Direct3D rendering, only OpenGL.<br />
:; New Sound : This build has support for the new, enhanced sound code.<br />
:; SDL : This build uses SDL on all platforms.<br />
<br />
; "voices" : An array of all the possible voice names detected by FSO. If a specific voice should be used then to set the <tt>SpeechVoice</tt> key to the index of that voice in this array.<br />
<br />
; "displays" : Contains information about all the displays currently connected to the system.<br />
:; "index" : The index in the array of this display. This should be used for the value of <tt>Video.Display</tt><br />
:; "name" : A more or less human-readable name of this display.<br />
:; "x" : The x offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the x-offset relative to the other displays.<br />
:; "y" : The y offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the y-offset relative to the other displays.<br />
:; "width" : The x-resolution of this display.<br />
:; "height" : The y-resolution of this display.<br />
:; "modes" : Possible video modes of this display.<br />
::; "x": The x-resolution of this video mode.<br />
::; "y": The y-resolution of this video mode.<br />
::; "bits": The bit depth of this video mode (this is typically 32).<br />
<br />
; "openal" : Contains information about detected OpenAL properties and devices.<br />
:; "version_major" : The major version of OpenAL as detected by FSO.<br />
:; "version_minor" : The minor version of OpenAL as detected by FSO.<br />
:; "default_playback" : The default playback device as reported by OpenAL. It is possible that this device does not appear in the playback device list.<br />
:; "default_capture" : The default capture device as reported by OpenAL. It is possible that this device does not appear in the capture device list.<br />
:; "playback_devices" : A string array of all the playback devices detected by OpenAL.<br />
:; "capture_devices" : A string array of all the capture devices detected by OpenAL.<br />
<br />
; "joysticks" : An array of all the joysticks that FSO detected.<br />
:; "name" : A string which specifies a human-readable name of this joystick.<br />
:; "guid" : The GUID ('''G'''lobally '''U'''nique '''Id'''entifier) of this joystick. This should be used for setting <tt>CurrentJoystickGUID</tt> in <tt>fs2_open.ini</tt><br />
:; "num_axes" : The number of axes detected on this joystick.<br />
:; "num_balls" : The number of balls detected in this joystick.<br />
:; "num_buttons" : The number of buttons detected on this joystick.<br />
:; "num_hats" : The number of hats detected on this joystick.<br />
:; "is_haptic" : A boolean indicating if this device supports haptic (Force Feedback) effects.<br />
<br />
; "pref_path" : A string indicating where the preferences path is located.<br />
<br />
==Binary output==<br />
The binary output is basically a dump of the internal data structure used by FSO for representing the supported flags. If <tt>-get_flags</tt> is called without a parameter or with the parameter <tt>binary</tt> then this output mode will be chosen. In this mode FSO will create a file called "<tt>flags.lcg</tt>" in the working directory of the executable and write the binary representation of the flags in that file. The exact format will not be documented here but there are multiple examples of how to parse this (e.g. wxLauncher or Knossos). Please note that the binary format depends on the current architecture and is not normalized to little- or big-endian. Since FSO currently only support x86 based machines this file will always be little endian encoded.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Launcher_engine_interaction&diff=63828
Launcher engine interaction
2022-07-12T23:58:41Z
<p>Cyborg17: Add ImageExportNum and adjust formatting and a few other clarity edits.</p>
<hr />
<div>A launcher for the FreeSpace Open engine is responsible for letting the user configure what mod data FSO should use and also how it should use the available hardware (e.g. joysticks or sound devices). It is also important with what flags FSO is started to allow how the game behaves and looks like. In order for this to work, the launcher needs to follow certain conventions which allow FSO to interpret the data the launcher sets for the engine.<br />
<br />
This article describes the situation as of FSO version 3.8.0. Previous versions used different configuration mechanisms but those will not be listed here.<br />
<br />
=Writing data for the engine to read=<br />
The engine will look for the files described below in the "preferences" path. This path is determined by using the SDL2 function <tt>SDL_GetPrefPath("HardLightProductions", "FreeSpaceOpen")</tt>. Newer engine versions have a way of getting this information without having to link against SDL2, see [[#JSON output|JSON output]] for an alternative way of determining this path.<br />
<br />
There are two major configuration mechanisms FSO uses for reading data which was set by the launcher:<br />
<br />
==data/cmdline_fso.cfg==<br />
This file should contain all the command line options FSO should use. They should be on a single line and parameters which contain spaces (e.g. mods line "Vassago's Dirge") must be enclosed in quotes:<br />
<br />
<pre><br />
-mod "Vassago's Dirge,MediaVPs_2014" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -fb_thrusters -enable_shadows -cache_bitmaps -dualscanlines -targetinfo -orbradar -rearm_timer -ballistic_gauge -3dwarp -snd_preload -nosound -nomovies -fps -window -no_unfocused_pause -benchmark_mode -fxaa_preset 6 -ambient_factor 100 -spec_exp 15 -spec_point 1.2 -spec_static 1.5 -spec_tube 1.5 -ogl_spec 20 -bloom_intensity 45<br />
</pre><br />
<br />
The available flags should not be hardcoded by the launcher. Instead, it should use [[#Getting a list of supported flags and devices|-get_flags]] for determining which flags are supported by the launcher.<br />
<br />
==fs2_open.ini==<br />
This file contains more "permanent" options and is saved in a standard ini format. The file is separated into multiple "sections" which each contain options specific to that part of the engine:<br />
<br />
<br />
; Default : This is the default section used by FSO if no specific section is selected.<br />
<br />
<br />
:; VideocardFs2open<br />
:: This value determines what display mode FSO will use. It has the following format: <tt>[API]-([width]x[height])x[bits] bit</tt>. <tt>[API]</tt> must be exactly 4 characters long. The only valid option here is "OGL " for using the OpenGL API. The other options are pretty obvious. The width and height should match one of the video modes supported by the display (see [[#JSON output|JSON output]] for a way of getting this information without linking against SDL2). The <tt>bits</tt> parameter should either be 16 or 32 but in almost all cases this should be hard-coded to 32.<br />
:; OGL_AntiAliasSamples<br />
:: This should be the level of anti-aliasing desired for OpenGL rendering. This should be the multiple of 2 for how many samples should be taken (e.g. a value of 3 means 8x MSAA). If set to 0 anti-aliasing will be disabled. <br />
:::'''Note:''' As of FSO 3.8.0 this option has no effect!<br />
:; TextureFilter<br />
:: Sets how textures should be filtered. Valid values are 0 for bilinear filtering and 1 for trilinear filtering.<br />
:; OGL_AnisotropicFilter<br />
:: Specifies the level of anisotropic texture filtering if supported by the OpenGL implementation.<br />
:; CurrentJoystickGUID<br />
:: Specifies the GUID of the primary joystick. The case of alphabetic characters will be normalized so it doesn't matter if this string is upper or lower case. This GUID can be determined by using SDL2 or with the [[#JSON output|JSON output]] if supported by the current build).<br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; CurrentJoystick<br />
:: Specified the index of the primary joystick. This will only be used if there are multiple joysticks with the same GUID. This is the index used to open the joystick in SDL2 or the index into the joysticks array in the [[#JSON output|JSON output]]. <br />
:::'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; Joy0ID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this ID from the ID listed in the exported flags.txt. For details on how to export visit the FAQ [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy0GUID<br />
:: As of FSO 22.0, used for defining your first of multiple joysticks. Get this GUID from the GUID listed in the exported flags.txt, matching the entry used for Joy0ID. For details on how to export visit the wiki's [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy1ID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy1GUID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy2ID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy2GUID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy3ID<br />
:: Same as above, for defining your fourth joystick.<br />
:; Joy3GUID<br />
:: Same as above, for defining your fourth joystick.<br />
:; LastPlayer<br />
:: The name of the last pilot used. Used by the engine to determine which pilot should be at the top of the list and pre-loaded.<br />
:; GammaD3D<br />
:: The gamma (brightness) value to be used to display the game. <br />
:; EnableJoystickFF<br />
:: Used to determine if force feedback should be enabled if the joystick supports it. If using the [[#JSON output|JSON output]] then it's possible to determine if a joystick supports this by looking at the '''is_haptic''' field of the joystick object.<br />
:; EnableHitEffect<br />
:: This can be used to enable or disable a directional hit effect if Force Feedback is enabled.<br />
:; Language<br />
:: Sets the language of the game. Possible values are "English", "German", "French", and "Polish".<br />
:; ForceFullscreen : If set to 1, forces the game to start in full screen mode.<br />
:; ScreenshotNum : The number of screenshots taken by the player.<br />
:; MaxFPS : Used to set the framerate cap for the game. If set to zero, framerate cap is disabled.<br />
:; ForcePort : Used to force a specific port for multiplayer connections<br />
:; ConnectionSpeed<br />
:: Used for setting how fast the internet connection is. Possible values are "Slow", "56K", "ISDN", "Cable", and "Fast".<br />
:; SpeechTechroom : Enables or disables text-to-speech in the techroom. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechBriefings : Enables or disables text-to-speech in the briefings. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechIngame : Enables or disables text-to-speech in game. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechMulti : Enables or disables text-to-speech in the multiplayer. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechVolume : The volume scale of the text-to-speech sound. Should be in the range of 0 to 100.<br />
:; SpeechVoice : Sets which voice to use. See [[#JSON output|JSON output]] for a cross-platform way of determining which voices are available.<br />
:; PXOBanners : Whether or not to use Banners for multiplayer. Valid values are 1 and 0. Defaults to 1.<br />
:; LowMem : Use Low Memory mode (Allows 2d animations to drop frames)<br />
:; ProcessorAffinity : Set which processor should be assigned to the game. Defaults to 2. This setting applies only on Windows.<br />
:; ImageExportNum : The index of the next file to be dds exported from FSO.<br />
<br />
<br />
; Video : Contains options specific to the video display of FSO.<br />
<br />
<br />
:; Display<br />
:: Used to choose on which display FSO should be displayed on. The [[#JSON output|JSON output]] contains a list of display detected on the system and their index. Alternatively, SDL2 can be used to enumerate this information.<br />
<br />
<br />
; ForceFeedback : Contains options for configuring the force feedback subsystem of FSO.<br />
<br />
<br />
:; Strength : A percentage scale of how strong the effect should be. 0 means completely disabled, 100 means full strength.<br />
<br />
<br />
; Sound : Contains options specific to how sound should be handled in FSO.<br />
<br />
<br />
:; Quality : Specifies the quality of the sound output. The value should be in [1, 3] where 3 is the highest quality and 1 is the lowest.<br />
:; SampleRate : Explicitly specifies the sample rate the OpenAL context should use.<br />
:; EnableEFX : Enables or disables usage of OpenAL EFX.<br />
:; PlaybackDevice : Sets the playback device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available playback devices.<br />
:; CaptureDevice : Sets the capture device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available capture devices.<br />
<br />
<br />
; PXO : Contains settings related to the PXO multiplayer service<br />
<br />
<br />
:; Login : The login number for the player's account<br />
:; Password : The password the player uses for logging into the PXO service (not the account's password)<br />
:; SquadName : The Squad Name the player uses.<br />
<br />
<br />
<br />
=Getting a list of supported flags and devices=<br />
As of 3.8.1, FSO has two ways of determining what flags are supported by the engine. The JSON output has more information and should be easier to parse but is only supported by newer builds.<br />
<br />
The flags can be queries by passing the <tt>-get_flags</tt> option to FSO (this should be done directly instead of overwriting <tt>cmdline_fso.cfg</tt>). When doing this, the command line should also contain the <tt>-parse_cmdline_only</tt> to make sure that FSO only reads the actual command line and not <tt>cmdline_fso.cfg</tt>. This avoids issues when <tt>cmdline_fso.cfg</tt> contains options not supported by the selected FSO binary. Since 3.8.1, <tt>-get_flags</tt> optionally accepts one string parameter for selecting how the flags data is formatted and where it is written.<br />
<br />
If FSO does not support the parameter for <tt>-get_flags</tt> then it will be ignored silently and the legacy binary format will be used. Every version before 3.8.1 will behave this way. This allows to gracefully degrade to the old legacy behavior if support for older builds is desired. Also, if the build does not support the given <tt>-get_flags</tt> mode then it will print the string "OUTPUT TYPE NOT SUPPORTED!" to <tt>stdout</tt> and default to the version 1 of the JSON output. This is designed so that it is easy for a launcher to be notified if the selected format is not supported.<br />
<br />
==JSON output==<br />
This mode for <tt>-get_flags</tt> was introduced in 3.8.1 and can be enabled by using "json_v1" as the mode parameter <tt>-get_flags</tt> (e.g. <tt>-get_flags json_v1</tt>). In this mode FSO will output a JSON formatted data structure to stdout which will contain information about the supported flags and available devices that FSO detected. The object structure of this output is described in the following by using hierarchical lists for symbolizing if an object key is a child of another element. The root of the output will be a JSON object.<br />
<br />
; "version" : Contains information about the version of this executable.<br />
:; "full" : The full version string as is displayed in the main menu.<br />
:; "major" : The major part of the version as an integer number.<br />
:; "minor" : The minor part of the version as an integer number.<br />
:; "build" : The build part of the version as an integer number.<br />
:; "has_revision" : A boolean to indicate if this version has a valid revision part.<br />
:; "revision" : An integer indicating the revision part of the build version.<br />
:; "revision_str" : A string indicating the full revision part of the build version. This may contain the Git hash of the commit in the case of nightly builds or something like "RC2" for release candidates.<br />
<br />
; "easy_flags" : This is an array of the available "Easy flags" configuration names. The flags array will contain two bitfields where a bit at position n (starting from the last significant bit) will reference the entry of this array which is at position n.<br />
<br />
; "flags" : This is an array of all the flags supported by this binary.<br />
:; "name" : A string which specifies the name of the flag (e.g. <tt>-soft_particles</tt>).<br />
:; "description" : A short description of what this flag does. This should be displayed in the launcher overview.<br />
:; "fso_only" : A boolean indicating whether this flag is only available in FSO builds or not.<br />
:; "on_flags" : An integer which represents a bitfield for which easy flags enable this flag. If the bit n is set in this integer then selecting the easy flag at index n will enable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "off_flags" : An integer which represents a bitfield for which easy flags disable this flag. If the bit n is set in this integer then selecting the easy flag at index n will disable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "type" : Specifies the category of this flag. Typically all flags with the same category will be grouped together.<br />
:; "web_url" : Specifies an URL where more information about this flag can be found.<br />
<br />
; "caps"<br />
: A string array of what capabilities this build has. The following strings may be present in the array:<br />
:; OpenAL : This build uses OpenAL for sound.<br />
:; No D3D : This build has no support for Direct3D rendering, only OpenGL.<br />
:; New Sound : This build has support for the new, enhanced sound code.<br />
:; SDL : This build uses SDL on all platforms.<br />
<br />
; "voices" : An array of all the possible voice names detected by FSO. If a specific voice should be used then to set the <tt>SpeechVoice</tt> key to the index of that voice in this array.<br />
<br />
; "displays" : Contains information about all the displays currently connected to the system.<br />
:; "index" : The index in the array of this display. This should be used for the value of <tt>Video.Display</tt><br />
:; "name" : A more or less human-readable name of this display.<br />
:; "x" : The x offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the x-offset relative to the other displays.<br />
:; "y" : The y offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the y-offset relative to the other displays.<br />
:; "width" : The x-resolution of this display.<br />
:; "height" : The y-resolution of this display.<br />
:; "modes" : Possible video modes of this display.<br />
::; "x": The x-resolution of this video mode.<br />
::; "y": The y-resolution of this video mode.<br />
::; "bits": The bit depth of this video mode (this is typically 32).<br />
<br />
; "openal" : Contains information about detected OpenAL properties and devices.<br />
:; "version_major" : The major version of OpenAL as detected by FSO.<br />
:; "version_minor" : The minor version of OpenAL as detected by FSO.<br />
:; "default_playback" : The default playback device as reported by OpenAL. It is possible that this device does not appear in the playback device list.<br />
:; "default_capture" : The default capture device as reported by OpenAL. It is possible that this device does not appear in the capture device list.<br />
:; "playback_devices" : A string array of all the playback devices detected by OpenAL.<br />
:; "capture_devices" : A string array of all the capture devices detected by OpenAL.<br />
<br />
; "joysticks" : An array of all the joysticks that FSO detected.<br />
:; "name" : A string which specifies a human-readable name of this joystick.<br />
:; "guid" : The GUID ('''G'''lobally '''U'''nique '''Id'''entifier) of this joystick. This should be used for setting <tt>CurrentJoystickGUID</tt> in <tt>fs2_open.ini</tt><br />
:; "num_axes" : The number of axes detected on this joystick.<br />
:; "num_balls" : The number of balls detected in this joystick.<br />
:; "num_buttons" : The number of buttons detected on this joystick.<br />
:; "num_hats" : The number of hats detected on this joystick.<br />
:; "is_haptic" : A boolean indicating if this device supports haptic (Force Feedback) effects.<br />
<br />
; "pref_path" : A string indicating where the preferences path is located.<br />
<br />
==Binary output==<br />
The binary output is basically a dump of the internal data structure used by FSO for representing the supported flags. If <tt>-get_flags</tt> is called without a parameter or with the parameter <tt>binary</tt> then this output mode will be chosen. In this mode FSO will create a file called "<tt>flags.lcg</tt>" in the working directory of the executable and write the binary representation of the flags in that file. The exact format will not be documented here but there are multiple examples of how to parse this (e.g. wxLauncher or Knossos). Please note that the binary format depends on the current architecture and is not normalized to little- or big-endian. Since FSO currently only support x86 based machines this file will always be little endian encoded.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Launcher_engine_interaction&diff=63827
Launcher engine interaction
2022-07-12T22:03:46Z
<p>Cyborg17: /* fs2_open.ini */</p>
<hr />
<div>A launcher for the FreeSpace Open engine is responsible for letting the user configure what mod data FSO should use and also how it should use the available hardware (e.g. joysticks or sound devices). It is also important with what flags FSO is started to allow how the game behaves and looks like. In order for this to work, the launcher needs to follow certain conventions which allow FSO to interpret the data the launcher sets for the engine.<br />
<br />
This article describes the situation as of FSO version 3.8.0. Previous versions used different configuration mechanisms but those will not be listed here.<br />
<br />
=Writing data for the engine to read=<br />
The engine will look for the files described below in the "preferences" path. This path is determined by using the SDL2 function <tt>SDL_GetPrefPath("HardLightProductions", "FreeSpaceOpen")</tt>. Newer engine versions have a way of getting this information without having to link against SDL2, see [[#JSON output|JSON output]] for an alternative way of determining this path.<br />
<br />
There are two major configuration mechanisms FSO uses for reading data which was set by the launcher:<br />
<br />
==data/cmdline_fso.cfg==<br />
This file should contain all the command line options FSO should use. They should be on a single line and parameters which contain spaces (e.g. mods line "Vassago's Dirge") must be enclosed in quotes:<br />
<br />
<pre><br />
-mod "Vassago's Dirge,MediaVPs_2014" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -fb_thrusters -enable_shadows -cache_bitmaps -dualscanlines -targetinfo -orbradar -rearm_timer -ballistic_gauge -3dwarp -snd_preload -nosound -nomovies -fps -window -no_unfocused_pause -benchmark_mode -fxaa_preset 6 -ambient_factor 100 -spec_exp 15 -spec_point 1.2 -spec_static 1.5 -spec_tube 1.5 -ogl_spec 20 -bloom_intensity 45<br />
</pre><br />
<br />
The available flags should not be hardcoded by the launcher. Instead, it should use [[#Getting a list of supported flags and devices|-get_flags]] for determining which flags are supported by the launcher.<br />
<br />
==fs2_open.ini==<br />
This file contains more "permanent" options and is saved in a standard ini format. The file is separated into multiple "sections" which each contain options specific to that part of the engine:<br />
<br />
; Default : This is the default section used by FSO if no specific section is selected.<br />
:; VideocardFs2open<br />
:: This value determines what display mode FSO will use. It has the following format: <tt>[API]-([width]x[height])x[bits] bit</tt>. <tt>[API]</tt> must be exactly 4 characters long. The only valid option here is "OGL " for using the OpenGL API. The other options are pretty obvious. The width and height should match one of the video modes supported by the display (see [[#JSON output|JSON output]] for a way of getting this information without linking against SDL2). The <tt>bits</tt> parameter should either be 16 or 32 but in almost all cases this should be hard-coded to 32.<br />
:; OGL_AntiAliasSamples<br />
:: This should be the level of anti-aliasing desired for OpenGL rendering. This should be the multiple of 2 for how many samples should be taken (e.g. a value of 3 means 8x MSAA). If set to 0 anti-aliasing will be disabled. '''Note:''' As of FSO 3.8.0 this option has no effect!<br />
:; TextureFilter<br />
:: Sets how textures should be filtered. Valid values are 0 for bilinear filtering and 1 for trilinear filtering.<br />
:; OGL_AnisotropicFilter<br />
:: Specifies the level of anisotropic texture filtering if supported by the OpenGL implementation.<br />
:; CurrentJoystickGUID<br />
:: Specifies the GUID of the primary joystick. The case of alphabetic characters will be normalized so it doesn't matter if this string is upper or lower case. This GUID can be determined by using SDL2 or with the [[#JSON output|JSON output]] if supported by the current build).<br />
'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; CurrentJoystick<br />
:: Specified the index of the primary joystick. This will only be used if there are multiple joysticks with the same GUID. This is the index used to open the joystick in SDL2 or the index into the joysticks array in the [[#JSON output|JSON output]]. <br />
'''Note:''' This is the part of the legacy method of defining the joystick. See Joy0GUID and Joy0ID below.<br />
:; Joy0ID<br />
:: For defining your first of multiple joysticks. Get this ID from the id listed in the exported flags.txt. For details on how to export visit the FAQ [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy0GUID<br />
:: For defining your first of multiple joysticks. Get this GUID from the GUID listed in the exported flags.txt, matching the entry used for Joy0ID. For details on how to export visit the wiki's [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy1ID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy1GUID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy2ID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy2GUID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy3ID<br />
:: Same as above, for defining your fourth joystick.<br />
:; Joy3GUID<br />
:: Same as above, for defining your fourth joystick.<br />
:; LastPlayer<br />
:: The name of the last pilot used. Used by the engine to determine which pilot should be at the top of the list and pre-loaded.<br />
:; GammaD3D<br />
:: The gamma (brightness) value to be used to display the game. <br />
:; EnableJoystickFF<br />
:: Used to determine if force feedback should be enabled if the joystick supports it. If using the [[#JSON output|JSON output]] then it's possible to determine if a joystick supports this by looking at the '''is_haptic''' field of the joystick object.<br />
:; EnableHitEffect<br />
:: This can be used to enable or disable a directional hit effect if Force Feedback is enabled.<br />
:; Language<br />
:: Sets the language of the game. Possible values are "English", "German", "French", and "Polish".<br />
:; ForceFullscreen : If set to 1, forces the game to start in full screen mode.<br />
:; ScreenshotNum : The number of screenshots taken by the player.<br />
:; MaxFPS : Used to set the framerate cap for the game. If set to zero, framerate cap is disabled.<br />
:; ForcePort : Used to force a specific port for multiplayer connections<br />
:; ConnectionSpeed<br />
:: Used for setting how fast the internet connection is. Possible values are "Slow", "56K", "ISDN", "Cable", and "Fast".<br />
:; SpeechTechroom : Enables or disables text-to-speech in the techroom. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechBriefings : Enables or disables text-to-speech in the briefings. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechIngame : Enables or disables text-to-speech in game. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechMulti : Enables or disables text-to-speech in the multiplayer. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechVolume : The volume scale of the text-to-speech sound. Should be in the range of 0 to 100.<br />
:; SpeechVoice : Sets which voice to use. See [[#JSON output|JSON output]] for a cross-platform way of determining which voices are available.<br />
:; PXOBanners : Whether or not to use Banners for multiplayer. Valid values are 1 and 0. Defaults to 1.<br />
:; LowMem : Use Low Memory mode (Allows 2d animations to drop frames)<br />
:; ProcessorAffinity : Set which processor should be assigned to the game. Defaults to 2. This setting applies only on Windows.<br />
<br />
; Video : Contains options specific to the video display of FSO.<br />
:; Display<br />
:: Used to choose on which display FSO should be displayed on. The [[#JSON output|JSON output]] contains a list of display detected on the system and their index. Alternatively, SDL2 can be used to enumerate this information.<br />
<br />
; ForceFeedback : Contains options for configuring the force feedback subsystem of FSO.<br />
:; Strength : A percentage scale of how strong the effect should be. 0 means completely disabled, 100 means full strength.<br />
<br />
; Sound : Contains options specific to how sound should be handled in FSO.<br />
:; Quality : Specifies the quality of the sound output. The value should be in [1, 3] where 3 is the highest quality and 1 is the lowest.<br />
:; SampleRate : Explicitly specifies the sample rate the OpenAL context should use.<br />
:; EnableEFX : Enables or disables usage of OpenAL EFX.<br />
:; PlaybackDevice : Sets the playback device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available playback devices.<br />
:; CaptureDevice : Sets the capture device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available capture devices.<br />
<br />
; PXO : Contains settings related to the PXO multiplayer service<br />
:; Login : The login number for the player's account<br />
:; Password : The password the player uses for logging into the PXO service (not the account's password)<br />
:; SquadName : The Squad Name the player uses.<br />
<br />
=Getting a list of supported flags and devices=<br />
As of 3.8.1, FSO has two ways of determining what flags are supported by the engine. The JSON output has more information and should be easier to parse but is only supported by newer builds.<br />
<br />
The flags can be queries by passing the <tt>-get_flags</tt> option to FSO (this should be done directly instead of overwriting <tt>cmdline_fso.cfg</tt>). When doing this, the command line should also contain the <tt>-parse_cmdline_only</tt> to make sure that FSO only reads the actual command line and not <tt>cmdline_fso.cfg</tt>. This avoids issues when <tt>cmdline_fso.cfg</tt> contains options not supported by the selected FSO binary. Since 3.8.1, <tt>-get_flags</tt> optionally accepts one string parameter for selecting how the flags data is formatted and where it is written.<br />
<br />
If FSO does not support the parameter for <tt>-get_flags</tt> then it will be ignored silently and the legacy binary format will be used. Every version before 3.8.1 will behave this way. This allows to gracefully degrade to the old legacy behavior if support for older builds is desired. Also, if the build does not support the given <tt>-get_flags</tt> mode then it will print the string "OUTPUT TYPE NOT SUPPORTED!" to <tt>stdout</tt> and default to the version 1 of the JSON output. This is designed so that it is easy for a launcher to be notified if the selected format is not supported.<br />
<br />
==JSON output==<br />
This mode for <tt>-get_flags</tt> was introduced in 3.8.1 and can be enabled by using "json_v1" as the mode parameter <tt>-get_flags</tt> (e.g. <tt>-get_flags json_v1</tt>). In this mode FSO will output a JSON formatted data structure to stdout which will contain information about the supported flags and available devices that FSO detected. The object structure of this output is described in the following by using hierarchical lists for symbolizing if an object key is a child of another element. The root of the output will be a JSON object.<br />
<br />
; "version" : Contains information about the version of this executable.<br />
:; "full" : The full version string as is displayed in the main menu.<br />
:; "major" : The major part of the version as an integer number.<br />
:; "minor" : The minor part of the version as an integer number.<br />
:; "build" : The build part of the version as an integer number.<br />
:; "has_revision" : A boolean to indicate if this version has a valid revision part.<br />
:; "revision" : An integer indicating the revision part of the build version.<br />
:; "revision_str" : A string indicating the full revision part of the build version. This may contain the Git hash of the commit in the case of nightly builds or something like "RC2" for release candidates.<br />
<br />
; "easy_flags" : This is an array of the available "Easy flags" configuration names. The flags array will contain two bitfields where a bit at position n (starting from the last significant bit) will reference the entry of this array which is at position n.<br />
<br />
; "flags" : This is an array of all the flags supported by this binary.<br />
:; "name" : A string which specifies the name of the flag (e.g. <tt>-soft_particles</tt>).<br />
:; "description" : A short description of what this flag does. This should be displayed in the launcher overview.<br />
:; "fso_only" : A boolean indicating whether this flag is only available in FSO builds or not.<br />
:; "on_flags" : An integer which represents a bitfield for which easy flags enable this flag. If the bit n is set in this integer then selecting the easy flag at index n will enable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "off_flags" : An integer which represents a bitfield for which easy flags disable this flag. If the bit n is set in this integer then selecting the easy flag at index n will disable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "type" : Specifies the category of this flag. Typically all flags with the same category will be grouped together.<br />
:; "web_url" : Specifies an URL where more information about this flag can be found.<br />
<br />
; "caps"<br />
: A string array of what capabilities this build has. The following strings may be present in the array:<br />
:; OpenAL : This build uses OpenAL for sound.<br />
:; No D3D : This build has no support for Direct3D rendering, only OpenGL.<br />
:; New Sound : This build has support for the new, enhanced sound code.<br />
:; SDL : This build uses SDL on all platforms.<br />
<br />
; "voices" : An array of all the possible voice names detected by FSO. If a specific voice should be used then to set the <tt>SpeechVoice</tt> key to the index of that voice in this array.<br />
<br />
; "displays" : Contains information about all the displays currently connected to the system.<br />
:; "index" : The index in the array of this display. This should be used for the value of <tt>Video.Display</tt><br />
:; "name" : A more or less human-readable name of this display.<br />
:; "x" : The x offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the x-offset relative to the other displays.<br />
:; "y" : The y offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the y-offset relative to the other displays.<br />
:; "width" : The x-resolution of this display.<br />
:; "height" : The y-resolution of this display.<br />
:; "modes" : Possible video modes of this display.<br />
::; "x": The x-resolution of this video mode.<br />
::; "y": The y-resolution of this video mode.<br />
::; "bits": The bit depth of this video mode (this is typically 32).<br />
<br />
; "openal" : Contains information about detected OpenAL properties and devices.<br />
:; "version_major" : The major version of OpenAL as detected by FSO.<br />
:; "version_minor" : The minor version of OpenAL as detected by FSO.<br />
:; "default_playback" : The default playback device as reported by OpenAL. It is possible that this device does not appear in the playback device list.<br />
:; "default_capture" : The default capture device as reported by OpenAL. It is possible that this device does not appear in the capture device list.<br />
:; "playback_devices" : A string array of all the playback devices detected by OpenAL.<br />
:; "capture_devices" : A string array of all the capture devices detected by OpenAL.<br />
<br />
; "joysticks" : An array of all the joysticks that FSO detected.<br />
:; "name" : A string which specifies a human-readable name of this joystick.<br />
:; "guid" : The GUID ('''G'''lobally '''U'''nique '''Id'''entifier) of this joystick. This should be used for setting <tt>CurrentJoystickGUID</tt> in <tt>fs2_open.ini</tt><br />
:; "num_axes" : The number of axes detected on this joystick.<br />
:; "num_balls" : The number of balls detected in this joystick.<br />
:; "num_buttons" : The number of buttons detected on this joystick.<br />
:; "num_hats" : The number of hats detected on this joystick.<br />
:; "is_haptic" : A boolean indicating if this device supports haptic (Force Feedback) effects.<br />
<br />
; "pref_path" : A string indicating where the preferences path is located.<br />
<br />
==Binary output==<br />
The binary output is basically a dump of the internal data structure used by FSO for representing the supported flags. If <tt>-get_flags</tt> is called without a parameter or with the parameter <tt>binary</tt> then this output mode will be chosen. In this mode FSO will create a file called "<tt>flags.lcg</tt>" in the working directory of the executable and write the binary representation of the flags in that file. The exact format will not be documented here but there are multiple examples of how to parse this (e.g. wxLauncher or Knossos). Please note that the binary format depends on the current architecture and is not normalized to little- or big-endian. Since FSO currently only support x86 based machines this file will always be little endian encoded.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Launcher_engine_interaction&diff=63826
Launcher engine interaction
2022-07-12T22:02:10Z
<p>Cyborg17: /* fs2_open.ini */ Add new joystick options</p>
<hr />
<div>A launcher for the FreeSpace Open engine is responsible for letting the user configure what mod data FSO should use and also how it should use the available hardware (e.g. joysticks or sound devices). It is also important with what flags FSO is started to allow how the game behaves and looks like. In order for this to work, the launcher needs to follow certain conventions which allow FSO to interpret the data the launcher sets for the engine.<br />
<br />
This article describes the situation as of FSO version 3.8.0. Previous versions used different configuration mechanisms but those will not be listed here.<br />
<br />
=Writing data for the engine to read=<br />
The engine will look for the files described below in the "preferences" path. This path is determined by using the SDL2 function <tt>SDL_GetPrefPath("HardLightProductions", "FreeSpaceOpen")</tt>. Newer engine versions have a way of getting this information without having to link against SDL2, see [[#JSON output|JSON output]] for an alternative way of determining this path.<br />
<br />
There are two major configuration mechanisms FSO uses for reading data which was set by the launcher:<br />
<br />
==data/cmdline_fso.cfg==<br />
This file should contain all the command line options FSO should use. They should be on a single line and parameters which contain spaces (e.g. mods line "Vassago's Dirge") must be enclosed in quotes:<br />
<br />
<pre><br />
-mod "Vassago's Dirge,MediaVPs_2014" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -fb_thrusters -enable_shadows -cache_bitmaps -dualscanlines -targetinfo -orbradar -rearm_timer -ballistic_gauge -3dwarp -snd_preload -nosound -nomovies -fps -window -no_unfocused_pause -benchmark_mode -fxaa_preset 6 -ambient_factor 100 -spec_exp 15 -spec_point 1.2 -spec_static 1.5 -spec_tube 1.5 -ogl_spec 20 -bloom_intensity 45<br />
</pre><br />
<br />
The available flags should not be hardcoded by the launcher. Instead, it should use [[#Getting a list of supported flags and devices|-get_flags]] for determining which flags are supported by the launcher.<br />
<br />
==fs2_open.ini==<br />
This file contains more "permanent" options and is saved in a standard ini format. The file is separated into multiple "sections" which each contain options specific to that part of the engine:<br />
<br />
; Default : This is the default section used by FSO if no specific section is selected.<br />
:; VideocardFs2open<br />
:: This value determines what display mode FSO will use. It has the following format: <tt>[API]-([width]x[height])x[bits] bit</tt>. <tt>[API]</tt> must be exactly 4 characters long. The only valid option here is "OGL " for using the OpenGL API. The other options are pretty obvious. The width and height should match one of the video modes supported by the display (see [[#JSON output|JSON output]] for a way of getting this information without linking against SDL2). The <tt>bits</tt> parameter should either be 16 or 32 but in almost all cases this should be hard-coded to 32.<br />
:; OGL_AntiAliasSamples<br />
:: This should be the level of anti-aliasing desired for OpenGL rendering. This should be the multiple of 2 for how many samples should be taken (e.g. a value of 3 means 8x MSAA). If set to 0 anti-aliasing will be disabled. '''Note:''' As of FSO 3.8.0 this option has no effect!<br />
:; TextureFilter<br />
:: Sets how textures should be filtered. Valid values are 0 for bilinear filtering and 1 for trilinear filtering.<br />
:; OGL_AnisotropicFilter<br />
:: Specifies the level of anisotropic texture filtering if supported by the OpenGL implementation.<br />
:; CurrentJoystickGUID<br />
:: Specifies the GUID of the primary joystick. The case of alphabetic characters will be normalized so it doesn't matter if this string is upper or lower case. This GUID can be determined by using SDL2 or with the [[#JSON output|JSON output]] if supported by the current build).<br />
:; CurrentJoystick<br />
:: Specified the index of the primary joystick. This will only be used if there are multiple joysticks with the same GUID. This is the index used to open the joystick in SDL2 or the index into the joysticks array in the [[#JSON output|JSON output]]. '''Note:''' This is the part of the legacy method of defining the joystick. See Joy<Index>GUID and Joy<Index>ID below.<br />
:; Joy0ID<br />
:: For defining your first of multiple joysticks. Get this ID from the id listed in the exported flags.txt. For details on how to export visit the FAQ [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy0GUID<br />
:: For defining your first of multiple joysticks. Get this GUID from the GUID listed in the exported flags.txt, matching the entry used for Joy0ID. For details on how to export visit the wiki's [https://wiki.hard-light.net/index.php/Frequently_Asked_Questions_(FAQ) FAQ].<br />
:; Joy1ID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy1GUID<br />
:: Same as above, for defining your second joystick.<br />
:; Joy2ID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy2GUID<br />
:: Same as above, for defining your third joystick.<br />
:; Joy3ID<br />
:: Same as above, for defining your fourth joystick.<br />
:; Joy3GUID<br />
:: Same as above, for defining your fourth joystick.<br />
:; LastPlayer<br />
:: The name of the last pilot used. Used by the engine to determine which pilot should be at the top of the list and pre-loaded.<br />
:; GammaD3D<br />
:: The gamma (brightness) value to be used to display the game. <br />
:; EnableJoystickFF<br />
:: Used to determine if force feedback should be enabled if the joystick supports it. If using the [[#JSON output|JSON output]] then it's possible to determine if a joystick supports this by looking at the '''is_haptic''' field of the joystick object.<br />
:; EnableHitEffect<br />
:: This can be used to enable or disable a directional hit effect if Force Feedback is enabled.<br />
:; Language<br />
:: Sets the language of the game. Possible values are "English", "German", "French", and "Polish".<br />
:; ForceFullscreen : If set to 1, forces the game to start in full screen mode.<br />
:; ScreenshotNum : The number of screenshots taken by the player.<br />
:; MaxFPS : Used to set the framerate cap for the game. If set to zero, framerate cap is disabled.<br />
:; ForcePort : Used to force a specific port for multiplayer connections<br />
:; ConnectionSpeed<br />
:: Used for setting how fast the internet connection is. Possible values are "Slow", "56K", "ISDN", "Cable", and "Fast".<br />
:; SpeechTechroom : Enables or disables text-to-speech in the techroom. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechBriefings : Enables or disables text-to-speech in the briefings. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechIngame : Enables or disables text-to-speech in game. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechMulti : Enables or disables text-to-speech in the multiplayer. Valid values are 1 and 0. Defaults to 0.<br />
:; SpeechVolume : The volume scale of the text-to-speech sound. Should be in the range of 0 to 100.<br />
:; SpeechVoice : Sets which voice to use. See [[#JSON output|JSON output]] for a cross-platform way of determining which voices are available.<br />
:; PXOBanners : Whether or not to use Banners for multiplayer. Valid values are 1 and 0. Defaults to 1.<br />
:; LowMem : Use Low Memory mode (Allows 2d animations to drop frames)<br />
:; ProcessorAffinity : Set which processor should be assigned to the game. Defaults to 2. This setting applies only on Windows.<br />
<br />
; Video : Contains options specific to the video display of FSO.<br />
:; Display<br />
:: Used to choose on which display FSO should be displayed on. The [[#JSON output|JSON output]] contains a list of display detected on the system and their index. Alternatively, SDL2 can be used to enumerate this information.<br />
<br />
; ForceFeedback : Contains options for configuring the force feedback subsystem of FSO.<br />
:; Strength : A percentage scale of how strong the effect should be. 0 means completely disabled, 100 means full strength.<br />
<br />
; Sound : Contains options specific to how sound should be handled in FSO.<br />
:; Quality : Specifies the quality of the sound output. The value should be in [1, 3] where 3 is the highest quality and 1 is the lowest.<br />
:; SampleRate : Explicitly specifies the sample rate the OpenAL context should use.<br />
:; EnableEFX : Enables or disables usage of OpenAL EFX.<br />
:; PlaybackDevice : Sets the playback device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available playback devices.<br />
:; CaptureDevice : Sets the capture device OpenAL should use. The [[#JSON output|JSON output]] contains a list of available capture devices.<br />
<br />
; PXO : Contains settings related to the PXO multiplayer service<br />
:; Login : The login number for the player's account<br />
:; Password : The password the player uses for logging into the PXO service (not the account's password)<br />
:; SquadName : The Squad Name the player uses.<br />
<br />
=Getting a list of supported flags and devices=<br />
As of 3.8.1, FSO has two ways of determining what flags are supported by the engine. The JSON output has more information and should be easier to parse but is only supported by newer builds.<br />
<br />
The flags can be queries by passing the <tt>-get_flags</tt> option to FSO (this should be done directly instead of overwriting <tt>cmdline_fso.cfg</tt>). When doing this, the command line should also contain the <tt>-parse_cmdline_only</tt> to make sure that FSO only reads the actual command line and not <tt>cmdline_fso.cfg</tt>. This avoids issues when <tt>cmdline_fso.cfg</tt> contains options not supported by the selected FSO binary. Since 3.8.1, <tt>-get_flags</tt> optionally accepts one string parameter for selecting how the flags data is formatted and where it is written.<br />
<br />
If FSO does not support the parameter for <tt>-get_flags</tt> then it will be ignored silently and the legacy binary format will be used. Every version before 3.8.1 will behave this way. This allows to gracefully degrade to the old legacy behavior if support for older builds is desired. Also, if the build does not support the given <tt>-get_flags</tt> mode then it will print the string "OUTPUT TYPE NOT SUPPORTED!" to <tt>stdout</tt> and default to the version 1 of the JSON output. This is designed so that it is easy for a launcher to be notified if the selected format is not supported.<br />
<br />
==JSON output==<br />
This mode for <tt>-get_flags</tt> was introduced in 3.8.1 and can be enabled by using "json_v1" as the mode parameter <tt>-get_flags</tt> (e.g. <tt>-get_flags json_v1</tt>). In this mode FSO will output a JSON formatted data structure to stdout which will contain information about the supported flags and available devices that FSO detected. The object structure of this output is described in the following by using hierarchical lists for symbolizing if an object key is a child of another element. The root of the output will be a JSON object.<br />
<br />
; "version" : Contains information about the version of this executable.<br />
:; "full" : The full version string as is displayed in the main menu.<br />
:; "major" : The major part of the version as an integer number.<br />
:; "minor" : The minor part of the version as an integer number.<br />
:; "build" : The build part of the version as an integer number.<br />
:; "has_revision" : A boolean to indicate if this version has a valid revision part.<br />
:; "revision" : An integer indicating the revision part of the build version.<br />
:; "revision_str" : A string indicating the full revision part of the build version. This may contain the Git hash of the commit in the case of nightly builds or something like "RC2" for release candidates.<br />
<br />
; "easy_flags" : This is an array of the available "Easy flags" configuration names. The flags array will contain two bitfields where a bit at position n (starting from the last significant bit) will reference the entry of this array which is at position n.<br />
<br />
; "flags" : This is an array of all the flags supported by this binary.<br />
:; "name" : A string which specifies the name of the flag (e.g. <tt>-soft_particles</tt>).<br />
:; "description" : A short description of what this flag does. This should be displayed in the launcher overview.<br />
:; "fso_only" : A boolean indicating whether this flag is only available in FSO builds or not.<br />
:; "on_flags" : An integer which represents a bitfield for which easy flags enable this flag. If the bit n is set in this integer then selecting the easy flag at index n will enable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "off_flags" : An integer which represents a bitfield for which easy flags disable this flag. If the bit n is set in this integer then selecting the easy flag at index n will disable this flag. No action should be taken for the bits that are not set in this bitfield.<br />
:; "type" : Specifies the category of this flag. Typically all flags with the same category will be grouped together.<br />
:; "web_url" : Specifies an URL where more information about this flag can be found.<br />
<br />
; "caps"<br />
: A string array of what capabilities this build has. The following strings may be present in the array:<br />
:; OpenAL : This build uses OpenAL for sound.<br />
:; No D3D : This build has no support for Direct3D rendering, only OpenGL.<br />
:; New Sound : This build has support for the new, enhanced sound code.<br />
:; SDL : This build uses SDL on all platforms.<br />
<br />
; "voices" : An array of all the possible voice names detected by FSO. If a specific voice should be used then to set the <tt>SpeechVoice</tt> key to the index of that voice in this array.<br />
<br />
; "displays" : Contains information about all the displays currently connected to the system.<br />
:; "index" : The index in the array of this display. This should be used for the value of <tt>Video.Display</tt><br />
:; "name" : A more or less human-readable name of this display.<br />
:; "x" : The x offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the x-offset relative to the other displays.<br />
:; "y" : The y offset of where this display is located. This is only relevant for multi-monitor systems where this value specifies the y-offset relative to the other displays.<br />
:; "width" : The x-resolution of this display.<br />
:; "height" : The y-resolution of this display.<br />
:; "modes" : Possible video modes of this display.<br />
::; "x": The x-resolution of this video mode.<br />
::; "y": The y-resolution of this video mode.<br />
::; "bits": The bit depth of this video mode (this is typically 32).<br />
<br />
; "openal" : Contains information about detected OpenAL properties and devices.<br />
:; "version_major" : The major version of OpenAL as detected by FSO.<br />
:; "version_minor" : The minor version of OpenAL as detected by FSO.<br />
:; "default_playback" : The default playback device as reported by OpenAL. It is possible that this device does not appear in the playback device list.<br />
:; "default_capture" : The default capture device as reported by OpenAL. It is possible that this device does not appear in the capture device list.<br />
:; "playback_devices" : A string array of all the playback devices detected by OpenAL.<br />
:; "capture_devices" : A string array of all the capture devices detected by OpenAL.<br />
<br />
; "joysticks" : An array of all the joysticks that FSO detected.<br />
:; "name" : A string which specifies a human-readable name of this joystick.<br />
:; "guid" : The GUID ('''G'''lobally '''U'''nique '''Id'''entifier) of this joystick. This should be used for setting <tt>CurrentJoystickGUID</tt> in <tt>fs2_open.ini</tt><br />
:; "num_axes" : The number of axes detected on this joystick.<br />
:; "num_balls" : The number of balls detected in this joystick.<br />
:; "num_buttons" : The number of buttons detected on this joystick.<br />
:; "num_hats" : The number of hats detected on this joystick.<br />
:; "is_haptic" : A boolean indicating if this device supports haptic (Force Feedback) effects.<br />
<br />
; "pref_path" : A string indicating where the preferences path is located.<br />
<br />
==Binary output==<br />
The binary output is basically a dump of the internal data structure used by FSO for representing the supported flags. If <tt>-get_flags</tt> is called without a parameter or with the parameter <tt>binary</tt> then this output mode will be chosen. In this mode FSO will create a file called "<tt>flags.lcg</tt>" in the working directory of the executable and write the binary representation of the flags in that file. The exact format will not be documented here but there are multiple examples of how to parse this (e.g. wxLauncher or Knossos). Please note that the binary format depends on the current architecture and is not normalized to little- or big-endian. Since FSO currently only support x86 based machines this file will always be little endian encoded.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Command-Line_Reference&diff=63726
Command-Line Reference
2022-04-17T02:13:55Z
<p>Cyborg17: /* Troubleshooting */</p>
<hr />
<div><br />
{{TableVersionGit|2020-02-01|93f71ec20}}<br />
<br />
Command-Line Flags (also called Command-Line Parameters) are optional flags passed to the FSO executable, and generally enables one or more features added to the FS2 Open engine. These flags are accessed conveniently through an [[FSO Launcher]]. To have FSO list all available flags, use any one of the following: [[Command-Line_Reference#-help|-help]], [[Command-Line_Reference#-help|--help]], [[Command-Line_Reference#-help|-h]], or [[Command-Line_Reference#-help|-?]].<br />
<br />
===Graphics===<br />
<br />
====-nospec====<br />
{{Table37|<br />
'''"Disable Specular"'''<br />
<br />
Disables support for specular mapping.<br />
}}<br />
<br />
====-noglow====<br />
{{Table37|<br />
'''"Disable glow maps"'''<br />
<br />
Disables support for glowmapping.<br />
}}<br />
<br />
====-noenv====<br />
{{Table37|<br />
'''"Disable environment maps"'''<br />
<br />
Disables support for environment mapping.<br />
}}<br />
<br />
====-nonormal====<br />
{{Table37|<br />
'''"Disable normal maps"'''<br />
<br />
Disables support for normal mapping.<br />
}}<br />
<br />
====-emissive_light====<br />
{{Table190|<br />
'''"Enable emissive light from ships"'''<br />
<br />
In retail FS2, ships had a pseudo light source applied to them to make them stand out against the background. Due to the changes in the render pipeline associated with HDR, this behaviour has been disabled by default; this cmdline option restores it.<br />
}}<br />
<br />
====-noheight====<br />
{{Table37|<br />
'''"Disable height maps"'''<br />
<br />
Disables support for height mapping.<br />
}}<br />
<br />
====-3dshockwave====<br />
'''"Enable 3D Shockwaves"'''<br />
<br />
This only has any effect when both a 2D and 3D shockwave effect are present, otherwise the only available effect is used (2D shockwave is defined by effects/shockwave01.eff or .ani, and 3D shockwave by models/shockwave.pof)<br />
<br />
Note that 3D shockwaves are usually flat discs that FSO scales up. The animated 2D billboards used by 2D shockwaves with the addition of [[Command-Line Reference#-soft_particles|soft particles]], may look better when intersecting with models (which shockwaves often do). Use at your discretion.<br />
<br />
====-no_post_process====<br />
{{Table190|<br />
'''"Disable Post Processing"'''<br />
<br />
Disables the use of post-processing effects as defined by the post_process.tbl. Bloom usage has an additional cmdline option for setting its value, most post processing effects are achieved in mission per the mission designer or can be enabled globally in the table. Since post-processing is required for nebula effects post-3.8, it has been enabled by default as of Release 19.<br />
}}<br />
<br />
====-soft_particles====<br />
'''"Enable soft particles"'''<br />
<br />
Applies a blending factor to particles depending on their proximity to geometry<br />
<br />
====-aa====<br />
{{Table202|<br />
'''"Enable post-processing antialiasing"'''<br />
*'''-aa''' This flag enables the default antialiasing. Because FSO uses a deferred renderer, hardware-driven AA methods like MSAA cannot be used; the engine includes the well-established FXAA and SMAA post-processing shaders to get antialiasing instead. By default, the "Low" preset of the SMAA shader will be used. <br />
*'''-aa_preset''' Sets a different antialiasing mode, in case the default is insufficient or is too taxing on the GPU. This parameter takes a numeric argument ranging from 0 to 6. 0-2 correspond to the Low, Medium and High FXAA presets, 3-6 to the Low, Medium, High and Ultra SMAA presets respectively. The impact of these presets, both in terms of performance and in terms of visuals, can be observed in the F3 lab: The number keys 0-6 can be used to switch through the various AA presets on the fly there.<br />
}}<br />
<br />
====-fxaa====<br />
'''"Enable FXAA antialiasing"'''<br />
<br />
Enables the FXAA anti-aliasing. Further information can be found here: http://www.hard-light.net/forums/index.php?topic=76145.0<br />
There is an associated parameter -fxaa_preset, which takes a number from 0 to 7; these can be used to set the effect's quality. Note that, while there are up to 7 possible values for this parameter, there are only 3 presets available: a value of 0-3 corresponds to the "Low" preset, 4-6 gets you the "medium" preset, and 7 and up switches to the "High" preset.<br />
<br />
This antialiasing mode should only be used on very old (read: 2005-2010 era) hardware. For all other systems, the -smaa flag (detailed below) should be used.<br />
{{Table202|<br />
This parameter has been deprecated in favour of the -aa parameter, as seen above<br />
}}<br />
<br />
====-smaa====<br />
'''"Enable SMAA anti-aliasing"'''<br />
<br />
Enables the SMAA anti-aliasing method. Like FXAA, this is a post-processing effect that provides an AA stage; It is a more advanced and therefore more resource-intensive effect, but generally produces higher-quality images.<br />
Like -fxaa, there is a configurable flag -smaa_preset, which takes a number from 0 to 3; these correspond directly to the Low, Medium, High and Ultra presets of the SMAA shader.<br />
<br />
It is possible to compare the effectiveness of the different AA shaders by using the F3 lab: Load up any ship model and a background, then use the number keys 0 to x to switch through the various AA methods. 0-2 correspond to FXAA Low, Medium and High, 3-6 correspond to SMAA Low, Medium, High and Ultra.<br />
{{Table202|<br />
This parameter has been deprecated in favour of the -aa parameter, as seen above<br />
}}<br />
<br />
====-nolightshafts====<br />
'''"Disable lightshafts"'''<br />
<br />
Disables Lightshafts even if a mission designer enables them via SEXP in a mission. This was previously documented as -flightshaftsoff but appears to have been changed to -nolightshafts for consistency before -flightshaftsoff was ever used in a released build.<br />
<br />
====-fb_explosions====<br />
'''"Enable Framebuffer Shockwaves"'''<br />
<br />
Applies a framebuffer distortion effect to shockwaves<br />
<br />
====-fb_thrusters====<br />
'''"Enable Framebuffer Thrusters"'''<br />
<br />
Applies a framebuffer distortion effect to Thrusters. NOTE: Only "point" thrusters are affected by this; modelled thrusters (as used on most retail models) are not affected by this.<br />
<br />
====-no_deferred====<br />
'''"Disable Deferred Lighting"'''<br />
<br />
DESCRIPTION NEEDED<br />
<br />
====-enable_shadows====<br />
{{table373|<br />
'''"Enable shadows"'''<br />
<br />
Enables shadows where supported by the OpenGL version provided by the user's GPU. -shadow_quality can be used to control the quality level.<br />
{{note|Currently doesn't support shadows for cockpits and show ship.}}<br />
}}<br />
<br />
===Game Speed===<br />
<br />
====-no_vsync====<br />
'''"Disable vertical sync"'''<br />
<br />
<br />
===HUD===<br />
<br />
====-fps====<br />
'''"Show frames per second on HUD"'''<br />
<br />
Displays current frames per second.<br />
<br />
====-dualscanlines====<br />
'''"Another Pair of Scanning Lines"'''<br />
<br />
Adds a second pair of scanning lines to the target window when scanning an object.<br />
<br />
====-targetinfo====<br />
'''"Enable Info next to Target"'''<br />
<br />
Displays target info, such as name and class, beside the targeted object.<br />
<br />
====-orbradar====<br />
'''"Enables 3D radar"'''<br />
<br />
An Orb style 3D radar will replace the standard 2D version.<br />
<br />
====-rearm_timer====<br />
'''"Enable Rearm/Repair Completion Timer"'''<br />
<br />
Displays time remaining until rearm and repair from a support ship is complete.<br />
<br />
====-ballistic_gauge====<br />
'''"Enable the analog Ballistic Ammo gauge"'''<br />
<br />
Adds an ammo gauge to the HUD when armed with a ballistic weapon.<br />
<br />
<br />
===Gameplay===<br />
<br />
====-window====<br />
'''"Run in Window"'''<br />
<br />
Runs the game in a window. No check to make sure that resolution is no higher than your desktop resolution, so be careful.<br />
<br />
====-fullscreen_window====<br />
'''"Run in Fullscreen Window"'''<br />
<br />
Runs the game in a borderless window.<br />
<br />
====-stretch_menu====<br />
'''"Stretch interface to fill screen"'''<br />
<br />
Scales the interface to fill the screen without preserving the aspect ratio. Omit this to keep the aspect ratio, adding black bars where appropriate.<br />
<br />
====-noscalevid====<br />
"Disable scale-to-window for Movies"<br />
<br />
Disables fullscreen scaling of video clips.<br />
<br />
====-nomotiondebris====<br />
'''"Disable motion debris"'''<br />
<br />
====-ship_choice_3d====<br />
'''"Use Models for Ship Selection"'''<br />
<br />
Uses ship models in ship selection window. It completely disables the standard ANI interface in this screen. <br><br />
If a mod does not supply the required interface art for a ship, this mode will be used instead.<br />
<br />
====-weapon_choice_3d====<br />
'''"Use Models for Weapon Selection"'''<br />
<br />
Uses weapon models in weapon loadout window for secondary weapons (missiles and bombs). It completely disables the standard ANI interface in this screen. <br><br />
If a mod does not supply the required interface art for a weapon, this mode will be used instead.<br />
<br />
====-3dwarp====<br />
'''"Enable 3D Warp"'''<br />
<br />
Use full geometry for the subspace warp effect.<br />
<br />
====-warp_flash====<br />
'''"Enable Flash upon Warp"'''<br />
<br />
Enable a flash at warp in and warp out.<br />
<br />
====-no_ap_interrupt====<br />
'''"Disable Interrupting of AutoPilot"'''<br />
<br />
Tells the game to not allow players to interrupt an autopilot already-in-progress.<br />
<br />
<br />
===Audio===<br />
<br />
====-nosound====<br />
'''"Disable Sound and Music"'''<br />
<br />
====-nomusic====<br />
'''"Disables Music"'''<br />
<br />
====-no_enhanced_sound====<br />
'''"Disable enhanced sound"'''<br />
<br />
Disables the enhanced sound rendering functions enabled by OpenAL Soft.<br />
<br />
<br />
===Launcher===<br />
<br />
====-portable_mode====<br />
'''"Store config in portable location"'''<br />
<br />
<br />
Uses the root directory of FSO for storing pilot and config files. The current launcher does not have proper support for this yet so you need to manually copy the fs2_open.ini from the original config directory to your FreeSpace Root directory.<br />
<br />
<br />
====-parse_cmdline_only====<br />
'''"Parse Command Line Only"'''<br />
<br />
Parse only the application command line settings, and ignore any that may have been set in the on-disk data/cmdline_fso.cfg or per-user cmdline_fso.cfg (on Linux/Mac)<br />
<br />
<br />
====-get_flags====<br />
{{Table38|'''"Output the launcher flags file"'''<br />
Used by launchers to get certain information from FSO via binary file or stdout.<br />
*Syntax: '''''String''''', either '''binary''' or '''json_v1'''<br />
<br />
'''binary''' will output info to a binary file in the root directory (probably within AppData)<br />
'''json_v1''' will output via stdout on the console a .json object as a string}}<br />
<br />
===Multiplayer===<br />
<br />
====-standalone====<br />
'''"Run as Stand Alone Server"'''<br />
<br />
Creates a standalone multi-player server.<br />
<br />
====-startgame====<br />
'''"Skip Mainhall and Start Hosting"'''<br />
<br />
Once you launch and choose a pilot within the game, you will immediately have begun to host a game. This can be used in conjunction with several options to customize the game you create: -closed, -restricted, -password, -gamename, -allowabove, and -allowbelow. -startgame has no effect when -standalone is used.<br />
<br />
See related: [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-restricted|-restricted]] [[Command-Line_Reference#-password|-password]] [[Command-Line_Reference#-gamename|-gamename]] [[Command-Line_Reference#-allowabove|-allowabove]] [[Command-Line_Reference#-allowbelow|-allowbelow]]<br />
<br />
====-closed====<br />
'''"Start Hosted Server as Closed"'''<br />
<br />
Hosts a new game in a closed state, where no one can join until the in-game "Close" button is cleared. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -restricted or -password.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-restricted|-restricted]] [[Command-Line_Reference#-password|-password]]<br />
<br />
====-restricted====<br />
'''"Host Confirms Join requests"'''<br />
<br />
Hosts a new game in a restricted state. The host is presented with option to accept or deny each client's request to join the game. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -closed or -password.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-password|-password]]<br />
<br />
====-multilog====<br />
Creates a log file with a summary of packets sent and received in multiplayer games. The file is saved as \data\multi.log within the active mod folder&mdash;or with main data folder if no mod is active.<br />
<br />
====-clientdamage====<br />
{{Note| Removed as of 21.0}}<br />
<br />
====-mpnoreturn====<br />
'''"Disables Flight Deck option"'''<br />
<br />
Disables return to the flight deck screen after a mission completes.<br />
<br />
====-gateway_ip====<br />
'''"Set gateway IP address"'''<br />
<br />
<br />
===Troubleshooting===<br />
<br />
====-no_set_gamma====<br />
'''"Disable Setting of Gamma"'''<br />
<br />
Disables the gamma settings in the options screen.<br />
<br />
====-nomovies====<br />
'''"Disable Video Playback"'''<br />
<br />
Disables all video playback.<br />
<br />
====-noparseerrors====<br />
'''"Disable Parsing Errors"'''<br />
<br />
Disables some parsing warnings and makes other parse errors non-fatal. Do not rely on this when creating new tables. The errors are there for a reason.<br />
<br />
====-loadallweps====<br />
'''"Load all weapons, even those not used"'''<br />
<br />
====-disable_fbo====<br />
'''"Disable OpenGL RenderTargets"'''<br />
<br />
====-disable_pbo====<br />
'''"Disable OpenGL Pixel Buffer Objects"'''<br />
<br />
Disables the use of Pixel Buffer Objects (PBO) which may cause certain OpenGL operations to perform slower. Note PBO's were only used at three places in FSO anyway so it's *probably* not going to have a noticeable effect. <br />
<br />
May be required to workaround issues in certain versions of Linux's Mesa drivers for Intel integrated graphics cards where crashes occur in the mainhall (i.e. whenever a popup occurs). Distros that seem to have this problem presently include Ubuntu 13.10 and openSUSE 13.1.<br />
{{Table371|<br />
*This feature is present to work around a bug in Linux's Mesa drivers for Intel integrated graphics cards}}<br />
<br />
====-ati_swap====<br />
'''"Fix Color issues on some ATI cards"'''<br />
<br />
[http://scp.indiegames.us/mantis/view.php?id=1669 Mantis #1669] is what led to this flag's creation.<br />
<br />
====-no_3d_sound====<br />
'''"Use only 2D/stereo for sound effects"'''<br />
<br />
====-mipmap====<br />
'''"Enable mipmapping"'''<br />
<br />
Causes for non-mipmapped textures to have mipmaps generated within the GPU on certain kind of texture formats, (IIRC, DDS formatted textures with a power of 2 size in both width and height). <br><br />
Since the use of already mipmapped DDS textures has become common, it has become deprecated.<br />
The quality of the generated mipmaps depends on each GPU and used driver. It is normally used with [[Command-Line_Reference#-img2dds|-img2dds]] flag.<br />
<br />
====-use_gldrawelements====<br />
'''"Use glDrawElements instead of glDrawRangeElements"'''<br />
<br />
Introduced as a means of switching to the slower OpenGL call glDrawElements, instead of glDrawRangeElements.<br />
{{Table3614|<br />
*This feature may resolve certain rendering problems where parts of models are not drawn on Linux drivers}}<br />
<br />
====-gl_finish====<br />
'''"Fix input lag on AMD+Linux"'''<br />
{{Table371|<br />
This option adds a "glFinish()" call just prior to swapping buffers. It works around an issue with "recent" (HD 6000 & newer?) AMD cards using proprietary drivers on Linux. Be warned that enabling this may reduce framerate.<br />
}}<br />
<br />
Refer to [http://www.hard-light.net/forums/index.php?topic=88102.0 this thread] and [https://github.com/ValveSoftware/Source-1-Games/issues/765 Valve's bugtracker] for more details).<br />
<br />
====-no_geo_effects====<br />
'''"Disable geometry shader for effects"'''<br />
<br />
Particle rendering uses geometry shaders for high performance, this flag disables that behaviour.<br />
<br />
====-set_cpu_affinity====<br />
'''"Sets processor affinity to config value"'''<br />
<br />
Use this to force FSO to run on the specified core. CPU cores are numbered starting with 0 for the first core.<br />
<br />
====-nograb====<br />
Disables focus grabbing in a window.<br />
{{Note| This feature is not available on Windows.}}<br />
<br />
====-noshadercache====<br />
'''"Disables the shader cache"'''<br />
<br />
On GPUs with support for OpenGL 4 and higher, FSO caches the compiled shaders for increased performance.<br />
<br />
====-fix_registry====<br />
'''"Use a different registry path"''''<br />
<br />
====-log_multi_packet====<br />
'''"Dump packet type to the debug log. Helps with misaligned multi packets."''''<br />
<br />
DESCRIPTION NEEDED<br />
<br />
===Experimental===<br />
<br />
====-ingame_join====<br />
'''"Allows Ingame Joining"'''<br />
<br />
Enables ingame joining in multiplayer. FIXME: Host option?<br />
<br />
====-voicer====<br />
'''"Voice Recognition"'''<br />
<br />
Windows-only. Enables voice-recognition for wingmen commands. Must be specifically compiled into a build in order for it to be available; 3.6.10 final includes the feature. See [[Voice Recognition]] for more details.<br />
<br />
<br />
===Development Tools===<br />
<br />
====-bmpmanusage====<br />
'''"Show how many BMPMAN slots are in use"'''<br />
<br />
Adds a BMPMAN slot usage display near where the FPS display is (or would be, if it's not enabled). Can be used by mod makers to see if they need to increase their [[Game_settings.tbl#$BMPMAN Slot Limit:|BMPMAN slot limit]].<br />
<br />
====-pos====<br />
'''"Show Position of Camera"'''<br />
<br />
Displays current position coordinates of camera.<br />
<br />
====-stats====<br />
'''"Show Statistics"'''<br />
<br />
Shows total and free physical memory, virtual memory and system pagefile.<br />
<br />
====-coords====<br />
'''"Show Coordinates"'''<br />
<br />
Shows coordinates of the mouse cursor.<br />
<br />
====-pofspew====<br />
Loads all POF files in the current mod and prints out information on their LODs and mesh faces. In previous version of FSO this command also generated IBX cache files for each object in the data/cache folder for that mod, but IBX cache files are no longer used. <br><br />
Nowadays, this command is most useful for quickly checking all models in a mod for any debug errors.<br />
<br />
====-weaponspew====<br />
{{table202|<br />
Outputs information about player-allowed weapons (and child munitions) to the log file. This includes a CSV with comparative stats on all weapons, as well as MediaVP-style descriptions for the loadout screen. <br><br />
The command '-weaponspew all' will print all weapons, not just player-allowed weapons.}}<br />
<br />
====-tablecrcs====<br />
Is actually now (or should be) a typed reference rather than as a selection item. Takes 1 argument, usually a descriptive name.<br />
Example usage: "-table_crcs MediaVPs" will create a table_crcs.csv file in the running mod (name can be separate of the mod selected) that allows for the validation of the tables used by that mod while on-line. The descriptive parameter given helps "allocate" that .csv file to the mod in question, and as such should closely or exactly match that mods name if possible.<br />
<br />
====-missioncrcs====<br />
Is actually now (or should be) a typed reference rather than as a selection item. Takes 1 argument, usually a descriptive name.<br />
Example usage: "-mission_crcs MediaVPs" will create a mission_crcs.csv file in the running mod (name can be separate of the mod selected) that allows for the validation of the missions used by that mod while on-line. The descriptive parameter given helps "allocate" that .csv file to the mod in question, and as such should closely or exactly match that mods name if possible.<br />
<br />
====-dis_collisions====<br />
'''"Disable Collisions"'''<br />
<br />
Disables all collisions.<br />
<br />
====-dis_weapons====<br />
'''"Disable Weapon Rendering"'''<br />
<br />
Disables weapons rendering.<br />
<br />
====-output_sexps====<br />
This will make the FSO build spit out an html file that documents the supported SEXP's.<br />
<br />
Just double click on sexps.html and it should open in your default web browser.<br />
<br />
====-output_scripting====<br />
This will make the FSO build spit out an html file that documents the supported scripting hooks and LUA libraries.<br />
<br />
Just double click on scripting.html and it should open in your default web browser.<br />
<br />
====-save_render_target====<br />
'''"Save Render Targets to file"'''<br />
<br />
====-verify_vps====<br />
'''"Spew VP crcs to vp_crcs.txt"'''<br />
<br />
Exports the CRC values of the VP files being loaded into a vp_crcs.txt file.<br />
<br />
====-reparse_mainhall====<br />
'''"Reparse mainhall.tbl when loading halls"'''<br />
<br />
Mainhall.tbl will be reparsed every time a mainhall is loaded, as opposed to just once at game startup.<br />
<br />
====-noninteractive====<br />
'''"Disables interactive dialogs"'''<br />
Disables all dialogs and chooses the default option when one would be displayed. Very useful for a standalone server on a headless system.<br />
<br />
====-no_unfocused_pause====<br />
'''"Don't pause if the window isn't focused"'''<br />
<br />
When the FSO window looses focus it will not pause the game, useful for doing non-interactive test runs.<br />
<br />
====-benchmark_mode====<br />
'''"Puts the game into benchmark mode"'''<br />
See [[Benchmarking]] for more information.<br />
<br />
====-profile_frame_time====<br />
'''"Profile frame time"'''<br />
<br />
Activates the frame profiling code. This presents a readout showing the current, minimum, maximum and average percentages of frametime a given section of code has taken up; this can be used to identify particular bottlenecks or measure the effectiveness of certain optimizations.<br />
<br />
====-profile_write_file====<br />
'''"Write profiling information to file"'''<br />
<br />
This will write the frame times of each gameplay frame to the file 'profiling.csv' where each line is ''<time>;<frametime>''. Both times are measured in nanoseconds(1/1000000000th of a second). ''time'' is measured from an arbitrary time in the past. To get consistent results the first ''time'' value should be substracted from all ''time'' values. The first two frames are usually very long because the timer is set at engine startup so you might want to exclude those from your data.<br />
<br />
====-json_profiling====<br />
'''"Generate JSON profiling output"'''<br />
<br />
Gathers information from the built-in profiling tools and writes them out to a .json file readable by the Google Chrome tracer or TraceCompass/SpaceCompass.<br />
NOTE: This will create fairly massive data sets (several hundred megabytes per minute of gameplay). The files will be written to the subdirectory "tracing" in the FreeSpace data folder; FreeSpace will not create that folder automatically, however.<br />
<br />
====-debug_window====<br />
'''"Display Debug Window"'''<br />
<br />
Lists the fs2_open.log in (nearly)real-time generation.<br />
<br />
====-gr_debug====<br />
'''"Output graphics debug information"'''<br />
<br />
====-stdout_log====<br />
'''"Output log file to stdout"'''<br />
<br />
====-slow_frames_ok====<br />
'''"Don't adjust timestamps for slow frames"'''<br />
<br />
==Other==<br />
<br />
The following options are not available as checkboxes in the launcher and must be entered into the "Custom flags" field. Many require parameters, which follow the flag separated by a space. The prototype for use in this case is "-option argument"<br />
<br />
===Lighting===<br />
These factors can dramatically alter the atmosphere of the game. [[Sample Lighting Settings|This page]] has some sample lighting settings with screenshots. Largely sourced from [https://www.hard-light.net/forums/index.php?topic=94875.msg1870215#msg1870215 this thread].<br />
<br />
====-ambient_factor====<br />
This is a multiplier applied to the intensity of ambient lighting. Ambient light is lighting applied to all parts of a ship. The way this works is a bit weird. (ambient factor * 2) - 255 is "added" to mission ambient, but since this will almost always be a negative value it's actually removed from mission ambient. Because of how light values are clamped it cannot go below 5.1, ambient_factor 70 will result in -115 to mission ambient which is 120 by default. 70 is essentially the lowest ambient for missions with default ambient settings which are all retail missions and the vast majority of mod missions. FS2's standard value is 120. 70 is basically no ambient, 80 is a bit of ambient, and 90 is quite a bit of ambient(ships will look bright from all sides). Anything above that will make ships look incredibly "flat". This is a relative value.<br />
<br />
====-spec_point====<br />
This is a multiplier that adjusts how much laser weapons contribute to specular highlights. Higher number mean greater contributions. If you want lasers to light up more set this to around 2. If you want less lighting, set it to around 0.5. Default is 1.0. This is a relative value.<br />
<br />
====-spec_static====<br />
This is a multiplier that adjusts how much suns contribute to specular highlights. Higher numbers mean a greater contribution. For non-PBR models it will make their sun-lit side very shiny and reflective; for PBR models it will make the sun-lit side a lot brighter. There's no flag to control diffuse static lighting so non-PBR models will always have the same amount of light come from suns. Default is 1.0. This is a relative value.<br />
<br />
====-spec_tube====<br />
This is a multiplier that adjusts how much beam weapons contribute to specular highlights. Higher numbers mean a greater contribution. If you want lasers to light up more set this to around 2. If you want less lighting, set it to around 0.5. Default is 1.0. This is a relative value.<br />
<br />
====-ogl_spec====<br />
*'''''This feature is now deprecated, it will have no effect on rendering.'''''<br />
Takes a numerical argument. This value changes the basic shininess of the specular light in OpenGL. A lower value reduces the overall intensity of the light making it broader and less powerful. A higher value makes it more focused and brighter. The default value is 80, and the usable range is 0 to 128 (clamped). The original default value was 60, but it was raised to behave more D3D like.<br />
<br />
====-spec_exp====<br />
*'''''This feature is now deprecated, it will have no effect on rendering.'''''<br />
This must be used with the -spec command line parameter and must be entered into the "Custom flags" field. Adjusts the size of the shiny spot on ships. Higher number mean smaller spots. Default is 16. This is a relative value.<br />
<br />
<br />
===Graphics===<br />
<br />
====-bloom_intensity====<br />
Requires -post_processing ("Enable Post Processing") command.<br />
Default value is 25. Range is 0-200.<br />
<br />
====-shadow_quality====<br />
{{table373|<br />
'''"Set shadows quality"'''<br />
<br />
This sets the resolution for the shadow maps the engine uses for real-time shadowing.<br />
Note that higher resolutions require more processing power and VRAM; this feature is only recommended for users with a decently powerful dedicated GPU.<br />
Valid ranges are 0 to 4 with 2 being the default. <br />
<br />
* 0 disables shadows (so there's no point in setting it!)<br />
* 1 uses 512x512 resolution (lower quality)<br />
* 2 uses 1024x1024 resolution (medium quality)<br />
* 3 uses 2048x2048 resolution (high quality)<br />
* 4 uses 4096x4096 resolution (ultra quality) <br />
<br />
Currently this requires -enable_shadows to be set, or it has no effect.<br />
}}<br />
{{table38|No longer requires -enable_shadows to be set.}}<br />
<br />
====-anisotropic_filter====<br />
{{table382|<br />
'''"Set anisotropic filtering level"'''<br />
Valid ranges are 1 to whatever maximum the GPU supports (which should be 16 for most currently available GPUs)<br />
By default, the GPUs' max supported level is used; set this to 1 if you want the minimum level available.}}<br />
<br />
====-clipdist====<br />
Changes the distance from the viewpoint for the near-clipping plane.<br />
<br />
Takes one argument decimal specifying the distance to the near-clipping plane.<br />
<br />
====-res====<br />
Allows you to specify a resolution if the desired one cannot be set in the Launcher. <br />
For example, -res 1920x1080 would run the game in 1920 x 1080 resolution. Since it requires an argument, it needs to be entered as a custom flag when using the Launcher. The "Run at specified resolution" option the Launcher gives is essentially this, but without being able to actually specify a resolution, it doesn't work.<br />
<br />
====-center_res====<br />
Specifies how much of the screen area should be utilized by menus, movies, the HUD, and various other 2D graphics. Intended for use with configurations with an extremely wide field of view, such as triple-monitor setups.<br />
<br />
By default, if the screen resolution's aspect ratio is wider than 7:2, most 2D elements utilize only the center 3/10 of the screen area. This setting allows users to override this behavior to make better use of the center monitor. (The reason for using 3/10 rather than 1/3 is that many triple-monitor setups use bezel correction, which reduces the fraction of the screen area that the center monitor displays.)<br />
<br />
For example, if the screen resolution is 6000x1080, then -center_res 1920x1080 will keep most 2D graphics in the center 1920x1080 area. This setting is automatically scaled to fit the screen resolution, so (assuming the resolution is still 6000x1080) -center_res 1280x720 is given, then that resolution is enlarged to 1920x1080.<br />
<br />
====-aa_preset====<br />
{{table202|<br />
This parameter can be used to select the AA solution the engine is using. Valid values are 0 to 6 inclusive:<br />
* 0: FXAA Low<br />
* 1: FXAA Medium<br />
* 2: FXAA High<br />
* 3: SMAA Low<br />
* 4: SMAA Medium<br />
* 5: SMAA High<br />
* 6: SMAA Ultra<br />
<br />
The various AA presets can be tested in the F3 lab; the number keys from 0-6 switch between the various presets as described above.<br />
}}<br />
<br />
====-fxaa_preset====<br />
Requires both -post_processing and -fxaa. Can be used to adjust the FXAA quality and speed, 0 is fastest, 9 is highest quality. Default setting is 6.<br />
{{table202|Has been superceded by the -aa_preset cmdline argument}}<br />
<br />
====-smaa_preset====<br />
Requires both -post_processing and -smaa. Can be used to adjust the SMAA quality and speed, 0 is low, 1 is medium, 2 is high, and 3 is ultra (highest quality). Default setting is 1.<br />
{{table202|Has been superceded by the -aa_preset cmdline argument}}<br />
<br />
===Game Speed===<br />
<br />
====-no_fps_capping====<br />
'''"Don't limit frames-per-second"'''<br />
<br />
<br />
===Gameplay===<br />
<br />
====-keyboard_layout====<br />
'''"Manually sets a keyboard layout"'''<br />
<br />
A commandline parameter to set the keyboard layout as a string parameter.<br />
{{Table3614|<br />
*Currently the only valid string is "qwertz" (German) but French azerty may be added in future.}}<br />
<br />
====-start_mission====<br />
'''"Skip the mainhall in jump right into the specified mission"'''<br />
<br />
Jump into the mission specified by the filename. Only in effect on the first run. This will skip load of the mainhall and its other related things altogether.<br />
<br />
====-mod====<br />
Specifies in which folders inside FreeSpace 2 directory, the game looks for all the game data (models, missions, textures, tables, ...). Retail version only looks inside ''Freespace2/data/'' structure and ''Freespace2/vp archives''.<br />
<br />
This flag allows installing several different mods that modify retail behavior, and switching between them without needing to erase files or having undesired cross effects. Each mod should be installed in its own folder.<br />
<br />
It takes one argument string: the chain of names of the used directories. Comma (''',''') must be used as separator. In this way, '''-mod dir1,dir2,dir3,...,dirx''' causes the game to use the following directory precedence:<br />
<br />
#Freespace2/dir1/<br />
#Freespace2/dir2/<br />
#Freespace2/dir3/<br />
# ... (the rest of the typed directories) ...<br />
#Freespace2/dirx/<br />
#Freespace2/<br />
<br />
This flag can be indirectly set, (and it is normally set), through Launcher MOD tab and [[mod.ini]] file.<br />
<br />
Within the Launcher's MOD tab you can select one directory, (let's call it ''moddir''), so the flag is at least set to '''-mod moddir'''.<br />
If ''Freespace2/moddir/[[mod.ini]]'' exists it will be used to modify the -mod flag, too.<br />
<br />
For further details, see '''[[mod.ini]]'''<br />
<br />
'''Data precedence'''<br />
<br />
As already said, within the different directories, the data precedence is set by the specified order in the -mod flag. The lowest priority goes to the Freespace2 installation directory.<br />
<br />
Inside each directory, data precedence is the following:<br />
<br />
#Individual files located in ''Current_dir/data/'' subdir structure. See [[FS2_Data_Structure|FS2 Data Structure topic]] for deeper info about the different folders and contents this structure has.<br />
#Files located inside vp archives. (These vp archives are "similar" to zip archives. They just contain other files and folders. Moreover, files have to be stored using the same ''data/'' structure used outside it). <br>Vp archives are read in alphabetical order with files loaded earlier taking priority over those loaded later. So aaa.vp files have higher priority than aab.vp files and so on.<br />
<br />
The highest priority file overrides the rest of them. In this way, if you have a ''Mission.fs2'' inside ''Freespace2/Pri1/data/missions/'' it doesn't matter that this ''Mission.fs2'' is also inside ''Freespace2/Pri1/aaa.vp'', ''Freespace2/Pri1/aab.vp'', ... or ''Freespace2/data/missions/''. This data precedence allows the user to quickly replace old files by corrected or enhanced ones adding them in a higher priority place.<br />
<br />
<br />
'''Additional notes'''<br />
# As derived from the explanation, the exact names for directories or vp archives are actually irrelevant. It only matters the directory order inside -mod flag argument and the alphabetical order for vp archives inside each used directory.<br />
# This flag is also used by [[Portal:FRED|FRED]]. So if there is special mod info, (like backgrounds maps, ship models or whatever), it must be typed, (''Fred2_Open_r.exe -MOD whatever''), or FRED won't be able to use it. A special build of wxLauncher is able to configure FRED so that the -mod doesn't have to be done manually see [http://www.hard-light.net/forums/index.php?topic=67950.msg1387911#msg1387911 the forum post] for more details.<br />
{{Table3612|As of 3.6.12 FRED now loads cmdline_fso.cfg just like FS does so FRED will use the same settings as FS including the -mod settings}}<br />
# Be careful while typing the directory names in the flag argument or inside mod.ini files. The program doesn't check if the typed directories exist. If they do not exist, they are just ignored. No warnings, no errors, no messages at all.<br />
<br />
{{Warning| '''Priority and Texture Formats'''<br />
<br />
''Obsolete behavior - Until FS2_open v3.6.9.:''<br />
<br />
FS2_Open can use several file formats in textures: [http://en.wikipedia.org/wiki/PCX PCX], [http://en.wikipedia.org/wiki/DirectDraw_Surface DDS], [http://en.wikipedia.org/wiki/JPG JPG] and [http://en.wikipedia.org/wiki/TGA TGA]. Make sure you keep the format when you update your texture. For example if you update the old ''TextureOfMyFighter.tga'', do not save it as ''TextureOfMyFighter.dds'' in a higher priority place, because there is a chance of the game loading the old one despite of all.<br />
<br />
The reason to do this is that, loading process (including priorities) is applied firstly for a kind of textures (TGAs), then for another kind (JPGs), and so on. This behavior can lead to situation where your new, updated and higher priority placed texture is not read because the format of the older one.<br />
<br />
<br />
''New behavior - From FS2_open v3.6.10. (including previous beta testing releases):''<br />
<br />
The former issue has been fixed. Now texture format priority is only applied within the same location. In this ''strange'' situation it goes DDS -> TGA -> JPG -> PCX. Examples:<br />
* ''/Freespace2/MyVp.vp>>>data/maps/MyTexture.dds'' is loaded instead of ''/Freespace2/MyVp.vp>>>data/maps/MyTexture.tga''.<br />
* But your improved ''/Freespace2/data/maps/MyTexture.xxx'' will override them both despite of its format.<br />
In this way, when you update any texture, you don't have to pay attention to its original format. Just place it in a higher priority place.<br />
<br />
Nevertheless, global priority is kept between animated and static textures. Because of their management, animated textures (ANIs and EFFs) are looked for BEFORE static ones. In this way there's no way to update an animated texture with a static one (an obsolete ANI is always going to be loaded before the newer DDS version). The solution: use an updated EFF with just one frame.<br />
<br />
}}<br />
<br />
====-fov====<br />
This flag allows the player to specify the ''vertical'' Field of View (FoV) angle, in radians, for the player eyepoint. The angle is measured across the full height of the viewing cone. The FoV angle is technically known as the Angle of View (AoV)<br />
<br />
*Syntax: '''''float''''' Angle<br />
*Valid Values: 0 to 2*Pi radians<br />
*Default Value: 0.75 radians<br />
<br />
{{Note|For peculiar reasons, the actual FoV/AoV used by the game will be the supplied value multiplied by 1.39626348.}}<br />
<br />
<br />
The the FoV angle/AoV is what determines the relative zoom level of the main game camera. Smaller angles generally equal to higher zoom levels, while larger angles equal to lower zoom levels (down to the theoretical x0 magnification).<br />
<br />
<br />
However, too small of an angle will have a squashed look on the edges of your screen, and too high of an angle will greatly stretch edges. It is recommended to change the AoV, as FS2's default AoV has some perspective distortion at the screen edges (the default AoV is too high).<br />
<br />
<br />
A natural looking (as if you where physically in the cockpit) AoV depends on the distance the player's actual eyes are away from the screen: the further away from the screen, the smaller the AoV should be, and vice versa. "Ergonomic" distances generally yield a '''''diagonal''''' AoV of 0.523 radians (30 degrees), but you can easily find the natural AoV by the following formula:<br />
<br />
<br />
AoV (radians) = 2 * atan( H / ( 2*D ))<br />
<br />
where:<br />
<br />
Height of screen = H<br />
<br />
Distance between head/eye and the screen = D<br />
<br />
<br />
Generally, gamers like to increase the AoV in order to increase their peripheral vision on the screen, so as to gain a better situational awareness around their craft. An AoV of 0.39 radians seems to be a good start, but feel free to experiment and use whatever AoV you are most comfortable with.<br />
<br />
<br />
====-deadzone====<br />
This allows the player to set the deadzone value as a percentage of the joystick's range, allowing a more finely tuned setting than with the in-game options. <br />
*Syntax: '''''integer''''' Percentage<br />
*Valid Values: 0 to 100<br />
*Default Value: 0<br />
<br />
Setting this value to 100 will make the joystick axes completely unresponsive. <br />
While this flag is set, the in-game deadzone options will be disabled.<br />
<br />
===Launcher===<br />
<br />
====-query_speech====<br />
'''"Does this build have Speech?"'''<br />
<br />
Determines if the current build includes text-to-speech.<br />
<br />
<br />
===Multiplayer===<br />
<br />
====-gamename====<br />
Specifies the name of the game to be created by the host. This only works when used in conjunction with -startgame. <br />
<br />
Takes one argument string, the name to be assigned to the game being created.<br />
<br />
This argument does nothing when used with -standalone. To set the name for a standalone server, see [[Multiplayer(Main)#Standalone Servers|Standalone Servers]].<br />
<br />
See related:&nbsp;&nbsp; [[Command-Line_Reference#-startgame|-startgame]]&nbsp;&nbsp; [[Multiplayer(Main)#Standalone Servers|Standalone Servers]]<br />
<br />
====-password====<br />
Specifies the password for a standalone server. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -closed or -restricted.<br />
<br />
Takes one argument string, the required password for the game being created.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-restricted|-restricted]]<br />
<br />
====-allowabove====<br />
Specifies a player's minimum rank for joining a game. This only works when used in conjunction with -startgame.<br />
<br />
Takes one argument integer, the points ranking above which a player must be to enter the game.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]]<br />
<br />
====-allowbelow====<br />
Specifies a player's maximum rank for joining a game on a standalone server. This only works when used in conjunction with -startgame.<br />
<br />
Takes one argument integer, the points ranking below which a player must be to enter the game.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]]<br />
<br />
====-port====<br />
Specifies the port on which to host a game or serve a standalone game.<br />
<br />
Takes one argument integer, the port on which the host will listen for clients.<br />
<br />
====-connect====<br />
Automatically connect to multiplayer IP:PORT.<br />
<br />
Takes one string value, such as 192.168.0.1:<br />
<br />
====-timeout====<br />
Multiplayer network timeout (secs).<br />
<br />
Takes one integer argument, the timeout value in seconds. Default is 30.<br />
<br />
====-cap_object_update====<br />
Caps the maximum object update the server will respond to regardless of what the client has set. If the client is set to request high object updates but the server is capped to low, then that's all the client will get. <br />
<br />
Takes one argument integer (0 to 3) which corresponds to the object update cap (With 0 being low and 3 being LAN).<br />
<br />
<br />
===Help===<br />
<br />
====-help====<br />
Instructs FSO to print out all supported parameters. Some launchers can use these options to automatically populate the available command line options, even if the version of FSO is far newer than the launcher itself. NOTE: This option only works in Linux builds...<br />
<br />
====--help====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
====-h====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
====-?====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
<br />
===Deprecated Options===<br />
These options were present in the executable for some time, but have since been removed and deprecated. The engine will throw a non-fatal error when they are found in the commandline. Some of these functions have been removed entirely, others are now part of the standard operation of the engine.<br />
<br />
====-spec====<br />
<br />
====-env====<br />
<br />
====-glow====<br />
<br />
====-normal====<br />
<br />
====-height====<br />
<br />
====-missile_lighting====<br />
<br />
====-img2dds====<br />
<br />
====-snd_preload====<br />
<br />
====-nohtl====<br />
<br />
====-safeloading====<br />
<br />
====-timerbar====<br />
<br />
====-old_collision====<br />
<br />
====-json_pilot====<br />
'''"Dump pilot files in JSON format"'''<br />
<br />
Writes the information stored in savefiles to JSON files.<br />
<br />
====-novbo====<br />
'''"Disable OpenGL VBO"'''<br />
<br />
====-noibx====<br />
'''"Don't use cached index buffers (IBX)"'''<br />
<br />
Disables IBX caching of model geometry data. This will dramatically increase load times, but will help troubleshoot a model if one is working incorrectly.<br />
<br />
====-no_glsl====<br />
'''"Disable GLSL (shader) Support"'''<br />
<br />
Disables the use of GLSL rendering (OpenGL shaders). The game will revert to legacy fixed render pipeline. Please note that Normal and Height map effects will be unavailable.<br />
<br />
====-disable_glsl_model====<br />
'''"Don't use shaders for model rendering"'''<br />
<br />
====-disable_di_mouse====<br />
'''"Disables the DirectInput mouse code for FSO on windows."'''<br />
<br />
'''Windows Only''' Can make mouse movement smoother on certain machines.<br />
<br />
====-cache_bitmaps====<br />
'''"Cache bitmaps between missions"'''<br />
<br />
====-no_emissive_lighting====<br />
See -emissive_lighting.<br />
<br />
====-post_process====<br />
See -no_post_process.<br />
<br />
<br />
===Completely Removed Options===<br />
Using one of these is the same as using a random string.<br />
<br />
====-show_mem_usage====<br />
<br />
[[Category:Lists]]<br />
[[Category:Source Code Project]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=FS2_Status_Page&diff=63329
FS2 Status Page
2021-05-03T23:45:22Z
<p>Cyborg17: </p>
<hr />
<div>{| style="background-color: #000;" border="0"<br />
|colspan="3" align="left"|<br />
<br />
==Latest Recommended Release==<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97561.0 21.2.0 '''Final''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 2 May 2021<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97299.0 '''MediaVPs''' 4.4.x]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 28 January 2021<br />
|-<br />
|[http://scp.indiegames.us/builds/oalinst.zip '''OpenAL''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|-<br />
|[http://kcat.strangesoft.net/openal.html#download '''OpenALSoft''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Latest Official Release==<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97561.0 21.2.0 '''Final''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 2 May 2021<br />
|-<br />
|[https://github.com/scp-fs2open/wxLauncher/releases '''wxLauncher''' 0.12.0]<br />
|align="center" style="color: yellow;"|OBSOLETE<br />
|Supports 3.8.0 final and all nightly builds (Cross-platform) (not updated anymore)<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=94068.0 '''Knossos''' 0.14.3 ]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 27 June 2020<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=87537.0 '''FSO Installer''' 2.3.4 ]<br />
|align="center" style="color: yellow;"|OBSOLETE<br />
|Still maintained, but these days most mods are published on Knossos<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97299.0 '''MediaVPs''' 4.4.x]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 28 January 2021<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Multiplayer==<br />
|-<br />
|[https://pxo.nottheeye.com/ PXO]<br />
|align="center" valign="top" style="color: limegreen;"|Online<br />
|Available for game and statistics tracking, for validated mods, as of 2020.<br />
|-<br />
|[https://pxo.nottheeye.com/squadwar/leagues/ Squadwar]<br />
|align="center" style="color: yellow;"|IN DEVELOPMENT<br />
|In testing and development.<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Community==<br />
|-<br />
|[https://dev.tproxy.de/fs2/mirrors/ FSO Installer Mirrors]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|&larr; Status check of all mod mirrors currently configured in the installer<br />
|<br />
|}<br />
<br />
[[Category:The games]]<br />
[[Category:Source Code Project]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=FS2_Status_Page&diff=63328
FS2 Status Page
2021-05-01T02:58:18Z
<p>Cyborg17: Add details for Multiplayer "Apps"</p>
<hr />
<div>{| style="background-color: #000;" border="0"<br />
|colspan="3" align="left"|<br />
<br />
==Latest Recommended Release==<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97293.msg1900653 21.0.0 '''Final''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 27 January 2021<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97299.0 '''MediaVPs''' 4.4.x]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 28 January 2021<br />
|-<br />
|[http://scp.indiegames.us/builds/oalinst.zip '''OpenAL''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|-<br />
|[http://kcat.strangesoft.net/openal.html#download '''OpenALSoft''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Latest Official Release==<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97293.msg1900653 21.0.0 '''Final''']<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 27 January 2021<br />
|-<br />
|[https://github.com/scp-fs2open/wxLauncher/releases '''wxLauncher''' 0.12.0]<br />
|align="center" style="color: yellow;"|OBSOLETE<br />
|Supports 3.8.0 final and all nightly builds (Cross-platform) (not updated anymore)<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=94068.0 '''Knossos''' 0.14.3 ]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 27 June 2020<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=87537.0 '''FSO Installer''' 2.3.4 ]<br />
|align="center" style="color: yellow;"|OBSOLETE<br />
|Still maintained, but these days most mods are published on Knossos<br />
|-<br />
|[https://www.hard-light.net/forums/index.php?topic=97299.0 '''MediaVPs''' 4.4.x]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|Release Date: 28 January 2021<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Multiplayer==<br />
|-<br />
|[https://pxo.nottheeye.com/ PXO]<br />
|align="center" valign="top" style="color: limegreen;"|Online<br />
|Available for game and statistics tracking, for validated mods, as of 2020.<br />
|-<br />
|[https://pxo.nottheeye.com/squadwar/leagues/ Squadwar]<br />
|align="center" style="color: yellow;"|IN DEVELOPMENT<br />
|In testing and development.<br />
|-<br />
|colspan="3" align="left"|<br />
<br />
==Community==<br />
|-<br />
|[https://dev.tproxy.de/fs2/mirrors/ FSO Installer Mirrors]<br />
|align="center" style="color: limegreen;"|GOOD<br />
|&larr; Status check of all mod mirrors currently configured in the installer<br />
|<br />
|}<br />
<br />
[[Category:The games]]<br />
[[Category:Source Code Project]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Portal:Multiplayer&diff=63236
Portal:Multiplayer
2021-03-03T04:30:16Z
<p>Cyborg17: Add a link to new documentation page</p>
<hr />
<div>{| border=0 align=center cellpadding=4 cellspacing=0 width=95% style="margin: 0 0 1em 1em; background: #202020; border: 1px #AA2020 solid; border-collapse: collapse; font-size: 95%;"<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''The FreeSpace Multiplayer Portal'''<br />
|}<br />
<br />
{| border=0 align=right cellpadding=4 cellspacing=0 width=20% style="margin: 0 0 1em 1em; background: #302020; border: 1px #AA2020 solid; border-collapse: collapse; font-size: 95%;"<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Technical'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer Getting Started Guide|Getting Started Guide]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[List of FS2NetD-Supported Mods]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Troubleshooting#Multiplayer|Troubleshooting]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer FAQ]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[FS2_WebUI_Standalone|WebUI Standalone Servers]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer_developer_guide|Multiplayer Developer Guide]]<br />
|-<br />
<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Gameplay'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer Medals and Awards|Medals & Awards]]<br />
|-<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Community'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[:Category:Multiplayer Squadrons|Multiplayer Squadrons]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Playing tips (multiplayer)|Playing Tips]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer code of conduct|Code of Conduct]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Multiplayer lingo]]<br />
|-<br />
|}<br />
<br />
Welcome to the FreeSpace Multiplayer Portal. This section is dedicated to providing guides on how to set up, play, host, and enjoy multiplayer games, as well as useful information about the multiplayer community such as squadrons, codes of conduct, and the like.<br />
<br />
===FreeSpace Multiplayer===<br />
[[Image:Create_game_screen.JPG|left|300px|thumb|Create Game Screen]]<br />
Currently, the [[FreeSpace Open]] engine supports multiplayer games with up to 12 human participants as well as any number of AI players. Play can be both cooperative and head-to-head, and can consist of anything from single mission slugfests up to full-length cooperative campaigns.<br />
<br />
All games are currently hosted by one of their participants. The host chooses the mission (''see image to the left''), and has the power to kick players, set privileges, and the like.<br />
<br />
The retail release of FreeSpace 2 in 1999 included a standalone server option which was later broken by various changes made by the SCP. Recently, a lot of work has been done to correct this, and on current builds the standalone server '''will work''' when run with retail data. Work is still progressing on making it compatible with the new data formats introduced by the Source Code Project. <br />
<br />
===Connection Types===<br />
There are two several ways of playing online games using FSO. You can also play the game on LAN.:<br />
* The rebooted PXO.<br> This service is available through a special build that is currently (9/2/2018) compatible only with retail data. See [https://www.hard-light.net/forums/index.php?topic=94588.0 https://www.hard-light.net/forums/index.php?topic=94588.0] for setup instructions.<br />
*Connecting through [[FS2NetD]].<br>FS2NetD is a replacement for the original Parallax Online service that has now been terminated. It acts as a lobby for multiplayer games, tracking servers and facilitating connections without users needing to worry about each other's IP addresses, and also tracks stats for games that are played using validated data and missions. It does not actually host the games that are played, acting merely as a middle man. Unfortunately, though the game tracker is still up and running, the website does not allow new registrations.<br />
<br />
*Direct IP connection.<br />It is also possible to play IP games, but doing this requires all participants to manually enter the IP of the server that hosts the game.<br />
<br />
Details of setting up FSO to use either of these two options are explained in the getting started guide.<br />
<br />
*LAN<br />To play on LAN, you'll have to change a few settings. Go into your ../Freespace 2/data/multi.cfg file and remove everything (back up the old file somewhere). Then add the following line: +lan_update<br />
<br />
Now save the file. In the FS2 launcher, set the multiplayer connection to LAN and leave the Force IP and Force Port fields blank. You can enable "Allow in-game joining" in the Features/Experimental tab. Run Freespace 2.<br />
<br />
In FreeSpace 2, create a multiplayer pilot. Then go into Options and select the Multi tab. Enable TCP, and /Multidata. Disable PXO. Do not set any IPs. Apply the changes. Go back to lobby and click on Create Game and set up a new server. Make sure the firewall on your LAN is not blocking the connection to your LAN server.<br />
<br />
===MODs and Custom Missions===<br />
It is possible to use mods and play custom missions using FSO. Mods will need to be distributed to all participating players in advance, but missions will be automatically distributed if any participants are missing them.<br />
<br />
When playing on FS2NetD, note that while mods and custom missions are allowed, stats will not be saved for games that use them. ''Only'' games using validated missions and data are counted. For IP games (where stats are not saved anyway) there are no such considerations.<br />
<br />
===Validated Missions===<br />
A package containing all currently validated multiplayer missions for FreeSpace 2 is available from the downloads section below. A voice pack for those missions is also available. To use them, the best way is to place them in a separate directory and select that as a mod from the launcher.<br />
<br />
Do not place them in the [[mediaVP]]s directory if you intend to play for stats, as the current mediaVPs are not validated.<br />
==External Links==<br />
*[https://www.hard-light.net/forums/index.php/topic,63609.0.html Multiplayer FAQ & Getting started guide]<br />
*[http://fs2netd.game-warden.com/ FS2NetD Website - Player stats & Information about current games]<br />
*[https://www.hard-light.net/forums/index.php/board,135.0.html HLP Multiplayer Forum]<br />
<br />
==Downloads==<br />
*[http://www.fubar.org/FS2/multi.rar Complete mission and voice package for FS2]<br />
*[http://www.mediafire.com/file/ni84x2vrctjw64r/multi-mission-pack.7z Just the missions]<br />
__NOTOC__<br />
[[Category:Multiplayer]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Multiplayer_developer_guide&diff=63235
Multiplayer developer guide
2021-03-03T03:38:56Z
<p>Cyborg17: </p>
<hr />
<div>Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment. This guide assumes that the developer is using Knossos, but the same results can be achieved with the command line. Also, a single computer can be used for multiple instances of FSO. <br />
<br />
<br />
There is no known network-based hard limit on the number of instances that can connect on a single computer: just make sure that the instances are all using different ports.<br />
<br />
<br />
==PXO==<br />
It is recommended to use PXO since it cuts out the guess work of copying the IP address correctly into FSO settings. To register, go to https://pxo.nottheeye.com/ and create an account. Verify your email. If your verification email does not show up, please contact Taylor, the PXO admin.<br />
<br />
<br />
Once your email is verified, you can copy and paste the username and password from the PXO profile page into the multi tab of your FSO settings. (with the standard keyboard shortcuts) <br />
<br />
*Note: this is not the user name and password you use to log into the PXO website, but the login given to you by the PXO server on your PXO profile. Double check that PXO is enabled and then go to the ready room in multi mode. You should be able to get to log into the PXO chat.<br />
<br />
<br />
== Setting Up a Server And Port Forwarding ==<br />
In order for your game to be visible to others, your chosen port must be forwarded. Prior to FSO 21.0, FSO could only connect to the server if it was on port 7808. Otherwise it would just not be visible to any clients, but any port selected through knossos can now be used.<br />
<br />
<br />
FSO now has the ability to attempt to forward ports automatically, although it often fails. To check if your game is visible to clients, a PXO enabled game server will show up on the PXO server list, accessible by PXO admins. An in-game indicator of game visibility is planned but not yet implemented.<br />
<br />
<br />
If you look up the instructions for forwarding a port on your router, it should be a simple set of changes. Again, port 7808 is no longer required, but that is the default port.<br />
<br />
<br />
===Issues with NAT===<br />
If you have unexplained issues getting a server to show up, check to see if your ISP uses carrier grade NAT. If your ISP uses it, your ports cannot be properly forwarded. <br />
<br />
<br />
It may be better, in this case, to turn PXO off and to set simply set the local IP address and port in the the multi tab of the settings screen in the following format: 192.168.0.1:7808 <br />
<br />
*To look up your local IP address you can follow the steps in this article: https://www.ipconfig.in/what-is-my-local-ip-address/ . You should, of course, write the port number you are using for your server after the colon. <br />
<br />
*Using the local IP address will circumvent issues with your ISP locally, but you will be unable to host games with players on another network. <br />
<br />
*The mDNS (LAN library) implementation in FSO will also hopefully circumvent issues with NAT for local instances.<br />
<br />
*PXO is a per pilot setting (although only one PXO login is stored in FSO's config at a time). If you want to only connect to PXO during non-testing games, creating a few new non-pxo pilots may be an option to consider.<br />
<br />
<br />
==Setting up instances==<br />
<br />
As previously mentioned more than one instance of FSO multiplayer can run on a machine. In order to accomplish this, open your knossos settings and set your port to the forwarded port. Don't forget to hit save. Run your chosen mod in windowed mode, and then go to the multiplayer pilots mode in the pilot select screen. Then go to the ready room. <br />
<br />
<br />
You should see the PXO chat screen. On the bottom right, you can press continue and then on the next screen start a server. You may want to add a password in case the testing should not be interrupted, but I have never had a problem with other players entering my servers. <br />
<br />
<br />
Now, go to knossos settings again and select a different port. This port does not have to be forwarded. Every once in a while, knossos may ignore your changes, and you may get an error message when trying to connect your second instance. Please repeat this step until that bug no longer occurs. This should not happen more than once, and the likelihood of the bug goes down when you explicitly type the port number instead of relying on the knossos/FSO default.<br />
<br />
<br />
Open the same mod, but select a different pilot. (there is a bug involving the mission log if there are pilots with duplicate names, it is being worked on) Once you are past the PXO screen, you should see your server up and running. <br />
<br />
<br />
Select and server and join, and enjoy your round of testing!<br />
<br />
<br />
[[Category:Multiplayer|Developer guide]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Multiplayer_developer_guide&diff=63234
Multiplayer developer guide
2021-03-03T03:19:50Z
<p>Cyborg17: /* Setting up instances */</p>
<hr />
<div>Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment. This guide assumes that the developer is using Knossos, but the same results can be achieved with the command line. Also, a single computer can be used for multiple instances of FSO. <br />
<br />
There is no known network-based hard limit on the number of instances that can connect on a single computer: just make sure that the instances are all using different ports.<br />
<br />
<br />
==PXO==<br />
It is recommended to use PXO since it cuts out the guess work of copying the IP address correctly into FSO settings. To register, go to https://pxo.nottheeye.com/ and create an account. Verify your email. If your verification email does not show up, please contact Taylor, the PXO admin.<br />
<br />
Once your email is verified, you can copy and paste the username and password from the PXO profile page into the multi tab of your FSO settings. (with the standard keyboard shortcuts) <br />
<br />
*Note: this is not the user name and password you use to log into the PXO website, but the login given to you by the PXO server on your PXO profile. Double check that PXO is enabled and then go to the ready room in multi mode. You should be able to get to log into the PXO chat.<br />
<br />
<br />
== Setting Up a Server And Port Forwarding ==<br />
In order for your game to be visible to others, your chosen port must be forwarded. Prior to FSO 21.0, FSO could only connect to the server if it was on port 7808. Otherwise it would just not be visible to any clients, but any port selected through knossos can now be used.<br />
<br />
FSO now has the ability to attempt to forward ports automatically, although it often fails. To check if your game is visible to clients, a PXO enabled game server will show up on the PXO server list, accessible by PXO admins. An in-game indicator of game visibility is planned but not yet implemented.<br />
<br />
If you look up the instructions for forwarding a port on your router, it should be a simple set of changes. Again, port 7808 is no longer required, but that is the default port.<br />
<br />
<br />
===Issues with NAT===<br />
If you have unexplained issues getting a server to show up, check to see if your ISP uses carrier grade NAT. If your ISP uses it, your ports cannot be properly forwarded. <br />
<br />
It may be better, in this case, to turn PXO off and to set simply set the local IP address and port in the the multi tab of the settings screen in the following format: 192.168.0.1:7808 <br />
<br />
*To look up your local IP address you can follow the steps in this article: https://www.ipconfig.in/what-is-my-local-ip-address/ . You should, of course, write the port number you are using for your server after the colon. <br />
<br />
*Using the local IP address will circumvent issues with your ISP locally, but you will be unable to host games with players on another network. <br />
<br />
*The mDNS (LAN library) implementation in FSO will also hopefully circumvent issues with NAT for local instances.<br />
<br />
<br />
<br />
==Setting up instances==<br />
As previously mentioned more than one instance of FSO multiplayer can run on a machine. In order to accomplish this, open your knossos settings and set your port to the forwarded port. Don't forget to hit save. Run your chosen mod in windowed mode, and then go to the multiplayer pilots mode in the pilot select screen. Then go to the ready room. <br />
<br />
You should see the PXO chat screen. On the bottom right, you can press continue and then on the next screen start a server. You may want to add a password in case the testing should not be interrupted, but I have never had a problem with other players entering my servers. <br />
<br />
Now, go to knossos settings again and select a different port. This port does not have to be forwarded. Every once in a while, knossos may ignore your changes, and you may get an error message when trying to connect your second instance. Please repeat this step until that bug no longer occurs. This should not happen more than once, and the likelihood of the bug goes down when you explicitly type the port number instead of relying on the knossos/FSO default.<br />
<br />
Open the same mod, but select a different pilot. (there is a bug involving the mission log if there are pilots with duplicate names, it is being worked on) Once you are past the PXO screen, you should see your server up and running. <br />
<br />
Select and server and join, and enjoy your round of testing!<br />
<br />
[[Category:Multiplayer|Developer guide]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Multiplayer_developer_guide&diff=63233
Multiplayer developer guide
2021-03-03T03:17:14Z
<p>Cyborg17: </p>
<hr />
<div>Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment. This guide assumes that the developer is using Knossos, but the same results can be achieved with the command line. Also, a single computer can be used for multiple instances of FSO. <br />
<br />
There is no known network-based hard limit on the number of instances that can connect on a single computer: just make sure that the instances are all using different ports.<br />
<br />
<br />
==PXO==<br />
It is recommended to use PXO since it cuts out the guess work of copying the IP address correctly into FSO settings. To register, go to https://pxo.nottheeye.com/ and create an account. Verify your email. If your verification email does not show up, please contact Taylor, the PXO admin.<br />
<br />
Once your email is verified, you can copy and paste the username and password from the PXO profile page into the multi tab of your FSO settings. (with the standard keyboard shortcuts) <br />
<br />
*Note: this is not the user name and password you use to log into the PXO website, but the login given to you by the PXO server on your PXO profile. Double check that PXO is enabled and then go to the ready room in multi mode. You should be able to get to log into the PXO chat.<br />
<br />
<br />
== Setting Up a Server And Port Forwarding ==<br />
In order for your game to be visible to others, your chosen port must be forwarded. Prior to FSO 21.0, FSO could only connect to the server if it was on port 7808. Otherwise it would just not be visible to any clients, but any port selected through knossos can now be used.<br />
<br />
FSO now has the ability to attempt to forward ports automatically, although it often fails. To check if your game is visible to clients, a PXO enabled game server will show up on the PXO server list, accessible by PXO admins. An in-game indicator of game visibility is planned but not yet implemented.<br />
<br />
If you look up the instructions for forwarding a port on your router, it should be a simple set of changes. Again, port 7808 is no longer required, but that is the default port.<br />
<br />
<br />
===Issues with NAT===<br />
If you have unexplained issues getting a server to show up, check to see if your ISP uses carrier grade NAT. If your ISP uses it, your ports cannot be properly forwarded. <br />
<br />
It may be better, in this case, to turn PXO off and to set simply set the local IP address and port in the the multi tab of the settings screen in the following format: 192.168.0.1:7808 <br />
<br />
*To look up your local IP address you can follow the steps in this article: https://www.ipconfig.in/what-is-my-local-ip-address/ . You should, of course, write the port number you are using for your server after the colon. <br />
<br />
*Using the local IP address will circumvent issues with your ISP locally, but you will be unable to host games with players on another network. <br />
<br />
*The mDNS (LAN library) implementation in FSO will also hopefully circumvent issues with NAT for local instances.<br />
<br />
<br />
<br />
==Setting up instances==<br />
As previously mentioned more than one instance of FSO multiplayer can run on a machine. In order to accomplish this, open your knossos settings and set your port to the forwarded port. Don't forget to hit save. Run your chosen mod, and then go to the multiplayer pilots mode in the pilot select screen. Then go to the ready room. <br />
<br />
You should see the PXO chat screen. On the bottom right, you can press continue and then on the next screen start a server. You may want to add a password in case the testing should not be interrupted, but I have never had a problem with other players entering my servers. <br />
<br />
Now, go to knossos settings again and select a different port. This port does not have to be forwarded. Every once in a while, knossos may ignore your changes, and you may get an error message when trying to connect your second instance. Please repeat this step until that bug no longer occurs. This should not happen more than once, and the likelihood of the bug goes down when you explicitly type the port number instead of relying on the knossos/FSO default.<br />
<br />
Open the same mod, but select a different pilot. (there is a bug involving the mission log if there are pilots with duplicate names, it is being worked on) Once you are past the PXO screen, you should see your server up and running. <br />
<br />
Select and server and join, and enjoy your round of testing!<br />
<br />
[[Category:Multiplayer|Developer guide]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Multiplayer_developer_guide&diff=63230
Multiplayer developer guide
2021-03-02T20:19:26Z
<p>Cyborg17: /* Setting up instances */</p>
<hr />
<div>= Multiplayer FSO Development =<br />
<br />
Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment. This guide assumes that the developer is using Knossos, but the same results can be achieved with the command line. Also, a single computer can be used for multiple instances of FSO. <br />
<br />
There is no known network-based hard limit on the number of instances that can connect on a single computer: just make sure that the instances are all using different ports.<br />
<br />
----<br />
<br />
<br />
== PXO ==<br />
<br />
It is recommended to use PXO since it cuts out the guess work of copying the IP address correctly into FSO settings. To register, go to https://pxo.nottheeye.com/ and create an account. Verify your email. If your verification email does not show up, please contact Taylor, the PXO admin.<br />
<br />
Once your email is verified, you can copy and paste the username and password from the PXO profile page into the multi tab of your FSO settings. <br />
<br />
**Note: this is not the user name and password you use to log into the PXO website, but the login given to you by the PXO server on your PXO profile. Double check that PXO is enabled and then go to the ready room in multi mode. You should be able to get to mulitplayer.<br />
<br />
<br />
== Setting Up a Server And Port Forwarding ==<br />
<br />
In order for your game to be visible to others, your chosen port must be forwarded. Prior to FSO 21.0, FSO could only connect to the server if it was on port 7808. Otherwise it would just not be visible to any clients, but any port selected through knossos can now be used.<br />
<br />
FSO now has the ability to attempt to forward ports automatically, although it often fails. To check if your game is visible to clients, a PXO enabled game server will show up on the PXO server list, accessible by PXO admins. An in-game indicator of game visibility is planned but not yet implemented.<br />
<br />
If you look up the instructions for forwarding a port on your router, it should be a simple set of changes. Again, port 7808 is no longer required, but that is the default port.<br />
<br />
<br />
=== Issues with NAT ===<br />
If you have unexplained issues getting a server to show up, check to see if your ISP uses carrier grade NAT. If your ISP uses it, your ports cannot be properly forwarded, and you need to reach out to an SCP developer who runs standalones to set up a server.<br />
<br />
<br />
== Setting up instances ==<br />
<br />
As previously mentioned more than one instance of FSO multiplayer can run on a machine. In order to accomplish this, open your knossos settings and set your port to the forwarded port. Don't forget to hit save. Run your chosen mod, and then go to the multiplayer pilots mode in the pilot select screen. Then go to the ready room. <br />
<br />
You should see the PXO chat screen. On the bottom right, you can press continue and then on the next screen start a server. You may want to add a password in case the testing should not be interrupted, but I have never had a problem with other players entering my servers. <br />
<br />
Now, go to knossos settings again and select a different port. This port does not have to be forwarded. Every once in a while, knossos may ignore your changes, and you may get an error message when trying to connect your second instance. Please repeat this step until that bug no longer occurs. This should not happen more than once, and the likelihood of the bug goes down when you explicitly type the port number instead of relying on the knossos/FSO default.<br />
<br />
Open the same mod, but select a different pilot. (there is a bug involving the mission log if there are pilots with duplicate names, it is being worked on) Once you are past the PXO screen, you should see your server up and running. <br />
<br />
Select and server and join, and enjoy your round of testing!</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Multiplayer_developer_guide&diff=63229
Multiplayer developer guide
2021-03-02T20:15:38Z
<p>Cyborg17: Created page with "= Multiplayer FSO Development = Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment...."</p>
<hr />
<div>= Multiplayer FSO Development =<br />
<br />
Developing FSO's multiplayer is filled with challenges. This is meant to be a partial guide to help SCP members set up a testing environment. This guide assumes that the developer is using Knossos, but the same results can be achieved with the command line. Also, a single computer can be used for multiple instances of FSO. <br />
<br />
There is no known network-based hard limit on the number of instances that can connect on a single computer: just make sure that the instances are all using different ports.<br />
<br />
----<br />
<br />
<br />
== PXO ==<br />
<br />
It is recommended to use PXO since it cuts out the guess work of copying the IP address correctly into FSO settings. To register, go to https://pxo.nottheeye.com/ and create an account. Verify your email. If your verification email does not show up, please contact Taylor, the PXO admin.<br />
<br />
Once your email is verified, you can copy and paste the username and password from the PXO profile page into the multi tab of your FSO settings. <br />
<br />
**Note: this is not the user name and password you use to log into the PXO website, but the login given to you by the PXO server on your PXO profile. Double check that PXO is enabled and then go to the ready room in multi mode. You should be able to get to mulitplayer.<br />
<br />
<br />
== Setting Up a Server And Port Forwarding ==<br />
<br />
In order for your game to be visible to others, your chosen port must be forwarded. Prior to FSO 21.0, FSO could only connect to the server if it was on port 7808. Otherwise it would just not be visible to any clients, but any port selected through knossos can now be used.<br />
<br />
FSO now has the ability to attempt to forward ports automatically, although it often fails. To check if your game is visible to clients, a PXO enabled game server will show up on the PXO server list, accessible by PXO admins. An in-game indicator of game visibility is planned but not yet implemented.<br />
<br />
If you look up the instructions for forwarding a port on your router, it should be a simple set of changes. Again, port 7808 is no longer required, but that is the default port.<br />
<br />
<br />
=== Issues with NAT ===<br />
If you have unexplained issues getting a server to show up, check to see if your ISP uses carrier grade NAT. If your ISP uses it, your ports cannot be properly forwarded, and you need to reach out to an SCP developer who runs standalones to set up a server.<br />
<br />
<br />
== Setting up instances ==<br />
<br />
As previously mentioned more than one instance of FSO multiplayer can run on a machine. In order to accomplish this, open your knossos settings and set your port to the forwarded port. Don't forget to hit save. Run your chosen mod, and then go to the pilots multiplayer mode in the pilot select screen. Then go to the ready room. <br />
<br />
You should see the PXO chat screen. On the bottom right, you can press continue and then on the next screen start a server. You may want to add a password in case the testing should not be interrupted, but I have never had a problem with other players entering my servers. <br />
<br />
Now, go to knossos settings again and select a different port. This port does not have to be forwarded. Every once in a while, knossos may ignore your changes, and you may get an error message when trying to connect your second instance. Please repeat this step until that bug no longer occurs. This should not happen more than once, and the likelihood of the bug goes down when you explicitly type the port number instead of relying on the knossos/FSO default.<br />
<br />
Open the same mod, but select a different pilot. (there is a bug involving the mission log if there are pilots with duplicate names, it is being worked on) Once you are past the PXO screen, you should see your server up and running. <br />
<br />
Select and server and join, and enjoy your round of testing!</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Menu.tbl&diff=62980
Menu.tbl
2021-01-18T21:28:06Z
<p>Cyborg17: </p>
<hr />
<div>{{UnusedTable}}<br />
<br />
{{TableVersion|4500}}<br />
<br />
The '''menu.tbl''' contains shortcut keys that were never implemented.<br />
<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==General Info==<br />
*Apart from the '''mainhall''' related settings the '''menu.tbl''' doesn't seen to have any functionality.<br />
*Some of options defined for other than mainhall do actually work, but only because they are hardcoded and not because of this table.<br />
*Some of the options function only in debug mode.<br />
<br />
==Working Hardcoded Keys==<br />
*B for Barracks<br />
*R for Ready Room<br />
*T for Tech Room<br />
*C for Campaign Room<br />
*G for Quick Start<br />
<br />
===Obsolete===<br />
*This table is obsolete.<br />
*The '''mainhall''' related settings are set in the [[mainhall.tbl]]<br />
<br />
===Syntax===<br />
*The syntax is completely different from other retail tables<br />
*Might have been an early [[mainhall.tbl]]<br />
<br />
==Retail Table==<br />
<pre>[MAIN HALL]<br />
mainhall1 mainhall1-m<br />
;i:\projects\freespace\music\waves\main.wav<br />
<br />
; exit region<br />
"" 0 NULL NULL NULL NULL<br />
<br />
; barracks<br />
"" 1 B NULL NULL NULL NULL<br />
<br />
; ready room<br />
"" 2 R NULL NULL NULL NULL<br />
<br />
; tech room<br />
"" 3 T NULL NULL NULL NULL<br />
<br />
; options<br />
"" 4 NULL NULL NULL NULL<br />
<br />
; campaign room<br />
"" 5 C NULL NULL NULL NULL<br />
<br />
; multiplayer<br />
"" 10 NULL NULL NULL NULL NULL<br />
<br />
; load mission<br />
"" 11 L NULL NULL NULL NULL NULL<br />
<br />
; quick start<br />
"" 12 G NULL NULL NULL NULL NULL<br />
<br />
; skill level<br />
"" 13 NULL NULL NULL NULL NULL<br />
<br />
<br />
[BARRACKS MENU]<br />
barracks barracks-m<br />
;none.wav<br />
<br />
"Change Pilot" 1 P NULL NULL NULL NULL <br />
"View Combat Statistics" 2 C NULL NULL NULL NULL<br />
"View Medals" 3 M NULL NULL NULL NULL<br />
"Return" 4 Q NULL NULL NULL NULL<br />
<br />
[TRAINING MENU]<br />
training training-m<br />
;none.wav<br />
<br />
"Training Missions" 1 T NULL NULL NULL NULL<br />
"Replay Missions" 2 R NULL NULL NULL NULL<br />
"Return" 3 Q NULL NULL NULL NULL<br />
<br />
<br />
[TECH MENU]<br />
tech tech-m<br />
;none.wav<br />
<br />
"Ship Specs" 1 S NULL NULL NULL NULL <br />
"View Cut Scenes" 2 V NULL NULL NULL NULL <br />
"View Recorded Demo" 3 D NULL NULL NULL NULL<br />
"Credits" 4 C NULL NULL NULL NULL <br />
"Return" 5 Q NULL NULL NULL NULL <br />
"Simulator Room" 7 M NULL NULL NULL NULL <br />
<br />
[OPTIONS MENU]<br />
options options-m<br />
;none.wav<br />
<br />
"Sound/Music" 1 S NULL NULL NULL NULL<br />
"Controls Configuration" 2 C NULL NULL NULL NULL<br />
"HUD Configuration" 3 H NULL NULL NULL NULL<br />
"Save/Restore" 4 F NULL NULL NULL NULL<br />
"Return" 5 Q NULL NULL NULL NULL<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Command-Line_Reference&diff=62947
Command-Line Reference
2021-01-11T20:19:45Z
<p>Cyborg17: /* -clientdamage */</p>
<hr />
<div><br />
{{TableVersionGit|2020-02-01|93f71ec20}}<br />
<br />
Command-Line Flags (also called Command-Line Parameters) are optional flags passed to the FSO executable, and generally enables one or more features added to the FS2 Open engine. These flags are accessed conveniently through an [[FSO Launcher]]. To have FSO list all available flags, use any one of the following: [[Command-Line_Reference#-help|-help]], [[Command-Line_Reference#-help|--help]], [[Command-Line_Reference#-help|-h]], or [[Command-Line_Reference#-help|-?]].<br />
<br />
===Graphics===<br />
<br />
====-nospec====<br />
{{Table37|<br />
'''"Disable Specular"'''<br />
<br />
Disables support for specular mapping.<br />
}}<br />
<br />
====-noglow====<br />
{{Table37|<br />
'''"Disable glow maps"'''<br />
<br />
Disables support for glowmapping.<br />
}}<br />
<br />
====-noenv====<br />
{{Table37|<br />
'''"Disable environment maps"'''<br />
<br />
Disables support for environment mapping.<br />
}}<br />
<br />
====-nonormal====<br />
{{Table37|<br />
'''"Disable normal maps"'''<br />
<br />
Disables support for normal mapping.<br />
}}<br />
<br />
====-emissive_light====<br />
{{Table190|<br />
'''"Enable emissive light from ships"'''<br />
<br />
In retail FS2, ships had a pseudo light source applied to them to make them stand out against the background. Due to the changes in the render pipeline associated with HDR, this behaviour has been disabled by default; this cmdline option restores it.<br />
}}<br />
<br />
====-noheight====<br />
{{Table37|<br />
'''"Disable height maps"'''<br />
<br />
Disables support for height mapping.<br />
}}<br />
<br />
====-3dshockwave====<br />
'''"Enable 3D Shockwaves"'''<br />
<br />
This only has any effect when both a 2D and 3D shockwave effect are present, otherwise the only available effect is used (2D shockwave is defined by effects/shockwave01.eff or .ani, and 3D shockwave by models/shockwave.pof)<br />
<br />
Note that 3D shockwaves are usually flat discs that FSO scales up. The animated 2D billboards used by 2D shockwaves with the addition of [[Command-Line Reference#-soft_particles|soft particles]], may look better when intersecting with models (which shockwaves often do). Use at your discretion.<br />
<br />
====-no_post_process====<br />
{{Table190|<br />
'''"Disable Post Processing"'''<br />
<br />
Disables the use of post-processing effects as defined by the post_process.tbl. Bloom usage has an additional cmdline option for setting its value, most post processing effects are achieved in mission per the mission designer or can be enabled globally in the table. Since post-processing is required for nebula effects post-3.8, it has been enabled by default as of Release 19.<br />
}}<br />
<br />
====-soft_particles====<br />
'''"Enable soft particles"'''<br />
<br />
Applies a blending factor to particles depending on their proximity to geometry<br />
<br />
====-aa====<br />
{{Table202|<br />
'''"Enable post-processing antialiasing"'''<br />
*'''-aa''' This flag enables the default antialiasing. Because FSO uses a deferred renderer, hardware-driven AA methods like MSAA cannot be used; the engine includes the well-established FXAA and SMAA post-processing shaders to get antialiasing instead. By default, the "Low" preset of the SMAA shader will be used. <br />
*'''-aa_preset''' Sets a different antialiasing mode, in case the default is insufficient or is too taxing on the GPU. This parameter takes a numeric argument ranging from 0 to 6. 0-2 correspond to the Low, Medium and High FXAA presets, 3-6 to the Low, Medium, High and Ultra SMAA presets respectively. The impact of these presets, both in terms of performance and in terms of visuals, can be observed in the F3 lab: The number keys 0-6 can be used to switch through the various AA presets on the fly there.<br />
}}<br />
<br />
====-fxaa====<br />
'''"Enable FXAA antialiasing"'''<br />
<br />
Enables the FXAA anti-aliasing. Further information can be found here: http://www.hard-light.net/forums/index.php?topic=76145.0<br />
There is an associated parameter -fxaa_preset, which takes a number from 0 to 7; these can be used to set the effect's quality. Note that, while there are up to 7 possible values for this parameter, there are only 3 presets available: a value of 0-3 corresponds to the "Low" preset, 4-6 gets you the "medium" preset, and 7 and up switches to the "High" preset.<br />
<br />
This antialiasing mode should only be used on very old (read: 2005-2010 era) hardware. For all other systems, the -smaa flag (detailed below) should be used.<br />
{{Table202|<br />
This parameter has been deprecated in favour of the -aa parameter, as seen above<br />
}}<br />
<br />
====-smaa====<br />
'''"Enable SMAA anti-aliasing"'''<br />
<br />
Enables the SMAA anti-aliasing method. Like FXAA, this is a post-processing effect that provides an AA stage; It is a more advanced and therefore more resource-intensive effect, but generally produces higher-quality images.<br />
Like -fxaa, there is a configurable flag -smaa_preset, which takes a number from 0 to 3; these correspond directly to the Low, Medium, High and Ultra presets of the SMAA shader.<br />
<br />
It is possible to compare the effectiveness of the different AA shaders by using the F3 lab: Load up any ship model and a background, then use the number keys 0 to x to switch through the various AA methods. 0-2 correspond to FXAA Low, Medium and High, 3-6 correspond to SMAA Low, Medium, High and Ultra.<br />
{{Table202|<br />
This parameter has been deprecated in favour of the -aa parameter, as seen above<br />
}}<br />
<br />
====-nolightshafts====<br />
'''"Disable lightshafts"'''<br />
<br />
Disables Lightshafts even if a mission designer enables them via SEXP in a mission. This was previously documented as -flightshaftsoff but appears to have been changed to -nolightshafts for consistency before -flightshaftsoff was ever used in a released build.<br />
<br />
====-fb_explosions====<br />
'''"Enable Framebuffer Shockwaves"'''<br />
<br />
Applies a framebuffer distortion effect to shockwaves<br />
<br />
====-fb_thrusters====<br />
'''"Enable Framebuffer Thrusters"'''<br />
<br />
Applies a framebuffer distortion effect to Thrusters. NOTE: Only "point" thrusters are affected by this; modelled thrusters (as used on most retail models) are not affected by this.<br />
<br />
====-no_deferred====<br />
'''"Disable Deferred Lighting"'''<br />
<br />
DESCRIPTION NEEDED<br />
<br />
====-enable_shadows====<br />
{{table373|<br />
'''"Enable shadows"'''<br />
<br />
Enables shadows where supported by the OpenGL version provided by the user's GPU. -shadow_quality can be used to control the quality level.<br />
{{note|Currently doesn't support shadows for cockpits and show ship.}}<br />
}}<br />
<br />
===Game Speed===<br />
<br />
====-no_vsync====<br />
'''"Disable vertical sync"'''<br />
<br />
<br />
===HUD===<br />
<br />
====-fps====<br />
'''"Show frames per second on HUD"'''<br />
<br />
Displays current frames per second.<br />
<br />
====-dualscanlines====<br />
'''"Another Pair of Scanning Lines"'''<br />
<br />
Adds a second pair of scanning lines to the target window when scanning an object.<br />
<br />
====-targetinfo====<br />
'''"Enable Info next to Target"'''<br />
<br />
Displays target info, such as name and class, beside the targeted object.<br />
<br />
====-orbradar====<br />
'''"Enables 3D radar"'''<br />
<br />
An Orb style 3D radar will replace the standard 2D version.<br />
<br />
====-rearm_timer====<br />
'''"Enable Rearm/Repair Completion Timer"'''<br />
<br />
Displays time remaining until rearm and repair from a support ship is complete.<br />
<br />
====-ballistic_gauge====<br />
'''"Enable the analog Ballistic Ammo gauge"'''<br />
<br />
Adds an ammo gauge to the HUD when armed with a ballistic weapon.<br />
<br />
<br />
===Gameplay===<br />
<br />
====-window====<br />
'''"Run in Window"'''<br />
<br />
Runs the game in a window. No check to make sure that resolution is no higher than your desktop resolution, so be careful.<br />
<br />
====-fullscreen_window====<br />
'''"Run in Fullscreen Window"'''<br />
<br />
Runs the game in a borderless window.<br />
<br />
====-stretch_menu====<br />
'''"Stretch interface to fill screen"'''<br />
<br />
Scales the interface to fill the screen without preserving the aspect ratio. Omit this to keep the aspect ratio, adding black bars where appropriate.<br />
<br />
====-noscalevid====<br />
"Disable scale-to-window for Movies"<br />
<br />
Disables fullscreen scaling of video clips.<br />
<br />
====-nomotiondebris====<br />
'''"Disable motion debris"'''<br />
<br />
====-ship_choice_3d====<br />
'''"Use Models for Ship Selection"'''<br />
<br />
Uses ship models in ship selection window. It completely disables the standard ANI interface in this screen. <br><br />
If a mod does not supply the required interface art for a ship, this mode will be used instead.<br />
<br />
====-weapon_choice_3d====<br />
'''"Use Models for Weapon Selection"'''<br />
<br />
Uses weapon models in weapon loadout window for secondary weapons (missiles and bombs). It completely disables the standard ANI interface in this screen. <br><br />
If a mod does not supply the required interface art for a weapon, this mode will be used instead.<br />
<br />
====-3dwarp====<br />
'''"Enable 3D Warp"'''<br />
<br />
Use full geometry for the subspace warp effect.<br />
<br />
====-warp_flash====<br />
'''"Enable Flash upon Warp"'''<br />
<br />
Enable a flash at warp in and warp out.<br />
<br />
====-no_ap_interrupt====<br />
'''"Disable Interrupting of AutoPilot"'''<br />
<br />
Tells the game to not allow players to interrupt an autopilot already-in-progress.<br />
<br />
<br />
===Audio===<br />
<br />
====-nosound====<br />
'''"Disable Sound and Music"'''<br />
<br />
====-nomusic====<br />
'''"Disables Music"'''<br />
<br />
====-no_enhanced_sound====<br />
'''"Disable enhanced sound"'''<br />
<br />
Disables the enhanced sound rendering functions enabled by OpenAL Soft.<br />
<br />
<br />
===Launcher===<br />
<br />
====-portable_mode====<br />
'''"Store config in portable location"'''<br />
<br />
<br />
Uses the root directory of FSO for storing pilot and config files. The current launcher does not have proper support for this yet so you need to manually copy the fs2_open.ini from the original config directory to your FreeSpace Root directory.<br />
<br />
<br />
====-parse_cmdline_only====<br />
'''"Parse Command Line Only"'''<br />
<br />
Parse only the application command line settings, and ignore any that may have been set in the on-disk data/cmdline_fso.cfg or per-user cmdline_fso.cfg (on Linux/Mac)<br />
<br />
<br />
====-get_flags====<br />
{{Table38|'''"Output the launcher flags file"'''<br />
Used by launchers to get certain information from FSO via binary file or stdout.<br />
*Syntax: '''''String''''', either '''binary''' or '''json_v1'''<br />
<br />
'''binary''' will output info to a binary file in the root directory (probably within AppData)<br />
'''json_v1''' will output via stdout on the console a .json object as a string}}<br />
<br />
===Multiplayer===<br />
<br />
====-standalone====<br />
'''"Run as Stand Alone Server"'''<br />
<br />
Creates a standalone multi-player server.<br />
<br />
====-startgame====<br />
'''"Skip Mainhall and Start Hosting"'''<br />
<br />
Once you launch and choose a pilot within the game, you will immediately have begun to host a game. This can be used in conjunction with several options to customize the game you create: -closed, -restricted, -password, -gamename, -allowabove, and -allowbelow. -startgame has no effect when -standalone is used.<br />
<br />
See related: [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-restricted|-restricted]] [[Command-Line_Reference#-password|-password]] [[Command-Line_Reference#-gamename|-gamename]] [[Command-Line_Reference#-allowabove|-allowabove]] [[Command-Line_Reference#-allowbelow|-allowbelow]]<br />
<br />
====-closed====<br />
'''"Start Hosted Server as Closed"'''<br />
<br />
Hosts a new game in a closed state, where no one can join until the in-game "Close" button is cleared. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -restricted or -password.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-restricted|-restricted]] [[Command-Line_Reference#-password|-password]]<br />
<br />
====-restricted====<br />
'''"Host Confirms Join requests"'''<br />
<br />
Hosts a new game in a restricted state. The host is presented with option to accept or deny each client's request to join the game. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -closed or -password.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-password|-password]]<br />
<br />
====-multilog====<br />
Creates a log file with a summary of packets sent and received in multiplayer games. The file is saved as \data\multi.log within the active mod folder&mdash;or with main data folder if no mod is active.<br />
<br />
====-clientdamage====<br />
{{Note| Removed as of 21.0}}<br />
<br />
====-mpnoreturn====<br />
'''"Disables Flight Deck option"'''<br />
<br />
Disables return to the flight deck screen after a mission completes.<br />
<br />
====-gateway_ip====<br />
'''"Set gateway IP address"'''<br />
<br />
<br />
===Troubleshooting===<br />
<br />
====-no_set_gamma====<br />
'''"Disable Setting of Gamma"'''<br />
<br />
Disables the gamma settings in the options screen.<br />
<br />
====-nomovies====<br />
'''"Disable Video Playback"'''<br />
<br />
Disables all video playback.<br />
<br />
====-noparseerrors====<br />
'''"Disable Parsing Errors"'''<br />
<br />
Disables some parsing warnings and makes other parse errors non-fatal. Do not rely on this when creating new tables. The errors are there for a reason.<br />
<br />
====-loadallweps====<br />
'''"Load all weapons, even those not used"'''<br />
<br />
====-disable_fbo====<br />
'''"Disable OpenGL RenderTargets"'''<br />
<br />
====-disable_pbo====<br />
'''"Disable OpenGL Pixel Buffer Objects"'''<br />
<br />
Disables the use of Pixel Buffer Objects (PBO) which may cause certain OpenGL operations to perform slower. Note PBO's were only used at three places in FSO anyway so it's *probably* not going to have a noticeable effect. <br />
<br />
May be required to workaround issues in certain versions of Linux's Mesa drivers for Intel integrated graphics cards where crashes occur in the mainhall (i.e. whenever a popup occurs). Distros that seem to have this problem presently include Ubuntu 13.10 and openSUSE 13.1.<br />
{{Table371|<br />
*This feature is present to work around a bug in Linux's Mesa drivers for Intel integrated graphics cards}}<br />
<br />
====-ati_swap====<br />
'''"Fix Color issues on some ATI cards"'''<br />
<br />
[http://scp.indiegames.us/mantis/view.php?id=1669 Mantis #1669] is what led to this flag's creation.<br />
<br />
====-no_3d_sound====<br />
'''"Use only 2D/stereo for sound effects"'''<br />
<br />
====-mipmap====<br />
'''"Enable mipmapping"'''<br />
<br />
Causes for non-mipmapped textures to have mipmaps generated within the GPU on certain kind of texture formats, (IIRC, DDS formatted textures with a power of 2 size in both width and height). <br><br />
Since the use of already mipmapped DDS textures has become common, it has become deprecated.<br />
The quality of the generated mipmaps depends on each GPU and used driver. It is normally used with [[Command-Line_Reference#-img2dds|-img2dds]] flag.<br />
<br />
====-use_gldrawelements====<br />
'''"Use glDrawElements instead of glDrawRangeElements"'''<br />
<br />
Introduced as a means of switching to the slower OpenGL call glDrawElements, instead of glDrawRangeElements.<br />
{{Table3614|<br />
*This feature may resolve certain rendering problems where parts of models are not drawn on Linux drivers}}<br />
<br />
====-gl_finish====<br />
'''"Fix input lag on AMD+Linux"'''<br />
{{Table371|<br />
This option adds a "glFinish()" call just prior to swapping buffers. It works around an issue with "recent" (HD 6000 & newer?) AMD cards using proprietary drivers on Linux. Be warned that enabling this may reduce framerate.<br />
}}<br />
<br />
Refer to [http://www.hard-light.net/forums/index.php?topic=88102.0 this thread] and [https://github.com/ValveSoftware/Source-1-Games/issues/765 Valve's bugtracker] for more details).<br />
<br />
====-no_geo_effects====<br />
'''"Disable geometry shader for effects"'''<br />
<br />
Particle rendering uses geometry shaders for high performance, this flag disables that behaviour.<br />
<br />
====-set_cpu_affinity====<br />
'''"Sets processor affinity to config value"'''<br />
<br />
Use this to force FSO to run on the specified core. CPU cores are numbered starting with 0 for the first core.<br />
<br />
====-nograb====<br />
Disables focus grabbing in a window.<br />
{{Note| This feature is not available on Windows.}}<br />
<br />
====-noshadercache====<br />
'''"Disables the shader cache"'''<br />
<br />
On GPUs with support for OpenGL 4 and higher, FSO caches the compiled shaders for increased performance.<br />
<br />
====-fix_registry====<br />
'''"Use a different registry path"''''<br />
<br />
DESCRIPTION NEEDED<br />
<br />
<br />
===Experimental===<br />
<br />
====-ingame_join====<br />
'''"Allows Ingame Joining"'''<br />
<br />
Enables ingame joining in multiplayer. FIXME: Host option?<br />
<br />
====-voicer====<br />
'''"Voice Recognition"'''<br />
<br />
Windows-only. Enables voice-recognition for wingmen commands. Must be specifically compiled into a build in order for it to be available; 3.6.10 final includes the feature. See [[Voice Recognition]] for more details.<br />
<br />
<br />
===Development Tools===<br />
<br />
====-bmpmanusage====<br />
'''"Show how many BMPMAN slots are in use"'''<br />
<br />
Adds a BMPMAN slot usage display near where the FPS display is (or would be, if it's not enabled). Can be used by mod makers to see if they need to increase their [[Game_settings.tbl#$BMPMAN Slot Limit:|BMPMAN slot limit]].<br />
<br />
====-pos====<br />
'''"Show Position of Camera"'''<br />
<br />
Displays current position coordinates of camera.<br />
<br />
====-stats====<br />
'''"Show Statistics"'''<br />
<br />
Shows total and free physical memory, virtual memory and system pagefile.<br />
<br />
====-coords====<br />
'''"Show Coordinates"'''<br />
<br />
Shows coordinates of the mouse cursor.<br />
<br />
====-pofspew====<br />
Loads all POF files in the current mod and prints out information on their LODs and mesh faces. In previous version of FSO this command also generated IBX cache files for each object in the data/cache folder for that mod, but IBX cache files are no longer used. <br><br />
Nowadays, this command is most useful for quickly checking all models in a mod for any debug errors.<br />
<br />
====-weaponspew====<br />
{{table202|<br />
Outputs information about player-allowed weapons (and child munitions) to the log file. This includes a CSV with comparative stats on all weapons, as well as MediaVP-style descriptions for the loadout screen. <br><br />
The command '-weaponspew all' will print all weapons, not just player-allowed weapons.}}<br />
<br />
====-tablecrcs====<br />
Is actually now (or should be) a typed reference rather than as a selection item. Takes 1 argument, usually a descriptive name.<br />
Example usage: "-table_crcs MediaVPs" will create a table_crcs.csv file in the running mod (name can be separate of the mod selected) that allows for the validation of the tables used by that mod while on-line. The descriptive parameter given helps "allocate" that .csv file to the mod in question, and as such should closely or exactly match that mods name if possible.<br />
<br />
====-missioncrcs====<br />
Is actually now (or should be) a typed reference rather than as a selection item. Takes 1 argument, usually a descriptive name.<br />
Example usage: "-mission_crcs MediaVPs" will create a mission_crcs.csv file in the running mod (name can be separate of the mod selected) that allows for the validation of the missions used by that mod while on-line. The descriptive parameter given helps "allocate" that .csv file to the mod in question, and as such should closely or exactly match that mods name if possible.<br />
<br />
====-dis_collisions====<br />
'''"Disable Collisions"'''<br />
<br />
Disables all collisions.<br />
<br />
====-dis_weapons====<br />
'''"Disable Weapon Rendering"'''<br />
<br />
Disables weapons rendering.<br />
<br />
====-output_sexps====<br />
This will make the FSO build spit out an html file that documents the supported SEXP's.<br />
<br />
Just double click on sexps.html and it should open in your default web browser.<br />
<br />
====-output_scripting====<br />
This will make the FSO build spit out an html file that documents the supported scripting hooks and LUA libraries.<br />
<br />
Just double click on scripting.html and it should open in your default web browser.<br />
<br />
====-save_render_target====<br />
'''"Save Render Targets to file"'''<br />
<br />
====-verify_vps====<br />
'''"Spew VP crcs to vp_crcs.txt"'''<br />
<br />
Exports the CRC values of the VP files being loaded into a vp_crcs.txt file.<br />
<br />
====-reparse_mainhall====<br />
'''"Reparse mainhall.tbl when loading halls"'''<br />
<br />
Mainhall.tbl will be reparsed every time a mainhall is loaded, as opposed to just once at game startup.<br />
<br />
====-noninteractive====<br />
'''"Disables interactive dialogs"'''<br />
Disables all dialogs and chooses the default option when one would be displayed. Very useful for a standalone server on a headless system.<br />
<br />
====-no_unfocused_pause====<br />
'''"Don't pause if the window isn't focused"'''<br />
<br />
When the FSO window looses focus it will not pause the game, useful for doing non-interactive test runs.<br />
<br />
====-benchmark_mode====<br />
'''"Puts the game into benchmark mode"'''<br />
See [[Benchmarking]] for more information.<br />
<br />
====-profile_frame_time====<br />
'''"Profile frame time"'''<br />
<br />
Activates the frame profiling code. This presents a readout showing the current, minimum, maximum and average percentages of frametime a given section of code has taken up; this can be used to identify particular bottlenecks or measure the effectiveness of certain optimizations.<br />
<br />
====-profile_write_file====<br />
'''"Write profiling information to file"'''<br />
<br />
This will write the frame times of each gameplay frame to the file 'profiling.csv' where each line is ''<time>;<frametime>''. Both times are measured in microseconds. ''time'' is measured from an arbitrary time in the past. To get consistent results the first ''time'' value should be substracted from all ''time'' values. The first two frames are usually very long because the timer is set at engine startup so you might want to exclude those from your data.<br />
<br />
====-json_profiling====<br />
'''"Generate JSON profiling output"'''<br />
<br />
Gathers information from the built-in profiling tools and writes them out to a .json file readable by the Google Chrome tracer or TraceCompass/SpaceCompass.<br />
NOTE: This will create fairly massive data sets (several hundred megabytes per minute of gameplay). The files will be written to the subdirectory "tracing" in the FreeSpace data folder; FreeSpace will not create that folder automatically, however.<br />
<br />
====-debug_window====<br />
'''"Display Debug Window"'''<br />
<br />
Lists the fs2_open.log in (nearly)real-time generation.<br />
<br />
====-gr_debug====<br />
'''"Output graphics debug information"'''<br />
<br />
<br />
==Other==<br />
<br />
The following options are not available as checkboxes in the launcher and must be entered into the "Custom flags" field. Many require parameters, which follow the flag separated by a space. The prototype for use in this case is "-option argument"<br />
<br />
===Lighting===<br />
These factors can dramatically alter the atmosphere of the game. [[Sample Lighting Settings|This page]] has some sample lighting settings with screenshots. Largely sourced from [https://www.hard-light.net/forums/index.php?topic=94875.msg1870215#msg1870215 this thread].<br />
<br />
====-ambient_factor====<br />
This is a multiplier applied to the intensity of ambient lighting. Ambient light is lighting applied to all parts of a ship. The way this works is a bit weird. (ambient factor * 2) - 255 is "added" to mission ambient, but since this will almost always be a negative value it's actually removed from mission ambient. Because of how light values are clamped it cannot go below 5.1, ambient_factor 70 will result in -115 to mission ambient which is 120 by default. 70 is essentially the lowest ambient for missions with default ambient settings which are all retail missions and the vast majority of mod missions. FS2's standard value is 120. 70 is basically no ambient, 80 is a bit of ambient, and 90 is quite a bit of ambient(ships will look bright from all sides). Anything above that will make ships look incredibly "flat". This is a relative value.<br />
<br />
====-spec_point====<br />
This is a multiplier that adjusts how much laser weapons contribute to specular highlights. Higher number mean greater contributions. If you want lasers to light up more set this to around 2. If you want less lighting, set it to around 0.5. Default is 1.0. This is a relative value.<br />
<br />
====-spec_static====<br />
This is a multiplier that adjusts how much suns contribute to specular highlights. Higher numbers mean a greater contribution. For non-PBR models it will make their sun-lit side very shiny and reflective; for PBR models it will make the sun-lit side a lot brighter. There's no flag to control diffuse static lighting so non-PBR models will always have the same amount of light come from suns. Default is 1.0. This is a relative value.<br />
<br />
====-spec_tube====<br />
This is a multiplier that adjusts how much beam weapons contribute to specular highlights. Higher numbers mean a greater contribution. If you want lasers to light up more set this to around 2. If you want less lighting, set it to around 0.5. Default is 1.0. This is a relative value.<br />
<br />
====-ogl_spec====<br />
*'''''This feature is now deprecated, it will have no effect on rendering.'''''<br />
Takes a numerical argument. This value changes the basic shininess of the specular light in OpenGL. A lower value reduces the overall intensity of the light making it broader and less powerful. A higher value makes it more focused and brighter. The default value is 80, and the usable range is 0 to 128 (clamped). The original default value was 60, but it was raised to behave more D3D like.<br />
<br />
====-spec_exp====<br />
*'''''This feature is now deprecated, it will have no effect on rendering.'''''<br />
This must be used with the -spec command line parameter and must be entered into the "Custom flags" field. Adjusts the size of the shiny spot on ships. Higher number mean smaller spots. Default is 16. This is a relative value.<br />
<br />
<br />
===Graphics===<br />
<br />
====-bloom_intensity====<br />
Requires -post_processing ("Enable Post Processing") command.<br />
Default value is 25. Range is 0-200.<br />
<br />
====-shadow_quality====<br />
{{table373|<br />
'''"Set shadows quality"'''<br />
<br />
This sets the resolution for the shadow maps the engine uses for real-time shadowing.<br />
Note that higher resolutions require more processing power and VRAM; this feature is only recommended for users with a decently powerful dedicated GPU.<br />
Valid ranges are 0 to 4 with 2 being the default. <br />
<br />
* 0 disables shadows (so there's no point in setting it!)<br />
* 1 uses 512x512 resolution (lower quality)<br />
* 2 uses 1024x1024 resolution (medium quality)<br />
* 3 uses 2048x2048 resolution (high quality)<br />
* 4 uses 4096x4096 resolution (ultra quality) <br />
<br />
Currently this requires -enable_shadows to be set, or it has no effect.<br />
}}<br />
{{table38|No longer requires -enable_shadows to be set.}}<br />
<br />
====-anisotropic_filter====<br />
{{table382|<br />
'''"Set anisotropic filtering level"'''<br />
Valid ranges are 1 to whatever maximum the GPU supports (which should be 16 for most currently available GPUs)<br />
By default, the GPUs' max supported level is used; set this to 1 if you want the minimum level available.}}<br />
<br />
====-clipdist====<br />
Changes the distance from the viewpoint for the near-clipping plane.<br />
<br />
Takes one argument decimal specifying the distance to the near-clipping plane.<br />
<br />
====-res====<br />
Allows you to specify a resolution if the desired one cannot be set in the Launcher. <br />
For example, -res 1920x1080 would run the game in 1920 x 1080 resolution. Since it requires an argument, it needs to be entered as a custom flag when using the Launcher. The "Run at specified resolution" option the Launcher gives is essentially this, but without being able to actually specify a resolution, it doesn't work.<br />
<br />
====-center_res====<br />
Specifies how much of the screen area should be utilized by menus, movies, the HUD, and various other 2D graphics. Intended for use with configurations with an extremely wide field of view, such as triple-monitor setups.<br />
<br />
By default, if the screen resolution's aspect ratio is wider than 7:2, most 2D elements utilize only the center 3/10 of the screen area. This setting allows users to override this behavior to make better use of the center monitor. (The reason for using 3/10 rather than 1/3 is that many triple-monitor setups use bezel correction, which reduces the fraction of the screen area that the center monitor displays.)<br />
<br />
For example, if the screen resolution is 6000x1080, then -center_res 1920x1080 will keep most 2D graphics in the center 1920x1080 area. This setting is automatically scaled to fit the screen resolution, so (assuming the resolution is still 6000x1080) -center_res 1280x720 is given, then that resolution is enlarged to 1920x1080.<br />
<br />
====-aa_preset====<br />
{{table202|<br />
This parameter can be used to select the AA solution the engine is using. Valid values are 0 to 6 inclusive:<br />
* 0: FXAA Low<br />
* 1: FXAA Medium<br />
* 2: FXAA High<br />
* 3: SMAA Low<br />
* 4: SMAA Medium<br />
* 5: SMAA High<br />
* 6: SMAA Ultra<br />
<br />
The various AA presets can be tested in the F3 lab; the number keys from 0-6 switch between the various presets as described above.<br />
}}<br />
<br />
====-fxaa_preset====<br />
Requires both -post_processing and -fxaa. Can be used to adjust the FXAA quality and speed, 0 is fastest, 9 is highest quality. Default setting is 6.<br />
{{table202|Has been superceded by the -aa_preset cmdline argument}}<br />
<br />
====-smaa_preset====<br />
Requires both -post_processing and -smaa. Can be used to adjust the SMAA quality and speed, 0 is low, 1 is medium, 2 is high, and 3 is ultra (highest quality). Default setting is 1.<br />
{{table202|Has been superceded by the -aa_preset cmdline argument}}<br />
<br />
===Game Speed===<br />
<br />
====-no_fps_capping====<br />
'''"Don't limit frames-per-second"'''<br />
<br />
<br />
===Gameplay===<br />
<br />
====-keyboard_layout====<br />
'''"Manually sets a keyboard layout"'''<br />
<br />
A commandline parameter to set the keyboard layout as a string parameter.<br />
{{Table3614|<br />
*Currently the only valid string is "qwertz" (German) but French azerty may be added in future.}}<br />
<br />
====-start_mission====<br />
'''"Skip the mainhall in jump right into the specified mission"'''<br />
<br />
Jump into the mission specified by the filename. Only in effect on the first run. This will skip load of the mainhall and its other related things altogether.<br />
<br />
====-mod====<br />
Specifies in which folders inside FreeSpace 2 directory, the game looks for all the game data (models, missions, textures, tables, ...). Retail version only looks inside ''Freespace2/data/'' structure and ''Freespace2/vp archives''.<br />
<br />
This flag allows installing several different mods that modify retail behavior, and switching between them without needing to erase files or having undesired cross effects. Each mod should be installed in its own folder.<br />
<br />
It takes one argument string: the chain of names of the used directories. Comma (''',''') must be used as separator. In this way, '''-mod dir1,dir2,dir3,...,dirx''' causes the game to use the following directory precedence:<br />
<br />
#Freespace2/dir1/<br />
#Freespace2/dir2/<br />
#Freespace2/dir3/<br />
# ... (the rest of the typed directories) ...<br />
#Freespace2/dirx/<br />
#Freespace2/<br />
<br />
This flag can be indirectly set, (and it is normally set), through Launcher MOD tab and [[mod.ini]] file.<br />
<br />
Within the Launcher's MOD tab you can select one directory, (let's call it ''moddir''), so the flag is at least set to '''-mod moddir'''.<br />
If ''Freespace2/moddir/[[mod.ini]]'' exists it will be used to modify the -mod flag, too.<br />
<br />
For further details, see '''[[mod.ini]]'''<br />
<br />
'''Data precedence'''<br />
<br />
As already said, within the different directories, the data precedence is set by the specified order in the -mod flag. The lowest priority goes to the Freespace2 installation directory.<br />
<br />
Inside each directory, data precedence is the following:<br />
<br />
#Individual files located in ''Current_dir/data/'' subdir structure. See [[FS2_Data_Structure|FS2 Data Structure topic]] for deeper info about the different folders and contents this structure has.<br />
#Files located inside vp archives. (These vp archives are "similar" to zip archives. They just contain other files and folders. Moreover, files have to be stored using the same ''data/'' structure used outside it). <br>Vp archives are read in alphabetical order, so aaa.vp files have higher priority than aab.vp files and so on.<br />
<br />
The highest priority file overrides the rest of them. In this way, if you have a ''Mission.fs2'' inside ''Freespace2/Pri1/data/missions/'' it doesn't matter that this ''Mission.fs2'' is also inside ''Freespace2/Pri1/aaa.vp'', ''Freespace2/Pri1/aab.vp'', ... or ''Freespace2/data/missions/''. This data precedence allows the user to quickly replace old files by corrected or enhanced ones adding them in a higher priority place.<br />
<br />
<br />
'''Additional notes'''<br />
# As derived from the explanation, the exact names for directories or vp archives are actually irrelevant. It only matters the directory order inside -mod flag argument and the alphabetical order for vp archives inside each used directory.<br />
# This flag is also used by [[Portal:FRED|FRED]]. So if there is special mod info, (like backgrounds maps, ship models or whatever), it must be typed, (''Fred2_Open_r.exe -MOD whatever''), or FRED won't be able to use it. A special build of wxLauncher is able to configure FRED so that the -mod doesn't have to be done manually see [http://www.hard-light.net/forums/index.php?topic=67950.msg1387911#msg1387911 the forum post] for more details.<br />
{{Table3612|As of 3.6.12 FRED now loads cmdline_fso.cfg just like FS does so FRED will use the same settings as FS including the -mod settings}}<br />
# Be careful while typing the directory names in the flag argument or inside mod.ini files. The program doesn't check if the typed directories exist. If they do not exist, they are just ignored. No warnings, no errors, no messages at all.<br />
<br />
{{Warning| '''Priority and Texture Formats'''<br />
<br />
''Obsolete behavior - Until FS2_open v3.6.9.:''<br />
<br />
FS2_Open can use several file formats in textures: [http://en.wikipedia.org/wiki/PCX PCX], [http://en.wikipedia.org/wiki/DirectDraw_Surface DDS], [http://en.wikipedia.org/wiki/JPG JPG] and [http://en.wikipedia.org/wiki/TGA TGA]. Make sure you keep the format when you update your texture. For example if you update the old ''TextureOfMyFighter.tga'', do not save it as ''TextureOfMyFighter.dds'' in a higher priority place, because there is a chance of the game loading the old one despite of all.<br />
<br />
The reason to do this is that, loading process (including priorities) is applied firstly for a kind of textures (TGAs), then for another kind (JPGs), and so on. This behavior can lead to situation where your new, updated and higher priority placed texture is not read because the format of the older one.<br />
<br />
<br />
''New behavior - From FS2_open v3.6.10. (including previous beta testing releases):''<br />
<br />
The former issue has been fixed. Now texture format priority is only applied within the same location. In this ''strange'' situation it goes DDS -> TGA -> JPG -> PCX. Examples:<br />
* ''/Freespace2/MyVp.vp>>>data/maps/MyTexture.dds'' is loaded instead of ''/Freespace2/MyVp.vp>>>data/maps/MyTexture.tga''.<br />
* But your improved ''/Freespace2/data/maps/MyTexture.xxx'' will override them both despite of its format.<br />
In this way, when you update any texture, you don't have to pay attention to its original format. Just place it in a higher priority place.<br />
<br />
Nevertheless, global priority is kept between animated and static textures. Because of their management, animated textures (ANIs and EFFs) are looked for BEFORE static ones. In this way there's no way to update an animated texture with a static one (an obsolete ANI is always going to be loaded before the newer DDS version). The solution: use an updated EFF with just one frame.<br />
<br />
}}<br />
<br />
====-fov====<br />
This flag allows the player to specify the ''vertical'' Field of View (FoV) angle, in radians, for the player eyepoint. The angle is measured across the full height of the viewing cone. The FoV angle is technically known as the Angle of View (AoV)<br />
<br />
*Syntax: '''''float''''' Angle<br />
*Valid Values: 0 to 2*Pi radians<br />
*Default Value: 0.75 radians<br />
<br />
{{Note|For peculiar reasons, the actual FoV/AoV used by the game will be the supplied value multiplied by 1.39626348.}}<br />
<br />
<br />
The the FoV angle/AoV is what determines the relative zoom level of the main game camera. Smaller angles generally equal to higher zoom levels, while larger angles equal to lower zoom levels (down to the theoretical x0 magnification).<br />
<br />
<br />
However, too small of an angle will have a squashed look on the edges of your screen, and too high of an angle will greatly stretch edges. It is recommended to change the AoV, as FS2's default AoV has some perspective distortion at the screen edges (the default AoV is too high).<br />
<br />
<br />
A natural looking (as if you where physically in the cockpit) AoV depends on the distance the player's actual eyes are away from the screen: the further away from the screen, the smaller the AoV should be, and vice versa. "Ergonomic" distances generally yield a '''''diagonal''''' AoV of 0.523 radians (30 degrees), but you can easily find the natural AoV by the following formula:<br />
<br />
<br />
AoV (radians) = 2 * atan( H / ( 2*D ))<br />
<br />
where:<br />
<br />
Height of screen = H<br />
<br />
Distance between head/eye and the screen = D<br />
<br />
<br />
Generally, gamers like to increase the AoV in order to increase their peripheral vision on the screen, so as to gain a better situational awareness around their craft. An AoV of 0.39 radians seems to be a good start, but feel free to experiment and use whatever AoV you are most comfortable with.<br />
<br />
<br />
===Launcher===<br />
<br />
====-query_speech====<br />
'''"Does this build have Speech?"'''<br />
<br />
Determines if the current build includes text-to-speech.<br />
<br />
<br />
===Multiplayer===<br />
<br />
====-gamename====<br />
Specifies the name of the game to be created by the host. This only works when used in conjunction with -startgame. <br />
<br />
Takes one argument string, the name to be assigned to the game being created.<br />
<br />
This argument does nothing when used with -standalone. To set the name for a standalone server, see [[Multiplayer(Main)#Standalone Servers|Standalone Servers]].<br />
<br />
See related:&nbsp;&nbsp; [[Command-Line_Reference#-startgame|-startgame]]&nbsp;&nbsp; [[Multiplayer(Main)#Standalone Servers|Standalone Servers]]<br />
<br />
====-password====<br />
Specifies the password for a standalone server. This only works when used in conjunction with -startgame. Cannot be used in conjunction with -closed or -restricted.<br />
<br />
Takes one argument string, the required password for the game being created.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]] [[Command-Line_Reference#-closed|-closed]] [[Command-Line_Reference#-restricted|-restricted]]<br />
<br />
====-allowabove====<br />
Specifies a player's minimum rank for joining a game. This only works when used in conjunction with -startgame.<br />
<br />
Takes one argument integer, the points ranking above which a player must be to enter the game.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]]<br />
<br />
====-allowbelow====<br />
Specifies a player's maximum rank for joining a game on a standalone server. This only works when used in conjunction with -startgame.<br />
<br />
Takes one argument integer, the points ranking below which a player must be to enter the game.<br />
<br />
See related: [[Command-Line_Reference#-startgame|-startgame]]<br />
<br />
====-port====<br />
Specifies the port on which to host a game or serve a standalone game.<br />
<br />
Takes one argument integer, the port on which the host will listen for clients.<br />
<br />
====-connect====<br />
Automatically connect to multiplayer IP:PORT.<br />
<br />
Takes one string value, such as 192.168.0.1:<br />
<br />
====-timeout====<br />
Multiplayer network timeout (secs).<br />
<br />
Takes one integer argument, the timeout value in seconds. Default is 30.<br />
<br />
====-cap_object_update====<br />
Caps the maximum object update the server will respond to regardless of what the client has set. If the client is set to request high object updates but the server is capped to low, then that's all the client will get. <br />
<br />
Takes one argument integer (0 to 3) which corresponds to the object update cap (With 0 being low and 3 being LAN).<br />
<br />
<br />
===Help===<br />
<br />
====-help====<br />
Instructs FSO to print out all supported parameters. Some launchers can use these options to automatically populate the available command line options, even if the version of FSO is far newer than the launcher itself. NOTE: This option only works in Linux builds...<br />
<br />
====--help====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
====-h====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
====-?====<br />
See [[Command-Line_Reference#-help|-help]]<br />
<br />
<br />
===Deprecated Options===<br />
These options were present in the executable for some time, but have since been removed and deprecated. The engine will throw a non-fatal error when they are found in the commandline. Some of these functions have been removed entirely, others are now part of the standard operation of the engine.<br />
<br />
====-spec====<br />
<br />
====-env====<br />
<br />
====-glow====<br />
<br />
====-normal====<br />
<br />
====-height====<br />
<br />
====-missile_lighting====<br />
<br />
====-img2dds====<br />
<br />
====-snd_preload====<br />
<br />
====-nohtl====<br />
<br />
====-safeloading====<br />
<br />
====-timerbar====<br />
<br />
====-old_collision====<br />
<br />
====-json_pilot====<br />
'''"Dump pilot files in JSON format"'''<br />
<br />
Writes the information stored in savefiles to JSON files.<br />
<br />
====-novbo====<br />
'''"Disable OpenGL VBO"'''<br />
<br />
====-noibx====<br />
'''"Don't use cached index buffers (IBX)"'''<br />
<br />
Disables IBX caching of model geometry data. This will dramatically increase load times, but will help troubleshoot a model if one is working incorrectly.<br />
<br />
====-no_glsl====<br />
'''"Disable GLSL (shader) Support"'''<br />
<br />
Disables the use of GLSL rendering (OpenGL shaders). The game will revert to legacy fixed render pipeline. Please note that Normal and Height map effects will be unavailable.<br />
<br />
====-disable_glsl_model====<br />
'''"Don't use shaders for model rendering"'''<br />
<br />
====-disable_di_mouse====<br />
'''"Disables the DirectInput mouse code for FSO on windows."'''<br />
<br />
'''Windows Only''' Can make mouse movement smoother on certain machines.<br />
<br />
====-cache_bitmaps====<br />
'''"Cache bitmaps between missions"'''<br />
<br />
====-no_emissive_lighting====<br />
See -emissive_lighting.<br />
<br />
====-post_process====<br />
See -no_post_process.<br />
<br />
<br />
===Completely Removed Options===<br />
Using one of these is the same as using a random string.<br />
<br />
====-show_mem_usage====<br />
<br />
[[Category:Lists]]<br />
[[Category:Source Code Project]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Ships.tbl&diff=62578
Ships.tbl
2020-10-26T05:49:07Z
<p>Cyborg17: /* $Default Team: */</p>
<hr />
<div>{{TableVersionGit|2020-08-13 UTC|e01c799cc1e7c1a36222954db1d4d37f68b26b67}}<br />
{{Tables}}<br />
The '''ships.tbl''' defines all the ship classes used in FSO.<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-shp.tbm<br />
<br />
==General Format==<br />
*Ship.tbl is formed of several different sections.<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>End before the next section.<br />
**<nowiki>#</nowiki>'''Default Player Ship'''<br />
***Defines the default player ship in the game and also in the FRED. If in a mission appears a ship that has not been properly included to tables then game replaces the ship with the Default Player Ship.<br />
**<nowiki>#</nowiki>'''Engine Wash Info'''<br />
***Includes all the definitions of all engine washes used in the game.<br />
{{Table3610|<br />
:*<nowiki>#</nowiki>'''Ship Templates'''<br />
:**Includes entries for ship templates}}<br />
<br />
:*<nowiki>#</nowiki>'''Ship Classes'''<br />
:**Includes entries for every ship and also defines their attributes that are used in the game<br />
:**Is discussed in detail at [[Ships.tbl#Table_Options|Table Options]] section.<br />
{{Table202|<br />
:*<nowiki>#</nowiki>'''Wing Formations'''<br />
:**Includes the list of custom wingmate formations}}<br />
:*'''$Player Ship Precedence'''<br />
:**Player Ship Precedence is used in ship selection when a ship specified by the mission designer is not available to the player. The next ship on the list is used in its place (assuming that ship is allowed for the player)<br />
<br />
==Default Player Ship==<br />
*Defines the default ship in the game.<br />
*Syntax: ''Name'', name of ship model as defined in [[Ships.tbl#Table_Options|Table Options]].<br />
<br />
<br />
==Engine Wash==<br />
*Defines the engines washes<br />
*First entry must be named 'default'<br />
<br />
<br />
===$Name:===<br />
*Defines the name of the engine wash.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===$Angle:===<br />
*Defines the angle from the engine where the engine wash exists<br />
*Syntax: '''''Float''''', degrees<br />
<br />
<br />
===$Radius Mult:===<br />
*Defines engine wash multiplier<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Length:===<br />
*Defines the length of the engine wash<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Intensity:===<br />
*Defines the strength of the engine wash<br />
*This setting does nothing<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
'''Example'''<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
==Ship Template Options==<br />
{{Warning|<br />
The ship templates feature has always caused crashes and memory issues. As of 2014/07/24, it has been removed from the codebase.}}<br />
{{Table3610|<br />
*Example of template usage [[Ship_Templates]] in which both [[GTB Artemis]] variants have been defined using a single template}}<br />
<br />
<br />
===$Template:===<br />
{{Table3610|<br />
*Defines the name of template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Another template can be used as template for the current template<br />
*Syntax: '''''String''''', name}}<br />
<br />
==Ships Table Options==<br />
<br />
<br />
===$Name:===<br />
*Model name that is used also in game. It is also used as name for the whole ship entry.<br>There are two special characters can be used in the name: '''#''' and '''@'''<br />
**'''#'''. It's used in the middle of the name and cannot be the first character in the $Name: string. It makes the right part of the name not being shown in the ship class info of the target window, (or beside the target brackets in FS_Open builds). It allows making different versions of a base ship while showing the same class name inside the game.<br>An example from FSPort FreeSpace 1: The '''SF Dragon#weakened''' ship, used in [[Enter the Dragon]], appears to the player just as any other '''SF Dragon'''.<br />
**'''@'''. It's used before the proper ship name. It is fully ignored by the game. Moreover, '''@WhateverShip''' and '''WhateverShip''' are exactly the same name and therefore they both appear as '''WhateverShip''' inside the game. It just allows the user marking ships in the table because of any modding reason.<br>In the retail FS2 ships there are several ships starting by '''@'''.<br />
*Syntax: '''''String''''', name<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Sets the table entry to use template based on an existing table entry instead of creating totally new one<br />
*Syntax: '''''String''''', name of the template}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3613|<br />
*Alternative $Name: for the ship.<br />
*Syntax: '''''String''''', Alternate $Name:}}<br />
<br />
<br />
===$Short name:===<br />
*Shortened model name, for FRED, Usually more descriptive than the real name.<br />
*Syntax: '''''String''''''<br />
<br />
<br />
===$Species:===<br />
*Defines species (Terran, Vasudan or Shivan). Determines many things, including the color of the engine glow, the flyby sound effects, the briefing icon and the support ship.<br />
{{Table3610|<br />
*More species have been enabled, and all of these have to be defined in [[species_defs.tbl]].}}<br />
<br />
*Syntax: '''''String''''', name of the species<br />
**Example: ''Terran''<br />
<br />
<br />
===Technical Description===<br />
List of descriptive terms for techroom and ship selection screens. Number after the quotes refers to [[tstrings.tbl]]<br />
<br />
====+Type:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Maneuverability:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Armor:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Manufacturer:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Tech Title:====<br />
{{Table3613|<br />
*Defines name of the ship as displayed in the tech room<br />
*Syntax: '''''String'''''}}<br />
<br />
====+Tech Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Length:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Gun Mounts:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Missile Banks:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -ship_choice_3d commandline flag is enabled or no ani can be found for the selected ship.<br />
*Syntax: String, either "FS1", or "Off". This defaults to the FS2 effect.}}<br />
<br />
===$Cockpit POF file:===<br />
{{Table3610|*Filename of the cockpit model file<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
===+Cockpit Offset:===<br />
{{Table3610|*Defines the offset of the cockpit model<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
===$Cockpit Display:===<br />
{{Table3615|<br />
*Defines a rectangle surface on a cockpit texture that can be updated dynamically. Multiple displays can be defined, but only one needs to be defined for each texture on the cockpit model.<br />
*'''+Texture:'''<br />
*The filename of the cockpit texture to be replaced.<br />
*Syntax: '''''String''''', texture filename<br />
*'''+Offsets:'''<br />
* (Optional) The offsets of the rectangle surface into the texture that will be drawn into.<br />
*Syntax: '''''Vector''''', two '''integers'''<br />
*'''+Size:'''<br />
* The size of the rectangle surface that will be drawn into.<br />
*Syntax: '''''Vector''''', two '''integers'''<br />
*'''+Background:'''<br />
* (Optional) Filename of the bitmap to be used as the background of this display.<br />
*Syntax: '''''String''''', texture filename<br />
*'''+Foreground:'''<br />
* (Optional) Filename of the bitmap to be used as the foreground of this display.<br />
*Syntax: '''''String''''', texture filename<br />
*'''+Display Name:'''<br />
* A name to be used as a reference handle.<br />
*Syntax: '''''String'''''}}<br />
<br />
===$POF File:===<br />
*Filename of the model file (.pof) at data/models folder<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
===$POF file Techroom:===<br />
*Filename of the model file (.pof) at data/models folder; used only in the weapon loadout screen<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$Texture Replace:===<br />
{{Table3610|<br />
*'''+old:'''<br />
*Defines the texture to be replaced<br />
**Syntax: '''''String''''', filename<br />
*'''+new:'''<br />
*Defines the new texture<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$POF Target File:===<br />
*Optional hud targeting model<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$POF Target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of target model used in the HUD targetbox<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Detail Distance:===<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers default to (from left to right): 1/8, 1/4, 1, 4, and 8, and may be overridden by the [[Ai_profiles.tbl#$Detail Distance Multiplier:|$Detail Distance Multiplier]]<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''<br />
<br />
<br />
===$Collision LOD:===<br />
{{Table373|<br />
*Defines an alternative LOD (Level-Of-Detail) to use for collision detection. Using this can increase performance without visible drawbacks if the LOD chosen has much simpler geometry but the shape still closely matches the base model.<br />
*This works as follows: collision detection proceeds normally through the various model/submodel radius and bounding box checks based on LOD0, but when the game decides to perform a mesh-based collision check of a given submodel, it will use the submodel's LOD mesh instead. However, all submodels do not need to have a counterpart in the given LOD; if one is not found, the closest alternative will automatically be used instead.<br />
*For example, if ''$Collision LOD: 3'' is used and the submodel engine01a is checked for a hit, the game will attempt to use the mesh of engine01d instead. However, if there is no engine01d submodel, the game will find the closest alternative: it'll look for engine01c, then engine01b, and finally fall back to engine01a. Note the implications of for example the root LOD submodel (detaild, detail3, etc) including the geometry of subsystem submodels; if detail0 is checked for a collision before engine01a, and detail3 includes the engine geometry (as opposed to having it in engine01d), then the subsystem engine01a cannot be hit.<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$ND:===<br />
NOTE: this option has done nothing since before 2008<br />
<br />
*No Dim field field was used in FreeSpace for ship lights. Use of glowmaps is preferred to the $ND entry. Only noticeable in Glide or Software mode.<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''42, 42, 224''<br />
<br />
===$Enable Team Colors:===<br />
{{Table3615|<br />
*Enables Team Colors for a ship without setting a default color setting.<br />
*Syntax: '''''Boolean'''''}}<br />
<br />
===$Default Team:===<br />
{{Table3615|<br />
*Specifies the default team name to be used for coloring a ship.<br />
*None will set the default to 'no coloring'.<br />
*Syntax: '''''String''''', name of the teams as defined in [[colors.tbl]]}}<br />
<br />
===$Show Damage:===<br />
*No function at all. The engine will read values, but discard them. In 3.6.10 or later, this can be left out without adverse consequences.<br />
*Syntax: '''''Boolean''''', yes or no, usually yes<br />
<br />
<br />
===$Damage Lightning Type:===<br />
{{Table3613|<br />
*Changes the damage lightning effect shown on highly damaged ships. <br />
*Can be defined as:<br />
**''None''<br />
**''Default''}}<br />
<br />
<br />
===$Impact:===<br />
{{Table3610|<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the collision<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Impact Spew:===<br />
{{Table3610|<br />
*Used to define the impact particle spew<br />
*Note: You CANNOT define a different type of particle spew here; the only option possible is listed below<br />
*'''+Max particles:'''<br />
**Defines the maximum number of particles spewed<br />
**Setting to zero causes model to generate no particles at all<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 30}}{{Table3613|<br />
*'''+Min particles:'''<br />
**Defines the minimum number of particles spewed<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 25<br />
*'''+Max Radius:'''<br />
**Defines the maximum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.5f<br />
*'''+Min Radius:'''<br />
**Defines the minimum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.2f<br />
*'''+Max Lifetime:'''<br />
**Defines the maximum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.55f<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.05f<br />
*'''+Max Velocity:'''<br />
**Defines the maximum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 12.0f<br />
*'''+Min Velocity:'''<br />
**Defines the minimum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 2.0f<br />
*'''+Normal Variance:'''<br />
**Defines the variance of particle direction from the normal<br />
**Syntax: '''''Float'''''<br />
**Default Value: 1.0f}}<br />
<br />
<br />
===$Damage Spew:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the 'smoke' released on weapon impact point<br />
*Certain default values (marked with '''X''') gain a specific multiplier based on ship radius<br />
::If the radius is less than 20 the multiplier is 1<br />
::If the radius is larger than 40 the multipler is 1.2<br />
::Otherwise it is between 1 and 1.2<br />
{{Table3610|<br />
*'''+Max Particles:'''<br />
**Default Value: 50 * '''X'''}}{{Table3613|<br />
*'''+Min Particles:'''<br />
**Default Value: 20 * '''X'''<br />
*'''+Max Radius:'''<br />
**Default Value: 1.3 <br />
*'''+Min Radius:'''<br />
**Default Value: 0.7<br />
*'''+Max Lifetime:'''<br />
**Default Value: 1.5 * '''X'''<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.7 * '''X'''<br />
*'''+Max Velocity:'''<br />
**Default Value: 12.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 3.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 0.2 * '''X'''}}<br />
<br />
<br />
===$Collision Physics:===<br />
{{Table3613|<br />
*Parameters affecting collision physics, including landings.<br />
*"Landing" means the ship will not take damage or shake when it touches down. Instead, the ship will reorient towards a neutral resting orientation. "Reorient" thresholds below mean that the ship will still take damage (counts as a crash) but will move towards the correct landing orientation. <br />
<br />
====+Bounce:====<br />
When this ship collides with a large ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Both Small Bounce:====<br />
When this ship collides with a small ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Friction:====<br />
During collisions, how much friction to apply (slowing lateral movement). Default is 0.0.<br />
====+Rotation Factor:====<br />
Affects the rotational energy of collisions. Default is 0.2.<br />
====+Landing Max Forward Vel:====<br />
Maximum velocity for which landing physics are used. <br />
====+Landing Min Forward Vel:====<br />
Minimum velocity for which landing physics are used. <br />
====+Landing Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still be considered a landing. <br />
====+Landing Max Horizontal Vel:====<br />
Maximum sideways velocity the ship can land at.<br />
====+Landing Max Angle:====<br />
Maximum angle of attack the ship can land at (in degrees).<br />
====+Landing Min Angle:====<br />
Minimum angle of attack the ship can land at (in degrees).<br />
====+Landing Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to count as a landing. <br />
====+Reorient Max Forward Vel:====<br />
Maximum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Min Forward Vel:====<br />
Minimum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still reorient. <br />
====+Reorient Max Horizontal Vel:====<br />
Maximum sideways velocity for reorienting.<br />
====+Reorient Max Angle:====<br />
Maximum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Min Angle:====<br />
Minimum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to be reoriented on impact.<br />
====+Reorient Speed Mult:====<br />
How quickly the reorientation takes place (when applicable)<br />
====+Landing Rest Angle:====<br />
Angle of the ship's nose relative to the plane of the landing surface when the ship is at rest. Reorient will move the ship towards this angle. <br />
====+Landing Sound:====<br />
Sound to play when landing (if it's not a landing, normal collision sound is used).<br />
}}<br />
{{Table202|<br />
====+Collision Sound Light:====<br />
Sound when this ship collides normally.<br />
====+Collision Sound Heavy:====<br />
Sound when this ship collides at high speed.<br />
====+Collision Sound Shielded:====<br />
Sound when this ship collides with shields active.<br />
}}<br />
<br />
<br />
===$Debris:===<br />
{{Table3610|<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of the debris (Default value is a random number)<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Max Lifetime:<br />
**Defines the maximum lifetime of the debris<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Min Speed:<br />
**Defines the minimum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Max Speed:<br />
**Defines the maximum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Min Rotation speed:<br />
**Defines the minimum rotational speed of the debris (Default is (6 to 10)/Ship-radius)<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Max Rotation speed:<br />
**Defines the maximum rotational speed of the debris<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the debris<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
{{Table3611|<br />
*'''+Min Hitpoints:'''<br />
**Defines the minimum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Max Hitpoints:'''<br />
**Defines the maximum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Damage Multiplier:'''<br />
**Defines the collision damage multiplier for collisions against the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Lightning Arc Percent:'''<br />
**Controls what percent of debris pieces will have the damage lightning effect applied to them.<br />
**Defaults to 50%.<br />
**Syntax: '''''Float,''' 0-100}}<br />
{{Table202|<br />
*'''+Ambient Sound:'''<br />
**The sound played in the vicinity of debris.<br />
}}<br />
<br />
<br />
===$Density:===<br />
*This defines how hard you hit something. If you set it very high, a collision will the lower density ship and not yours; the higher the numbers are, the harder they will hit and the farther they will be pushed. However, this doesn't apply to asteroids. When a high density fighter collides with an asteroid, the high-density fighter will receive damage, but it will also destroy the asteroid. Setting a density of 1000 on a fighter with 180 hitpoints will cause the fighter to immediately explode if it collides with, say, an asteroid. A low-density fighter will not have any effect on an asteroid, but if the fighter destroys the asteroid, the fighter will fly far away.<br />
*Syntax: '''''Float''''', usually 1. Must not be 0.<br />
<br />
===$Damp:===<br />
*Sets the natural period (1 / omega) of the dampening effects on top of the acceleration model. (See [[Ships.tbl#$Forward Accel:|$Forward Accel:]])<br />
*In essence, affects how quickly you will accel/decel to your target velocity. Higher damp means slower acceleration and deceleration, while lower values (down to 0.0001) means faster acceleration/deceleration.<br />
**Specifying a value of 0.0 means there is no damping placed on top of the acceleration model, which is the most responsiveness you'll get.<br />
<br />
*Syntax: '''''Float'''''<br />
<br />
===$Rotdamp:===<br />
*Shares the same principles of [[Ships.tbl#$Damp:|$Damp]], but is applied to rotations directly. (there isn't a engine/thrust acceleration model for rotations)<br />
*Syntax: '''''Float'''''<br />
<br />
===$Banking Constant:===<br />
{{Table3610|<br />
*Defines a factor for how much roll is added during a yaw. Set as 1 for full roll and 0 is no roll. Default is 0.5.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Max Velocity:===<br />
*Defines maximum velocities with standard energy settings on x (left/right), y (up/down), and z (forward) -axis (respectively). z -axis velocity defines the maximum forward velocity.<br />
*The x and y velocities are considered slide veocities<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
**Example: ''0.0, 0.0, 80.0''<br />
<br />
<br />
===$Player Minimum Velocity:===<br />
{{Table38|<br />
*Defines minimum velocities on x (left/right), y (up/down), and z (forward) -axis (respectively). This affects the player only, the AI ignores the value. <br />
*The x and y velocities are considered slide velocities, the minimums for them are '''not currently implemented'''.<br />
*When gliding, if the absolute speed vector of the players ship falls below the minimum then the ships engines will re-engage and cannot be switched off again until the ships absolute vector exceeds the z-minimum.<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
**Example: ''0.0, 0.0, 40.0''<br />
}}<br />
<br />
===$Rotation Time:===<br />
*Defines rotation times around the x, y, and z-axis. Number is seconds it takes to complete rotate a ship (360 degrees) around the given axis. X-axis is "pitch," y-axis is "yaw," and z-axis is "roll."<br />
*Syntax: '''''Vector''''', three '''floats''', seconds per 360 degree turn around x-axis, y-axis, z-axis, respectively<br />
**Example: ''3.0, 2.6, 5.0''<br />
**Note: Setting to Zero will cause the model to disappear in mission.<br />
<br />
===$Rear Velocity:===<br />
*Defines rear velocity<br />
*Syntax: '''''Float''''', meters per second<br />
**Note: This value must be set for [[Ships.tbl#.2BAburn_Max_Reverse_Vel:|+Aburn_Max_Reverse_Vel:]] to work<br />
<br />
<br />
===$Forward Accel:===<br />
*Number of seconds needed from full stop to 63.21% of the maximum forward (z) velocity<br />
** We use 63.21% instead of 100% because FSO's acceleration/velocity model is based on a simplistic exponential function, rather than the more complex models seen for prop-driven, jet-driven, or rocket-driven craft.<br />
** The equation is a derivative of v = 1 - e^(-t / T), where T is what we define in the ship.tbl<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===$Forward Decel:===<br />
*Number of seconds needed from maximum forward (z) velocity to full stop<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Accel:===<br />
*Number of seconds needed from full stop to 63.21% maximum slide velocity<br />
*Note: this is applied to both slide (x and y) axes<br />
**See [[Ships.tbl#$Forward Accel:|$Forward Accel]] for an explanation of the 63.21%<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===$Slide Decel:===<br />
*Number of seconds needed from 63.21% maximum slide velocity to full stop<br />
*Note: this is applied to both slide (x and y) axes<br />
**See [[Ships.tbl#$Forward Accel:|$Forward Accel]] for an explanation of the 63.21%<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===$Glide:===<br />
{{Table3610|<br />
*Allows gliding in game, i.e. turning the ship's attitude/facing without changing its current movement direction and speed.<br />
*Syntax: '''''Boolean''''', yes or no}}<br />
<br />
<br />
====+Dynamic Glide Cap:====<br />
{{Table3611|<br />
*If set, game uses dynamic glide cap. The dynamic glide cap means that the maximum glide speed will follow the same rules as normal flight, including the effects of afterburner and power to engines. If set to YES, the value in +Max Glide Speed is ignored.<br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
====+Max Glide Speed:====<br />
{{Table3610|<br />
*Defines the maximum glide speed if glide has been enabled. If 0, this is set to the fastest speed the ship can go. If negative, there is no glide cap (allowing practically infinite maximum gliding speed). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
====+Glide Accel Mult:====<br />
{{Table3611|<br />
*Defines the acceleration multiplier for the gliding mode. If > 0, sets a fixed acceleration rate in glide mode depending on value. If set to 0, impossible to accelerate while in glide mode. If negative, enables glide speed ramping (acceleration in glide mode ramps in the same way as in normal flight). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
{{Table3610|<br />
*Entry exists as a dummy entry which doesnt do anything to prevent compatibility issues}}<br />
<br />
<br />
===$Use Newtonian Dampening:===<br />
{{Table3611|<br />
*If set, forces the ship to use (or not use) newtonian dampening. Basically, allows overriding the AI Profiles flag on a per-ship basis. <br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
===$Autoaim FOV:===<br />
{{Table3610|<br />
*Defines the field of view for autoaim<br />
*Syntax: '''''Integer'''''}}<br />
<br />
====+Converging Autoaim====<br />
{{Table3611|<br />
*Defines that the autoaim uses convergence}}<br />
<br />
====+Minimum Distance:====<br />
{{Table3611|<br />
*Defines the minimum distance for the convergence}}<br />
<br />
<br />
===$Convergence:===<br />
{{Table3611|<br />
*Defines the weapons use convergence<br />
{{Note|If none of the following optional strings are added, the weapon will not converge. Don't forget to use them.}}<br />
}}<br />
<br />
====+Automatic====<br />
{{Table3611|<br />
*Defines that the ship uses automatic convergence - converging distance calculated from estimated hit position (lead) of the current target.<br />
*'''+Minimum Distance:'''<br />
**Defines the minimum distance for the convergence. Overrides the setting for $Autoaim FOV's minimum distance.}}<br />
<br />
====+Standard====<br />
{{Table3611|<br />
*Defines that ship uses fixed convergence.<br />
*'''+Distance:'''<br />
**Defines the converging distance from the ship}}<br />
<br />
====+Offset:====<br />
{{Table3611|<br />
*Defines the offset from the ship centerpoint for the convergence<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
===$Warpin Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpin effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpin Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps in for '''default''' warpin effect<br />
*Sets the time that the ships warp in (not the animation itself) takes for '''BTRL''' type warpin effects<br />
*Syntax: '''''Float''''', meters per second or miiliseconds}}<br />
<br />
<br />
===$Warpin Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpin Decel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the deceleration curve at the end of the warpin. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual deceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpin Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpin Animation:===<br />
{{Table3610|<br />
*Defines the animation used for the Homeworld warpin effect. Has no effect for other warpin types.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
===$Warpout Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpout effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpout Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Engage Time:===<br />
{{Table3615|<br />
*Defines the delay the it takes for the warp drive of the ship to engage, during which the player may still abort the warpout. Affects both the player as well as AI ships. If not defined, [[Game_settings.tbl#.24Minimum player warpout time:|defaults to]] 3 seconds for the player and none for the AI.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
===$Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps out for '''default''' warpout effect<br />
*Sets the time that the ships warp out (not the animation itself) takes for '''BTRL''' type warpout effects}}<br />
{{Table3613|<br />
*Sets the minimum speed required for the ship to warp out for '''hyperspace''' type warpout effects}}<br />
{{Table3610|<br />
*Syntax: '''''Float''''', meters per second or milliseconds}}<br />
<br />
<br />
===$Warpout Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Accel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the acceleration curve at the start of the warpout. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual acceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpout Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpout Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpout effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Player Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the player warps out from the game<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Expl Inner Rad:===<br />
*Radius at which the full explosion damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Outer Rad:===<br />
*Maximum radius at which any damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Damage:===<br />
*Amount of damage done inside the inner radius<br />
*Syntax: '''''Float''''', damage<br />
<br />
<br />
===$Expl Blast:===<br />
*The intensity of the blast effect when you're within the outer radius<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Expl Propagates:===<br />
*This decides whether the ship explodes into debris immediately, or whether it has the many small explosions before breaking apart slowly<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
<br />
===$Propagating Expl Radius Multiplier:===<br />
{{Table3613|<br />
*This sets the multiplier for the ship splitting propagating explosions<br />
*Syntax: '''''Float''''', defaults to 1}}<br />
<br />
<br />
===$Expl Visual Rad:===<br />
{{Table3611|<br />
*This determines the visual size of the main fireball for an exploding ship. Does not affect ships with propagating explosions. <br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Base Death-Roll Time:===<br />
{{Table3613|<br />
*Defines the base death-roll time<br />
*Values is modified depending on conditions when the ship died<br />
*Syntax: '''''Integer''''', milliseconds<br />
**Default: 3000}}<br />
<br />
<br />
===$Death-Roll Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the radius of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death-Roll Explosion Intensity Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the amount of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier applied to the ship death explosions<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Count:===<br />
{{Table3613|<br />
*Defines the number of explosion effect game uses when a large ship dies<br />
*Syntax: '''''Integer'''''<br />
**Default: 6}}<br />
<br />
===$Death Roll X rotation Cap:===<br />
{{Table382|<br />
*Defines the cap (aka maximum) on X-axis (pitch) rotation during the ships deathroll. The value is radians per second. The current hard-coded minimum is 0.8. Note the code generally won't use this value for ships with radius > 150 (hard-coded). <br />
*Syntax: '''''Float'''''<br />
**Default: 4.725}}<br />
<br />
===$Death Roll Y rotation Cap:===<br />
{{Table382|<br />
*Defines the cap (aka maximum) on Y-axis (yaw) rotation during the ships deathroll. For other details see $Death Roll X rotation Cap:<br />
*Syntax: '''''Float'''''<br />
**Default: 4.725}}<br />
<br />
===$Death Roll Z rotation Cap:===<br />
{{Table382|<br />
*Defines the cap (aka maximum) on Z-axis (roll) rotation during the ships deathroll. For other details see $Death Roll X rotation Cap:<br />
*Syntax: '''''Float'''''<br />
**Default: 4.725}}<br />
<br />
===$Ship Splitting Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on every explosion event which happens when ship is splitting apart<br />
*The old 'popcorn' effect<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 80<br />
*'''+Min Particles:'''<br />
**Default Value: 40<br />
*'''+Max Radius:'''<br />
**Default Value: Ship radius * 0.015<br />
*'''+Min Radius:'''<br />
**Default Value: Ship radius * 0.005<br />
*'''+Max Lifetime:'''<br />
**Default Value: 6.0 * (1 + 0.002 * Ship radius)<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5 * (1 + 0.002 * Ship radius) <br />
*'''+Max Velocity:'''<br />
**Default Value: Speed of the propagating explosion<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
===$Ship Death Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used the final explosion of this ship type,<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Ship Death Particles'' is not a valid option!<br />
}}<br />
<br />
===$Ship Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on the moment 'non-knossos' type object dies<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 100<br />
*'''+Min Particles:'''<br />
**Default Value: 50<br />
*'''+Max Radius:'''<br />
**Default Value: 1.5<br />
*'''+Min Radius:'''<br />
**Default Value: 0.1<br />
*'''+Max Lifetime:'''<br />
**Default Value: 4.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5<br />
*'''+Max Velocity:'''<br />
**Default Value: 20.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Alternate Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released when 'knossos' type object is dying<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 30<br />
*'''+Min Particles:'''<br />
**Default Value: 15<br />
*'''+Max Radius:'''<br />
**Default Value: 100.0<br />
*'''+Min Radius:'''<br />
**Default Value: 30.0<br />
*'''+Max Lifetime:'''<br />
**Default Value: 12.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 2.0<br />
*'''+Max Velocity:'''<br />
**Default Value: 350.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 50.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Vaporize Percent Chance:===<br />
{{Table3611|<br />
*Allows ships to sometimes explode instantly (vaporize) instead of going through a death roll first. Overrides the same flag in [[objecttypes.tbl]]. <br />
*Syntax: '''''Float''''', percent chance of vaporization, 0 to 100}}<br />
<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the ship explosions<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at, 0 means no shockwave<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave Count:===<br />
*Defines the number of shockwaves to spawned<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Shockwave Model:===<br />
{{Table3610|<br />
*Defines the textured model used as the ship's 3D shockwave<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave Name:===<br />
{{Table3610|<br />
*Defines the name of the animation to used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Explosion Animations:===<br />
{{Table3610|<br />
*Defines the explosion animations used for the ship<br />
*Syntax: '''''Integer list'''''}}<br />
<br />
<br />
===$Weapon Model Draw Distance:===<br />
{{Table3610|<br />
*Distance that external weapons are shown, ie. missiles and such.<br />
*Syntax: '''''Float''''', meters<br />
**Default: ''200''}}<br />
<br />
<br />
===Primary Weapons===<br />
====$Allowed PBanks:====<br />
*List of allowed primary weapons in brackets (weapon name marked with quotes).<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has its own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight PBanks:====<br />
*Primary weapons for multiplayer dogfights.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon dogfight banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default PBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$PBank Capacity:====<br />
{{Table3610|<br />
*Defines ammunition capacity of primary weapon banks. In brackets, different weapon banks separated by commas.<br />
*NOTE: In order for this to work, at least one of the primary weapons in the list of default primaries must be a ballistic weapon.<br />
*Syntax: '''''( Integer, Integer )'''''}}<br />
<br />
<br />
====$Show Primary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for primary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )''''', yes or no<br />
**Example: ''( YES YES )'' - Note the spaces on the insides of the brackets.}}<br />
<br />
<br />
===Secondary Weapons===<br />
====$Allowed SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon dogfight banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default SBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$SBank Capacity:====<br />
*Defines ammunition capacity of secondary weapon banks. In brackets, different weapon banks separated by commas.<br />
*Syntax: '''''( Integer, Integer )'''''<br />
<br />
<br />
====$Show Secondary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for secondary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )'''''<br />
**Example: ''(YES YES)''}}<br />
<br />
===$Ship Recoil Modifier:===<br />
{{Table373|<br />
*Multiplies the recoil force of a weapon by this value, use a value greater than 1.0 to increase the force, use a value between 1.0 and 0.0 to decrease.<br />
**Syntax: '''''Float''''' (defaults to 1.0)<br />
{{Note|It is not required to have any weapons with the "apply recoil" flag set for this to be enabled.}}<br />
}}<br />
<br />
===$Shields:===<br />
*Determines the shield strength<br />
*Syntax: '''''Float''''', total shield strength<br />
<br />
====+Auto Spread:====<br />
{{Table371|<br />
*Defines the thickness of auto spread shields. Note that the [[#.22auto_spread_shields.22|"auto spread shields"]] ship flag is also needed.<br />
*Syntax: '''''Float''''', shield thickness in meters.}}<br />
<br />
====+Minimum Weapon Span:====<br />
{{Table373|<br />
*Determines the minimum distance weapons must have traveled before impacting the shield (for example if fired close to or inside the shield). Does not affect whether the weapon bypasses shields, unless +Allow Bypass (see below) is set to ''YES''. Only valid with auto spread shields.<br />
*Syntax: '''''Float''''', defaults to the shield thickness.}}<br />
<br />
====+Allow Bypass:====<br />
{{Table371|<br />
*Determines whether weapons which impact on the ship's hull (see +Minimum Weapon Span above) will bypass shields. Only valid with auto spread shields.<br />
*Syntax: '''''Boolean'''''<br />
**Default: ''NO''}}<br />
<br />
====+Spread From LOD:====<br />
{{Table371|<br />
*Causes the auto spread shields calculations to be done based off a LOD level other than LOD0. Using a lower-poly LOD will considerably speed up the shield collision detection, while being visually indistinguishable in most cases.<br />
*Syntax: '''''Integer''''', defaults to 0}}<br />
<br />
<br />
===$Model Point Shield Controls:===<br />
{{Table371|<br />
*Allows remapping of the 4 shield augmentation keys when [[Model Point Shields]] are used. You should usually supply as many values as you have shield segments. The first value determines which augmentation key to use for the first shield segment, the second value determines which key to use for the second shield segment, and so on (the order being defined by the order of the shield points in the model file). If less than 4 values are given, "none" is assumed for the missing ones. Note that as there are only 4 augmentation keys, player ships with more than 4 shield segments would generally not be a good idea.<br />
*Syntax: '''''( String list )''''', possible values "front", "left", "right", "rear" and "none"<br />
**Example: ''( "front" "rear" )'' for a ship with only two shield sections, front and rear; the left and right augmentation keys would be disabled.<br />
**Example: ''( "left" "rear" "right" )'' for a ship with only three shield sections, left, right and rear; the front augmentation key would be disabled.<br />
**Example: ''( "front" "right" "rear" "left" )'' for a ship with four shield sections but perhaps positioned in a non-standard way.}}<br />
<br />
<br />
===$Shield Color:===<br />
*RGB value for shield color<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''100, 100, 255''<br />
<br />
<br />
===$Shield Impact Explosion:===<br />
{{Table373|<br />
*Impact explosion animation to trigger when this ship's shields are hit. Works identically for all shield types.<br />
*Note: The size of the explosion is defined by the weapon, see [[Weapons.tbl#.24Shield_Impact_Explosion_Radius:]].<br />
*Syntax: '''''String''''', filename or ''none''<br />
}}<br />
<br />
<br />
===$Max Shield Recharge:===<br />
{{Table373|<br />
*Determines a maximum recharge limit of shields. When used, the combined maximum shield energy is lowered, meaning that shield energy can be moved between quadrants even with shields fully charged.<br />
*Syntax: '''''Float''''', multiplier ranging from 0.0 to 1.0, defaults to 1.0<br />
**Example: ''$Max Shield Recharge: 0.5'' caps the combined shield energy to 50%, meaning that a ship with 4 shield quadrants will by default have 12.5% strength on all quadrants (instead of normal 25%), allowing it to for example augment one quadrant to 50% while dropping other quadrants to 0%.<br />
}}<br />
<br />
<br />
===$Power Output:===<br />
*Actually does *NOTHING* unless set to zero; in which case weapon/shield/burner energy regeneration is disabled. Checked via code inspection 2014/12/29<br />
*Syntax: '''''Float'''''<br />
<br />
===$Shield Regeneration Rate:===<br />
{{Table3610|<br />
*Repair rates for shields at percent per second<br />
*Syntax: '''''Float''''', multiplier of total shield hitpoints recharged each second. ('''NOT A PERCENTAGE''', 0.02 equals 2% recharged per second)<br />
**Default: ''0.02''<br />
*Affected by ETS Shields value (1/3rd value recharged per sec at default ETS setting of '4')<br />
*Affected by AI Profile Setting: $Player Shield Recharge Scale:}}<br />
<br />
===$Support Shield Repair Rate:===<br />
{{Table3611|<br />
*Shield repair rate when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Regeneration Rate:===<br />
{{Table3610|<br />
*Regeneration rates for primary guns at percent per second<br />
*Syntax: '''''Float''''', multiplier of total gun energy recharged each second ('''NOT A PERCENTAGE''', 0.04 equals 4% recharged per second)<br />
**Default: ''0.04''<br />
*Affected by ETS Guns value (1/3rd value recharged per sec at default ETS setting of '4')<br />
*Affected by AI Profile Setting: $Player Weapon Recharge Scale:}}<br />
<br />
===$Max Oclk Speed:===<br />
*Can also be '''$Max Overclock Speed:'''<br />
*Maximum velocity with all energy diverted to engines<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Max Weapon Eng:===<br />
*Can also be '''$Max Weapon Energy:'''<br />
*The maximum amount of energy you can store in your primary weapons bank.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Hitpoints:===<br />
*How much damage the ship can take<br />
*Syntax: '''''Float''''', hitpoints<br />
**Default: ''100''<br />
<br />
<br />
===$Hull Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for hull at percent per second<br />
*Syntax: '''''Float''''', multiplier of hitpoints repaired per second, '''NOT A PERCENTAGE''', 0.01 equals 1% recharged per second}}<br />
<br />
<br />
===$Support Hull Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for hull when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Subsystem Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for sybsystems percent per second<br />
*Syntax: ''Value'', percentage of total subsystem hitpoints repaired per second}}<br />
<br />
<br />
===$Support Subsystem Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for subsystems when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Armor Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines armor type used for the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
===$Shield Armor Type:===<br />
{{Table3611|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the armor type used for shield of the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Ships.tbl#Ships.tbl_flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the ship<br />
**Example: ( "fighter" "in tech database" )<br />
{{Table3610|<br />
*'''+noreplace'''<br />
**Can be used to force game to retain existing flags instead of reseting the ship flags before parsing in the new flags.}}<br />
<br />
<br />
===$AI Class:===<br />
*Default AI class<br />
*Syntax: '''''String''''', name of the AI class as defined in [[ai.tbl]]<br />
<br />
<br />
===$Afterburner:===<br />
*Defines if the ships has afterburner<br />
*Syntax: '''''Boolean''''', yes or no<br />
====+Aburn Max Vel:====<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
====+Aburn For accel:====<br />
*Defined only for the forward acceleration. In same format as [[Ships.tbl#$Forward Accel:|$Forward Accel]]<br />
*Syntax: '''''Float''''', seconds<br />
<br />
====+Aburn Max Reverse Vel:====<br />
{{Table3611|<br />
*Defined only for the reverse acceleration, Sets the top speed for Reverse Afterburner.<br />
*Syntax: '''''Float''''', seconds<br />
**NOTE: Requires [[Ships.tbl#.24Rear_Velocity:|$Rear Velocity:]] to be set in order to work.<br />
}}<br />
====+Aburn Rev accel:====<br />
{{Table3611|<br />
*Defined only for the reverse acceleration. In same format as [[Ships.tbl#$Forward Accel:|$Forward Accel]]<br />
<br />
*Syntax: '''''Float''''', seconds'''''}}<br />
<br />
====+Aburn Fuel:====<br />
*Amount of afterburner fuel the ship has<br />
*Syntax: '''''Float''''', fuel<br />
====+Aburn Burn Rate:====<br />
*Rate the fuel is consumed when afterburner is engaged (in units per seconds)<br />
*Syntax: '''''Float''''', fuel units per second<br />
====+Aburn Rec Rate:====<br />
*Rate the fuel is restored.<br />
*Exact fuel recharged per second is given by the ETS value (as a percentage of total power output) multiplied by twice the tabled recharge rate, and then multiplied by the difficulty setting.<br />
*Syntax: '''''Float''''', fuel units per second<br />
{{Table3610|<br />
====$Trails:====<br />
*Allows afterburner trails to be used<br />
=====+Bitmap:=====<br />
*Texture used to draw the afterburner trail<br />
*Syntax: '''''String''''', filename<br />
=====+Width:=====<br />
*Width of afterburner trail at the beginning of it (ie. the thruster end)<br />
*Syntax: '''''Float''''', meters<br />
=====+Alpha:=====<br />
*Transparancy of the trail, value from 1 (non-transparent) to 0 (totally transparent)<br />
*Syntax: '''''Float'''''<br />
=====+Life:=====<br />
*How long the trail will last<br />
*Syntax: '''''Float''''', seconds}}<br />
{{Table3611|<br />
=====+Faded Out Sections:=====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Countermeasure Type:===<br />
{{Table3610|<br />
*Defines the weapon used as a countermeasure. Weapon does not have to be included in the countermeasure section of the weapons.tbl, but it has to have "countermeasure" flag in that case.<br />
*Syntax: '''''String''''', name of the weapon as defined in [[weapons.tbl]]}}<br />
<br />
<br />
===$Countermeasures:===<br />
*Number of countermeasures that can be loaded to the ship<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Scan Time:===<br />
*Time it takes to scan the ship<br />
*Syntax: '''''Integer''''', milliseconds<br />
<br />
<br />
===$Scan range Normal:===<br />
{{Table381|<br />
*Distance at which the ship can scan other small ships or large ship subsystems<br />
*Syntax: '''''Float''''', distance<br />
}}<br />
<br />
===$Scan range Capital:===<br />
{{Table381|<br />
*Distance at which the ship can scan capital (& similar size) ships<br />
*Syntax: '''''Float''''', distance<br />
}}<br />
<br />
===$Ask Help Shield Percent:===<br />
{{Table381|<br />
*Percentage of shield damage at which the ship will send a call for assistance message. <br />
*Syntax: '''''Float''''', percentage. Valid range 0.0-1.0<br />
}}<br />
<br />
===$Ask Help Hull Percent:===<br />
{{Table381|<br />
*Percentage of hull damage at which the ship will send a call for assistance message. <br />
*Syntax: '''''Float''''', percentage. Valid range 0.0-1.0<br />
}}<br />
<br />
===$EngineSnd:===<br />
*Engine sound used for the ship with number referring to sounds.tbl<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Minimum Engine Volume:===<br />
{{Table373|<br />
*Specifies how to multiply the volume of the engine sound based on ship speed. When the ship is stationary, the engine volume will be multiplied by the given value, with the value approaching 1.0 as the ship speed approaches maximum.<br />
*Note: Default behavior is to ramp the multiplier from 0.5 (when ship is stationary) to 1.0 (when ship is at half speed or more).<br />
*Syntax: '''''Float''''', volume multiplier, usually you'll want a value between 0.0 and 1.0<br />
}}<br />
<br />
===$Flyby Sound===<br />
{{Table382|<br />
*Optional sound to be used for the fly-by sound<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$GlideStartSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when entering glide mode, instead of the default throttle down sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$GlideEndSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when exiting glide mode, instead of the default throttle up sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CockpitEngineSnd===<br />
{{Table3613|<br />
*Optional sound to be used for looping engine sound heard in the cockpit.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$FullThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to full power.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ZeroThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to zero power<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleUpSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when increasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleDownSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when decreasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the looping sound heard when the afterburner is active<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerEngageSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the sound heard when the afterburner is engaged<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the activation of the afterburner failed<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileTrackingSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player tries to acquire a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player has acquired a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his primary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his secondary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$TargetAcquiredSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player acquires a new target<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the primary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the secondary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is locked onto the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileEvadedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a missile has been evaded<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CargoScanningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the cargo of an object is being scanned<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$DeathRollSnd===<br />
{{Table202|<br />
*Optional sound to be used for the sound heard when the ship enters its death roll<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ExplosionSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the ship explodes<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SubsysExplosionSnd===<br />
{{Table202|<br />
*Optional sound to be used for the sound heard when a subsystem on this ship explodes<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$Closeup_pos:===<br />
*How the model will show at techroom and briefing screen animations (assuming a pre-rendered animation is not specified). The position of the camera relative to the model in the tech room and the target box view. If 3D ship selection is used, also affects the drawing of the ship icon in the weapon & ship selection briefing screens.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively<br />
<br />
===$Closeup_zoom:===<br />
*How the model will show at techroom and briefing screen animations (assuming a pre-rendered animation is not specified). How far the camera's zoomed in, defines camera's FOV. If 3D ship selection is used, also affects the drawing of the ship icon in the weapon & ship selection briefing screens.<br />
*Syntax: '''''Float''''', radians<br />
<br />
{{Table381|<br />
===$Closeup_pos_targetbox:===<br />
*Optional value to set for the position of the camera relative to the model in the HUD target box view. If not set then the value for $Closeup_pos: will be used.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively<br />
<br />
===$Closeup_zoom_targetbox:===<br />
*Optional value to set how the model will show in the HUD target box view. How far the camera's zoomed in, defines camera's FOV. If not set then the value for $Closeup_zoom: will be used.<br />
*Syntax: '''''Float''''', radians<br />
}}<br />
<br />
<br />
===$Topdown Offset:===<br />
{{Table3610|<br />
*Specifies how high the camera is above the center point of a ship in topdown camera views, or 2D missions.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shield_Icon:===<br />
*This .ani file must be at data/hud and included to the hud.tbl.<br />
{{Table3610|<br />
*Reference to the hud.tbl is no longer needed.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Model Icon Direction:===<br />
{{Table373|<br />
*The direction from which the ship should be drawn from, if $Ship_Icon is not used and the ship icon is generated from the model.<br />
** By default, the direction is based on whether the game thinks the ship is a small ship, a capship or an installation.<br />
**Syntax: ''String'', one of "top", "bottom", "front", "back", "left" or "right"}}<br />
<br />
<br />
===$Ship_Icon:===<br />
*The icon used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Anim:===<br />
*The glowing green grid animation used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Ship_Overhead:===<br />
*The overhead view used in the weapons loadout.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
{{Table371|<br />
===$Briefing icon:===<br />
*Defines if the ship has its own briefing icon information which overrides the standard briefing icon image<br />
====+Regular:====<br />
*Syntax: '''''<regular anim filename>'''''<br />
====+Fade:====<br />
*Syntax: '''''<fade anim filename>'''''<br />
====+Highlight:====<br />
*Syntax: '''''<highlight anim filename>'''''}}<br />
<br />
{{Table371|<br />
===$Briefing icon with cargo:===<br />
*Defines if the ship has its own cargo briefing icon (which will only be an option if a ship icon is also specified)<br />
====+Regular:====<br />
*Syntax: '''''<regular anim filename>'''''<br />
====+Fade:====<br />
*Syntax: '''''<fade anim filename>'''''<br />
====+Highlight:====<br />
*Syntax: '''''<highlight anim filename>'''''}}<br />
<br />
{{Table371|<br />
===$Briefing wing icon:===<br />
*Defines if the ship has its own wing briefing icon (which will only be an option if a ship icon is also specified)<br />
====+Regular:====<br />
*Syntax: '''''<regular anim filename>'''''<br />
====+Fade:====<br />
*Syntax: '''''<fade anim filename>'''''<br />
====+Highlight:====<br />
*Syntax: '''''<highlight anim filename>'''''}}<br />
<br />
{{Table371|<br />
===$Briefing wing icon with cargo:===<br />
*Defines if the ship has its own wing-with-cargo briefing icon (which will only be an option if a ship icon is also specified)<br />
====+Regular:====<br />
*Syntax: '''''<regular anim filename>'''''<br />
====+Fade:====<br />
*Syntax: '''''<fade anim filename>'''''<br />
====+Highlight:====<br />
*Syntax: '''''<highlight anim filename>'''''}}<br />
<br />
===$Score:===<br />
*Points awarded for destroying the ship<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===Customized Thruster Effects===<br />
{{Table3611|<br />
*Defines the texture of the modeled thruster effect cone<br />
*'''$Thruster Normal Flame:'''<br />
**Syntax: '''''String''''', filename<br />
*Defines the texture of the modeled thruster effect cone with afterburners lit<br />
*'''$Thruster Afterburner Flame:'''<br />
**Syntax: '''''String''''', filename}}<br />
{{Table3610|<br />
*'''Defines the primary thruster glow - the one visible only from behind'''<br />
**'''$Thruster Bitmap 1:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Normal:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 1a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Afterburner:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster01 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
*'''Defines the secondary glow type-effect for thrusters - the feathery trail like haze behind the main glow'''<br />
**'''$Thruster Bitmap 2:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Sec_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 2a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Sec_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster02 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster02 Length factor:'''<br />
***Defines the length multiplier for the trail type (secondary) glowpoint thrusters<br />
***Replaces the older '''$Thruster01 Length factor:'''<br />
***Syntax: '''''Float'''''<br />
*'''Defines the tertiary glow type-effect for thrusters - the one visible from all directions'''<br />
**NOTE: The rotation of this effect is jittered, which can look quite bad with certain types of effects.<br />
**'''$Thruster Bitmap 3:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Ter_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 3a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Ter_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster03 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''}}<br />
{{Table3613|<br />
*'''Defines the distortion effect for thrusters'''<br />
**'''$Thruster Bitmap Distortion:'''<br />
***Defines name of normal thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap Distortion a:'''<br />
***Defines name of afterburner thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Distortion Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion Length factor:'''<br />
***Defines the length multiplier for the thruster distortion<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion:'''<br />
***Defines whether the distortion effect is rendered for this ship.<br />
***Syntax: '''''Bool'''''}}<br />
{{Table373|<br />
*'''$Thruster Glow Noise Mult:'''<br />
**A multiplier for how much noise is applied to the thruster glow radius. A value of 0 causes the radius to remain perfectly steady and values higher than 1 cause the radius to fluctuate more than the default.<br />
** Defaults to 1.0.<br />
**Syntax: '''''Float'''''<br />
}}<br />
<br />
<br />
===$Thruster Particles:===<br />
{{Table3610|<br />
*Defines the alternative particle thruster<br />
*'''$Thruster Particle Bitmap:''' OR '''$Afterburner Particle Bitmap:'''<br />
**Name of the animation used for particle thrusters, up to '''three''' can be defined for both '''standard''' thrusters and '''afterburners''' (6 in total). Afterburner particles require at least 1 existing particle thruster entry.<br />
**Syntax: '''''String''''', filename<br />
*'''$Min Radius:'''<br />
**Defines the minimum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Max Radius:'''<br />
**Defines the maximum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Min Created:'''<br />
**Defines the minimum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Max Created:'''<br />
**Defines the maximum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Variance:'''<br />
**Value that describes the randomness of particle generation, values close to 0 will cause particles to spew very close to the thrusters normal while values close 1 will cause some particles to be spewed even to opposite direction<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Stealth:===<br />
*Defines: Ship behaves as a stealth-ship: non-targettable, and not on radar.<br />
{{Table3610|<br />
This field is [[deprecated]], and mods using 3.6.8 and above should use the "stealth" flag.}}<br />
<br />
<br />
===$Max Decals:===<br />
{{Table3610|<br />
*Defines: Maximum number of weapon decals on a ship<br />
*Syntax: '''''Integer''''', maximum number of decals on ship<br />
**Default: 50 for anything below cruiser size, 100 for anything below superdestroyer/installation size, 300 for anything above destroyer size, 10 for everything else.}}<br />
{{Table3613|<br />
*Feature disabled. Parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Trail:===<br />
*These are the origins of the white contrails that appear in the nebula missions. Ship may have multiple trails.<br />
{{Table3611|<br />
*'''+ClearAll'''<br />
**Clears all existing trail data from the ship}}<br />
====+Offset:====<br />
*The position of the contrail's head<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively, relative to the center point of the model<br />
====+Start Width:====<br />
*The width of the contrail's head<br />
*Syntax: '''''Float''''', meters<br />
====+End Width:====<br />
*The width of the contrail's tail<br />
*Syntax: '''''Float''''', meters<br />
====+Start Alpha:====<br />
*The opacity of the contrail's head<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+End Alpha:====<br />
*The opacity of the contrail's tail<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+Max Life:====<br />
*How long the contrail remains<br />
*Syntax: '''''Float'''''', seconds<br />
====+Spew Time:====<br />
*Syntax: '''''Integer'''''<br />
====+Bitmap:====<br />
*The image to use for the contrail.<br />
*Syntax: '''''String''''', filename<br />
{{Table3611|<br />
====+Faded Out Sections:====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.}}<br />
<br />
<br />
===$Thruster:===<br />
{{Table3610|<br />
*Defines maneuvering thrusters. Ship may have multiple $Thrusters defined.<br />
*'''+Index:'''<br />
**Defines the index number of the manoeuvring thruster defined in this entry<br />
**Syntax: '''''Integer'''''<br />
*'''+Used For:'''<br />
**Defines the maneuver that triggers the maneuvering thruster<br />
**List of maneuvers: Bank right, Bank left, Pitch up, Pitch down, Roll right, Roll left, Slide right, Slide left, Slide up, Slide down, Forward, Reverse<br />
**Syntax: '''''("String" "String")'''''<br />
*'''+Position:'''<br />
**Defines thruster location<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), position from the ships center point, x, y, z axis respectively<br />
*'''+Normal:'''<br />
**Defines the direction where the thruster points to<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), direction of the thrusters normal, x, y, z axis respectively<br />
*'''+Texture:'''<br />
**Defines the graphic that will be used for trail, rendered like beams<br />
**Syntax: '''''String''''', filename<br />
*'''+Radius:'''<br />
**Defines the radius of cylinder<br />
**Syntax: '''''Float''''', meters<br />
*'''+Length:'''<br />
**Defines the length of thruster trail<br />
**Syntax: '''''Float''''', meters<br />
*'''+StartSnd:'''<br />
**Defines the sound played when the thruster is started<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+LoopSnd:'''<br />
**Defines the sound played when the thruster is continuously used<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+StopSnd:'''<br />
**Defines the sound played when the thruster is shutting down<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
===$Radar Image 2D:===<br />
{{Table3611|<br />
*Defines the bitmap used to represent the ship on the radar screen.<br />
*Syntax: '''''Filename'''''}}<br />
{{Table3615|<br />
*'''$Radar Color Image 2D:'''<br />
**Defines the color bitmap used to represent the ship on the radar screen.<br />
**Syntax: '''''Filename'''''}}<br />
{{Table3611|<br />
*'''$Radar Image Size:'''<br />
**Defines the size of the bitmap on the radar screen (length of the longer dimension)<br />
**Syntax: '''''Integer'''''<br />
*'''$3D Radar Blip Size Multiplier:'''<br />
**Defines the multiplier used for blip size on the 3D radar.<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Glowpoint overrides:===<br />
{{Table373|<br />
*Creates a point that casts light onto ships and objects with the source being a glowpoint defined in the model file.<br />
*Syntax: '''''( "String:Integer" )'''''<br />
*String refers to name in [[glowpoints.tbl]]<br />
*Essentially, [Name_of_glowpoint_override_in_glowpoints.tbl]:[Bank_in_POF]. If there is no override entry then the game will not generate a light. If you have multiple banks that use the same override, use a comma if they are not in order (2,4,7) and use a dash if they are in order (3-5 yields 3, 4, and 5).<br />
**Example: '''$Glowpoint overrides: ( "teal_glow_10:1" "red_glow:2,3" "white_glow_10:4" "red_glow_10:5" "green_glow_10:6")'''<br />
}}<br />
<br />
===$Ship IFF Colors:===<br />
{{Table3611|<br />
*Defines the alternate color for the ship. Affects both the targeting brackets as well as the radar screen.<br />
*'''+Seen By:'''<br />
**Defines the IFF actually viewing the object (most often 'Friendly')<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+When IFF Is:'''<br />
**Defines the IFF which the ship has to have for its color to be altered.<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+As Color:'''<br />
**Defines the new color of the ship's targeting brackets and radar blip<br />
**Syntax: '''''Integer list''''', red, blue and green respectively}}<br />
<br />
<br />
===$Target Priority Groups:===<br />
{{Table3611|<br />
*Defines into which target priority groups the ship belongs to<br />
*Syntax: '''''String list''''', names of the targeting groups<br />
*'''+Override'''<br />
**Overrides the ships existing groupings}}<br />
<br />
<br />
===$EMP Resistance Modifier:===<br />
{{Table3611|<br />
*Defines the ships EMP resistance modifier:<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Damage Draw Limit:===<br />
{{Table3611|<br />
*Defines the maximum percentage of hitpoints ship has before piercing effects are enabled<br />
*Syntax: '''''Float'''''<br />
**Example: '''10''', sets the limit to 10%}}<br />
<br />
===$Path Metadata:===<br />
{{Table3613|<br />
*Allows definition of extra metadata<br />
*Syntax: '''''String''''', name of the path as defined in the ship POF file.<br />
**Example: '''$Path Metadata: $Bay01'''<br />
====+departure rvec:====<br />
When using this path to depart via fighterbay, the departing ship will rotate to align itself with this rvec (so the right side of the ship is pointing in this direction). Only affects paths used to depart via fighterbay.<br />
====+arrive speed multiplier:====<br />
{{Table373|<br />
*Modifies the speed of ships arriving from a fighterbay using this path. See [[Ai_profiles.tbl#.24bay_arrive_speed_multiplier:]] for details.<br />
**Syntax: '''''Float'''''<br />
}}<br />
====+depart speed multiplier:====<br />
{{Table373|<br />
*Modifies the speed of ships departing to a fighterbay using this path. See [[Ai_profiles.tbl#.24bay_depart_speed_multiplier:]] for details.<br />
**Syntax: '''''Float'''''<br />
}}<br />
}}<br />
<br />
===$Subsystem<nowiki>:</nowiki>===<br />
:''Main article: [[Subsystem]]''<br />
<br />
==Ships.tbl flags==<br />
<br />
<br />
==="no_collide"===<br />
*Defines ship as non-collideable, ie. everything will go through it<br />
<br />
<br />
==="player_ship"===<br />
*Makes it possible for the player to fly the ship<br />
<br />
==="default_player_ship"===<br />
*Makes this ship as a default part of the loadout options in FRED<br />
<br />
<br />
----<br />
<br />
===Ship Type===<br />
*Flags in this section are used to define the type of the ship<br />
*Use only one '''ship type''' flag per table entry<br />
{{Table3610|<br />
*New ship types can be defined in [[objecttypes.tbl]]}}<br />
<br />
<br />
===="repair_rearm"====<br />
*Alternate name for "support"<br />
<br />
<br />
===="support"====<br />
*Defines the ship as repair and rearm vessel and sets AI behaviour accordingly<br />
*Only one such vessel can be defined per species<br />
<br />
<br />
===="cargo"====<br />
*Defines ship as a cargo crate and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="fighter"====<br />
*Defines ship as a fighter and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="bomber"====<br />
*Defines ship as a bomber and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="transport"====<br />
*Defines ship as a transport and also sets the AI behaviour<br />
<br />
<br />
===="freighter"====<br />
*Defines ship as a freighter and also sets the AI behaviour<br />
<br />
<br />
===="capital"====<br />
*Defines ship as a capital ship and also sets the AI behaviour<br />
*By default, the ship's subsystems are scannable (this can be overridden by mission designers)<br />
*The ship will warp out without ramping up to warpout speed<br />
*When using the "Knossos" warpout, this ship will aim for the center of the portal<br />
<br />
===="supercap"====<br />
*Alternate name for "super cap"<br />
<br />
<br />
===="super cap"====<br />
*Defines ship as a super capital ship and also sets the AI behaviour<br />
*The following things are true for all ships with this flag:<br />
**When hit by debris, damage dealt by the collision is capped to between 10 and 20% of the ship's health maximum (determined randomly for each collision)<br />
**All damage dealt by weapons without the corresponding supercap flag from weapons.tbl will be reduced by 75%<br />
**In addition, once the ship is at or below 75% health, damage from non-supercap weapons is completely negated<br />
**Do note that shockwave damage, regardless of origin, is not subject to these rules unless the "$Weapon shockwave damage respects huge ship flags:" setting in game_settings.tbl is set to true<br />
**Ship subsystems are scannable by default (can be overridden by mission designers)<br />
**The ship does not need to ramp up to warpout speed before entering subspace<br />
**When using the "Knossos" warpout, the ship will aim for a departure point at the center of the Knossos portal<br />
<br />
===="drydock"====<br />
*Defines ship as a drydock and also sets the AI behaviour<br />
<br />
<br />
===="cruiser"====<br />
*Defines ship as a cruiser and also sets the AI behaviour<br />
<br />
<br />
===="navbuoy"====<br />
*Defines ship as a navbuoy and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="sentrygun"====<br />
*Alternate name for "sentry gun"<br />
<br />
<br />
===="sentry gun"====<br />
*Defines ship as a sentrygun and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="escapepod"====<br />
*Alternate name for "escape pod"<br />
<br />
<br />
===="escape pod"====<br />
*Defines ship as a escapepod and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="corvette"====<br />
*Defines ship as a corvette and also sets the AI behaviour<br />
<br />
<br />
===="gas miner"====<br />
*Defines ship as a gas miner and also sets the AI behaviour<br />
<br />
<br />
===="awacs"====<br />
*Defines ship as a AWACS and also sets the AI behaviour<br />
<br />
<br />
===="knossos"====<br />
*Alternate name for the "Knossos device"<br />
<br />
<br />
===="knossos device"====<br />
*Defines ship as a Knossos and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="stealth"====<br />
{{Table3610|<br />
*Defines ship as a stealth-ship: non-targettable, and not on radar.}}<br />
<br />
<br />
===="no type"====<br />
*Does ???<br />
<br />
----<br />
<br />
<br />
==="ship copy"===<br />
*Defines the ship as a copy of another model<br />
<br />
<br />
==="in tech database"===<br />
*Includes ships description to the tech database from the beginning of the campaign<br />
<br />
<br />
==="in tech database multi"===<br />
*Includes the ship to multiplayer tech database<br />
<br />
<br />
==="dont collide invisible"===<br />
*Defines invisible textures as non-collideable (For example, a hangar entrace)<br />
<br />
<br />
==="big damage"===<br />
*Limits the damage made to the ship by non-huge weapons.<br />
<br />
<br />
==="no_fred"===<br />
*Ship will not appear in FRED.<br />
<br />
<br />
==="ballistic primaries"===<br />
{{Table3610|<br />
*Enables the ship to use ballistic primaries<br />
*No longer needed, game handles it automatically}}<br />
<br />
<br />
==="flash"===<br />
{{Table3610|<br />
*Makes a flash when a ship dies}}<br />
<br />
<br />
==="surface shields"===<br />
{{Table3610|<br />
*Shots that impact the hull are applied to shields, regardless of if the ship has a shield mesh.}}<br />
<br />
<br />
==="show ship"===<br />
{{Table3610|<br />
*Enable rendering the ship even when the ship is a player ship<br />
*Will result in the player's ship model being rendered, when in cockpit mode}}<br />
<br />
<br />
==="generate icon"===<br />
{{Table3610|<br />
*Creates a HUD icon from the model itself}}<br />
<br />
<br />
==="gun convergence"===<br />
{{Table3610|<br />
*Enables ship to use the firing points' normals in defining the direction where the weapon fire}}<br />
<br />
<br />
==="no thruster geometry noise"===<br />
{{Table3611|<br />
*Prevents noise from being added to the thruster effects geometry}}<br />
<br />
==="intrinsic no shields"===<br />
{{Table3611|<br />
*Defines that ship has no shields by default, to allow mixing and matching shielded and unshielded craft in loadout}}<br />
<br />
==="no primary linking"===<br />
{{Table3611|<br />
*Bypasses linked primaries while cycling. Does not block SEXPs/scripts that might be able to lock them, only the act of cycling for players and determing whether to link or not for AI.}}<br />
<br />
==="no pain flash"===<br />
{{Table3613|<br />
*Prevents pain flash from being shown when ship is hit}}<br />
<br />
==="dynamic primary linking"===<br />
{{Table37|<br />
*Allows this ship use the primary firepoint cycling code. With a key bind added in 3.6.13, you can toggle between various factorizations of primary firepoint groupings on a per-primary bank basis. So a 4-firepoint bank could cycle through all four firepoints firing together (1x4), each firepoint firing individually (4x1, all 4 firing over the timespan of the bank cooldown, so no change in damage over time, or DPS, occurs from retail behavior), or firing in pairs (2x2).}}<br />
<br />
==="no ets"===<br />
{{Table37|<br />
Sets ship class to have no ETS}}<br />
<br />
==="no lighting"===<br />
{{Table3613|<br />
Ship will not receive lighting calculations}}<br />
<br />
==="auto spread shields"===<br />
{{Table371|<br />
Causes the ship's shield mesh (if any) to be ignored and a shield of a given thickness to be automatically projected around the ship's hull. Weapons will impact the ship's shields at a distance equal to the shield thickness defined in [[Ships.tbl#.2BAuto_Spread:|#.2BAuto_Spread:]], but not before the weapon itself has travelled at least a distance equal to that. Note that impact effects normally projected onto the shield mesh will not work.}}<br />
<br />
==="model point shields"===<br />
{{Table371|<br />
Instead of the standard 4 shield quadrants, the ship uses an arbitrary number of shield sections which must have been defined in the model file, see [[Model Point Shields]]. If used on a player ship, you must also define [[Ships.tbl#.24Model_Point_Shield_Controls:|#.24Model_Point_Shield_Controls:]] to allow the shield augmentation controls to be used.}}<br />
<br />
==Wing Formations==<br />
===$Name:===<br />
{{Table202|<br />
*Provides a unique name for the formation, followed by the list of positions occupied by each member of the wing relative to their leader. The leader is always at 0,0,0 and is omitted, so the first position is the second in the wing, and second is the third in the wing, etc. Each formation must contain all 5 positions.<br />
*NOTE: FSO automatically scales these these positions by the ship's size, so the table values will be very small. You can see the retail formation's values below for reference.<br />
*Syntax: (a list of 5 '''''Vectors'''''), each has three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
===Example===<br />
<br />
<pre><br />
#Wing Formations<br />
<br />
$Name: Default<br />
((-0.39, 0.20, -0.59)<br />
( 0.39, 0.20, -0.59)<br />
(-0.78, 0.39, -1.18) <br />
( 0.00, 0.39, -1.18)<br />
( 0.78, 0.39, -1.18)) <br />
<br />
#End<br />
</pre><br />
<br />
==Player Ship Precedence==<br />
*Syntax: ( '''''"String" "String"''''')<br />
===Example===<br />
<br />
<pre><br />
$Player Ship Precedence: (<br />
"GTF Ulysses"<br />
"GTF Hercules"<br />
"GTB Medusa"<br />
"GTB Ursa" )<br />
</pre><br />
<br />
<br />
==Sample==<br />
<br />
<pre><br />
#Default Player Ship<br />
<br />
$Name: GTF Ulysses<br />
<br />
#End<br />
<br />
<br />
#Engine Wash Info<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
#End<br />
<br />
<br />
#Ship Classes<br />
$Name: GTF Ulysses<br />
$Short name: TFight<br />
$Species: Terran<br />
+Type: XSTR("Space Superiority", -1)<br />
+Maneuverability: XSTR("Excellent", -1)<br />
+Armor: XSTR("Light", -1<br />
+Manufacturer: XSTR("Triton / Mekhu", -1)<br />
+Description: XSTR( " ", -1)<br />
$end_multi_text<br />
+Tech Description: XSTR("Descriptive text", -1)<br />
$end_multi_text<br />
+Length: 16 m<br />
+Gun Mounts: 4<br />
+Missile Banks: 1<br />
$POF File: fighter01.pof<br />
$Detail Distance: (0, 80, 300, 900)<br />
$ND: 42 42 244<br />
$Show Damage: YES<br />
$Density: 1<br />
$Damp: 0.1<br />
$Rotdamp: 0.35<br />
$Max Velocity: 0.0, 0.0, 70.0<br />
$Rotation Time: 3.0, 2.6, 5.0<br />
$Rear Velocity: 0.0<br />
$Forward Accel: 2.0<br />
$Forward Decel: 1.5<br />
$Slide Accel: 0.0<br />
$Slide Decel: 0.0<br />
$Expl Inner Rad: 25.0<br />
$Expl Outer Rad: 55.0<br />
$Expl Damage: 15.0<br />
$Expl Blast: 1000.0<br />
$Expl Propagates: NO<br />
$Shockwave Speed: 0.0<br />
$Allowed PBanks: ( "Subach HL-7" "Prometheus R")<br />
$Allowed Dogfight PBanks: ( "Subach HL-D" "Prometheus D" )<br />
$Default PBanks: ( "Subach HL-7" "Prometheus R" )<br />
$Allowed SBanks: ( "Rockeye" "Tempest" )<br />
$Allowed Dogfight SBanks: ( "Tempest D" "Hornet D" )<br />
$Default SBanks: ( "Harpoon" )<br />
$SBank Capacity: ( 40 )<br />
$Shields: 380<br />
$Shield Color: 100 100 255<br />
$Power Output: 2.0<br />
$Max Oclk Speed: 94.0<br />
$Max Weapon Eng: 80.0<br />
$Hitpoints: 180<br />
$Flags: ( "player_ship"<br />
"default_player_ship"<br />
"fighter"<br />
"in tech database")<br />
$AI Class: Captain<br />
$Afterburner: YES<br />
+Aburn Max Vel: 0.0, 0.0, 150.0<br />
+Aburn For accel: 0.7<br />
+Aburn Fuel: 300.0<br />
+Aburn Burn Rate: 50.0<br />
+Aburn Rec Rate: 25.0<br />
$Countermeasures: 25<br />
$Scan Time: 2000<br />
$EngineSnd: 128<br />
$Closeup_Pos: 0.0, 0.0, -22<br />
$Closeup_Zoom: 0.5<br />
$Shield_Icon: shield-f01<br />
$Ship_Icon: iconfighter01<br />
$Ship_Anim: ssfighter01<br />
$Ship_Overhead: loadfighter01<br />
$Score: 8<br />
$Trail:<br />
+Offset: -7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Trail:<br />
+Offset: 7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Subsystem: communication, 10, 0<br />
$Subsystem: navigation, 10, 0<br />
$Subsystem: weapons, 20, 0<br />
$Subsystem: sensors, 10, 0<br />
$Subsystem: engines, 35, 0<br />
<br />
#End<br />
<br />
$Player Ship Precedence: (<br />
"GTF Ulysses")<br />
</pre><br />
<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Game_settings.tbl&diff=61794
Game settings.tbl
2020-09-01T13:16:42Z
<p>Cyborg17: /* #OTHER SETTINGS */</p>
<hr />
<div>{{SCP_table}}<br />
<br />
{{TableVersionGit|2019-12-18|58992cf}}<br />
<br />
The '''game_settings.tbl''', also known as mod.tbl, defines options that can be changed globally. All settings are optional.<br />
<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-mod.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==#GAME SETTINGS==<br />
Contains settings that affect how the engine works.<br />
<br />
<br />
===$Target Version:===<br />
{{Table373|<br />
Specifies the minimum version of FreeSpace Open that this mod supports. If the version specified here is greater than the version of the current build, an error message is displayed.<br />
}}<br />
{{Table381|<br />
The $Minimum version option has been renamed to $Target Version. The old name is kept with the same functionality for backwards-compatibility.<br />
<br />
The target version specifies what version of the FSO engine this mod was created for. It will be used by the engine to enable or disable backwards-incompatible changes by default. The default value is 2.0 which specifies that the mod targets the retail engine version.<br />
}}<br />
<br />
====+Major:====<br />
{{Table373|<br />
Required. Sets the major component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''3''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Minor:====<br />
{{Table373|<br />
Required. Sets the minor component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''7''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Build:====<br />
{{Table373|<br />
Required. Sets the build component of the target version.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''3''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
====+Revision:====<br />
{{Table373|<br />
Sets the revision component of the target version. If no revision is given then all builds of that release are supported (even nightly builds if there are any).<br />
For nightly builds this is the date in YYYYMMDD format.<br />
*Syntax: '''''Integer'''''<br />
*Example: '''''20151121''''' (for a minimum version of 3.7.3.20151121)<br />
}}<br />
<br />
<br />
===$Window title:===<br />
{{Table382|<br />
Specifies the name of the FSO window when this mod is running. If blank or unspecified, the window will have the default title of "FreeSpace 2".<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Window icon:===<br />
{{Table382|<br />
Specifies the icon filename of the FSO window when this mod is running. If blank or unspecified, the window will have the default icon.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Unicode mode:===<br />
{{Table382|<br />
Enabled the Unicode text mode for this mod. In Unicode mode all text is assumed to be UTF-8 encoded Unicode and certain features are disabled if they do not have full Unicode support. Most notably, if this is enabled then the engine will no longer support the old bitmap fonts that were used by Retail FreeSpace. Only the newer TrueType fonts will be supported.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Use tabled strings for the default language:===<br />
{{Table202|<br />
Causes the game to use the text in strings.tbl and tstrings.tbl even when the current language is English. By default, the game will use the literal text in the source code and the data files (tables and missions) and will not look up the entry when the language is English. For other languages, the translation is always used, if it exists, regardless of this setting.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
==#CAMPAIGN SETTINGS==<br />
This group contains various Campaign related settings and overrides.<br />
<br />
<br />
===$Default Campaign File Name:===<br />
Defines which campaign will be selected by default for new pilots. A file extension is not needed and, if present, is removed by the code.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===#Ignored Campaign File Names===<br />
Defines which campaigns, if present, will not appear in the Campaign Room. In the original implementation, only single-player campaigns could be ignored and file extensions were required, but see below.<br />
{{Table371|As of 3.7.1, file extensions are not required and, if present, are removed by the code.}}<br />
{{Table382|As of 3.8.2, file name comparisons are not case sensitive and multiplayer campaigns can be ignored.}}<br />
====$Campaign File Name:====<br />
File name of the campaign to ignore. Multiple entries may exist.<br />
*Syntax: '''''String'''''<br />
<br />
===#Ignored Mission File Names===<br />
{{Table382|Defines which standalone missions, if present, will not appear in the Tech Room or Multiplayer Lobby. Both single-player and multiplayer missions can be ignored, but missions which appear in a campaign cannot. File extensions are not required and, if present, are removed by the code. File name comparisons are not case sensitive.<br />
====$Mission File Name:====<br />
File name of the mission to ignore. Multiple entries may exist.<br />
*Syntax: '''''String'''''<br />
}}<br />
<br />
<br />
===$Red-alert applies to delayed ships:===<br />
{{Table372|Controls whether red-alert saved statistics (hitpoints, weapons, subsystem strengths) will be restored for ships that are not present at mission start.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
}}<br />
<br />
<br />
==#HUD SETTINGS==<br />
This group contains various HUD behavior settings and overrides<br />
<br />
<br />
===$Directive Wait Time:===<br />
*Defines how long the game will wait before displaying a directive.<br />
*Syntax: '''''Integer'''''<br />
*Values: '''''Greater than or equal to 0 ms'''''<br />
<br />
<br />
===$Cutscene camera displays HUD:===<br />
Show the HUD when the cutscene camera is enabled.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
In earlier versions of the code, this option was controlled by $Cutscene camera disables HUD: and had a default of YES.<br />
<br />
<br />
===$Full color head animations:===<br />
Enables full-color head ANIs. Normal head ANIs will appear in gray.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
In earlier versions of the code, this option was controlled by $Color head animations with hud colors: and had a default of YES.<br />
<br />
<br />
==#SEXP SETTINGS==<br />
This group contains SEXP settings and overrides.<br />
<br />
<br />
===$Loop SEXPs Then Arguments:===<br />
Flips how when-argument settings loop. See: [http://www.hard-light.net/forums/index.php?topic=79602.0 SEXP Argument changes via mod.tbl] <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Use Alternate Chaining Behavior:===<br />
When set, this allows all events in a chain to repeat, instead of only the last one. It makes the event chaining behavior act as people expected it to be in [http://scp.indiegames.us/mantis/view.php?id=82 Mantis #82].<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
==#GRAPHICS SETTINGS==<br />
This group contains settings related to graphics.<br />
<br />
<br />
===$Enable External Shaders:===<br />
Enables the use of external shader files. By default, the engine will use the built-in shaders.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Default Detail Level:===<br />
{{Table3615|<br />
Determines which graphics detail level preset (low, medium, high, very high) acts as the default for new pilots.<br />
*Syntax: '''''Integer''''' (0-3)<br />
*Default Value: '''''3''''' (very high)}}<br />
<br />
<br />
===$Briefing Window FOV:===<br />
{{Table371|<br />
Determines the FOV in the briefing Icon window. Retail default for this is 0.29375, previous versions of FSO used a value of 0.5.<br />
*Syntax: '''''Float''''' (0.0 to 1.0)<br />
*Default Value: '''''0.29375'''''}}<br />
<br />
<br />
===$Generic Pain Flash Factor:===<br />
{{Table373|<br />
Determines the intensity of the pain red flash when the player is hit.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Shield Pain Flash Factor:===<br />
{{Table373|<br />
Determines the intensity of a pain flash when the player's shields are hit. Color will match the current ships shield color defined in ships.tbl. A value of 0 will give retail behavior (no shield effect). Positive values will cause the effect to start at full intensity at full shields and go to next to no intensity at zero shields. Negative values will cause no effect at full shields and full effect at no shields. Values should be kept between -1.0 and 1.0 for good pilot visibility.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''0.0'''''}}<br />
<br />
<br />
===$BMPMAN Slot Limit:===<br />
{{Table382|<br />
Determines the maximum number of textures that can be loaded simultaneously. This includes every frame of an animation, unless that animation is streaming (e.g. command briefing animations, message talking heads, etc). Also includes dynamically-created textures (used internally for various functions).<br />
*Syntax: '''''Int'''''<br />
*Values: '''''Greater than or equal to 3500'''''<br />
*Default Value: '''''4750'''''}}<br />
<br />
===$EMP Arc Color:===<br />
{{Table382|<br />
Allows custom RGB color values to be set for the EMP lightning arc effect. <br />
*'''+Primary Color Option 1:'''<br />
**The RGB color of the first primary color for the EMP lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 5)<br />
*'''+Primary Color Option 2:'''<br />
**The RGB color of the second primary color for the EMP lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (128, 128, 10)<br />
*'''+Secondary Color Option 1:'''<br />
**The RGB color of the secondary color for the EMP lightning arc effect.<br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (255, 255, 10)<br />
}}<br />
<br />
===$Damage Arc Color:===<br />
{{Table382|<br />
Allows custom RGB color values to be set for the damage lightning arc effect. <br />
*'''+Primary Color Option 1:'''<br />
**The RGB color of the first primary color for the damage lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 255)<br />
*'''+Primary Color Option 2:'''<br />
**The RGB color of the second primary color for the damage lightning arc effect.<br />
**The actual lightning arc color shown in-game is randomly selected between the first and second primary color. <br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (128, 128, 255)<br />
*'''+Secondary Color Option 1:'''<br />
**The RGB color of the secondary color for the damage lightning arc effect.<br />
**Syntax: '''''Color''''', (red, green, blue) respectively, integer value from 0 to 255<br />
**Default value: (64, 64, 5)<br />
}}<br />
<br />
==#NETWORK SETTINGS==<br />
This group contains network-related settings<br />
<br />
<br />
===$FS2NetD port:===<br />
*(description required)<br />
<br />
<br />
==#SOUND SETTINGS==<br />
This group contains sound-related settings<br />
<br />
<br />
===$Default Sound Volume:===<br />
{{Table371|<br />
*Defines the default sound fx volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Default Music Volume:===<br />
{{Table371|<br />
*Defines the default music volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.5'''''}}<br />
<br />
<br />
===$Default Voice Volume:===<br />
{{Table371|<br />
*Defines the default voice volume for new pilots.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.7'''''}}<br />
<br />
<br />
==#FRED SETTINGS==<br />
This group contains settings for FRED. <br />
<br />
<br />
===$Disable Hard Coded Message Head Ani Files:===<br />
{{table371|<br />
If set, FRED will not fill the head ani selection in the Event Editor with the retail head ani filenames.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Enable scripting in FRED:===<br />
{{table382|<br />
If set, scripting will be enabled in FRED. Use with extreme caution. The effects of scripts on FRED have not been fully tested. You can check if a script is running in FRED by using ba.inMissionEditor().<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
==#OTHER SETTINGS==<br />
This group contains miscellaneous settings. <br />
<br />
<br />
===$Fixed Turret Collisions:===<br />
Makes all hits to a turret's barrels count as hits to the turret subsystem. By default, this does not happen unless the point of impact falls inside the model radius of the turret's base.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Damage Impacted Subsystem First:===<br />
If set, a hit to a physical subsystem will always deal damage to that subsystem first, even if another subsystem is closer to the point of impact. By default, the closest subsystem will always receive damage first.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''<br />
<br />
<br />
===$Default ship select effect:===<br />
{{Table3615|<br />
*This specifies which effect to use for ship select animations when no .ani can be found, or the -ship_choice_3d commandline flag is active. This will default to the FS2 effect.<br />
*Possible options are "FS2", "FS1", and "off"}}<br />
<br />
<br />
===$Default weapon select effect:===<br />
{{Table3615|<br />
*This specifies which effect to use for weapon select animations when no .ani can be found, or the -weapon_choice_3d commandline flag is active. This will default to the FS2 effect.<br />
*Possible options are "FS2", "FS1", and "off"}}<br />
<br />
<br />
===$Weapons inherit parent collision group:===<br />
{{Table3615|<br />
*When set to true, Weapons fired by a ship will inherit their parents' collision group setting.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Flight controls follow eyepoint orientation:===<br />
{{Table371|<br />
*Specifies that if the player ship's eyepoint happens to rotate into a non-standard orientation, pitch and yaw axes should stay relative to the eyepoint orientation, not the ship. Note that this does not affect the pitch/yaw turning speed, which always remains relative to the ship.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Beams Use Damage Factors:===<br />
{{Table371|<br />
*Specifies that beam weapons will use the tabled damage factors for Armour, Shields and Subsystems. Default is false (i.e. all factors are treated as 1.0)<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Default fiction viewer UI:===<br />
{{Table373|<br />
*Specifies which fiction viewer layout to use in missions that don't specify one. Possible values are as follows:<br />
**"FS2": Standard layout. Requires (2_)fictionviewer and (2_)fictionviewer-m to be present in data\interface.<br />
**"WCS": Moves the "Accept" button to the lower-left corner of the screen. Requires (2_)fictionviewerb and (2_)fictionviewer-mb to be present in data\interface.<br />
**"auto": Selects "WCS" if the appropriate files are present; otherwise, selects "FS2". This is the default setting.}}<br />
<br />
<br />
===$Movie subtitle font:===<br />
{{Table382|<br />
*Specifies which font should be used for displaying subtitles in the cutscene player. This should be the name given to this font in the fonts table. Since movie subtitles can contain Unicode text it is a good idea to enable Unicode mode when movie subtitles are used but this is not enforced by this option.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Disable built-in translations:===<br />
{{Table382|<br />
*Turns off hard-coded translations, e.g. Transport -> Transporter in German. All strings will either use their XSTR entry or else not be translated.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Weapon shockwave damage respects huge ship flags:===<br />
{{Table382|<br />
*Controls whether weapon shockwaves will respect the huge/supercap ship flags. In retail they do not.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Enable external default scripts:===<br />
{{Table382|<br />
*Enables the loading of external scripts with the same name as a built-in script. Otherwise, uses the version of the script included in the executable (currently, just cfile_require.lua).<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Player warpout speed:===<br />
{{Table190|<br />
*Defines the speed the player must reach to warp out.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''40.0'''''}}<br />
<br />
<br />
===$Target warpout match percent:===<br />
{{Table190|<br />
*Defines how close to the warpout speed the player needs to be to actually warp out.<br />
*Syntax: '''''Float''''', between 0.0 and 1.0<br />
*Default Value: '''''0.05''''' (5%)}}<br />
<br />
<br />
===$Minimum player warpout time:===<br />
{{Table190|<br />
*The [[Ships.tbl#.24Warpout_Engage_Time:|default amount of time]], in seconds, warping out will take before actually starting to check whether the player is the right speed.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''3.0'''''}}<br />
<br />
<br />
===$Enable in-game options:===<br />
{{Table190|<br />
*Experimental mode whereby various settings can be modified by FSO while it's still running, rather than being set by the launcher before execution. Requires custom assets for the in-game options menu to actually be able to change the settings.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Dinky Shockwave Default Multiplier:===<br />
{{Table190|<br />
*Amount of damage, as a multiple of normal shockwave damage, assigned to a weapon's [[Weapons.tbl#.24Dinky shockwave:|dinky shockwave]] by default. To get the same behavior FSO had from 2005-2019, set this to 0.25.<br />
*Syntax: '''''Float'''''<br />
*Default Value: '''''1.0'''''}}<br />
<br />
<br />
===$Shockwaves Always Damage Bombs:===<br />
{{Table202|<br />
*Enables all bombs being damaged by shockwaves. Previously only those marked with flags could be damaged.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Shockwaves Damage All Object Types Once:===<br />
{{Table202|<br />
*Keeps any object from being damaged more than once by a shockwave. The default behavior is for asteroids and flagged missiles to be damaged every frame by the shockwave.<br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''False'''''}}<br />
<br />
<br />
===$Use Engine Wash Intensity:===<br />
{{Table190|<br />
*Allows the game to use the [[ships.tbl#.24Intensity::|Intensity]] value when calculating Engine Wash effects. <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
<br />
===$Swarmers Lead Targets:===<br />
{{Table202|<br />
*Causes swarm missiles to lead their targets by default, and will make use of [[Weapons.tbl#.2BTarget_Lead_Scaler:|Target Lead Scaler]] if specified, like normal aspect seekers. <br />
*Syntax: '''''Boolean'''''<br />
*Default Value: '''''NO'''''}}<br />
<br />
==#END==<br />
Required. The last line of the table must be #END<br />
<br />
<br />
<br />
==Sample Entry==<br />
<br />
#CAMPAIGN SETTINGS<br />
$Default Campaign File Name: NewCampaignFile<br />
<br />
#Ignored Campaign File Names<br />
$Campaign File Name: FreeSpace2.fc2<br />
<br />
#HUD SETTINGS<br />
$Directive Wait Time: 5000<br />
<br />
#SEXP SETTINGS<br />
$Loop SEXPs Then Arguments: True<br />
<br />
#OTHER SETTINGS<br />
$Fix Turret Collisions: True<br />
<br />
#END<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Fonts.tbl&diff=61498
Fonts.tbl
2020-08-13T02:34:30Z
<p>Cyborg17: </p>
<hr />
<div>{{SCP_table}}<br />
<br />
{{TableVersionGit|2016-08-02|b4db345}}<br />
<br />
The '''fonts.tbl''' is a recent addition to the SCP allowing the definition of non-standard fonts. The number of possible fonts is unlimited. The HUD gauges, show-subtitle-text sexp and the [[Fiction Viewer|fiction viewer]] can be manually set to any font in fonts.tbl. The rest of the fonts used in FSO (e.g. techroom text) are hardcoded to one of the first three fonts that are parsed. <br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-fnt.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==General Info==<br />
*Begins with #Fonts<br />
*Consists of at least 3 entries<br />
*Ends with #End<br />
<br />
Currently, there are two different types of supported fonts. The old "VFNT" type (which probably means '''V'''olition '''F'''o'''nt''') and the new TrueType Fonts. The old font use the usual ''$Font:'' option while the new fonts use ''$TrueType:''.<br />
<br />
===$Font:===<br />
*Lists a font file to use.<br />
*This font type is not supported if the engine is in [[Game_settings.tbl#$Unicode mode:|Unicode text mode]]!<br />
*Syntax: '''String'''<br />
<br />
====+Name:====<br />
{{Table38|<br />
*Sets the name of this font. Defaults to the specified filename if not provided.<br />
*Syntax: '''String'''<br />
}}<br />
<br />
====+Default Special Character Index:====<br />
{{Table372|<br />
*Specifies the index of the first special character (e.g., infinity symbol, "match speed" icon) in the font. Must be within the range of 0-249. Does not apply to language entries below that use [[Fonts.tbl#+Special Character Index:|+Special Character Index:]].<br />
*Syntax: '''Integer'''<br />
{{Note|If this parameter is used with the first font, it will override all uses of +Special Character Index: in [[strings.tbl]].}}<br />
}}<br />
<br />
====+Language:====<br />
{{Table372|<br />
*Specifies the name of a language.<br />
*Currently used for overriding the value of [[Fonts.tbl#+Default Special Character Index:|+Default Special Character Index:]].<br />
*Syntax: '''String'''<br />
<br />
=====+Special Character Index:=====<br />
*Overrides the value of [[Fonts.tbl#+Default Special Character Index:|+Default Special Character Index:]] for this language.<br />
*Syntax: '''Integer'''<br />
}}<br />
<br />
====+Top offset:====<br />
{{Table38|<br />
*Specifies the top offset for this font. See [[Fonts.tbl|Top and Bottom offsets]] for more information.<br />
*Syntax: '''float'''<br />
}}<br />
<br />
====+Bottom offset:====<br />
{{Table38|<br />
*Specifies the bottom offset for this font. See [[Fonts.tbl|Top and Bottom offsets]] for more information.<br />
*Syntax: '''float'''<br />
}}<br />
<br />
===$TrueType:===<br />
{{Table38|<br />
*Lists a font file to use.<br />
*Syntax: '''String'''<br />
}}<br />
<br />
====+Name:====<br />
{{Table38|<br />
*Specifies the name of this font, defaults to '''<fontFilename>-<fontSize>'''<br />
*Syntax: '''String'''<br />
}}<br />
<br />
====+Size:====<br />
{{Table38|<br />
*Specifies the size of the font, defaults to 8.<br />
*Syntax: '''float''', must be greater than 0<br />
}}<br />
<br />
====+Top offset:====<br />
{{Table38|<br />
*Specifies the top offset for this font. See [[Fonts.tbl|Top and Bottom offsets]] for more information.<br />
*Syntax: '''float'''<br />
}}<br />
<br />
====+Bottom offset:====<br />
{{Table38|<br />
*Specifies the bottom offset for this font. See [[Fonts.tbl|Top and Bottom offsets]] for more information.<br />
*Syntax: '''float'''<br />
}}<br />
<br />
====+Letter spacing:====<br />
{{Table38|<br />
*Specifies the letter spacing. Defaults to 0.<br />
*Syntax: '''float''', must be greater or equal to 0.<br />
}}<br />
<br />
====+Special Character Font:====<br />
{{Table38|<br />
*Specifies the VFNT file to use for the special characters. FSO uses a few special characters for a few things that are not present in standard TrueType fonts. To fix this you can specify a VFNT file from which these characters are loaded. This defaults to '''font01.vf''' which is a default font file from FS2 retail.<br />
*This option not needed and not supported if the engine is in [[Game_settings.tbl#$Unicode mode:|Unicode text mode]]!<br />
*Note! Pointing this to the fifth font entry or later can cause crashes, especially on standalones. See Cyborg for questions until this limit is removed.<br />
*Syntax: '''String'''<br />
}}<br />
<br />
==Top and Bottom offsets==<br />
The top and bottom offsets can be used to influence the line spacing for a specific font. Before rendering '''top offset''' vertical pixels are skipped. Then the text is rendered and then another '''bottom offset''' pixels are skipped.<br />
<br />
==Sample Entry==<br />
<pre><br />
#Fonts<br />
<br />
$Font: font01.vf<br />
$Font: font02.vf<br />
$Font: font03.vf<br />
<br />
$TrueType: arial.ttf<br />
+Name: Arial<br />
+Size: 12<br />
<br />
#End<br />
</pre><br />
==Sample Entry (Fiction Viewer)==<br />
<pre><br />
#Fiction Viewer<br />
<br />
$File: [text file]<br />
$Font: [font file]<br />
</pre><br />
<br />
== References ==<br />
# "[http://www.hard-light.net/forums/index.php?topic=66942.msg1327152#msg1327152 Re: Feature Request: 4th font (especially for fiction viewer)]", ''Hard Light Productions Forums'', Hard Light Productions, 24-12-2009. Retrieved on January 28, 2011.<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Scripting_functions&diff=58980
Scripting functions
2019-12-15T20:15:28Z
<p>Cyborg17: Updating Enumerations to match scripting.html output from 19.0 rc2</p>
<hr />
<div>This page explains all the functions mentioned in the scripting.html file, including their syntax, remarks on their use and common errors modders may encounter when they use them.<br />
<br />
----<br />
<br />
Script Output - FSO v3.6.13 (FS2_Open Scripting)<br />
<br />
==Conditional Hooks==<br />
<br />
===Conditions===<br />
*State<br />
*Campaign<br />
*Mission<br />
*Object Type<br />
*Ship<br />
*Ship class<br />
*Ship type<br />
*Weapon class<br />
*KeyPress<br />
*Version<br />
*Application<br />
**''Usually: $Application: FS2_Open''<br />
<br />
===Actions===<br />
*On Game Init<br />
*On Splash Screen<br />
*On State Start<br />
*On Frame<br />
*On Key Pressed<br />
*On Key Released<br />
*On Mouse Moved<br />
*On Mouse Pressed<br />
*On Mouse Released<br />
*On State End<br />
*On Mission Start<br />
*On HUD Draw<br />
*On Ship Collision<br />
*On Weapon Collision<br />
*On Debris Collision<br />
*On Asteroid Collision<br />
*On Object Render<br />
*On Warp In<br />
*On Warp Out<br />
*On Death<br />
*On Mission End<br />
*On Weapon Delete<br />
*On Weapon Equipped<br />
*On Weapon Fired<br />
*On Weapon Selected<br />
*On Weapon Deselected<br />
*On Gameplay Start<br />
*On Turret Fired<br />
*On Primary Fire<br />
*On Secondary Fire<br />
<br />
==Types==<br />
===vector===<br />
:'''Vector object'''<br />
<br><br />
:''number [] x,y,z or 1-3''<br />
::*Vector component<br />
::*'''Returns:''' Value at index, or 0 if vector handle is invalid<br />
<br><br />
:''[[Scripting_functions#vector|vector]] + number/vector''<br />
::*Adds vector by another vector, or adds all axes by value<br />
::*'''Returns:''' Final vector, or null vector if error occurs<br />
<br><br />
:''[[Scripting_functions#vector|vector]] - number/vector''<br />
::*Subtracts vector from another vector, or subtracts all axes by value<br />
::*'''Returns:''' Final vector, or null vector if error occurs<br />
<br><br />
:''[[Scripting_functions#vector|vector]] * number/vector''<br />
::*Scales vector object (Multiplies all axes by number), or multiplies each axes by the other vector's axes.<br />
::*''' Returns:''' Final vector, or null vector if error occurs<br />
<br><br />
:''[[Scripting_functions#vector|vector]] / number/vector''<br />
::*Scales vector object (Divide all axes by number), or divides each axes by the dividing vector's axes.<br />
::*'''Returns:''' Final vector, or null vector if error occurs<br />
<br><br />
:''string (string)''<br />
::*Converts a vector to string with format "(x,y,z)"<br />
::*'''Returns:''' Vector as string, or empty string if handle is invalid<br />
<br><br />
:''[[Scripting_functions#orientation|orientation]]'' '''getOrientation()'''<br />
::*Returns orientation object representing the direction of the vector. Does not require vector to be normalized.<br />
::*'''Returns:''' Orientation object, or null orientation object if handle is invalid<br />
<br><br />
:''number'' '''getMagnitude()'''<br />
::*Returns the magnitude of a vector (Total regardless of direction)<br />
::*'''Returns:''' Magnitude of vector, or 0 if handle is invalid<br />
<br><br />
:''number'' '''getDistance('''''Vector''''')'''<br />
::*Distance<br />
::*'''Returns:''' Returns distance from another vector<br />
<br><br />
:''number'' '''getDotProduct('''''vector OtherVector''''')'''<br />
::*Returns dot product of vector object with vector argument<br />
::*'''Returns:''' Dot product, or 0 if a handle is invalid<br />
<br><br />
:''[[Scripting_functions#vector|vector]]'' '''getCrossProduct('''''vector OtherVector''''')'''<br />
::*Returns cross product of vector object with vector argument<br />
::*'''Returns:''' Cross product, or null vector if a handle is invalid<br />
<br><br />
:''number,number'' '''getScreenCoords()'''<br />
::*Gets screen cordinates of a world vector<br />
::*'''Returns:''' X (number), Y (number), or false if off-screen<br />
<br><br />
:''vector'' '''getNormalized()'''<br />
::*Returns a normalized version of the vector<br />
::*'''Returns:''' Normalized Vector, or NIL if invalid<br />
<br><br />
===orientation===<br />
Orientation matrix object<br />
<br />
number [] p,b,h or 1-9<br />
Orientation component - pitch, bank, heading, or index into 3x3 matrix (1-9)<br />
Returns: Number at the specified index, or 0 if index is invalid.<br />
<br />
<br />
<br />
orientation * orientation<br />
Multiplies two matrix objects)<br />
Returns: matrix, or empty matrix if unsuccessful<br />
<br />
<br />
<br />
string (string)<br />
Converts a matrix to a string with format "[r1c1 r2c1 r3c1 | r1c2 r2c2 r3c2| r1c3 r2c3 r3c3]"<br />
Returns: Formatted string or "<br />
<br />
<br />
<br />
orientation getInterpolated(orientation Final, number Factor)<br />
Returns orientation that has been interpolated to Final by Factor (0.0-1.0)<br />
Returns: Interpolated orientation, or null orientation on failure<br />
<br />
<br />
<br />
orientation getTranspose()<br />
Returns a transpose version of the specified orientation<br />
Returns: Transpose matrix, or null orientation on failure<br />
<br />
<br />
<br />
vector rotateVector(vector Input)<br />
Returns rotated version of given vector<br />
Returns: Rotated vector, or empty vector on error<br />
<br />
<br />
<br />
vector unrotateVector(vector Input)<br />
Returns unrotated version of given vector<br />
Returns: Unrotated vector, or empty vector on error<br />
<br />
===enumeration===<br />
Enumeration object<br />
<br />
enumeration = enumeration<br />
Sets enumeration to specified value (if it is not a global<br />
Returns: enumeration<br />
<br />
<br />
<br />
string (string)<br />
Returns enumeration name<br />
Returns: Enumeration name, or "" if invalid<br />
<br />
===event===<br />
Mission event handle<br />
<br />
string Name = string<br />
Mission event name<br />
Value: (null)<br />
<br />
<br />
string DirectiveText = string<br />
Directive text<br />
Value: (null)<br />
<br />
<br />
string DirectiveKeypressText = string<br />
Raw directive keypress text, as seen in FRED.<br />
Value: (null)<br />
<br />
<br />
number Interval = number<br />
Time for event to repeat (in seconds)<br />
Value: Repeat time, or 0 if invalid handle<br />
<br />
<br />
number ObjectCount = number<br />
Number of objects left for event<br />
Value: Repeat count, or 0 if invalid handle<br />
<br />
<br />
number RepeatCount = number<br />
Event repeat count<br />
Value: Repeat count, or 0 if invalid handle<br />
<br />
<br />
number Score = number<br />
Event score<br />
Value: Event score, or 0 if invalid handle<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===file===<br />
File handle<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
nil close()<br />
Instantly closes file and invalidates all file handles<br />
Returns: Nothing<br />
<br />
<br />
<br />
boolean flush()<br />
Flushes file buffer to disk.<br />
Returns: True for success, false on failure<br />
<br />
<br />
<br />
string getPath()<br />
Determines path of the given file<br />
Returns: Path string of the file handle, or an empty string if it doesn't have one, or the handle is invalid<br />
<br />
<br />
<br />
number or string, ... read(number or string, ...)<br />
Reads part of or all of a file, depending on arguments passed. Based on basic Lua file:read function.Returns nil when the end of the file is reached.<br />
<br />
* "*n" - Reads a number.<br />
* "*a" - Reads the rest of the file and returns it as a string.<br />
* "*l" - Reads a line. Skips the end of line markers.<br />
* (number) - Reads given number of characters, then returns them as a string.<br />
<br />
Returns: Requested data, or nil if the function fails<br />
<br />
<br />
<br />
number seek([string Whence="cur", number Offset=0])<br />
# Changes position of file, or gets location.Whence can be:"set" - File start.<br />
# "cur" - Current position in file.<br />
# "end" - File end.<br />
Returns: new offset, or false or nil on failure<br />
<br />
<br />
<br />
number write(string or number, ...)<br />
Writes a series of Lua strings or numbers to the current file.<br />
Returns: Number of items successfully written.<br />
<br />
===font===<br />
font handle<br />
<br />
string (string)<br />
Filename of font<br />
Returns: Font filename, or an empty string if the handle is invalid<br />
<br />
<br />
<br />
string Filename = string<br />
Filename of font (including extension)<br />
Value: (null)<br />
<br />
<br />
number Height = number<br />
Height of font (in pixels)<br />
Value: Font height, or 0 if the handle is invalid<br />
<br />
<br />
boolean isValid()<br />
True if valid, false or nil if not<br />
Returns: Detects whether handle is valid<br />
<br />
===gameevent===<br />
Game event<br />
<br />
string (string)<br />
Game event name<br />
Returns: Game event name, or empty string if handle is invalid<br />
<br />
<br />
<br />
string Name = string<br />
Game event name<br />
Value: Game event name, or empty string if handle is invalid<br />
<br />
===gamestate===<br />
:'''Game state'''<br />
<br><br />
:''string (string)''<br />
::*Game state name<br />
::*'''Value:''' Game state name, or empty string if handle is invalid<br />
<br><br />
:''string Name = string''<br />
::*Game state name<br />
::*'''Value:''' Game state name, or empty string if handle is invalid<br />
<br><br />
<br />
===HudGauge===<br />
:'''HUD Gauge handle'''<br />
<br><br />
:''string Name = string''<br />
::*Custom HUD Gauge name<br />
::*'''Value:''' Custom HUD Gauge name, or nil if handle is invalid<br />
<br><br />
:''string Text = string''<br />
::*Custom HUD Gauge text<br />
::*'''Value:''' Custom HUD Gauge text, or nil if handle is invalid<br />
<br><br />
<br />
===eyepoint===<br />
Eyepoint handle<br />
<br />
vector Normal = vector<br />
Eyepoint normal<br />
Value: Eyepoint normal, or null vector if handle is invalid<br />
<br />
<br />
vector Position = vector<br />
Eyepoint location (Local vector)<br />
Value: Eyepoint location, or null vector if handle is invalid<br />
<br />
<br />
boolean IsValid()<br />
Detect whether this handle is valid<br />
Returns: true if valid false otherwise<br />
<br />
===model===<br />
3D Model (POF) handle<br />
<br />
modeltextures_h Textures = modeltextures_h<br />
Model textures<br />
Value: Model textures, or an invalid modeltextures handle if the model handle is invalid<br />
<br />
<br />
thrusters Thrusters = thrusters<br />
Model thrusters<br />
Value: Thrusters of the model or invalid handle<br />
<br />
<br />
eyepoints Eyepoints = eyepoints<br />
Model eyepoints<br />
Value: Array of eyepoints or invalid handle on error<br />
<br />
<br />
vector BoundingBoxMax = vector<br />
Model bounding box maximum<br />
Value: Model bounding box, or an empty vector if the handle is invalid<br />
<br />
<br />
vector BoundingBoxMin = vector<br />
Model bounding box minimum<br />
Value: Model bounding box, or an empty vector if the handle is invalid<br />
<br />
<br />
string Filename = string<br />
Model filename<br />
Value: Model filename, or an empty string if the handle is invalid<br />
<br />
<br />
number Mass = number<br />
Model mass<br />
Value: Model mass, or 0 if the model handle is invalid<br />
<br />
<br />
orientation MomentOfInertia = orientation<br />
Model moment of inertia<br />
Value: Moment of Inertia matrix or identity matrix if invalid<br />
<br />
<br />
number Radius = number<br />
Model radius (Used for collision & culling detection)<br />
Value: Model Radius or 0 if invalid<br />
<br />
<br />
boolean isValid()<br />
True if valid, false or nil if not<br />
Returns: Detects whether handle is valid<br />
<br />
===modeltextures_h===<br />
Array of materials<br />
<br />
number #<br />
Number of textures on model<br />
Returns: Number of model textures<br />
<br />
<br />
<br />
texture [] texture<br />
number Index/string TextureName<br />
Returns: Model textures, or invalid modeltextures handle if model handle is invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===eyepoints===<br />
Array of model eye points<br />
<br />
number #<br />
Gets the number of eyepoints on this model<br />
Returns: Number of eyepoints on this model or 0 on error<br />
<br />
<br />
<br />
eyepoint [] eyepoint<br />
Gets en eyepoint handle<br />
Returns: eye handle or invalid handle on error<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid or not<br />
Returns: true if valid false otherwise<br />
<br />
===thrusters===<br />
The thrusters of a model<br />
<br />
number #<br />
Number of thruster banks on the model<br />
Returns: Number of thrusterbanks<br />
<br />
<br />
<br />
thrusterbank [] number Index<br />
Array of all thrusterbanks on this thruster<br />
Returns: Handle to the thrusterbank or invalid handle if index is invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===thrusterbank===<br />
A model thrusterbank<br />
<br />
number #<br />
Number of thrusters on this thrusterbank<br />
Returns: Number of thrusters on this bank or 0 if handle is invalid<br />
<br />
<br />
<br />
glowpoint [] number Index<br />
Array of glowpoint<br />
Returns: Glowpoint, or invalid glowpoint handle on failure<br />
<br />
<br />
<br />
boolean isValid()<br />
Detectes if this handle is valid<br />
Returns: true if this handle is valid, false otherwise<br />
<br />
===glowpoint===<br />
A model glowpoint<br />
<br />
vector Position<br />
The (local) vector to the position of the glowpoint<br />
<br />
<br />
number Radius<br />
The radius of the glowpoint<br />
<br />
<br />
boolean isValid()<br />
Returns wether this handle is valid or not<br />
Returns: True if handle is valid, false otherwise<br />
<br />
===order===<br />
order handle<br />
<br />
boolean remove()<br />
Removes the given order from the ship's priority queue.<br />
Returns: True if order was successfully removed, otherwise false or nil.<br />
<br />
===shiporders===<br />
Ship orders<br />
<br />
number #<br />
Number of textures on ship<br />
Returns: Number of textures on ship, or 0 if handle is invalid<br />
<br />
<br />
<br />
order [] number Index/string TextureFilename<br />
Array of ship orders<br />
Returns: Order, or invalid texture handle on failure<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===physics===<br />
Physics handle<br />
<br />
number AfterburnerAccelerationTime = number<br />
Afterburner acceleration time<br />
Value: Afterburner acceleration time, or 0 if handle is invalid<br />
<br />
<br />
vector AfterburnerVelocityMax = vector<br />
Afterburner max velocity (Local vector)<br />
Value: Afterburner max velocity, or null vector if handle is invalid<br />
<br />
<br />
number BankingConstant = number<br />
Banking constant<br />
Value: Banking constant, or 0 if handle is invalid<br />
<br />
<br />
number ForwardAccelerationTime = number<br />
Forward acceleration time<br />
Value: Forward acceleration time, or 0 if handle is invalid<br />
<br />
<br />
number ForwardDecelerationTime = number<br />
Forward deceleration time<br />
Value: Forward decleration time, or 0 if handle is invalid<br />
<br />
<br />
number ForwardThrust = number<br />
Forward thrust amount (0-1), used primarily for thruster graphics<br />
Value: Forward thrust, or 0 if handle is invalid<br />
<br />
<br />
number Mass = number<br />
Object mass<br />
Value: Object mass, or 0 if handle is invalid<br />
<br />
<br />
vector RotationalVelocity = vector<br />
Rotational velocity (Local vector)<br />
Value: Rotational velocity, or null vector if handle is invalid<br />
<br />
<br />
number RotationalVelocityDamping = number<br />
Rotational damping, ie derivative of rotational speed<br />
Value: Rotational damping, or 0 if handle is invalid<br />
<br />
<br />
number RotationalVelocityDesired = lvector<br />
Desired rotational velocity<br />
Value: Desired rotational velocity, or 0 if handle is invalid<br />
<br />
<br />
vector RotationalVelocityMax = vector<br />
Maximum rotational velocity (Local vector)<br />
Value: Maximum rotational velocity, or null vector if handle is invalid<br />
<br />
<br />
number ShockwaveShakeAmplitude = number<br />
How much shaking from shockwaves is applied to object<br />
Value: Shockwave shake amplitude, or 0 if handle is invalid<br />
<br />
<br />
number SideThrust = number<br />
Side thrust amount (0-1), used primarily for thruster graphics<br />
Value: Side thrust amount, or 0 if handle is invalid<br />
<br />
<br />
number SlideAccelerationTime = number<br />
Time to accelerate to maximum slide velocity<br />
Value: Sliding acceleration time, or 0 if handle is invalid<br />
<br />
<br />
number SlideDecelerationTime = number<br />
Time to decelerate from maximum slide speed<br />
Value: Sliding deceleration time, or 0 if handle is invalid<br />
<br />
<br />
vector Velocity = vector<br />
Object world velocity (World vector)<br />
Value: Object velocity, or null vector if handle is invalid<br />
<br />
<br />
vector VelocityDesired = vector<br />
Desired velocity (World vector)<br />
Value: Desired velocity, or null vector if handle is invalid<br />
<br />
<br />
vector VelocityMax = vector<br />
Object max local velocity (Local vector)<br />
Value: Maximum velocity, or null vector if handle is invalid<br />
<br />
<br />
number VerticalThrust = number<br />
Vertical thrust amount (0-1), used primarily for thruster graphics<br />
Value: Vertical thrust amount, or 0 if handle is invalid<br />
<br />
<br />
boolean AfterburnerActive = boolean<br />
Specifies if the afterburner is active or not<br />
Value: true if afterburner is active false otherwise<br />
<br />
<br />
boolean isValid()<br />
True if valid, false or nil if not<br />
Returns: Detects whether handle is valid<br />
<br />
<br />
<br />
number getSpeed()<br />
Gets total speed as of last frame<br />
Returns: Total speed, or 0 if handle is invalid<br />
<br />
<br />
<br />
number getForwardSpeed()<br />
Gets total speed in the ship's 'forward' direction as of last frame<br />
Returns: Total forward speed, or 0 if handle is invalid<br />
<br />
<br />
<br />
boolean isAfterburnerActive()<br />
True if Afterburners are on, false or nil if not<br />
Returns: Detects whether afterburner is active<br />
<br />
<br />
<br />
boolean isGliding()<br />
True if glide mode is on, false or nil if not<br />
Returns: Detects if ship is gliding<br />
<br />
===sexpvariable===<br />
SEXP Variable handle<br />
<br />
enumeration Persistence = enumeration<br />
SEXP Variable persistance, uses SEXPVAR_*_PERSISTENT enumerations<br />
Value: SEXPVAR_*_PERSISTENT enumeration, or invalid numeration if handle is invalid<br />
<br />
<br />
enumeration Type = enumeration<br />
SEXP Variable type, uses SEXPVAR_TYPE_* enumerations<br />
Value: SEXPVAR_TYPE_* enumeration, or invalid numeration if handle is invalid<br />
<br />
<br />
string Value = number/string<br />
SEXP variable value<br />
Value: SEXP variable contents, or nil if the variable is of an invalid type or the handle is invalid<br />
<br />
<br />
string (string)<br />
Returns SEXP name<br />
Returns: SEXP name, or empty string if handle is invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
boolean delete()<br />
Deletes a SEXP Variable<br />
Returns: True if successful, false if the handle is invalid<br />
<br />
===shields===<br />
Shields handle<br />
<br />
number [] enumeration/number<br />
Gets or sets shield quadrant strength. Use "SHIELD_*" enumeration or 1-4 for a specific quadrant, or NONE for the entire shield<br />
Returns: Quadrant/shield strength, or 0 if handle is invalid<br />
<br />
<br />
<br />
number CombinedLeft = number<br />
Total shield hitpoints left (for all quadrants combined)<br />
Value: Combined shield strength, or 0 if handle is invalid<br />
<br />
<br />
number CombinedMax = number<br />
Maximum shield hitpoints (for all quadrants combined)<br />
Value: Combined maximum shield strength, or 0 if handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===shiptype===<br />
Ship type handle<br />
<br />
string Name = string<br />
Ship type name<br />
Value: Ship type name, or empty string if handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===species===<br />
Species handle<br />
<br />
string Name = string<br />
Species name<br />
Value: Species name, or empty string if handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===team===<br />
Team handle<br />
<br />
boolean == team, team<br />
Checks whether two teams are the same team<br />
Returns: true if equal<br />
<br />
<br />
<br />
string Name = string<br />
Team name<br />
Value: Team name, or empty string if handle is invalid<br />
<br />
<br />
number, number, number getColor()<br />
Gets the IFF color of the specified Team<br />
Returns: rgb color for the specified team or nil if invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===texture===<br />
Texture handle<br />
<br />
nil __gc<br />
Auto-deletes texture<br />
Returns: Nothing<br />
<br />
<br />
<br />
boolean == texture, texture<br />
Checks if two texture handles refer to the same texture<br />
Returns: True if textures are equal<br />
<br />
<br />
<br />
texture [] number<br />
Returns texture handle to specified frame number in current texture's animation.This means that [1] will always return the first frame in an animation, no matter what frame an animation is.You cannot change a texture animation frame.<br />
Returns: Texture handle, or invalid texture handle if index is invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
nil unload()<br />
Unloads a texture from memory<br />
Returns: Nothing<br />
<br />
<br />
<br />
string getFilename()<br />
Returns filename for texture<br />
Returns: Filename, or empty string if handle is invalid<br />
<br />
<br />
<br />
number getWidth()<br />
Gets texture width<br />
Returns: Texture width, or 0 if handle is invalid<br />
<br />
<br />
<br />
number getHeight()<br />
Gets texture height<br />
Returns: Texture height, or 0 if handle is invalid<br />
<br />
<br />
<br />
number getFPS()<br />
Gets frames-per-second of texture<br />
Returns: Texture FPS, or 0 if handle is invalid<br />
<br />
<br />
<br />
number getFramesLeft()<br />
Gets number of frames left, from handle's position in animation<br />
Returns: Frames left, or 0 if handle is invalid<br />
<br />
===material===<br />
Texture map, including diffuse, glow, and specular textures<br />
<br />
texture BaseMap = texture<br />
Base texture<br />
Value: Base texture, or invalid texture handle if material handle is invalid<br />
<br />
<br />
texture GlowMap = texture<br />
Glow texture<br />
Value: Glow texture, or invalid texture handle if material handle is invalid<br />
<br />
<br />
texture SpecularMap = texture<br />
Specular texture<br />
Value: Texture handle, or invalid texture handle if material handle is invalid<br />
<br />
===weaponclass===<br />
Weapon class handle<br />
<br />
string (string)<br />
Weapon class name<br />
Returns: Weapon class name, or an empty string if handle is invalid<br />
<br />
<br />
<br />
string Name = string<br />
Weapon class name<br />
Value: Weapon class name, or empty string if handle is invalid<br />
<br />
<br />
string Title = string<br />
Weapon class title<br />
Value: Weapon class title, or empty string if handle is invalid<br />
<br />
<br />
string Description = string<br />
Weapon class description string<br />
Value: Description string, or empty string if handle is invalid<br />
<br />
<br />
string TechTitle = string<br />
Weapon class tech title<br />
Value: Tech title, or empty string if handle is invalid<br />
<br />
<br />
string TechAnimationFilename = string<br />
Weapon class animation filename<br />
Value: Filename, or empty string if handle is invalid<br />
<br />
<br />
string TechDescription = string<br />
Weapon class tech description string<br />
Value: Description string, or empty string if handle is invalid<br />
<br />
<br />
model Model = model<br />
Model<br />
Value: Weapon class model, or invalid model handle if weaponclass handle is invalid<br />
<br />
<br />
number ArmorFactor = number<br />
Amount of weapon damage applied to ship hull (0-1.0)<br />
Value: Armor factor, or empty string if handle is invalid<br />
<br />
<br />
number Damage = number<br />
Amount of damage that weapon deals<br />
Value: Damage amount, or 0 if handle is invalid<br />
<br />
<br />
number FireWait = number<br />
Weapon fire wait (cooldown time) in seconds<br />
Value: Fire wait time, or 0 if handle is invalid<br />
<br />
<br />
number FreeFlightTime = number<br />
The time the weapon will fly before turing onto its target<br />
Value: Free flight time or emty string if invalid<br />
<br />
<br />
number LifeMax = number<br />
Life of weapon in seconds<br />
Value: Life of weapon, or 0 if handle is invalid<br />
<br />
<br />
number Range = number<br />
Range of weapon in meters<br />
Value: Weapon Range, or 0 if handle is invalid<br />
<br />
<br />
number Mass = number<br />
Weapon mass<br />
Value: Weapon mass, or 0 if handle is invalid<br />
<br />
<br />
number ShieldFactor = number<br />
Amount of weapon damage applied to ship shields (0-1.0)<br />
Value: Shield damage factor, or 0 if handle is invalid<br />
<br />
<br />
number SubsystemFactor = number<br />
Amount of weapon damage applied to ship subsystems (0-1.0)<br />
Value: Subsystem damage factor, or 0 if handle is invalid<br />
<br />
<br />
number TargetLOD = number<br />
LOD used for weapon model in the targeting computer<br />
Value: LOD number, or 0 if handle is invalid<br />
<br />
<br />
number Speed = number<br />
Weapon max speed, aka $Velocity in weapons.tbl<br />
Value: Weapon speed, or 0 if handle is invalid<br />
<br />
<br />
boolean Bomb = boolean<br />
Is weapon class flagged as bomb<br />
Value: New flag<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
number getWeaponClassIndex()<br />
Gets the index value of the weapon class<br />
Returns: index value of the weapon class<br />
<br />
<br />
<br />
boolean isLaser()<br />
Return true if the weapon is a laser (this includes balistic primaries)<br />
Returns: true if the weapon is a laser, false otherwise<br />
<br />
<br />
<br />
boolean isMissile()<br />
Return true if the weapon is a missile<br />
Returns: true if the weapon is a missile, false otherwise<br />
<br />
<br />
<br />
boolean isBeam()<br />
Return true if the weapon is a beam<br />
Returns: true if the weapon is a beam, false otherwise<br />
<br />
===collision info===<br />
Information about a collision<br />
<br />
nil __gc<br />
Removes the allocated reference of this handle<br />
Returns: Nothing<br />
<br />
<br />
<br />
model Model = model<br />
The model this collision info is about<br />
Value: The model<br />
<br />
<br />
number getCollisionDistance()<br />
The distance to the closest collision point<br />
Returns: distance or -1 on error<br />
<br />
<br />
<br />
vector getCollisionPoint([boolean local])<br />
The collision point of this information (local to the object if boolean is set to true)<br />
Returns: The collision point or nil of none<br />
<br />
<br />
<br />
vector getCollisionNormal([boolean local])<br />
The collision normal of this information (local to object if boolean is set to true)<br />
Returns: The collision normal or nil of none<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects if this handle is valid<br />
Returns: true if valid false otherwise<br />
<br />
===object===<br />
Object handle<br />
<br />
boolean == object, object<br />
Checks whether two object handles are for the same object<br />
Returns: True if equal, false if not or a handle is invalid<br />
<br />
<br />
<br />
string (string)<br />
Returns name of object (if any)<br />
Returns: Object name, or empty string if handle is invalid<br />
<br />
<br />
<br />
object Parent = object<br />
Parent of the object. Value may also be a deriviative of the 'object' class, such as 'ship'.<br />
Value: Parent handle, or invalid handle if object is invalid<br />
<br />
<br />
vector Position = vector<br />
Object world position (World vector)<br />
Value: World position, or null vector if handle is invalid<br />
<br />
<br />
vector LastPosition = vector<br />
Object world position as of last frame (World vector)<br />
Value: World position, or null vector if handle is invalid<br />
<br />
<br />
orientation Orientation = orientation<br />
Object world orientation (World orientation)<br />
Value: Orientation, or null orientation if handle is invalid<br />
<br />
<br />
orientation LastOrientation = orientation<br />
Object world orientation as of last frame (World orientation)<br />
Value: Orientation, or null orientation if handle is invalid<br />
<br />
<br />
physics Physics = physics<br />
Physics data used to move ship between frames<br />
Value: Physics data, or invalid physics handle if object handle is invalid<br />
<br />
<br />
number HitpointsLeft = number<br />
Hitpoints an object has left<br />
Value: Hitpoints left, or 0 if handle is invalid<br />
<br />
<br />
shields Shields = shields<br />
Shields<br />
Value: Shields handle, or invalid shields handle if object handle is invalid<br />
<br />
<br />
number getSignature()<br />
Gets the object's unique signature<br />
Returns: Returns the objects unique numeric signature, or -1 if invalid. useful for creating a metadata sytem<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
string getBreedName()<br />
Gets object type<br />
Returns: Object type name, or empty string if handle is invalid<br />
<br />
<br />
<br />
number CollisionGroups = number<br />
Collision group data<br />
Value: Current collision group signature. NOTE: This is a bitfield, NOT a normal number.<br />
<br />
<br />
vector getfvec([boolean normalize])<br />
Returns the objects' current fvec.<br />
Returns: Objects' forward vector, or nil if invalid. If called with a true argument, vector will be normalized.<br />
<br />
<br />
<br />
vector getuvec([boolean normalize])<br />
Returns the objects' current uvec.<br />
Returns: Objects' up vector, or nil if invalid. If called with a true argument, vector will be normalized.<br />
<br />
<br />
<br />
vector getrvec([boolean normalize])<br />
Returns the objects' current rvec.<br />
Returns: Objects' rvec, or nil if invalid. If called with a true argument, vector will be normalized.<br />
<br />
<br />
<br />
vector, collision info checkRayCollision(vector Start Point, vector End Point, [boolean Local])<br />
Checks the collisions between the polygons of the current object and a ray<br />
Returns: World collision point (local if boolean is set to true) and the specific collsision info, nil if no collisions<br />
<br />
===asteroid:object===<br />
Asteroid handle<br />
<br />
object Target = object<br />
Asteroid target object; may be object derivative, such as ship.<br />
Value: Target object, or invalid handle if asteroid handle is invalid<br />
<br />
<br />
boolean kill([ship killer=nil, wvector hitpos=nil])<br />
Kills the asteroid. Set "killer" to designate a specific ship as having been the killer, and "hitpos" to specify the world position of the hit location; if nil, the asteroid center is used.<br />
Returns: True if successful, false or nil otherwise<br />
<br />
===shipclass===<br />
Ship class handle<br />
<br />
string (string)<br />
Ship class name<br />
Returns: Ship class name, or an empty string if handle is invalid<br />
<br />
<br />
<br />
string Name = string<br />
Ship class name<br />
Value: Ship class name, or an empty string if handle is invalid<br />
<br />
<br />
string ShortName = string<br />
Ship class short name<br />
Value: Ship short name, or empty string if handle is invalid<br />
<br />
<br />
string TypeString = string<br />
Ship class type string<br />
Value: Type string, or empty string if handle is invalid<br />
<br />
<br />
string ManeuverabilityString = string<br />
Ship class maneuverability string<br />
Value: Maneuverability string, or empty string if handle is invalid<br />
<br />
<br />
string ArmorString = string<br />
Ship class armor string<br />
Value: Armor string, or empty string if handle is invalid<br />
<br />
<br />
string ManufacturerString = string<br />
Ship class manufacturer<br />
Value: Manufacturer, or empty string if handle is invalid<br />
<br />
<br />
string Description = string<br />
Ship class description<br />
Value: Description, or empty string if handle is invalid<br />
<br />
<br />
string TechDescription = string<br />
Ship class tech description<br />
Value: Tech description, or empty string if handle is invalid<br />
<br />
<br />
number AfterburnerFuelMax = number<br />
Afterburner fuel capacity<br />
Value: Afterburner capacity, or 0 if handle is invalid<br />
<br />
<br />
number CountermeasuresMax = number<br />
Maximum number of countermeasures the ship can carry<br />
Value: Countermeasure capacity, or 0 if handle is invalid<br />
<br />
<br />
model Model = model<br />
Model<br />
Value: Ship class model, or invalid model handle if shipclass handle is invalid<br />
<br />
<br />
model CockpitModel = model<br />
Model used for first-person cockpit<br />
Value: Cockpit model<br />
<br />
<br />
number HitpointsMax = number<br />
Ship class hitpoints<br />
Value: Hitpoints, or 0 if handle is invalid<br />
<br />
<br />
species Species = Species<br />
Ship class species<br />
Value: Ship class species, or invalid species handle if shipclass handle is invalid<br />
<br />
<br />
shiptype Type = shiptype<br />
Ship class type<br />
Value: Ship type, or invalid handle if shipclass handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
boolean isInTechroom()<br />
Gets whether or not the ship class is available in the techroom<br />
Returns: Whether ship has been revealed in the techroom, false if handle is invalid<br />
<br />
<br />
<br />
boolean renderTechModel(X1, Y1, X2, Y2, [Rotation %, Pitch %, Bank %, Zoom multiplier])<br />
Draws ship model as if in techroom<br />
Returns: Whether ship was rendered<br />
<br />
<br />
<br />
boolean renderTechModel2(X1, Y1, X2, Y2, orientation Orientation=null, [Zoom multiplier])<br />
Draws ship model as if in techroom<br />
Returns: Whether ship was rendered<br />
<br />
<br />
<br />
boolean isModelLoaded([boolean Load = false])<br />
Checks if the model used for this shipclass is loaded or not and optionally loads the model, which might be a slow operation.<br />
Returns: If the model is loaded or not<br />
<br />
<br />
<br />
number getShipClassIndex()<br />
Gets the index valus of the ship class<br />
Returns: index value of the ship class<br />
<br />
===debris:object===<br />
Debris handle<br />
<br />
boolean IsHull = boolean<br />
Whether or not debris is a piece of hull<br />
Value: Whether debris is a hull fragment, or false if handle is invalid<br />
<br />
<br />
shipclass OriginClass = shipclass<br />
The shipclass of the ship this debris originates from<br />
Value: The shipclass of the ship that created this debris<br />
<br />
<br />
number getDebrisRadius()<br />
The radius of this debris piece<br />
Returns: The radius of this debris piece or -1 if invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
Return if this debris handle is valid<br />
Returns: true if valid false otherwise<br />
<br />
===waypoint:object===<br />
waypoint handle<br />
<br />
===waypointlist===<br />
waypointlist handle<br />
<br />
waypoint [] number Index<br />
Array of waypoints that are part of the waypoint list<br />
Returns: Waypoint, or invalid handle if the index or waypointlist handle is invalid<br />
<br />
<br />
<br />
number #<br />
Number of waypoints in the list. Note that the value returned cannot be relied on for more than one frame.<br />
Returns: Number of waypoints in the list, or 0 if handle is invalid<br />
<br />
<br />
<br />
string Name = string<br />
Name of WaypointList<br />
Value: Waypointlist name, or empty string if handle is invalid<br />
<br />
===weaponbank===<br />
Ship/subystem weapons bank handle<br />
<br />
weaponclass WeaponClass = weaponclass<br />
Class of weapon mounted in the bank<br />
Value: Weapon class, or an invalid weaponclass handle if bank handle is invalid<br />
<br />
<br />
number AmmoLeft = number<br />
Ammo left for the current bank<br />
Value: Ammo left, or 0 if handle is invalid<br />
<br />
<br />
number AmmoMax = number<br />
Maximum ammo for the current bank<br />
Value: Ammo capacity, or 0 if handle is invalid<br />
<br />
<br />
boolean Armed = boolean<br />
Weapon armed status. Does not take linking into account.<br />
Value: True if armed, false if unarmed or handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===weaponbanktype===<br />
Ship/subsystem weapons bank type handle<br />
<br />
weaponbank [] number Index<br />
Array of weapon banks<br />
Returns: Weapon bank, or invalid handle on failure<br />
<br />
<br />
<br />
boolean Linked = boolean<br />
Whether bank is in linked or unlinked fire mode (Primary-only)<br />
Value: Link status, or false if handle is invalid<br />
<br />
<br />
boolean DualFire = boolean<br />
Whether bank is in dual fire mode (Secondary-only)<br />
Value: Dual fire status, or false if handle is invalid<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
number #<br />
Number of weapons in the mounted bank<br />
Returns: Number of bank weapons, or 0 if handle is invalid<br />
<br />
===subsystem===<br />
Ship subsystem handle<br />
<br />
string (string)<br />
Returns name of subsystem<br />
Returns: Subsystem name, or empty string if handle is invalid<br />
<br />
<br />
<br />
string ArmorClass = string<br />
Current Armor class<br />
Value: Armor class name, or empty string if none is set<br />
<br />
<br />
number AWACSIntensity = number<br />
Subsystem AWACS intensity<br />
Value: AWACS intensity, or 0 if handle is invalid<br />
<br />
<br />
number AWACSRadius = number<br />
Subsystem AWACS radius<br />
Value: AWACS radius, or 0 if handle is invalid<br />
<br />
<br />
orientation Orientation = orientation<br />
Orientation of subobject or turret base<br />
Value: Subsystem orientation, or null orientation if handle is invalid<br />
<br />
<br />
orientation GunOrientation = orientation<br />
Orientation of turret gun<br />
Value: Gun orientation, or null orientation if handle is invalid<br />
<br />
<br />
number HitpointsLeft = number<br />
Subsystem hitpoints left<br />
Value: Hitpoints left, or 0 if handle is invalid. Setting a value of 0 will disable it - set a value of -1 or lower to actually blow it up.<br />
<br />
<br />
number HitpointsMax = number<br />
Subsystem hitpoints max<br />
Value: Max hitpoints, or 0 if handle is invalid<br />
<br />
<br />
vector Position = vector<br />
Subsystem position with regards to main ship (Local Vector)<br />
Value: Subsystem position, or null vector if subsystem handle is invalid<br />
<br />
<br />
vector GunPosition = vector<br />
Subsystem gun position with regards to main ship (Local vector)<br />
Value: Gun position, or null vector if subsystem handle is invalid<br />
<br />
<br />
string Name = string<br />
Subsystem name<br />
Value: Subsystem name, or an empty string if handle is invalid<br />
<br />
<br />
string getModelName()<br />
Returns the original name of the subsystem in the model file<br />
Returns: name or empty string on error<br />
<br />
<br />
<br />
weaponbanktype PrimaryBanks = weaponbanktype<br />
Array of primary weapon banks<br />
Value: Primary banks, or invalid weaponbanktype handle if subsystem handle is invalid<br />
<br />
<br />
weaponbanktype SecondaryBanks = weaponbanktype<br />
Array of secondary weapon banks<br />
Value: Secondary banks, or invalid weaponbanktype handle if subsystem handle is invalid<br />
<br />
<br />
object Target = object<br />
Object targetted by this subsystem. If used to set a new target, AI targeting will be switched off.<br />
Value: Targeted object, or invalid object handle if subsystem handle is invalid<br />
<br />
<br />
boolean TurretResets = boolean<br />
Specifies wether this turrets resets after a certain time of inactivity<br />
Value: true if turret resets, false otherwise<br />
<br />
<br />
number TurretResetDelay = number<br />
The time (in milliseconds) after that the turret resets itself<br />
Value: Reset delay<br />
<br />
<br />
number TurnRate = number<br />
The turn rate<br />
Value: Turnrate or -1 on error<br />
<br />
<br />
boolean TurretLocked = boolean<br />
Whether the turret is locked. Setting to true locks the turret, setting to false frees it.<br />
Value: True if turret is locked, false otherwise<br />
<br />
<br />
number NextFireTimestamp = number<br />
The next time the turret may attempt to fire<br />
Value: Mission time (seconds) or -1 on error<br />
<br />
<br />
boolean targetingOverride(boolean)<br />
If set to true, AI targeting for this turret is switched off. If set to false, the AI will take over again.<br />
Returns: Returns true if successful, false otherwise<br />
<br />
<br />
<br />
boolean hasFired()<br />
Determine if a subsystem has fired<br />
Returns: true if if fired, false if not fired, or nil if invalid. resets fired flag when called.<br />
<br />
<br />
<br />
boolean isTurret()<br />
Determines if this subsystem is a turret<br />
Returns: true if subsystem is turret, false otherwise or nil on error<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
nil fireWeapon([Turret weapon index = 1, Flak range = 100])<br />
Fires weapon on turret<br />
Returns: Nothing<br />
<br />
<br />
<br />
boolean rotateTurret(vector Pos[, boolean reset=false)<br />
Rotates the turret to face Pos or resets the turret to its original state<br />
Returns: true on success false otherwise<br />
<br />
<br />
<br />
vector getTurretHeading()<br />
Returns the turrets forward vector<br />
Returns: Returns a normalized version of the forward vector or null vector on error<br />
<br />
<br />
<br />
number, number, number getFOVs()<br />
Returns current turrets FOVs<br />
Returns: Standard FOV, maximum barrel elevation, turret base fov.<br />
<br />
<br />
<br />
matrix getTurretMatrix()<br />
Returns current subsystems turret matrix<br />
Returns: Turret matrix.<br />
<br />
===shiptextures===<br />
Ship textures handle<br />
<br />
number #<br />
Number of textures on ship<br />
Returns: Number of textures on ship, or 0 if handle is invalid<br />
<br />
<br />
<br />
texture [] number Index/string TextureFilename<br />
Array of ship textures<br />
Returns: Texture, or invalid texture handle on failure<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===ship:object===<br />
Ship handle<br />
<br />
subsystem [] string Name/number Index<br />
Array of ship subsystems<br />
Returns: Subsystem handle, or invalid subsystem handle if index or ship handle is invalid<br />
<br />
<br />
<br />
number #<br />
Number of subsystems on ship<br />
Returns: Subsystem number, or 0 if handle is invalid<br />
<br />
<br />
<br />
string ShieldArmorClass = string<br />
Current Armor class of the ships' shield<br />
Value: Armor class name, or empty string if none is set<br />
<br />
<br />
string ArmorClass = string<br />
Current Armor class<br />
Value: Armor class name, or empty string if none is set<br />
<br />
<br />
string Name = string<br />
Ship name<br />
Value: Ship name, or empty string if handle is invalid<br />
<br />
<br />
number AfterburnerFuelLeft = number<br />
Afterburner fuel left<br />
Value: Afterburner fuel left, or 0 if handle is invalid<br />
<br />
<br />
number AfterburnerFuelMax = number<br />
Afterburner fuel capacity<br />
Value: Afterburner fuel capacity, or 0 if handle is invalid<br />
<br />
<br />
shipclass Class = shipclass<br />
Ship class<br />
Value: Ship class, or invalid shipclass handle if ship handle is invalid<br />
<br />
<br />
number CountermeasuresLeft = number<br />
Number of countermeasures left<br />
Value: Countermeasures left, or 0 if ship handle is invalid<br />
<br />
<br />
weaponclass CountermeasureClass = weaponclass<br />
Weapon class mounted on this ship's countermeasure point<br />
Value: Countermeasure hardpoint weapon class, or invalid weaponclass handle if no countermeasure class or ship handle is invalid<br />
<br />
<br />
number HitpointsMax = number<br />
Total hitpoints<br />
Value: Ship maximum hitpoints, or 0 if handle is invalid<br />
<br />
<br />
number WeaponEnergyLeft = number<br />
Current weapon energy reserves<br />
Value: Ship current weapon energy reserve level, or 0 if invalid<br />
<br />
<br />
number WeaponEnergyMax = number<br />
Maximum weapon energy<br />
Value: Ship maximum weapon energy reserve level, or 0 if invalid<br />
<br />
<br />
boolean PrimaryTriggerDown = boolean<br />
Determines if primary trigger is pressed or not<br />
Value: True if pressed, false if not, nil if ship handle is invalid<br />
<br />
<br />
weaponbanktype PrimaryBanks = weaponbanktype<br />
Array of primary weapon banks<br />
Value: Primary weapon banks, or invalid weaponbanktype handle if ship handle is invalid<br />
<br />
<br />
weaponbanktype SecondaryBanks = weaponbanktype<br />
Array of secondary weapon banks<br />
Value: Secondary weapon banks, or invalid weaponbanktype handle if ship handle is invalid<br />
<br />
<br />
weaponbanktype TertiaryBanks = weaponbanktype<br />
Array of tertiary weapon banks<br />
Value: Tertiary weapon banks, or invalid weaponbanktype handle if ship handle is invalid<br />
<br />
<br />
object Target = object<br />
Target of ship. Value may also be a deriviative of the 'object' class, such as 'ship'.<br />
Value: Target object, or invalid object handle if no target or ship handle is invalid<br />
<br />
<br />
subsystem TargetSubsystem = subsystem<br />
Target subsystem of ship.<br />
Value: Target subsystem, or invalid subsystem handle if no target or ship handle is invalid<br />
<br />
<br />
team Team = team<br />
Ship's team<br />
Value: Ship team, or invalid team handle if ship handle is invalid<br />
<br />
<br />
shiptextures Textures = shiptextures<br />
Gets ship textures<br />
Value: Ship textures, or invalid shiptextures handle if ship handle is invalid<br />
<br />
<br />
boolean FlagAffectedByGravity = boolean<br />
Checks for the "affected-by-gravity" flag<br />
Value: True if flag is set, false if flag is not set and nil on error<br />
<br />
<br />
boolean Disabled = boolean<br />
The disabled state of this ship<br />
Value: true if ship is diabled, false otherwise<br />
<br />
<br />
boolean kill([object Killer])<br />
Kills the ship. Set "Killer" to the ship you are killing to self-destruct<br />
Returns: True if successful, false or nil otherwise<br />
<br />
<br />
<br />
boolean addShipEffect(string name, int duration (in milliseconds))<br />
Activates an effect for this ship. Effect names are defined in Post_processing.tbl, and need to be implemented in the main shader. This functions analogous to the ship-effect sexp. NOTE: only one effect can be active at any time, adding new effects will override effects already in progress. <br />
Returns: Returns true if the effect was successfully added, false otherwise<br />
<br />
<br />
<br />
number hasShipExploded()<br />
Checks if the ship explosion event has already happened<br />
Returns: Returns 1 if first explosion timestamp is passed, 2 if second is passed, 0 otherwise<br />
<br />
<br />
<br />
boolean fireCountermeasure()<br />
Launches a countermeasure from the ship<br />
Returns: Whether countermeasure was launched or not<br />
<br />
<br />
<br />
number firePrimary()<br />
Fires ship primary bank(s)<br />
Returns: Number of primary banks fired<br />
<br />
<br />
<br />
number fireSecondary()<br />
Fires ship secondary bank(s)<br />
Returns: Number of secondary banks fired<br />
<br />
<br />
<br />
number getAnimationDoneTime(number Type, number Subtype)<br />
Gets time that animation will be done<br />
Returns: Time (seconds), or 0 if ship handle is invalid<br />
<br />
<br />
<br />
boolean clearOrders()<br />
Clears a ship's orders list<br />
Returns: True if successful, otherwise false or nil<br />
<br />
<br />
<br />
boolean giveOrder(enumeration Order, [object Target=nil, subsystem TargetSubsystem=nil, number Priority=1.0])<br />
Uses the goal code to execute orders<br />
Returns: True if order was given, otherwise false or nil<br />
<br />
<br />
<br />
boolean doManeuver(number Duration, number Heading, number Pitch, number Bank, boolean Force Rotation, number Vertical, number Horizontal, number Forward, boolean Force Movement)<br />
Sets ship maneuver over the defined time period<br />
Returns: True if maneuver order was given, otherwise false or nil<br />
<br />
<br />
<br />
boolean triggerAnimation(string Type, [number Subtype, boolean Forwards])<br />
Triggers an animation. Type is the string name of the animation type, Subtype is the subtype number, such as weapon bank #, and Forwards is boolean.<br />
IMPORTANT: Function is in testing and should not be used with official mod releases<br />
Returns: True if successful, false or nil otherwise<br />
<br />
<br />
<br />
boolean warpIn()<br />
Warps ship in<br />
Returns: True if successful, or nil if ship handle is invalid<br />
<br />
<br />
<br />
boolean warpOut()<br />
Warps ship out<br />
Returns: True if successful, or nil if ship handle is invalid<br />
<br />
<br />
<br />
boolean isWarpingIn()<br />
Checks if ship is warping in<br />
Returns: True if the ship is warping in, false or nil otherwise<br />
<br />
<br />
<br />
number getEMP()<br />
Returns the current emp effect strength acting on the object<br />
Returns: Current EMP effect strength or NIL if object is invalid<br />
<br />
<br />
<br />
number getTimeUntilExplosion()<br />
Returns the time in seconds until the ship explodes<br />
Returns: Time until explosion or -1, if invalid handle or ship isn't exploding<br />
<br />
===weapon:object===<br />
Weapon handle<br />
<br />
weaponclass Class = weaponclass<br />
Weapon's class<br />
Value: Weapon class, or invalid weaponclass handle if weapon handle is invalid<br />
<br />
<br />
boolean DestroyedByWeapon = boolean<br />
Whether weapon was destroyed by another weapon<br />
Value: True if weapon was destroyed by another weapon, false if weapon was destroyed by another object or if weapon handle is invalid<br />
<br />
<br />
number LifeLeft = number<br />
Weapon life left (in seconds)<br />
Value: Life left (seconds) or 0 if weapon handle is invalid<br />
<br />
<br />
number FlakDetonationRange = number<br />
Range at which flak will detonate (meters)<br />
Value: Detonation range (meters) or 0 if weapon handle is invalid<br />
<br />
<br />
object Target = object<br />
Target of weapon. Value may also be a deriviative of the 'object' class, such as 'ship'.<br />
Value: Weapon target, or invalid object handle if weapon handle is invalid<br />
<br />
<br />
subsystem ParentTurret = subsystem<br />
Turret which fired this weapon.<br />
Value: Turret subsystem handle, or an invalid handle if the weapon not fired from a turret<br />
<br />
<br />
object HomingObject = object<br />
Object that weapon will home in on. Value may also be a deriviative of the 'object' class, such as 'ship'<br />
Value: Object that weapon is homing in on, or an invalid object handle if weapon is not homing or the weapon handle is invalid<br />
<br />
<br />
vector HomingPosition = vector<br />
Position that weapon will home in on (World vector)<br />
Value: Homing point, or null vector if weapon handle is invalid<br />
<br />
<br />
subsystem HomingSubsystem = subsystem<br />
Subsystem that weapon will home in on.<br />
Value: Homing subsystem, or invalid subsystem handle if weapon is not homing or weapon handle is invalid<br />
<br />
<br />
team Team = team<br />
Weapon's team<br />
Value: Weapon team, or invalid team handle if weapon handle is invalid<br />
<br />
<br />
boolean isArmed([boolean Hit target])<br />
Checks if the weapon is armed.<br />
Returns: boolean value of the weapon arming status<br />
<br />
<br />
<br />
collision info getCollisionInformation()<br />
Returns the collision information for this weapon<br />
Returns: The collision information or invalid handle if none<br />
<br />
===beam:object===<br />
Beam handle<br />
<br />
weaponclass Class = weaponclass<br />
Weapon's class<br />
Value: Weapon class, or invalid weaponclass handle if beam handle is invalid<br />
<br />
<br />
vector LastShot = vector<br />
End point of the beam<br />
Value: vector or null vector if beam handle is not valid<br />
<br />
<br />
vector LastStart = vector<br />
Start point of the beam<br />
Value: vector or null vector if beam handle is not valid<br />
<br />
<br />
object Target = object<br />
Target of beam. Value may also be a deriviative of the 'object' class, such as 'ship'.<br />
Value: Beam target, or invalid object handle if beam handle is invalid<br />
<br />
<br />
subsystem TargetSubsystem = subsystem<br />
Subsystem that beam is targeting.<br />
Value: Target subsystem, or invalid subsystem handle if beam handle is invalid<br />
<br />
<br />
object ParentShip = object<br />
Parent of the beam.<br />
Value: Beam parent, or invalid object handle if beam handle is invalid<br />
<br />
<br />
subsystem ParentSubsystem = subsystem<br />
Subsystem that beam is fired from.<br />
Value: Parent subsystem, or invalid subsystem handle if beam handle is invalid<br />
<br />
<br />
number getCollisionCount()<br />
Get the number of collisions in frame.<br />
Returns: Number of beam collisions<br />
<br />
<br />
<br />
vector getCollisionPosition(number)<br />
Get the position of the defined collision.<br />
Returns: World vector<br />
<br />
<br />
<br />
collision info getCollisionInformation(number)<br />
Get the collision information of the specified collision<br />
Returns: handle to information or invalid handle on error<br />
<br />
<br />
<br />
object getCollisionObject(number)<br />
Get the target of the defined collision.<br />
Returns: Object the beam collided with<br />
<br />
<br />
<br />
boolean isExitCollision(number)<br />
Checks if the defined collision was exit collision.<br />
Returns: True if the collision was exit collision, false if entry, nil otherwise<br />
<br />
<br />
<br />
vector getStartDirectionInfo()<br />
Gets the start information about the direction. The vector is a normalized vector from LastStart showing the start direction of a slashing beam<br />
Returns: The start direction or null vector if invalid<br />
<br />
<br />
<br />
vector getEndDirectionInfo()<br />
Gets the end information about the direction. The vector is a normalized vector from LastStart showing the end direction of a slashing beam<br />
Returns: The start direction or null vector if invalid<br />
<br />
===wing===<br />
Wing handle<br />
<br />
ship [] number Index<br />
Array of ships in the wing<br />
Returns: Ship handle, or invalid ship handle if index is invawing handle is invalid<br />
<br />
<br />
<br />
number #<br />
Number of wings in mission<br />
Returns: Number of wings in mission<br />
<br />
===player===<br />
Player handle<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
string getName()<br />
Gets current player name<br />
Returns: Player name, or empty string if handle is invalid<br />
<br />
<br />
<br />
string getCampaignFilename()<br />
Gets current player campaign filename<br />
Returns: Campaign name, or empty string if handle is invalid<br />
<br />
<br />
<br />
string getImageFilename()<br />
Gets current player image filename<br />
Returns: Player image filename, or empty string if handle is invalid<br />
<br />
<br />
<br />
number getMainHall()<br />
Gets player's main hall number<br />
Returns: Main hall index, or 1 if handle is invalid<br />
<br />
<br />
<br />
string getSquadronName()<br />
Gets current player squad name<br />
Returns: Squadron name, or empty string if handle is invalid<br />
<br />
===camera===<br />
Camera handle<br />
<br />
string (string)<br />
Camera name<br />
Returns: Camera name, or an empty string if handle is invalid<br />
<br />
<br />
<br />
boolean isValid()<br />
True if valid, false or nil if not<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
<br />
<br />
string Name = string<br />
New camera name<br />
Value: Camera name<br />
<br />
<br />
number FOV = number<br />
New camera FOV (in radians)<br />
Value: Camera FOV (in radians)<br />
<br />
<br />
orientation Orientation = orientation<br />
New camera orientation<br />
Value: Camera orientation<br />
<br />
<br />
vector Position = vector<br />
New camera position<br />
Value: Camera position<br />
<br />
<br />
object Self = object<br />
New mount object<br />
Value: Camera object<br />
<br />
<br />
subsystem SelfSubsystem = subsystem<br />
New mount object subsystem<br />
Value: Subsystem that the camera is mounted on<br />
<br />
<br />
object Target = object<br />
New target object<br />
Value: Camera target object<br />
<br />
<br />
subsystem TargetSubsystem = subsystem<br />
New target subsystem<br />
Value: Subsystem that the camera is pointed at<br />
<br />
<br />
boolean setFOV([number FOV, number Zoom Time, number Zoom Acceleration Time, number Zoom deceleration Time])<br />
Sets camera FOV<br />
FOV is the final field of view, in radians, of the camera.<br />
Zoom Time is the total time to take zooming in or out.<br />
Acceleration Time is the total time it should take the camera to get up to full zoom speed.<br />
Deceleration Time is the total time it should take the camera to slow down from full zoom speed.<br />
Returns: true if successful, false or nil otherwise<br />
<br />
<br />
<br />
boolean setOrientation([world orientation Orientation, number Rotation Time, number Acceleration Time, number Deceleration time])<br />
Sets camera orientation and velocity data.<br />
Orientation is the final orientation for the camera, after it has finished moving. If not specified, the camera will simply stop at its current orientation.<br />
Rotation time is how long total, including acceleration, the camera should take to rotate. If it is not specified, the camera will jump to the specified orientation.<br />
Acceleration time is how long it should take the camera to get 'up to speed'. If not specified, the camera will instantly start moving.<br />
Deceleration time is how long it should take the camera to slow down. If not specified, the camera will instantly stop moving.<br />
Returns: true if successful, false or nil otherwise<br />
<br />
<br />
<br />
boolean setPosition([wvector Position, number Translation Time, number Acceleration Time, number Deceleration Time])<br />
Sets camera position and velocity data.<br />
Position is the final position for the camera. If not specified, the camera will simply stop at its current position.<br />
Translation time is how long total, including acceleration, the camera should take to move. If it is not specified, the camera will jump to the specified position.<br />
Acceleration time is how long it should take the camera to get 'up to speed'. If not specified, the camera will instantly start moving.<br />
Deceleration time is how long it should take the camera to slow down. If not specified, the camera will instantly stop moving.<br />
Returns: true if successful, false or nil otherwise<br />
<br />
===soundentry===<br />
sounds.tbl table entry handle<br />
<br />
number DefaultVolume = number<br />
The default volume of this game sound<br />
Value: Volume in the range from 1 to 0 or -1 on error<br />
<br />
<br />
string getFilename()<br />
Returns the filename of this sound<br />
Returns: filename or empty string on error<br />
<br />
<br />
<br />
number getDuration()<br />
Gives the length of the sound in seconds.<br />
Returns: the length, or -1 on error<br />
<br />
<br />
<br />
number, number get3DValues(vector Postion[, number radius=0.0])<br />
Computes the volume and the panning of the sound when it would be played from the specified position.<br />
If range is given then the volume will diminish when the listener is withing that distance to the source.<br />
The position of the listener is always the the current viewing position.<br />
Returns: The volume and the panning, in that sequence, or both -1 on error<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===sound===<br />
sound instance handle<br />
<br />
number Pitch = number<br />
Pitch of sound, from 100 to 100000<br />
Value: Pitch, or 0 if handle is invalid<br />
<br />
<br />
number getRemainingTime()<br />
The remaining time of this sound handle<br />
Returns: Remaining time, or -1 on error<br />
<br />
<br />
<br />
boolean setVolume(number)<br />
Sets the volume of this sound instance<br />
Returns: true if succeeded, false otherwise<br />
<br />
<br />
<br />
boolean setPanning(number)<br />
Sets the panning of this sound. Argument ranges from -1 for left to 1 for right<br />
Returns: true if succeeded, false otherwise<br />
<br />
<br />
<br />
boolean setPosition(number[,boolean = true])<br />
Sets the absolute position of the sound. If boolean argument is true then the value is given as a percentage<br />
Returns: true if successfull, false otherwise<br />
<br />
<br />
<br />
boolean rewind(number)<br />
Rewinds the sound by the given number of seconds<br />
Returns: true if succeeded, false otherwise<br />
<br />
<br />
<br />
boolean skip(number)<br />
Skips the given number of seconds of the sound<br />
Returns: true if succeeded, false otherwise<br />
<br />
<br />
<br />
boolean isPlaying()<br />
Specifies if this handle is currently playing<br />
Returns: true if playing, false if otherwise<br />
<br />
<br />
<br />
boolean stop()<br />
Stops the sound of this handle<br />
Returns: true if succeeded, false otherwise<br />
<br />
<br />
<br />
boolean isValid()<br />
Detects whether handle is valid<br />
Returns: true if valid, false if handle is invalid, nil if a syntax/type error occurs<br />
<br />
===3Dsound:sound===<br />
3D sound instance handle<br />
<br />
boolean updatePosition(vector Position[, number radius = 0.0])<br />
Updates the given 3D sound with the specified position and an optional range value<br />
Returns: true if succeesed, false otherwise<br />
<br />
===control info===<br />
control info handle<br />
<br />
number Pitch = number<br />
Pitch of the player ship<br />
Value: Pitch<br />
<br />
<br />
number Heading = number<br />
Heading of the player ship<br />
Value: Heading<br />
<br />
<br />
number Bank = number<br />
Bank of the player ship<br />
Value: Bank<br />
<br />
<br />
number Vertical = number<br />
Vertical control of the player ship<br />
Value: Vertical control<br />
<br />
<br />
number Sideways = number<br />
Sideways control of the player ship<br />
Value: Sideways control<br />
<br />
<br />
number Forward = number<br />
Forward control of the player ship<br />
Value: Forward<br />
<br />
<br />
number ForwardCruise = number<br />
Forward control of the player ship<br />
Value: Forward<br />
<br />
<br />
number PrimaryCount = number<br />
Number of primary weapons that will fire<br />
Value: Number of weapons to fire, or 0 if handle is invalid<br />
<br />
<br />
number SecondaryCount = number<br />
Number of secondary weapons that will fire<br />
Value: Number of weapons to fire, or 0 if handle is invalid<br />
<br />
<br />
number CountermeasureCount = number<br />
Number of countermeasures that will launch<br />
Value: Number of countermeasures to launch, or 0 if handle is invalid<br />
<br />
<br />
nil clearLuaButtonInfo()<br />
Clears the lua button control info<br />
Returns: Nothing<br />
<br />
<br />
<br />
number, number, number,number getButtonInfo()<br />
Access the four bitfields containing the button info<br />
Returns: Four bitfields<br />
<br />
<br />
<br />
number, number, number,number accessButtonInfo(number, number, number, number)<br />
Access the four bitfields containing the button info<br />
Returns: Four bitfields<br />
<br />
<br />
<br />
nil useButtonControl(number, string)<br />
Adds the defined button control to lua button control data, if number is -1 it tries to use the string<br />
Returns: Nothing<br />
<br />
<br />
<br />
string getButtonControlName(number)<br />
Gives the name of the command corresponding with the given number<br />
Returns: Name of the command<br />
<br />
<br />
<br />
number getButtonControlNumber(string)<br />
Gives the number of the command corresponding with the given string<br />
Returns: Number of the command<br />
<br />
<br />
<br />
boolean AllButtonPolling = boolean<br />
Toggles the all button polling for lua<br />
Value: If the all button polling is enabled or not<br />
<br />
<br />
number, number, number,number pollAllButtons()<br />
Access the four bitfields containing the button info<br />
Returns: Four bitfields<br />
<br />
===particle===<br />
Handle to a particle<br />
<br />
vector Position = vector<br />
The current position of the particle (world vector)<br />
Value: The current position<br />
<br />
<br />
vector Velocity = vector<br />
The current velocity of the particle (world vector)<br />
Value: The current velocity<br />
<br />
<br />
number Age = number<br />
The time this particle already lives<br />
Value: The current age or -1 on error<br />
<br />
<br />
number MaximumLife = number<br />
The time this particle can live<br />
Value: The maximal life or -1 on error<br />
<br />
<br />
number Radius = number<br />
The radius of the particle<br />
Value: The radius or -1 on error<br />
<br />
<br />
number TracerLength = number<br />
The tracer legth of the particle<br />
Value: The radius or -1 on error<br />
<br />
<br />
object AttachedObject = object<br />
The object this particle is attached to. If valid the position will be relativ to this object and the velocity will be ignored.<br />
Value: Attached object or invalid object handle on error<br />
<br />
<br />
boolean isValid()<br />
Detects whether this handle is valid<br />
Returns: true if valid false if not<br />
<br />
==Libraries==<br />
===Audio (ad)===<br />
Sound/Music Library<br />
<br />
soundentry getSoundentry(string/number)<br />
Return a sound entry matching the specified index or name. If you are using a number then the first valid index is 1<br />
Returns: soundentry or invalid handle on error<br />
<br />
<br />
<br />
sound playSound(soundentry)<br />
Plays the specified sound entry handle<br />
Returns: A handle to the playing sound<br />
<br />
<br />
<br />
sound playLoopingSound(soundentry)<br />
Plays the specified sound as a looping sound<br />
Returns: A handle to the playing sound or invalid handle if playback failed<br />
<br />
<br />
<br />
3Dsound play3DSound(soundentry[, vector source[, vector listener]])<br />
Plays the specified sound entry handle. Source if by default 0, 0, 0 and listener is by default the current viewposition<br />
Returns: A handle to the playing sound<br />
<br />
<br />
<br />
boolean playGameSound(Sound index, [Panning (-1.0 left to 1.0 right), Volume %, Priority 0-3, Voice Message?])<br />
Plays a sound from #Game Sounds in sounds.tbl. A priority of 0 indicates that the song must play; 1-3 will specify the maximum number of that sound that can be played<br />
Returns: True if sound was played, false if not (Replaced with a sound instance object in the future)<br />
<br />
<br />
<br />
boolean playInterfaceSound(Sound index)<br />
Plays a sound from #Interface Sounds in sounds.tbl<br />
Returns: True if sound was played, false if not<br />
<br />
<br />
<br />
number playMusic(string Filename, [float volume = 1.0, bool looping = true])<br />
Plays a music file using FS2Open's builtin music system. Volume should be in the 0.0 - 1.0 range, and is capped at 1.0. Files passed to this function are looped by default.<br />
Returns: Audiohandle of the created audiostream, or -1 on failure<br />
<br />
<br />
<br />
nil stopMusic(int audiohandle, [bool fade = false])<br />
Stops a playing music file, provided audiohandle is valid<br />
Returns: Nothing<br />
<br />
<br />
<br />
<br />
===Base (ba)===<br />
Base FreeSpace 2 functions<br />
<br />
nil print(string Message)<br />
Prints a string<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil warning(string Message)<br />
Displays a FreeSpace warning (debug build-only) message with the string provided<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil error(string Message)<br />
Displays a FreeSpace error message with the string provided<br />
Returns: Nothing<br />
<br />
<br />
<br />
orientation createOrientation([p/r1c1, b/r1c2, h/r1c3, r2c1, r2c2, r2c3, r3c1, r3c2, r3c3])<br />
Given 0, 3, or 9 arguments, creates an orientation object with that orientation.<br />
Returns: New orientation object, or null orientation on failure<br />
<br />
<br />
<br />
vector createVector([x, y, z])<br />
Creates a vector object<br />
Returns: Vector object<br />
<br />
<br />
<br />
number getFrametime([Do not adjust for time compression (Boolean)])<br />
Gets how long this frame is calculated to take. Use it to for animations, physics, etc to make incremental changes.<br />
Returns: Frame time (seconds)<br />
<br />
<br />
<br />
state getCurrentGameState([Depth (number)])<br />
Gets current FreeSpace state; if a depth is specified, the state at that depth is returned. (IE at the in-game options game, a depth of 1 would give you the game state, while the function defaults to 0, which would be the options screen.<br />
Returns: Current game state at specified depth, or invalid handle if no game state is active yet<br />
<br />
<br />
<br />
string getCurrentMPStatus(NIL)<br />
Gets this computers current MP status<br />
Returns: Current MP status<br />
<br />
<br />
<br />
string setControlMode(NIL or enumeration LE_*_CONTROL)<br />
Sets the current control mode for the game.<br />
Returns: Current control mode<br />
<br />
<br />
<br />
string setButtonControlMode(NIL or enumeration LE_*_BUTTON_CONTROL)<br />
Sets the current control mode for the game.<br />
Returns: Current control mode<br />
<br />
<br />
<br />
control info getControlInfo()<br />
Gets the control info handle.<br />
Returns: control info handle<br />
<br />
<br />
<br />
boolean postGameEvent(gameevent Event)<br />
Sets current game event. Note that you can crash FreeSpace 2 by posting an event at an improper time, so test extensively if you use it.<br />
Returns: True if event was posted, false if passed event was invalid<br />
<br />
<br />
<br />
gameevent GameEvents[] number Index/string Name<br />
Array of game events<br />
Returns: Game event, or invalid gameevent handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of events<br />
Returns: Number of events<br />
<br />
<br />
<br />
gamestate GameStates[] number Index/string Name<br />
Array of game states<br />
Returns: Game state, or invalid gamestate handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of states<br />
Returns: Number of states<br />
<br />
<br />
<br />
<br />
===CFile (cf)===<br />
CFile FS2 filesystem access<br />
<br />
boolean deleteFile(string Filename, string Path)<br />
Deletes given file. Path must be specified. Use a slash for the root directory.<br />
Returns: True if deleted, false<br />
<br />
<br />
<br />
boolean fileExists(string Filename, [string Path = "", boolean CheckVPs = false])<br />
Checks if a file exists. Use a blank string for path for any directory, or a slash for the root directory.<br />
Returns: True if file exists, false or nil otherwise<br />
<br />
<br />
<br />
file openFile(string Filename, [string Mode="r", string Path = ""])<br />
Opens a file. 'Mode' uses standard C fopen arguments. Use a blank string for path for any directory, or a slash for the root directory.Be EXTREMELY CAREFUL when using this function, as you may PERMANENTLY delete any file by accident<br />
Returns: File handle, or invalid file handle if the specified file couldn't be opened<br />
<br />
<br />
<br />
file openTempFile()<br />
Opens a temp file that is automatically deleted when closed<br />
Returns: File handle, or invalid file handle if tempfile couldn't be created<br />
<br />
<br />
<br />
boolean renameFile(string CurrentFilename, string NewFilename, string Path)<br />
Renames given file. Path must be specified. Use a slash for the root directory.<br />
Returns: True if file was renamed, otherwise false<br />
<br />
<br />
<br />
<br />
===Controls (io)===<br />
Controls library<br />
<br />
number getMouseX()<br />
Gets Mouse X pos<br />
Returns: Mouse x position, or 0 if mouse is not initialized yet<br />
<br />
<br />
<br />
number getMouseY()<br />
Gets Mouse Y pos<br />
Returns: Mouse y position, or 0 if mouse is not initialized yet<br />
<br />
<br />
<br />
boolean isMouseButtonDown({MOUSE_*_BUTTON enumeration}, [..., ...])<br />
Returns whether the specified mouse buttons are up or down<br />
Returns: Whether specified mouse buttons are down, or false if mouse is not initialized yet<br />
<br />
<br />
<br />
nil setCursorImage(Image filename, [LOCK or UNLOCK])<br />
Sets mouse cursor image, and allows you to lock/unlock the image. (A locked cursor may only be changed with the unlock parameter)<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil setCursorHidden(True to hide mouse, false to show it)<br />
Shows or hides mouse cursor<br />
Returns: Nothing<br />
<br />
<br />
<br />
boolean forceMousePosition(number, number (coordinates))<br />
function to force mouse position<br />
Returns: if the operation succeeded or not<br />
<br />
<br />
<br />
boolean MouseControlStatus = boolean<br />
Gets and sets the retail mouse control status<br />
Value: if the retail mouse is on or off<br />
<br />
<br />
boolean updateTrackIR()<br />
Updates Tracking Data. Call before using get functions<br />
Returns: Checks if trackir is available and updates variables, returns true if successful, otherwise false<br />
<br />
<br />
<br />
number getTrackIRPitch()<br />
Gets pitch axis from last update<br />
Returns: Pitch value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
number getTrackIRYaw()<br />
Gets yaw axis from last update<br />
Returns: Yaw value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
number getTrackIRRoll()<br />
Gets roll axis from last update<br />
Returns: Roll value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
number getTrackIRX()<br />
Gets x position from last update<br />
Returns: X value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
number getTrackIRY()<br />
Gets y position from last update<br />
Returns: Y value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
number getTrackIRZ()<br />
Gets z position from last update<br />
Returns: Z value -1 to 1, or 0 on failure<br />
<br />
<br />
<br />
<br />
===HUD (hu)===<br />
HUD library<br />
<br />
boolean HUDDrawn = boolean<br />
Current HUD draw status<br />
Value: If the HUD is drawn or not<br />
<br />
<br />
boolean setHUDGaugeColor(number (index number of the gauge), [number red, number green, number blue, number alpha])<br />
Color used to draw the gauge<br />
Returns: If the operation was successful<br />
<br />
<br />
<br />
number, number, number, number getHUDGaugeColor(number (index number of the gauge))<br />
Color used to draw the gauge<br />
Returns: Red, green, blue, and alpha of the gauge<br />
<br />
<br />
<br />
HudGauge getHUDGaugeHandle(string Name)<br />
Returns a handle to a specified HUD gauge<br />
Returns: HUD Gauge handle, or nil if invalid<br />
<br />
<br />
<br />
<br />
===Graphics (gr)===<br />
Graphics Library<br />
<br />
camera Cameras[] number Index/string Name<br />
Gets camera<br />
Returns: Ship handle, or invalid ship handle if index was invalid<br />
<br />
<br />
<br />
number #<br />
Gets number of cameras<br />
Returns: Number of cameras<br />
<br />
<br />
<br />
font Fonts[] number Index/string Filename<br />
Array of loaded fonts<br />
Returns: Font handle, or invalid font handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of loaded fonts<br />
Returns: Number of loaded fonts<br />
<br />
<br />
<br />
font CurrentFont = font<br />
Current font<br />
Value: (null)<br />
<br />
<br />
enumeration CurrentOpacityType = enumeration<br />
Current alpha blending type; uses ALPHABLEND_* enumerations<br />
Value: (null)<br />
<br />
<br />
texture CurrentRenderTarget = texture<br />
Current rendering target<br />
Value: Current rendering target, or invalid texture handle if screen is render target<br />
<br />
<br />
nil clearScreen([number Red, number green, number blue, number alpha])<br />
Clears the screen to black, or the color specified.<br />
Returns: Nothing<br />
<br />
<br />
<br />
camera createCamera(string Name, [wvector Position, orientation Orientation])<br />
Creates a new camera using the specified position and orientation (World)<br />
Returns: Camera handle, or invalid camera handle if camera couldn't be created<br />
<br />
<br />
<br />
number getScreenWidth()<br />
Gets screen width<br />
Returns: Width in pixels, or 0 if graphics are not initialized yet<br />
<br />
<br />
<br />
number getScreenHeight()<br />
Gets screen height<br />
Returns: Height in pixels, or 0 if graphics are not initialized yet<br />
<br />
<br />
<br />
vector getVectorFromCoords([number X=center, number Y=center, number Depth, boolean normalize = false])<br />
Returns a vector through screen coordinates x and y. If depth is specified, vector is extended to Depth units into spaceIf normalize is true, vector will be normalized.<br />
Returns: Vector, or zero vector on failure<br />
<br />
<br />
<br />
boolean setTarget([texture Texture])<br />
If texture is specified, sets current rendering surface to a texture.Otherwise, sets rendering surface back to screen.<br />
Returns: True if successful, false otherwise<br />
<br />
<br />
<br />
boolean setCamera([camera handle Camera])<br />
Sets current camera, or resets camera if none specified<br />
Returns: true if successful, false or nil otherwise<br />
<br />
<br />
<br />
nil setColor(number Red, number Green, number Blue, [number Alpha])<br />
Sets 2D drawing color; each color number should be from 0 (darkest) to 255 (brightest)<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawCircle(number Radius, number X, number Y)<br />
Draws a circle<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawCurve(number X, number Y, number Radius)<br />
Draws a curve<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawGradientLine(number X1, number Y1, number X2, number Y2)<br />
Draws a line from (x1,y1) to (x2,y2) with the CurrentColor that steadily fades out<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawLine(number X1, number Y1, number X2, number Y2)<br />
Draws a line from (x1,y1) to (x2,y2) with CurrentColor<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawPixel(number X, number Y)<br />
Sets pixel to CurrentColor<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawPolygon(texture Texture, [vector Position={0,0,0}, orientation Orientation=null, number Width=1.0, number Height=1.0])<br />
Draws a polygon<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil drawRectangle(number X1, number Y1, number X2, number Y2, [boolean Filled=true])<br />
Draws a rectangle with CurrentColor<br />
Returns: Nothing<br />
<br />
<br />
<br />
boolean drawSphere([number Radius = 1.0, vector Position])<br />
Draws a sphere with radius Radius at world vector Position<br />
Returns: True if successful, false or nil otherwise<br />
<br />
<br />
<br />
int drawModel(model, position, orientation)<br />
Draws the given model with the specified position and orientation - Use with extreme care, may not work properly in all scripting hooks.<br />
Returns: Zero if successful, otherwise an integer error code<br />
<br />
<br />
<br />
int drawModelOOR(model Model, vector Position, matrix Orientation, integer Flags)<br />
Draws the given model with the specified position and orientation - Use with extreme care, designer to operate properly only in On Object Render hook.<br />
Returns: Zero if successful, otherwise an integer error code<br />
<br />
<br />
<br />
number,number,number,number drawTargetingBrackets(object Object, [boolean draw=true, int padding=5])<br />
Gets the edge positions of targeting brackets for the specified object. The brackets will only be drawn if draw is true or the default value of draw is used. Brackets are drawn with the current color. The brackets will have a padding (distance from the actual bounding box); the default value (used elsewhere in FS2) is 5.<br />
Returns: Left, top, right, and bottom positions of the brackets, or nil if invalid<br />
<br />
<br />
<br />
number drawString(string Message, [number X1, number Y1, number X2, number Y2])<br />
Draws a string. Use x1/y1 to control position, x2/y2 to limit textbox size.Text will automatically move onto new lines, if x2/y2 is specified.Additionally, calling drawString with only a string argument will automaticallydraw that string below the previously drawn string (or 0,0 if no stringshave been drawn yet<br />
Returns: Number of lines drawn, or 0 on failure<br />
<br />
<br />
<br />
number getStringWidth(string String)<br />
Gets string width<br />
Returns: String width, or 0 on failure<br />
<br />
<br />
<br />
texture createTexture([number Width=512, number Height=512, enumeration Type=TEXTURE_DYNAMIC])<br />
Creates a texture for rendering to.Types are TEXTURE_STATIC - for infrequent rendering - and TEXTURE_DYNAMIC - for frequent rendering.<br />
Returns: New texture handle, or invalid texture handle if texture couldn't be created<br />
<br />
<br />
<br />
texture loadTexture(string Filename, [boolean LoadIfAnimation, boolean NoDropFrames])<br />
Gets a handle to a texture. If second argument is set to true, animations will also be loaded.If third argument is set to true, every other animation frame will not be loaded if system has less than 48 MB memory.<br />
IMPORTANT: Textures will not be unload themselves unless you explicitly tell them to do so.When you are done with a texture, call the Unload() function to free up memory.<br />
Returns: Texture handle, or invalid texture handle if texture couldn't be loaded<br />
<br />
<br />
<br />
boolean drawImage(string Filename/texture Texture, [number X1=0, Y1=0, number X2, number Y2, number UVX1 = 0.0, number UVY1 = 0.0, number UVX2=1.0, number UVY2=1.0, number alpha=1.0])<br />
Draws an image or texture. Any image extension passed will be ignored.The UV variables specify the UV value for each corner of the image. In UV coordinates, (0,0) is the top left of the image; (1,1) is the lower right.<br />
Returns: Whether image was drawn<br />
<br />
<br />
<br />
boolean drawMonochromeImage(string Filename/texture Texture, number X1, number Y1, [number X2, number Y2, number alpha=1.0])<br />
Draws a monochrome image using the current color<br />
Returns: Whether image was drawn<br />
<br />
<br />
<br />
number getImageWidth(string Filename)<br />
Gets image width<br />
Returns: Image width, or 0 if filename is invalid<br />
<br />
<br />
<br />
number getImageHeight(Image name)<br />
Gets image height<br />
Returns: Image height, or 0 if filename is invalid<br />
<br />
<br />
<br />
nil flashScreen(number Red, number Green, number Blue)<br />
Flashes the screen<br />
Returns: Nothing<br />
<br />
<br />
<br />
model loadModel(string Filename)<br />
Loads the model - will not setup subsystem data, DO NOT USE FOR LOADING SHIP MODELS<br />
Returns: Handle to a model<br />
<br />
<br />
<br />
boolean hasViewmode(enumeration)<br />
Specifies if the current viemode has the specified flag, see VM_* enumeration<br />
Returns: true if flag is present, false otherwise<br />
<br />
<br />
<br />
===HookVariables (hv)===<br />
Hook variables repository<br />
<br />
string Globals[] number Index<br />
Array of current HookVariable names<br />
Returns: Hookvariable name, or empty string if invalid index specified<br />
<br />
<br />
<br />
number #<br />
Number of HookVariables<br />
Returns: Number of HookVariables<br />
<br />
<br />
<br />
<br />
===Mission (mn)===<br />
Mission library<br />
<br />
object getObjectFromSignature(number Signature)<br />
Gets a handle of an object from its signature<br />
Returns: Handle of object with signaure, invalid handle if signature is not in use<br />
<br />
<br />
<br />
boolean evaluateSEXP(string)<br />
Runs the defined SEXP script<br />
Returns: if the operation was successful<br />
<br />
<br />
<br />
boolean runSEXP(string)<br />
Runs the defined SEXP script<br />
Returns: if the operation was successful<br />
<br />
<br />
<br />
asteroid Asteroids[] number Index<br />
Gets asteroid<br />
Returns: Asteroid handle, or invalid handle if invalid index specified<br />
<br />
<br />
<br />
number #<br />
Number of asteroids in mission. Note that the value returned is only good until an asteroid is destroyed, and so cannot be relied on for more than one frame.<br />
Returns: Number of asteroids in the mission, or 0 if asteroids are not enabled<br />
<br />
<br />
<br />
debris Debris[] number Index<br />
Array of debris in the current mission<br />
Returns: Debris handle, or invalid debris handle if index wasn't valid<br />
<br />
<br />
<br />
number #<br />
Number of debris pieces in the mission. Note that the value returned is only good until a piece of debris is destroyed, and so cannot be relied on for more than one frame.<br />
Returns: Current number of debris particles<br />
<br />
<br />
<br />
ship EscortShips[] number Index<br />
Gets escort ship at specified index on escort list<br />
Returns: Specified ship, or invalid ship handle if invalid index<br />
<br />
<br />
<br />
number #<br />
Current number of escort ships<br />
Returns: Current number of escort ships<br />
<br />
<br />
<br />
event Events[] number Index/string Name<br />
Indexes events list<br />
Returns: Event handle, or invalid event handle if index was invalid<br />
<br />
<br />
<br />
number #<br />
Number of events in mission<br />
Returns: Number of events in mission<br />
<br />
<br />
<br />
sexpvariable SEXPVariables[] number Index/string Name<br />
Array of SEXP variables. Note that you can set a sexp variable using the array, eg 'SEXPVariables[1] = "newvalue"'<br />
Returns: Handle to SEXP variable, or invalid sexpvariable handle if index was invalid<br />
<br />
<br />
<br />
number #<br />
Current number of SEXP variables<br />
Returns: Counts number of loaded SEXP Variables. May be slow.<br />
<br />
<br />
<br />
ship Ships[] number Index/string Name<br />
Gets ship<br />
Returns: Ship handle, or invalid ship handle if index was invalid<br />
<br />
<br />
<br />
number #<br />
Number of ships in the mission. This function is somewhat slow, and should be set to a variable for use in looping situations. Note that the value returned is only good until a ship is destroyed, and so cannot be relied on for more than one frame.<br />
Returns: Number of ships in the mission, or 0 if ships haven't been initialized yet<br />
<br />
<br />
<br />
waypoint Waypoints[] number Index<br />
Array of waypoints in the current mission<br />
Returns: Waypoint handle, or invalid waypoint handle if index was invalid<br />
<br />
<br />
<br />
number #<br />
Gets number of waypoints in mission. Note that this is only accurate for one frame.<br />
Returns: Number of waypoints in the mission<br />
<br />
<br />
<br />
waypointlist WaypointLists[] number Index/string WaypointListName<br />
Array of waypoint lists<br />
Returns: Gets waypointlist handle<br />
<br />
<br />
<br />
number #<br />
Number of waypoint lists in mission. Note that this is only accurate for one frame.<br />
Returns: Number of waypoint lists in the mission<br />
<br />
<br />
<br />
weapon Weapons[] number Index<br />
Gets handle to a weapon object in the mission.<br />
Returns: Weapon handle, or invalid weapon handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of weapon objects in mission. Note that this is only accurate for one frame.<br />
Returns: Number of weapon objects in mission<br />
<br />
<br />
<br />
beam Beams[] number Index<br />
Gets handle to a beam object in the mission.<br />
Returns: Beam handle, or invalid beam handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of beam objects in mission. Note that this is only accurate for one frame.<br />
Returns: Number of beam objects in mission<br />
<br />
<br />
<br />
wing Wings[] number Index/string WingName<br />
Wings in the mission<br />
Returns: Wing handle, or invalid wing handle if index or name was invalid<br />
<br />
<br />
<br />
number #<br />
Number of wings in mission<br />
Returns: Number of wings in mission<br />
<br />
<br />
<br />
ship createShip([string Name, shipclass Class=Shipclass[1], orientation Orientation=null, vector Position={0,0,0}])<br />
Creates a ship and returns a handle to it using the specified name, class, world orientation, and world position<br />
Returns: Ship handle, or invalid ship handle if ship couldn't be created<br />
<br />
<br />
<br />
waypoint createWaypoint([vector Position, waypointlist List])<br />
Creates a waypoint<br />
Returns: Waypoint handle, or invalid waypoint handle if waypoint couldn't be created<br />
<br />
<br />
<br />
weapon createWeapon([weaponclass Class=WeaponClass[1], orientation Orientation=null, world vector Position={0,0,0}, object Parent = nil, number Group = -1)<br />
Creates a weapon and returns a handle to it. 'Group' is used for lighting grouping purposes; for example, quad lasers would only need to act as one light source.<br />
Returns: Weapon handle, or invalid weapon handle if weapon couldn't be created.<br />
<br />
<br />
<br />
string getMissionFilename()<br />
Gets mission filename<br />
Returns: Mission filename, or empty string if game is not in a mission<br />
<br />
<br />
<br />
boolean startMission([Filename or MISSION_* enumeration, Briefing = true])<br />
Starts the defined mission<br />
Returns: True, or false if the function fails<br />
<br />
<br />
<br />
number getMissionTime()<br />
Game time in seconds since the mission was started; is affected by time compression<br />
Returns: Mission time (seconds), or 0 if game is not in a mission<br />
<br />
<br />
<br />
boolean loadMission(Mission name)<br />
Loads a mission<br />
Returns: True if mission was loaded, otherwise false<br />
<br />
<br />
<br />
nil unloadMission()<br />
Stops the current mission and unloads it<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil simulateFrame()<br />
Simulates mission frame<br />
Returns: Nothing<br />
<br />
<br />
<br />
nil renderFrame()<br />
Renders mission frame, but does not move anything<br />
Returns: Nothing<br />
<br />
<br />
<br />
<br />
===BitOps (bit)===<br />
Bitwise Operations library<br />
<br />
number AND(number, number)<br />
Values for which bitwise boolean AND operation is performed<br />
Returns: Result of the AND operation<br />
<br />
<br />
<br />
number OR(number, number)<br />
Values for which bitwise boolean OR operation is performed<br />
Returns: Result of the OR operation<br />
<br />
<br />
<br />
number XOR(number, number)<br />
Values for which bitwise boolean XOR operation is performed<br />
Returns: Result of the XOR operation<br />
<br />
<br />
<br />
number toggleBit(number, number (bit))<br />
Toggles the value of the set bit in the given number for 32 bit integer<br />
Returns: Result of the operation<br />
<br />
<br />
<br />
boolean checkBit(number, number (bit))<br />
Checks the value of the set bit in the given number for 32 bit integer<br />
Returns: Was the bit true of false<br />
<br />
<br />
<br />
number addBit(number, number (bit))<br />
Performs inclusive or (OR) operation on the set bit of the value<br />
Returns: Result of the operation<br />
<br />
<br />
<br />
<br />
===Tables (tb)===<br />
Tables library<br />
<br />
ship ShipClasses[] number Index/string Name<br />
Array of ship classes<br />
Returns: Ship handle, or invalid ship handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of ship classes<br />
Returns: Number of ship classes, or 0 if ship classes haven't been loaded yet<br />
<br />
<br />
<br />
weapon WeaponClasses[] number Index/string WeaponName<br />
Array of weapon classes<br />
Returns: Weapon class handle, or invalid weaponclass handle if index is invalid<br />
<br />
<br />
<br />
number #<br />
Number of weapon classes<br />
Returns: Number of weapon classes, or 0 if weapon classes haven't been loaded yet<br />
<br />
<br />
<br />
<br />
===Testing (ts)===<br />
Experimental or testing stuff<br />
<br />
nil avdTest()<br />
Test the AVD Physics code<br />
Returns: Nothing<br />
<br />
<br />
<br />
particle createParticle(vector Position, vector Velocity, number Lifetime, number Radius, enumeration Type, [number Tracer length=-1, boolean Reverse=false, texture Texture=Nil, object Attached Object=Nil])<br />
Creates a particle. Use PARTICLE_* enumerations for type.Reverse reverse animation, if one is specifiedAttached object specifies object that Position will be (and always be) relative to.<br />
Returns: Handle to the created particle<br />
<br />
<br />
<br />
string getStack()<br />
Generates an ADE stackdump<br />
Returns: Current Lua stack<br />
<br />
<br />
<br />
boolean isCurrentPlayerMulti()<br />
Returns whether current player is a multiplayer pilot or not.<br />
Returns: Whether current player is a multiplayer pilot or not<br />
<br />
<br />
<br />
boolean isPXOEnabled()<br />
Returns whether PXO is currently enabled in the configuration.<br />
Returns: Whether PXO is enabled or not<br />
<br />
<br />
<br />
<br />
==Enumerations==<br />
ALPHABLEND_FILTER<br />
ALPHABLEND_NONE<br />
CFILE_TYPE_NORMAL<br />
CFILE_TYPE_MEMORY_MAPPED<br />
MOUSE_LEFT_BUTTON<br />
MOUSE_RIGHT_BUTTON<br />
MOUSE_MIDDLE_BUTTON<br />
ORDER_ATTACK<br />
ORDER_ATTACK_ANY<br />
ORDER_DEPART<br />
ORDER_DISABLE<br />
ORDER_DISARM<br />
ORDER_DOCK<br />
ORDER_EVADE<br />
ORDER_FLY_TO<br />
ORDER_FORM_ON_WING<br />
ORDER_GUARD<br />
ORDER_IGNORE_SHIP<br />
ORDER_KEEP_SAFE_DISTANCE<br />
ORDER_PLAY_DEAD<br />
ORDER_PLAY_DEAD_PERSISTENT<br />
ORDER_REARM<br />
ORDER_STAY_NEAR<br />
ORDER_STAY_STILL<br />
ORDER_UNDOCK<br />
ORDER_WAYPOINTS<br />
ORDER_WAYPOINTS_ONCE<br />
ORDER_ATTACK_WING<br />
ORDER_GUARD_WING<br />
ORDER_ATTACK_SHIP_CLASS<br />
PARTICLE_DEBUG<br />
PARTICLE_BITMAP<br />
PARTICLE_FIRE<br />
PARTICLE_SMOKE<br />
PARTICLE_SMOKE2<br />
PARTICLE_PERSISTENT_BITMAP<br />
SEXPVAR_CAMPAIGN_PERSISTENT<br />
SEXPVAR_NOT_PERSISTENT<br />
SEXPVAR_PLAYER_PERSISTENT<br />
SEXPVAR_TYPE_NUMBER<br />
SEXPVAR_TYPE_STRING<br />
TEXTURE_STATIC<br />
TEXTURE_DYNAMIC<br />
LOCK<br />
UNLOCK<br />
NONE<br />
SHIELD_FRONT<br />
SHIELD_LEFT<br />
SHIELD_RIGHT<br />
SHIELD_BACK<br />
MISSION_REPEAT<br />
NORMAL_CONTROLS<br />
LUA_STEERING_CONTROLS<br />
LUA_FULL_CONTROLS<br />
NORMAL_BUTTON_CONTROLS<br />
LUA_ADDITIVE_BUTTON_CONTROL<br />
LUA_OVERRIDE_BUTTON_CONTROL<br />
VM_INTERNAL<br />
VM_EXTERNAL<br />
VM_TRACK<br />
VM_DEAD_VIEW<br />
VM_CHASE<br />
VM_OTHER_SHIP<br />
VM_EXTERNAL_CAMERA_LOCKED // Deprecated in 19.0, VM_EXTERNAL and VM_CAMERA_LOCKED check each portion of this individually<br />
VM_CAMERA_LOCKED<br />
VM_WARP_CHASE<br />
VM_PADLOCK_UP<br />
VM_PADLOCK_REAR<br />
VM_PADLOCK_LEFT<br />
VM_PADLOCK_RIGHT<br />
VM_WARPIN_ANCHOR<br />
VM_TOPDOWN<br />
VM_FREECAMERA<br />
VM_CENTERING<br />
MESSAGE_PRIORITY_LOW<br />
MESSAGE_PRIORITY_NORMAL<br />
MESSAGE_PRIORITY_HIGH<br />
OPTION_TYPE_SELECTION<br />
OPTION_TYPE_RANGE</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Benchmarking&diff=58932
Benchmarking
2019-12-02T05:19:23Z
<p>Cyborg17: Adding a few missing things I found while using this, and one or two clarifications.</p>
<hr />
<div>FSO has support for running automated performance benchmarks using the '''-benchmark_mode''' command line. This option currently has the following effects:<br />
<br />
* The pilot selection is automatically accepted (make sure there is a pilot to accept)<br />
* FSO will quit after running one mission<br />
<br />
This feature can be combined with '''-profile_frame_time''' to gather detailed performance data without requiring any interaction while running the test.<br />
<br />
==-profile_frame_time and -profile_write_file==<br />
When FSO is started with these options, it will write information about the frame times to a file called ''profiling.csv'' in the main FSO directory. Each line contains the system time and the frametime of each rendered frame in the format ''<system time>;<frametime>''. Both time values are measured in microseconds. ''system time'' is measured from an arbitrary point in the past. To get consistent results with it the first system time value should be subtracted from all system time values. The first two frames are usually very long because the timer is set at engine startup so you might want to exclude those from your data. [https://gist.github.com/asarium/2ce04d7d2ac01b40e66a This script] uses python and numpy to generate two graphs from two sets of data which can be used to compare two different versions of the engine.<br />
<br />
==Missions==<br />
To actually run a mission you could use the commandline option '''-start_mission <mission>''' which will start the specified mission after entering the main hall. To keep the tests non interactive the started mission should be a cutscene which automatically ends when the end is reached. Here is a list of mods that contain such missions:<br />
* Blue Planet Complete<br />
** '''bp2-17.fs2''': Icarus cutscene of War in Heaven. A very demanding mission which is great for testing performance.<br />
** '''bp2-00.fs2''': Intro cutscene of War in Heaven. Also great for performance testing.<br />
<br />
==Other options==<br />
* '''-nomovies''': Can be used to disable playback of movies which speeds up game startup.<br />
* '''-no_unfocused_pause''': Disables automatic pausing when the FSO window isn't focused. Can be used to use another application while the benchmark is running.<br />
* '''-noninteractive''': Disables all dialogs or other things that may require interaction. This makes sure that FSO exits in a finite time. If it doesn't please create an issue on the GitHub bug tracker.<br />
* '''-profile_frame_time''': Shows the amount per frame that each subsystem takes to complete on the left side of the screen.</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Weapons.tbl&diff=58856
Weapons.tbl
2019-11-03T00:02:29Z
<p>Cyborg17: /* Core Table */</p>
<hr />
<div>{{TableVersionGit|2017-08-25|2039815}}<br />
<br />
The '''weapons.tbl''' defines all of the weapon classes used in FSO.<br />
<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-wep.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==Introduction==<br />
The weapons.tbl is responsible for defining the behavior of the numerous weapon effects used in FSO, including the amount of damage dealt, the firing rate, and graphical effects.<br />
<br />
This wiki page goes over all of the entries used exclusively in the weapons.tbl file. Hyperlinks to individual weapon creation/editing tutorials are provided when appropriate.<br />
<br />
<br />
<br />
==Special Case Weapons==<br />
===Beam Cannons===<br />
'''REQUIRES:'''<br />
*'''"beam"''' flag<br />
*'''[[weapons.tbl#$BeamInfo:|$BeamInfo:]]'''<br />
<br />
See also: [http://www.hard-light.net/wiki/index.php/Tutorial_-_Beam_Weapons Tutorial - Beam Weapons]<br />
<br />
<br />
===Flak Guns===<br />
'''REQUIRES:'''<br />
*'''"flak"''' flag<br />
*'''"particle spew"''' flag<br />
*Must have inner and outer radius defined to have any effect.<br />
*A '''.pof''' model must be defined ( usually '''Hornet.pof''' )<br />
**Note: the model is not actually used... Instead, it uses [[Weapons.tbl#$Pspew:|particle spew]]. Trails may also be added.<br />
<br />
<br />
<br />
==General Format==<br />
*The weapons table consist of several sections<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>'''End''' before the next section.<br />
**<nowiki>#</nowiki>'''Primary Weapons'''<br />
***Defines all '''standard primaries weapons''' as well as '''beam cannons''' and '''flak cannons'''.<br />
**<nowiki>#</nowiki>'''Secondary Weapons'''<br />
***Defines all '''secondary weapons'''.<br />
**<nowiki>#</nowiki>'''Beam Weapons'''<br />
***I haven't got any ideas for this one.<br />
**<nowiki>#</nowiki>'''[[Weapons.tbl#Countermeasures|Countermeasures]]'''<br />
***Defines the used countermeasure.<br />
**'''$Player Weapon Precedence'''<br />
***Player Weapon Precedence is used in weapon selection when a default specified by the mission designer is not available to the player. The next weapon on the list is used in its place (assuming that weapon is allowed for the player).<br />
<br />
==Core Table==<br />
<br />
<br />
===$Name:===<br />
*This is the name of the weapon. If it's going to be used by the player, keep it under 12 characters so it doesn't spill over the HUD box.<br>Two special characters can be used in the name: '''#''' and '''@'''. Their usage details are the very same than inside the [[Ships.tbl#.24Name:_2|$Name field from Ships.tbl]].<br />
*Syntax: '''''String'''''<br />
<br />
<br />
====+nocreate====<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in Weapons.tbl or in earlier parsed *-wep.tbm files) by the time the *-wep.tbm is read.}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3611|<br />
*An alternative name that can be referenced instead of $Name:<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Subtype:===<br />
{{Table3610| <br />
Specifies the weapon 's subtype. Overrides the default subtype as specified by the #-section it is in (#Primary, #Secondary, #Beam Weapon, etc.).<br />
<br />
<br />
{{Note|<br />
:Since the weapon subtype is already specified by the #-section it is in, this option is not particularly useful when the weapon is inside a #Primary or #Secondary section. However, it may be used to specify the weapon slot it uses on fighters/bombers for weapons that are normally capship only (such as beam cannons).}} <br />
<br />
<br />
*Syntax: '''''String'''''<br />
*Valid Entries: <br />
:Primary<br />
:Secondary}}<br />
<br />
===+Title:===<br />
*This is the title of the weapon in the Weapons loadout screen. Only needed for player allowed weapons. Title may be anything. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Description:===<br />
*This is the description you see in the weapons loadout screen. Again, these aren't based on any hard numbers, just approximations. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''Standard Issue<br />
''Level 3 Hull Damage<br />
''Level 2 Shield Damage''", -1)<br />
$end_multi_text<br />
</pre><br />
<br />
===+Tech Title:===<br />
*Title of the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Tech Anim:===<br />
*Animation used for the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: '''''String''''', animation filename<br />
**Example: ''Tech_Subach_HL-7''<br />
<br />
<br />
===+Tech Description:===<br />
*Descriptive text you see in the tech room. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''The Subach-Innes HL-7...''", 3245)<br />
$end_multi_text<br />
</pre><br />
<br />
===$Tech Model:===<br />
{{Table3610|<br />
*Defines model used in wing loadout screen for the weapon. 3D weapon models in the tech room have not yet been implemented.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
====+Closeup_Pos:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. The position of the camera relative to the model center.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively}}<br />
<br />
====+Closeup_Zoom:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians}}<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: '''''String''''', either "FS1", or "Off". This defaults to the FS2 effect.<br />
}}<br />
<br />
===$HUD Image:===<br />
{{Table3610|<br />
*Defines the picture used to represent the weapon in HUD loadout list<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Model File:===<br />
*Filename of the model file (.pof) at data/models folder. Additional fields beginning from '''''@Laser Bitmap:''''' and ending to '''''@Laser Tail Radius:''''' are not needed if a model has been defined for the weapon.<br />
*Standard primaries and beam cannons do not use specific models so for those the name is 'none'.<br />
*Flak weapons and secondaries use models, though the exact model is not important with the flak weapons.<br />
*Syntax: '''''String.pof''''' or ''none'', model filename<br />
**Example: ''none''<br />
<br />
<br />
===$POF target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of the model used in HUD targeting view<br />
*Syntax: '''''Integer'''''}}<br />
<br />
===$Detail Distance:===<br />
{{Table3613|<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Optional. If not defined the game uses the formula ((radius * 20.0 + 20.0) * LOD)<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''}}<br />
<br />
===$External Model File:===<br />
{{Table3610|<br />
*Defines the models shown on the gunpoint, used with Bobb's external-visible-weapon code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Submodel Rotation Speed:===<br />
{{Table3610|<br />
*Defines the rotation speed of the subobject, with the $gun_rotation property defined, in the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Note: weapon fire will be delayed by the time it takes for the weapon to spin up to this speed (using $Submodel Rotation Acceleration or its default value), regardless of whether an external model is used or not.<br />
}}<br />
{{Table38|<br />
*Note: It's no longer required that the ship actually have external models enabled (whether or not this weapon has one defined) for the spin up delay to occur.<br />
}}<br />
<br />
===$Submodel Rotation Acceleration:===<br />
{{Table3610|<br />
*Defines the rotation acceleration of the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Default value: 10}}<br />
<br />
===@Laser===<br />
In the event a 3D model is not defined for the weapon, FSO creates an object similar to a glowpoint. Essentially, it is a 2D plane that always faces the player's camera with an additive texture applied to it, and may or may not have an omnilight follow it.<br />
<br />
As suggested by its name, this option group is normally used for lasers and similar primaries, but it may also be used for other weapon types as well.<br />
<br />
Unless said otherwise, the graphic files used within this group may be of any compatible type (.DDS, .PCX, .TGA, etc.), however a .DDS is recommended.<br />
<br />
<br />
====@Laser Bitmap:====<br />
Defines the graphic file to be used as the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Bitmap: my_laser_bitmap<br />
</pre><br />
<br />
<br />
====@Laser Glow:====<br />
Defines the graphic file to be used for the glowmap of the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
*This file is 'multiplied' by a value between Color and Color2.<br />
*The physical dimensions of the glowmap in-game is 2x the size of the bitmap.<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Glow: my_laser_glowmap<br />
</pre><br />
<br />
<br />
====@Laser Color:====<br />
The RGB color of the glow effect.<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Red glow effect at the start of the effect's lifetime<br />
</pre><br />
<br />
<br />
====@Laser Color2:====<br />
The RGB color of the glow effect at the end of the effect's lifetime (at its maximum range).<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
*The actual color of the glow effect is somewhere in between the values defined by Color and Color2. Essentially, the actual color "fades" from Color to Color2 over its lifetime.<br />
**If Color is not defined, then a default value of 255, 255, 255 is assumed for its initial color.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color2: 0, 0, 255 ; Blue glow effect at the end of the effect's lifetime.<br />
</pre><br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Start with a Red glow effect, and fade into...<br />
@Laser Color2: 0, 0, 255 ; a Blue glow effect over the lifetime of the effect.<br />
</pre><br />
<br />
<br />
====@Laser Length:====<br />
Defines the length of the weapon effect.<br />
*This option stretches the 2D plane "away" from its origin.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Length: 1.0<br />
</pre><br />
<br />
<br />
====@Laser Head Radius:====<br />
Defines the width of the leading edge, or "head," of the weapon effect.<br />
*The edge of the 2D plane farthest away from its origin is the leading edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Head Radius: 0.75<br />
</pre><br />
<br />
<br />
====@Laser Tail Radius:====<br />
Defines the width of the trailing edge, or "tail" of the weapon effect.<br />
*The edge of the 2D plane that is closest to its origin is the trailing edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Tail Radius: 0.75<br />
</pre><br />
<br />
<br />
===$Mass:===<br />
*How much of a kinetic effect this weapon has on its target. 3+ gives you the Flail effect. Set it to 10 and you can knock cruisers around.<br />
*This is somehow multiplied by the speed. ie ''$Mass: 3'' and ''$Velocity: 200'' has much weaker kinetic effect than ''$Mass: 3'' and ''$Velocity: 1000''. Also $Mass is used to calculate intensity of "shudder" effect if flagged.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Velocity:===<br />
*How fast the weapon travels. Is also used to define the weapon range, '''''$Velocity x $Lifetime = range'''''.<br />
*Beams travel instantly so this field has effect only on weapon range and AI beam targeting with certain beam types. $Velocity of beam also applies to its kinetic effect along with $Mass.<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Fire Wait:===<br />
*Time in seconds between firings<br />
*Note that Fire wait will be reset to 1 if it is set over 5 for non turreted primary weapons (doesn't apply to 3.6.14+)<br />
*Syntax: '''''Float''''', seconds<br />
<br />
====+Max Delay:====<br />
{{Table373|<br />
*Defines the maximum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Min Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
====+Min Delay:====<br />
{{Table373|<br />
*Defines the minimum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Max Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
===$Damage:===<br />
*Base damage this weapon does. The actual damage is this number multiplied by the factors below.<br />
*Base damage this beam does is continuous damage, damage is 5.5 times the damage value per second. The actual damage is this number multiplied by one of the factors below.<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
<br />
===$Damage Time:===<br />
{{Table373|<br />
*This sets a time from the end of the weapons lifetime that damage will start to attenuate at. '''''Example: Weapon lifetime is 2.0 seconds and the desired effect is to attenuate after 0.5 seconds have passed, set this to 1.5 seconds.'''''<br />
*Syntax: '''''Float''''', seconds. Defaults to 0.0.<br />
**Note: If neither +Min Damage: nor +Max Damage: is set, the damage will always attenuate to zero at max range.<br />
***If both +Min Damage: and +Max Damage: are set, both are defaulted to 0.0 and damage will be attenuated to zero.}}<br />
<br />
====+Attenuation Damage:====<br />
{{Table373|<br />
*This sets the damage a weapon will attenuate to after reaching $Damage Time:.<br />
*Syntax: '''''Float''''', damage.}}<br />
<br />
====+Min Damage:====<br />
{{Table373|<br />
*This sets the lowest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
====+Max Damage:====<br />
{{Table373|<br />
*This sets the highest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
===$Damage Type:===<br />
{{Table3610|<br />
Defines the damage type that this weapon uses. All armor effects are applied after shield and have no function against shockwave or subsystem damage.<br />
<br />
'''REQUIRES:''' [[armor.tbl]]<br />
<br />
*Syntax: '''''String''''', name of the damage type ( as defined by [[armor.tbl#$Damage Type:|$Damage Type]] )}}<br />
<br />
===$Arm time:===<br />
{{Table3610|<br />
*Defines the time after the launch that is required before the weapon comes hot<br />
*If the time has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Arm distance:===<br />
{{Table3610|<br />
*Defines the distance from the firing ships that is required before the weapon comes hot<br />
*If the distance has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', meters}}<br />
{{Table3615|<br />
*This parameter is also applied to flak weapons. Previous behaviour was to arm weapons after 10 meters of travel.}}<br />
<br />
===$Arm radius:===<br />
{{Table3610|<br />
*Defines the distance from the target where the weapon will arm itself<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Detonation Range:===<br />
{{Table3610|<br />
*Defines the distance from the point in space that the weapon was launched where the weapon will detonate<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Radius:===<br />
{{Table3610|<br />
*Defines the distance between the target center point point and the weapon which detonates the weapon.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shockwave damage:===<br />
{{Table3610|<br />
*Override for the damage caused by shockwaves (default is [[#$Damage:]])<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
}}<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the weapon explosions<br />
*Syntax: '''''String''''', name as defined in [[armor.tbl]]}}<br />
<br />
===$Flak Detonation Accuracy:===<br />
{{Table3615|<br />
*Normally, flak weapons detonate at a range of 65 to 99 meters from their intended target, depending on the firing ships' weapon subsystem health. This parameter can be used to adjust this behaviour, as it defines the base range used to determine this detonation range. Standard value is 65.<br />
*Syntax: '''''Float''''', range in meters}}<br />
<br />
===$Flak Targeting Accuracy:===<br />
{{Table3615|<br />
*Turret-fired flak weapons are normally firing in a cone around the target's predicted position. This parameter can be used to adjust the size of this cones' base radius. Standard is 60 meters.<br />
*Syntax: '''''Float''''', radius in meters}}<br />
<br />
===$Untargeted Flak Range Penalty:===<br />
{{Table3615|<br />
*If a flak weapon is fired without a target selected, this parameter defines the range penalty applied to that weapon. Standard is 20 meters, meaning an untargeted flak weapon will detonate after travelling its max range - 20 meters.<br />
*Syntax: '''''Float''''', penalty in meters.}}<br />
<br />
===$Blast Force:===<br />
*The intensity of the kinetic blast effect when ship is within the outer radius of the explosion. Comes in effect only if inner and outer radius are defined.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
===$Inner Radius:===<br />
*Radius at which the full explosion damage is done. Marks the line where damage attenuation begins. Damage is reduced by the square of the distance between the inner radius and outer radius. i.e. half way between inner and outer results in 1/4 damage<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Outer Radius:===<br />
*Maximum radius at which any damage is done. See $Inner Radius for the attenuation formula.<br />
*Also defines the size of the shockwave (if shockwave speed is > 0)<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at. Zero means no shockwave and that damage is applied immediately<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave rotation:===<br />
{{Table3610|<br />
*Defines how the 3D shockwave is rotated.<br />
*Syntax: '''''Angle''''', three values, pitch, bank, heading respectively, in degrees}}<br />
<br />
<br />
===$Shockwave model:===<br />
{{Table3610|<br />
*Defines the model file (.pof) used as a shockwave for the 3D shockwaves.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave name:===<br />
{{Table3610|<br />
*Defines the name of the animation used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Dinky shockwave:===<br />
{{Table3610|<br />
*Dinky shockwave are used if the weapon is shot down before arming or if the conditions marked at '''Arm time''' and '''Arm distance''' are not reached before impact<br />
*It uses exactly same entries as the standard shockwaves<br />
*'''''+Shockwave damage:'''''<br />
*'''''+Shockwave damage type:'''''<br />
*'''''+Blast Force:'''''<br />
*'''''+Inner Radius:'''''<br />
*'''''+Outer Radius:'''''<br />
*'''''+Shockwave Speed:'''''<br />
*'''''+Shockwave Rotation:'''''<br />
*'''''+Shockwave Model:'''''<br />
*'''''+Shockwave Name:'''''}}<br />
<br />
<br />
===$Armor Factor:===<br />
*Multiplier for the damage done to armor<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Shield Factor:===<br />
*Multiplier for the damage done to shields<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Subsystem Factor:===<br />
*Multiplier for the damage done to subsystems<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Lifetime Min:===<br />
{{Table3610|<br />
*Defines the minimum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime Max:===<br />
{{Table3610|<br />
*Defines the maximum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime:===<br />
*Time before the standard primaries fizzle out and secondaries self destruct. Multiply this by the speed to get the range. If values are too low (below framerate) then the collision detection and graphic effects may suffer.<br />
*This field has no effect for the beams apart from weapon range and AI beam targeting with certain beam types<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Energy Consumed:===<br />
*The amount of energy each bolt drains firing ship. Has no effect on turretted weapons.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Cargo Size:===<br />
*Cargo size, is not used with non-ballistic primaries.<br />
*Amount of missiles available = Bank capacity / Cargo Size.<br />
*Syntax: '''''Float'''''<br />
<br />
===$Homing:===<br />
'''This option is exclusive to secondaries.'''<br />
<br />
Defines if the bolts/missiles in question is homing<br />
*The bolts of primaries will turn to face their target if this option is set to YES... but is otherwise the same as a normal bolt ( when the option is set to NO ).<br />
<br />
If set to NO, then following fields are not required in the table.<br />
<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
===='''+Type:'''====<br />
Defines the homing method<br />
*Syntax: '''''String''''', ''ASPECT'' or ''HEAT''<br />
{{Table3610| An additional option, ''JAVELIN'', has been added. This behaves like an aspect missile but automatically only locks onto the engines of a target, and only if the engines are in sight.}}<br />
<br />
<br />
===='''+Turn Time:'''====<br />
Determines how well the missile maneuvers. Is defined as the number of seconds it takes the missile to do a 360 degree circle<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===='''+View Cone:'''====<br />
'''Heat-seeking missiles only'''<br />
<br />
This is the width of the weapon's viewing cone, given in degrees. Objects outside this cone are effectively invisible to the missile. The value / 2 gives the angle from the missile's centerline to the edge of the viewing cone.<br />
*Syntax: '''''Float''''', degrees<br />
{{Table3610| Has been enabled also to aspect seekers as an option.}}<br />
<br />
<br />
===='''+Min Lock Time:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The minimum number of seconds to gain a target lock.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===='''+Lock Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
The number of pixels the aspect triangle moves per second while attempting lock-on.<br />
<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The number of pixels moved per second while attempting to catch up to the target.<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Penalty:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
Extra pixels to move after catching up. (Needs verification )<br />
**Syntax: '''''Integer''''', pixels<br />
<br />
<br />
===='''+Seeker Strength:'''====<br />
{{Table3610|<br />
Defines the seeking ability of the homing system. Default of heat seekers is 3.0 and for aspect seekers 2.0. Spoofing chance is defined as '''[[#$Countermeasure:|cm type effectiveness]]'''/'''seeker strength''' (missile must be within the countermeasures '''[[#$Countermeasure:|+Effective Radius:]]'''<br />
*Syntax: '''''Float''''', seeker strength}}<br />
<br />
===='''+Target Lead Scaler:'''====<br />
{{Table3611|<br />
Defines the type of pursuit course the missile tries to obtain.<br />
*Values < 0 give lag pursuit, values ~ 0 give pure pursuit, values > 0 give lead pursuit.<br />
*Syntax: '''''Float''''', default for heat seekers: 0, default for aspect or javelin seekers: 1.}}<br />
<br />
<br />
<br />
===$Swarm:===<br />
*The number of missiles to fire per volley if it's a swarm missile<br />
*Can be issued to Standard primaries also. Causes single part turrets to malfunction but causes multi part turrets to fire only on their barrel line. Can be used for 'burst fire weapons'. Does not work with player weapons.<br />
*Is incompatible with "Corkscrew" option.<br />
*Swarm will negatively affect the missile's ability to hit its target. Especially when fired off-bore.<br />
*Syntax: '''''Integer''''', number of shots in a swarm<br />
{{Table3610|<br />
*'''+SwarmWait:'''<br />
**Defines the time between weapons fired in a swarm<br />
**Syntax: '''''Float''''', seconds<br />
***Default: 0.150<br />
***Max: 0.5 (Resets to default if set over 0.5)}}<br />
<br />
===$Acceleration Time:===<br />
{{Table371|<br />
*Defines how long it takes for a secondary weapon to attain full speed. Takes precedence over $Free Flight Time (see below) in terms of the weapon's velocity, and affects both locked-on and dumbfired secondaries.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.0}}<br />
<br />
===$Velocity Inherit:===<br />
{{Table371|<br />
*Defines how much of the parent ship's velocity to inherit, if [[Ai_profiles.tbl#.24use_additive_weapon_velocity:]] is used.<br />
*Syntax: '''''Float''''', percents<br />
**Default: 100.0}}<br />
<br />
===$Free Flight Time:===<br />
{{Table3610|<br />
*Defines the free flight time of homing weapons. During this time weapon flies at 1/4 of its velocity + firing ships velocity in a straight line.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.25}}<br />
<br />
'''Note:''' due to dumbfires never changing their speed, using this on a dumbfire missile will have it stuck at freeflight speed even after the end of the freeflight time.<br />
<br />
===$Free Flight Speed:===<br />
{{Table3613|<br />
*Defines the speed that the weapon will be travelling at during the free flight segment (see above).<br />
*Syntax: '''''Float''''', Multiplier for the actual speed, minimum 0.01.<br />
**Default: 0.25<br />
{{Note| This feature was never implemented correctly and was removed in r8867. FSO currently parses but doesn't use the value, and prints a warning in the log saying that the value will not be used.}}<br />
}}<br />
<br />
===$PreLaunchSnd:===<br />
{{Table3613|<br />
*Defines the one-shot sound effect to play at the beginning of a firing stream. Currently only has an effect on primary weapons.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
**Default: No Sound}}<br />
<br />
===+PreLaunchSnd Min Interval:===<br />
{{Table3613|<br />
*Defines Minimum interval between when the player stops firing and the next time the pre-launch sound can play, as a limiter in case the player is pumping the trigger.<br />
*Syntax: '''''Integer''''', Minimum delay in milliseconds between the end of the previous firing sequence and the next time the pre-launch sound effect will be played.<br />
**Default: 0 (play pre-launch sound at the beginning of every firing sequence, if present)}}<br />
<br />
===$LaunchSnd:===<br />
*Corresponding sound effect when the weapon is launched.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$ImpactSnd:===<br />
*Sound the weapon makes when it hits a hull.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Disarmed ImpactSnd:===<br />
{{Table3610|<br />
*Sound the weapon makes when it hits a hull before being armed.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$FlyBySnd:===<br />
*The sound this weapon makes if it narrowly misses you. -1 is no sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]], usually -1<br />
<br />
<br />
===$TrackingSnd===<br />
{{Table3615|<br />
*The looping sound played when this weapon tracks a target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$LockedSnd===<br />
{{Table3615|<br />
*The sound played when this weapon has locked onto its target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$InFlightSnd===<br />
{{Table3615|<br />
*The looping sound played when the missile is currently flying.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Inflight sound type'''<br />
**Specifies when the in flight sound is played.<br />
**The value can be one of the following values which are matched case-insensitively:<br />
***''''''TARGETED'''''': The sound is played when the missile tracks a target<br />
***''''''UNTARGETED'''''': The sound is played when the missile is currently not tracking a target<br />
***''''''ALWAYS'''''': The sound is played always}}<br />
<br />
<br />
===$Model:===<br />
{{Table3610|<br />
*Defines used model file. Included for compatibility with countermeasures as they have been merged with weapons in the code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Rearm Rate:===<br />
*Defines the frequency that weapons are loaded to the ship<br />
*Syntax: '''''Float''''', How many times per second the weapons are loaded.<br />
**Example: 2.0 will reload every half second. 0.1 will load every ten seconds.<br />
<br />
===$Rearm Ammo Increment:===<br />
{{Table38|<br />
*Defines how many missiles or how much ballistic ammo is loaded per load sound.<br />
*Syntax: '''''Integer''''', how many bullets or missiles are loaded.}}<br />
<br />
<br />
===+Weapon Range:===<br />
*Defines the range to the target where the weapons under AI will start firing.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===+Weapon Min Range:===<br />
{{Table3610|<br />
*Defines the minimum range to the target where the weapons under AI will still fire.<br />
*Implemented before FS_Open 3.6.5<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Weapons.tbl#Weapons.tbl_Flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the weapon<br />
**Example: ( "Player allowed" "in tech database" )<br />
<br />
{{Table3610|<br />
*Can be followed by '''+override''' option in order to reset the weapon flags before parsing in the new ones<br />
*Using this option will erase all '''homing'''-related flags as well as '''swarm''', '''variable lead''', '''trail''', '''TAG''', and '''transparent''' settings in addition to the listed flags. All these should be set again - if they are required - when this option is used.<br />
<br />
**Syntax: '''''+override'''''}}<br />
<br />
<br />
===$Trail:===<br />
*This is used if you want your weapon to have a trail. Trail is often used only with secondaries though it works with standard primaries as well.<br />
*'''+Start Width:'''<br />
**How wide the head of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+End Width:'''<br />
**How wide the tail of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Start Alpha:'''<br />
**The opacity of the trail head.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+End Alpha:'''<br />
**The opacity of the trail tail.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+Max Life:'''<br />
**How long the trail lasts.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Bitmap:'''<br />
**The graphic file to use for the trail.<br />
**Syntax: '''''String''''', filename<br />
{{Table3611|<br />
*'''+Faded Out Sections:'''<br />
**Defines the number of the trail sections (counting from the leading edge) which are gradually faded out.<br />
**Syntax: '''''Integer''''', number of trail sections}}<br />
<br />
<br />
===$Icon:===<br />
*Loadout icon used in the weapons selection screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Anim:===<br />
*Green grid animation used on the weapons screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Collide Ship:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Collide Weapon:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
===$Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for impacts of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Impact Explosion'' and ''$Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
===$Impact Explosion:===<br />
*Impact explosion used. Must be defined in weapon_expl.tbl,<br />
*Syntax: '''''String''''', filename or ''none''<br />
<br />
<br />
===$Impact Explosion Radius:===<br />
*Radius of the defined impact explosion.<br />
*Syntax: '''''Float''''', meters, default 1.0<br />
<br />
<br />
===$Shield Impact Explosion Radius:===<br />
{{Table373|<br />
*Radius of the shield impact explosion, see [[Ships.tbl#.24Shield_Impact_Explosion:]].<br />
*Syntax: '''''Float''''', meters, defaults to value of $Impact Explosion Radius}}<br />
<br />
===$Dinky Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for Dinky (not armed) explosions of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Dinky Impact Explosion'' and ''$Dinky Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
<br />
===$Dinky Impact Explosion:===<br />
{{Table3610|<br />
*Same as Impact Explosion but for Dinky (not armed) explosions<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Dinky Impact Explosion Radius:===<br />
{{Table3610|<br />
*Same as Impact Explosion Radius but for Dinky explosions<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Piercing Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for piercing impacts.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then piercing impact options below are not valid!<br />
}}<br />
<br />
===$Piercing Impact Explosion:===<br />
{{Table3611|<br />
*Defines the effect used for events when weapon pierces the target<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Piercing Impact Radius:===<br />
{{Table3611|<br />
*Defines the base radius of the effect used for piercing weapon impacts<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles piercing the target<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Splash Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles splashing from the target (secondary piercing effects<br />
*Negative value causes the second batch or particles to splash to opposite direction<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Variance:===<br />
{{Table3611|<br />
*Defines the variance added to the particles<br />
*Values near 0 cause very little variance and values close to 1 cause extreme dispersal.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the lifetime of the effect for single frame effects<br />
*For multiple frame effects the lifetime is the lifetime of the animation used<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Particles:===<br />
{{Table3611|<br />
*Defines the number of particles released per impact<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Piercing Impact Draw Modifier:===<br />
{{Table3611|<br />
*Defines the multiplier applied to the ships piercing effect limit percentage<br />
*Syntax: '''''Float'''''}}<br />
*Option removed in 3.6.12. Use [[armor.tbl]] to finetune piercing effects.<br />
<br />
===$Inflight Effect:===<br />
{{Table38|<br />
*Sets the inflight [[Particle Effects|particle effect]] which is used when the laser is active. This is only used by laser weapons.<br />
*Syntax: '''''String''''', the particle effect name<br />
}}<br />
===$Freeflight Effect:===<br />
{{Table38|<br />
*Sets the [[Particle Effects|particle effect]] which is used when the missile is in the free flight phase. See [[#$Free Flight Time:|$Free Flight Time]] for more information.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Ignition Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is transitioning from free flight to homed or unhomed flight.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Homed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in homed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Unhomed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in unhomed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
<br />
===$Muzzleflash:===<br />
*Normally only with flak cannons.<br />
*Defines the muzzle flash the weapon uses<br />
*Syntax: '''''String''''', muzzleflash name, as defined in [[mflash.tbl]]<br />
<br />
<br />
===$EMP Intensity:===<br />
*If it has an EMP effect, how deeply it scrambles your electronics<br />
*Basically a percentage, a value of 250 results in a 25% chance of something getting scrambled each frame. <br />
*Maximum value of 500<br />
**Syntax: '''''Float'''''<br />
<br />
===$EMP Time:===<br />
**Duration of the EMP effect<br />
**Syntax: '''''Float''''', seconds<br />
<br />
===$Recoil Modifier:===<br />
{{Table373|<br />
*Multiplies the recoil force of a weapon by this value, use a value greater than 1.0 to increase the force, use a value between 1.0 and 0.0 to decrease.<br />
**Syntax: '''''Float''''' (defaults to 1.0)<br />
{{Note| The "apply recoil" weapon flag must be set for this to be valid. If the flag is not set, FSO will throw a warning and automatically set it at runtime.}}<br />
}}<br />
<br />
===$Leech Weapon:===<br />
**The amount of weapon energy to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Leech Afterburner:===<br />
**The amount of afterburner fuel to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Corkscrew:===<br />
{{Table3610|<br />
*Allow corkscrew parameters to be defined<br />
*'''+Num Fired:'''<br />
**Defines the number of weapons fired in sequence. Same as the standard swarm entry but for corkscrew missiles<br />
**Syntax: '''''Integer''''', number of missiles<br />
*'''+Radius:'''<br />
**Defines the radius used in the corkscrew motion<br />
**Syntax: '''''Float''''', meters<br />
*'''+Fire Delay:'''<br />
**Defines the delay between missile firings<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Counter rotate:'''<br />
**Defines if every other missile rotates to a different direction (clockwise / anticlockwise)<br />
**Syntax: '''''Boolean''''', ''0'' or ''1'', no or yes<br />
*'''+Twist:'''<br />
**Defines the speed of rotation movement on the radius of corkscrew motion.<br />
**Syntax: '''''Float''''', radians per second}}<br />
<br />
<br />
===$Electronics:===<br />
{{Table3610|<br />
*Defines the weapons effect against electronics. Requires [[weapons.tbl#"Electronics"|"electronics"]] flag. '''+New Style:''' and '''+Old Style:''' options are mutually exclusive.<br />
*'''+New Style:'''<br />
**Defines that the electronics use the new style which enables more options.<br />
*'''+Old Style:'''<br />
**Defines that the electronics use the old style. The old style was the way the D-Missile worked in Descent: FreeSpace.<br />
}}<br />
{{Table371|<br />
*'''+Area Of Effect'''<br />
**If specified, allows the electronics effect to apply to every ship hit by this weapon's blast or shockwave (the "Electronics" flag isn't necessary with this option).<br />
}}<br />
{{Table3610|<br />
*'''+Intensity:'''<br />
**May only be used with '''+New Style:''' electronics. '''''Has been deprecated'''''.<br />
**Syntax: '''''Float'''''<br />
*'''+Lifetime:'''<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Engine Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for engine subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Weapon Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for non-beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Turret Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Sensors Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for sensor subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Randomness Time:'''<br />
**Defines the randomness of duration target suffers from the electronics hit. A random number between 0 and this time will be added or subtracted from the disruption time.<br />
**Syntax: '''''Integer''''', milliseconds<br />
<br />
* Without any electronics parameters, a weapon with the "electronics" flag will default to the ''Old Style'' mode with a lifetime of 6000 milliseconds and a randomness of 4000 milliseconds. Thus any ship that gets hit can get disrupted for anywhere between 2 to 10 seconds.<br />
<br />
}}<br />
<br />
===$Spawn Angle:===<br />
{{Table3610|<br />
*Defines the cone (with an angle) where the spawned weapons appear. ''Value'' gives the angle from the missiles centerline. The maximum possible angle between any two child weapons would be ''Value*2''.<br />
*Spawn angle can be defined as many times as the carrier missile has child weapons defined for it (up to 5).<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Local SSM:===<br />
{{Table3610|<br />
*Defines the local SSM (Subspace Missile). In effect missile moves via subspace to a position close to the target and starts homing.<br />
*Weapon must be '''''aspect seeking missile''''' and must have '''''[[Weapons.tbl#"local ssm"|local ssm]]''''' flag.<br />
*'''+Warpout Delay:'''<br />
**Defines the time between the missile launch and the subspace jump.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warpin Delay:'''<br />
**Defines the time missile stays in subspace before exiting.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Stage 5 Velocity:'''<br />
**Defines the velocity of the missile after the subspace jump.<br />
**Syntax: '''''Float''''', meters per second<br />
*'''+Warpin Radius:'''<br />
**Defines how far from the SSM will appear from the outer radius of the target.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Lock Range:'''<br />
**Defines the maximum range where SSM can achieve target lock<br />
**Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Countermeasure:===<br />
<br />
*Defines the countermeasure effectiveness, radius, etc<br />
{{note| <br />
*Spoofing chance is defined as '''cm type effectiveness'''/'''[[#+Seeker Strength:|seeker strength]]''' (missile must be within the countermeasures '''+Effective Radius:''').<br />
*All countermeasures in the mission perform tests to spoof missiles for two frames after '''any countermeasure''' is created in the mission. No, this doesn't seem to make much sense.<br />
{{Table382|The global frame counter can be bypassed by using '''[[#+Pulse Interval:|pulse interval]]'''.}}<br />
*'''Provisional'''; Countermeasures are only given one chance to spoof any individual missile. This makes tuning seeker strength/effectiveness meaningful.<br />
**Previously some record of which countermeasures had been seen by each missile was kept, but it broke when multiple countermeasures were involved. A good chance of breaking with two countermeasures, and a guaranteed chance of breaking with three or more. This reduced the impact of the seeker strength/effectiveness ratio, but was partly cancelled out by the 2 frames thing.<br />
}}<br />
<br />
{{Table3610|<br />
===='''+Heat Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against heat seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
**Default: 1.0<br />
<br />
===='''+Aspect Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against aspect seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
*Default: 1.0<br />
<br />
===='''+Effective Radius:'''====<br />
*Defines the countermeasures effective radius<br />
*Syntax: '''''Float''''', meters<br />
**Default: 300.0<br />
}}<br />
<br />
{{Table373|<br />
====+Missile Detonation Radius:====<br />
*Defines the radius within which a missile homing on this countermeasure will trigger a detonation (see '''+Single Missile Kill:''')<br />
*Syntax: '''''Float''''', meters<br />
**Default: 40.0<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
<br />
====+Single Missile Kill:====<br />
*Defines if countermeasures will detonate only the missile homing on this countermeasure, or every missile within '''+Missile Detonation Radius:'''<br />
*Syntax: '''''Boolean'''''<br />
**Default: false<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
}}<br />
<br />
{{Table382|<br />
====+Pulse Interval:====<br />
*Defines how much time passes between each pulse of this countermeasure.<br />
*Syntax: '''''Float''''', milliseconds<br />
**Default: 0<br />
{{note| any value less than or equal to 0 means the countermeasure doesn't pulse, and uses the global 2-frame counter after any countermeasure is fired.}}<br />
}}<br />
<br />
===$BeamInfo:===<br />
*'''+Type:'''<br />
**Defines the type of beam in question. Beam types: 0 is a standard non-slashing type beam. 1 is a slashing type beam. 2 is a targeting beam that is used to trigger SSMs. 3 is a beam type that fires pulses in anti-fighter role and acts like type 0 beam in other roles. 4 is a beam that is restricted to what is directly in front of it, along turrets firepoints normal.<br />
**Syntax: '''''Integer''''',, only values from 0 to 4 are legal<br />
*'''+Life:'''<br />
**How long it lasts once the beam is actually firing.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Warmup:'''<br />
**Warmup time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warmdown:'''<br />
**Warmdown time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Radius:'''<br />
**Muzzle glow radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PCount:'''<br />
**Particles spewed every interval. ??<br />
**Syntax: '''''Integer'''''<br />
*'''+PRadius:'''<br />
**Particle radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PAngle:'''<br />
**Defines the random "cone" where the particles are generated<br />
**Syntax: '''''Float''''', angle of the cone<br />
*'''+PAni:'''<br />
**Animation used to represent the particles<br />
**Syntax: '''''String''''', filename<br />
*'''+Miss Factor:'''<br />
**The higher the numbers, the more likely that this beam will miss. One value for every difficulty level<br />
**Syntax: '''''Miss Factor''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5<br />
{{Table3613|<br />
*'''IFF specific miss factors'''<br />
**Identical to the preceding entry but IFF specific. Replace the <IFF> with the name of the IFF from [[iff_defs.tbl]]<br />
**Syntax: '''''+<IFF> Miss Factor:''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5}}<br />
*'''+BeamSound:'''<br />
**Corresponding looping sound effect when the beam is firing.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmupSound:'''<br />
**Corresponding sound effect when the beam is beam warmed up.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmdownSound:'''<br />
**Corresponding sound effect when the beam is warming down.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Muzzleglow:'''<br />
**Defines the bitmap used to create the muzzle glow<br />
**Syntax: '''''String''''', filename<br />
{{Table372|<br />
*'''+Directional Glow:'''<br />
**Defines the length to stretch the muzzleglow along the beam.<br />
**Syntax: '''''Float''''', length in meters, the muzzleglow is rendered along (in the same plane) as the beam instead of perpendicular to the camera.}}<br />
*'''+Shots:'''<br />
**Defines into how may invidual shots the type 3 (AAA) beams are divided. Note total firing is the same as the +Life:<br />
**Syntax: '''''Integer'''''<br />
*'''+ShrinkFactor:'''<br />
**What percentage of lifetime where beam starts shrinking (0.1 == 10% life left)<br />
**Syntax: '''''Float'''''<br />
*'''+ShrinkPct:'''<br />
**What percentage of max width we subtract per second<br />
**Syntax: '''''Float'''''<br />
{{Table3610|<br />
*'''+Range:'''<br />
**Defines the maximum range where the beam still has any effect.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Attenuation:'''<br />
**Defines the point where the damage caused by the beam starts to attenuate. At maximum range damage is zero.<br />
**Syntax: '''''Float''''', from 0 - firing point to 1 - no effect<br />
***Default: 1}}<br />
{{Table3611|<br />
*'''+BeamWidth:'''<br />
**Defines the width of the beam for collision test purposes instead of using widest beam section.<br />
**Syntax: '''''Float''''<br />
{{Table38|<br />
*'''+Beam Flash Particle Effect:'''<br />
**Specifies the beam flash [[Particle Effects|particle effect]].<br />
**Syntax: '''''String''''', particle effect name<br />
**If this is specified then '''+Beam Flash Effect''' and '''+Beam Flash Radius''' are not valid options!<br />
}}<br />
*'''+Beam Flash Effect:'''<br />
**Defines the additional impact flash effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Flash Radius:'''<br />
**Defines the radius for the additional impact flash effect.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect:'''<br />
**Defines the beam piercing (bursting flames) effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Piercing Radius:'''<br />
**Defines the average radius used for the beam piercing effects.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Velocity:'''<br />
**Defines the base velocity for the piercing effects<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Splash Effect Velocity:'''<br />
**Defines the base velocity for the secondary piercing effects<br />
**Negative velocity causes the particles to move to opposite direction<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Variance:'''<br />
**Defines the variances of the particles from the main path<br />
**Values close to 0 cause minimum variance, higher values cause higher variances<br />
**Syntax: '''''Float'''''}}<br />
<br />
*'''$Section:'''<br />
**Beams are made up of up to five sections layered atop one another to create the effect. Each section has its own parameters.<br />
{{Table3610|<br />
:*'''+Index:'''<br />
:**Field used to define with [[Modular Tables]] the beam section which is edited.<br />
:**Only needed when editing beams that already exist in other tables.<br />
:**Syntax: '''''Integer''''', index number legal values are from 0 to 5<br />
:*'''+remove'''<br />
:**Removes the set beam section.<br />
:*'''+nocreate'''<br />
:**Does not create new section for the beam}}<br />
<br />
:*'''+Width:'''<br />
:**Width of the section<br />
:**Syntax: '''''Float''''', meters<br />
:*'''+Texture:'''<br />
:**Texture for the section<br />
:**Syntax: '''''String''''', filename<br />
:*'''+RGBA Inner:'''<br />
:**Defines the color and transparency of the center of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 255 255 255 255<br />
:*'''+RGBA Outer:'''<br />
:**Defines the color and transparency of the edges of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 150 150 150 10<br />
:*'''+Flicker:'''<br />
:**Defines how much the section flickers<br />
:**Syntax: '''''Float''''', value from 0 to 1<br />
:*'''+Zadd:'''<br />
:**Defines the 'thickness' of the section. The higher the Zadd, the closer the section appears to be. (Zadd can be safely ignored; it actually does nothing.)<br />
:**Syntax: '''''Float'''''<br />
{{Table3610|<br />
:*'''+Tile Factor:'''<br />
:**Defines the beam texture tiling factor. Second number defines the tiling type. Type 0 tiles the graphic in the beam as many times as defined by the 1st number. Type 1 uses the 1st value as the lenght of the tile.<br />
:**Syntax: '''''Float''''', '''''Integer'''''<br />
:*'''+Translation:'''<br />
:**Defines the speed of translation of the beam, a positive value moves from the impact point to the firing point, while a negative value moves away from the firing point towards the impact point. Measured in tiles per second, where the tile count is defined in the "+Tile Factor:" field above.<br />
:**Syntax: '''''Float'''''}}<br />
<br />
===$Pspew:===<br />
{{Table3610|<br />
*Defines a particle spew effect for the given weapon<br />
}}{{Table3613|<br />
*'''+Index:'''<br />
**indicates which spewer to add/edit/delete. may be 0-3. used for xmt compatibility.<br />
**Syntax: '''''Integer'''''<br />
*'''+Remove'''<br />
**removes spewer at +Index: (requires +index:)<br />
*'''+Type:'''<br />
**type of particle spew<br />
**Syntax: '''''String'', Default, Helix, Sparkler, Ring, or Plume '''<br />
}}{{Table3610|<br />
*'''+Count:'''<br />
**Defines how many particles are spawn when they are ready to be created (at each +Time: interval)<br />
**Syntax: '''''Integer'''''<br />
*'''+Time:'''<br />
**Defines the time in milliseconds between next particle(s) spewed<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Vel:'''<br />
**Defines the created particles velocity as percentage of the weapons velocity<br />
**Syntax: '''''Float'''''<br />
*'''+Radius:'''<br />
**Defines the size of the created particles<br />
**Syntax: '''''Float''''', meters<br />
*'''+Life:'''<br />
**Defines how long the particles last.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Scale:'''<br />
**Defines the particle spread. Small value will make particles group together<br />
**typically controls how big the effect is or how fast it moves away from the weapon path on a perpendicular (or sometimes arbitrary) axis. <br />
**helical spews and rings use this value to control how fast the particle helix moves away from the central axis.<br />
**sparklers use this to control how fast particles move away from the spawn point, in any direction<br />
**plumes use this to set the diameter of the disk across which particles are spawned<br />
**Syntax: '''''Float'''''<br />
}}{{Table3613|<br />
*'''+Z Scale:'''<br />
**for sparklers, allows you to elongate the effect to surround other effects, like lasers. essentially a length multiplier<br />
**for plume, it multiplies against +scale to set the plume to spread or converge, zero would be full convergence, 1 would be straight flight, and bigger numbers would cause particles to diverge from the disk.<br />
**Syntax: '''''Float'''''<br />
*'''+Rotation Rate:'''<br />
**used only by helical spews, controls how many rotations per second the helix makes<br />
**Syntax: '''''Float'', may be negative, useful for setting up 2 spews that spin in opposite directions'''<br />
*'''+Offset:'''<br />
**position of effect with regards to the weapon center<br />
**Syntax: '''''Vector'''''<br />
*'''+Initial Velocity:'''<br />
**to indicate both direction and speed of particle effects regards to the weapon velocity and +scale:<br />
**Syntax: '''''Vector'''''<br />
}}{{Table3610|<br />
*'''+Bitmap:<br />
**Defines the animation used to create the particle spew effect<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Tag:===<br />
*Allowed for secondary weapons<br />
{{Table3610|<br />
*Allowed for primary weapons and secondary weapons}}<br />
<br />
*Sets this weapon as a TAG missile, level 1, 2, or 3. The second number is the duration in seconds.<br />
*TAG Level 1 will illuminate hidden targets such as stealth fighters or ships normally obscured by nebula conditions.<br />
*TAG Level 2 illiminates targets much like TAG Level 1, but turrets will prefer to shoot at them over other ships.<br />
*TAG Level 3 has no effect in retail.<br />
{{Table3610|<br />
*TAG Level 3 allows the weapon to trigger [[Weapon.tbl#$SSM:|SSMs]]}}<br />
<br />
*Syntax: '''''Integer''''' '''''Float''''', TAG level and seconds respectively<br />
*'''Note''': TAG will not trigger unless the weapon in question has a non-zero damage value.<br />
<br />
===$SSM:===<br />
{{Table3610|<br />
*Defines the weapons SSM index number.<br />
*Requires [[Weapons.tbl#$Tag:|TAG level 3]] or a targeting beam.<br />
*Syntax: '''''Integer'''''}}<br />
{{Table373|<br />
*Now also accepts SSM strike names.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$FOF:===<br />
{{Table3610|<br />
*Defines the field of fire for the weapon. Causes weapon to fire into a firing cone instead of direct firing line thus causing light inaccuracy<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
====+FOF Spread Rate:====<br />
{{Table37|<br />
*Defines the spread rate of the field of fire. This controls how the FOF increases over time while the weapon is firing.<br />
*Syntax: ''''''Float'''''', rate}}<br />
<br />
====+FOF Reset Rate:====<br />
{{Table37|<br />
*Rate at which the spread decreases if the weapon isn't firing.<br />
*Syntax: ''''''Float'''''', rate<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
====+Max FOF:====<br />
{{Table37|<br />
*The maximum FOF. After the FOF reaches this value it will not increase any further.<br />
*Syntax: ''''''Float'''''', degrees. Must be greater than or equal to zero.<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
===$Shots:===<br />
{{Table3610|<br />
*Defines the number of shots every time the weapon is fired.<br />
*Works only for primary weapons<br />
*Syntax: '''''Integer''''', number of shots}}<br />
<br />
<br />
===$decal:===<br />
{{Table3610|<br />
*Defines impact decals if they are in use<br />
*'''+texture:'''<br />
**Defines the texture used for impact decals (can use '''''-burn''''' and '''''-glow''''' textures)<br />
**Syntax: '''''String''''', filename<br />
*'''+backface texture:'''<br />
**Defines ???<br />
**Syntax: '''''String''''', filename<br />
*'''+radius:'''<br />
**Defines the size of the impact decals on target<br />
**Syntax: '''''Float''''', meters<br />
*'''+burn time:'''<br />
**Defines the time the '''''-burn''''' texture appears on the target<br />
**Syntax: '''''Integer''''', milliseconds}}<br />
{{Table3613|<br />
*Feature removed - table parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Transparent:===<br />
{{Table3610|<br />
*Defines weapon effect as transparent. Enables optional fields for 'alpha animations'<br />
*'''+Alpha:'''<br />
**Defines the strenght of the alpha (transparency). And also the maximum value for the alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Min:'''<br />
**Defines the minimum alpha value for alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Cycle:'''<br />
**Defines the change in alpha per frame, between '''Alpha''' and '''Alpha Min''' values<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Hitpoints:===<br />
{{Table3611|<br />
*Defines the amount of hitpoints a weapon has.<br />
*Weapons with '''"bomb"''' flag have 50 hitpoints by default<br />
*Giving weapon hitpoints makes it possible for the weapon to be shot down or be destroyed by EMP.<br />
**Syntax: '''''Integer'''''<br />
}}<br />
<br />
===$Armor Type:===<br />
{{Table3613|<br />
*REQUIRES ADDITIONAL TABLE. Defines the armor type for the weapon. This works exactly like ship armor types.<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]<br />
}}<br />
<br />
===$Burst Shots:===<br />
{{Table3611|<br />
*Defines the number of shots in a burst<br />
*Shots in a burst use shorter ( '''$Burst Delay:''' ) delay than usually<br />
**Syntax: '''''Integer'''''}}<br />
<br />
===$Burst Delay:===<br />
{{Table3611|<br />
*Defines the time in milliseconds between the shots in a burst<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Burst Flags:===<br />
{{Table3611|<br />
*Defines the flags used to define the burst firing behaviour<br />
**Syntax: ( '''''String''''' '''''String''''' ), list of flags<br />
**Available burst flags:<br />
***'''"fast firing"''', acts as if '''same turret cooldown''' flag would be used between the shots in the burst.<br />
***'''"random length"''', makes AI to fire burst of random length (from 1 to burst shots).}}<br />
<br />
<br />
===$Thruster Flame Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the modeled thruster of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the glow type effect of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Radius Factor:===<br />
{{Table3611|<br />
*Defines the radius multiplier for the thruster's glow type effect<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Substitute:===<br />
{{Table3613|<br />
Defines a pattern of ammo to substitute for primary or secondary weapons. '''$Substitute:''' can be repeated any number of times (so you could make something like a rainbow laser with several ammo substitutions, for example). If neither ''+period'' or ''+index'' is specified, it is assumed to be equivalent to ''+index: '''0'''''.<br />
<br />
*Syntax: '''''Weapon Name'''''<br />
*'''Swarm missiles act in a strange way when used with $Substitute, use at your own risk.'''}}<br />
<br />
{{Table3615|<br />
Turrets can use $Substitute as well.<br />
}}<br />
====+period:====<br />
{{Table3613|<br />
FSO will substitute '''Weapon Name''' every ''period'' shots.<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
=====+offset:=====<br />
{{Table3613|<br />
A suboption of +period, offsets the substitute pattern according to the launched ammo. For example, an offset of 3 and a period of 4 will substitute on the 3rd ammo launched, and then every 4th ammo after that.<br />
<br />
*Syntax: '''''Positive Integer'''''}}<br />
<br />
====+index:====<br />
{{Table3613|<br />
FSO will substitute the '''Weapon Name''' at firepoint ''index'' in the shot pattern. Similar to carefully using both +period and +offset, but is not affected by ships with different firepoint numbers. i.e. Firepoint ''index'' will always have the substitution, while +period and +offset will cycle at different rates dependant on the number of firepoints.'''<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
<br />
==Weapons.tbl Flags==<br />
<br />
<br />
==="Electronics"===<br />
*Will seize up the weapons and engines systems of any ship for a short period of time.<br />
<br />
<br />
==="Spawn ''Name'',''Value''"===<br />
*Will spawn the specified number of defined missiles upon detonation.<br />
{{Table3610|<br />
*Multiple spawn types can be defined for a single 'carrier' weapon up to maximum of 5 different weapons}}<br />
<br />
==="Remote Detonate"===<br />
*Can be triggered remotely via a second press on the trigger<br />
<br />
<br />
==="Big Ship"===<br />
*These weapons cannot be mounted on small ships like fighters, bombers, sentry guns etc.<br />
<br />
<br />
==="Huge"===<br />
*Allows this weapon to do the final 10% damage to a ship with the "Big Damage" flag. Also the AI will not try to hit fighters with it, but only if the weapon is in a turret or is a secondary. If the weapon is a primary in a fighter then there are no targeting restrictions. See [[Weapons.tbl#.22capital.2B.22|capital+]] instead.<br />
<br />
==="Supercap"===<br />
*Allows this weapon to do the final 75% damage to a ship with the "supercap" flag.<br />
<br />
<br />
==="Bomber+"===<br />
*The AI will prefer to use this weapon against bombers<br />
<br />
<br />
==="child"===<br />
*Cannot be set as a weapon on any ship, but is instead a child of a weapon. Usually defined with "Spawn ''Name'',''Value''"<br />
<br />
<br />
==="Bomb"===<br />
*Makes this weapon targetable with the B key, and the AI prefers to use it against large ships<br />
<br />
<br />
==="No Dumbfire"===<br />
*Missile will not fire without a lock<br />
<br />
<br />
==="in tech database"===<br />
*Has the weapon in the tech database at the start of the campaign<br />
<br />
<br />
==="Player allowed"===<br />
*Allows this weapon as a player weapon.<br />
{{Table3610|<br />
*'''EXTREMELY IMPORTANT NOTE:'''<br />
**Whenever you plan to use a weapon as a player one in your campaign or missions, '''USE THIS FLAG'''.<br />
**Not using it can cause problems within fs_open and it's a BAD MOD DESIGN.<br />
**In the future, fs_open will maybe be able to avoid these problems but, nevertheless, it's still a BAD DESIGN.<br />
**As another possible example: be careful to update "retail" tables if you plan to use Shivan weapons in player fighters.}}<br />
<br />
==="Particle Spew"===<br />
*Makes the weapon projectile spew out particles<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Pspew:|Particle Spew parameters]]}}<br />
<br />
<br />
==="EMP"===<br />
*This weapon will have an EMP effect on any ship within the blast radius<br />
*Can be defined with [[Weapons.tbl#$EMP_Intensity:|EMP Intensity]] and [[Weapons.tbl#$EMP_Time:|EMP Time]]<br />
<br />
<br />
==="Esuck"===<br />
*Drains the target's energy banks<br />
*Can be defined with [[Weapons.tbl#$Leech_Weapon:|Leech Weapon]] and [[Weapons.tbl#$Leech_Afterburner:|Leech Afterburner]]<br />
<br />
<br />
==="Flak"===<br />
*Makes this weapon a [[weapons.tbl#Flak_Guns|flak gun]]<br />
<br />
<br />
==="Corkscrew"===<br />
*Makes this weapon spiral AND swarm 4.<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Corkscrew:|Corkscrew parameters]]}}<br />
<br />
<br />
==="Shudder"===<br />
*Makes your ship shudder while you're firing the weapon<br />
<br />
<br />
==="lockarm"===<br />
*Requires a target lock in order to arm its warhead. In other words weapon causes less damage if it hits the target without target lock.<br />
<br />
<br />
==="beam"===<br />
*Makes this weapon a [[weapons.tbl#Beam Cannons|beam cannon]]<br />
<br />
<br />
==="stream"===<br />
* Does nothing<br />
<br />
==="puncture"===<br />
*Reduces hull damage by 75%<br />
The AI will prefer these weapons for anti-subsystem use<br />
<br />
==="countermeasure"===<br />
{{Table3610|<br />
*Defines the weapon as a countermeasure}}<br />
<br />
<br />
==="Ballistic"===<br />
{{Table3610|<br />
*Defines the weapon as a ballistic weapon that needs ammunition.<br />
*Make sure you define the size and reload rate for ballistic weapons}}<br />
<br />
<br />
==="pierce shields"===<br />
{{Table3610|<br />
*Causes weapons to penetrate shield without causing damage to it.}}<br />
<br />
<br />
==="no pierce shields"===<br />
{{Table3610|<br />
*Prevents weapons (beams) from piercing shields causing shields to be damaged by weapons first.}}<br />
<br />
<br />
==="local ssm"===<br />
{{Table3610| }}<br />
<br />
<br />
==="tagged only"===<br />
{{Table3610|<br />
*Weapon can only be fired at tagged targets}}<br />
<br />
<br />
==="beam no whack"===<br />
{{Table3610|<br />
*Disables beam whacking (push). Practically same as setting beam mass to zero.}}<br />
<br />
<br />
==="cycle"===<br />
{{Table3610|<br />
*Causes weapon to alternate between firing points}}<br />
<br />
<br />
==="small only"===<br />
{{Table3610|<br />
*Causes AI to use the weapon only on small targets (fighters, bombers etc.)}}<br />
<br />
<br />
==="same turret cooldown"===<br />
{{Table3610|<br />
*Forces the turrets to fire on the designated rate of fire on all difficulty levels and all AI levels}}<br />
<br />
<br />
==="apply no light"===<br />
{{Table3610|<br />
*Prevents light from being applied to the weapon model.}}<br />
<br />
==="training"===<br />
{{Table3610|<br />
*Sets weapon to be of training weapon type. ?}}<br />
<br />
==="smart spawn"===<br />
{{Table3611|<br />
*Forces turret fired spawn weapon of this type to be fired like normal weapons.}}<br />
<br />
==="inherit parent target"===<br />
{{Table3611|<br />
*Sets spawned 'child' weapons to use parent weapon's target.}}<br />
<br />
==="no emp kill"===<br />
{{Table3611|<br />
*Defines the weapon (with hitpoints) to be immune to automatic EMP destruction.}}<br />
<br />
==="untargeted heat seeker"===<br />
{{Table3611|<br />
*Defines the weapon as a heatseeker type missile which acquires its target by itself.}}<br />
<br />
==="no radius doubling"===<br />
{{Table3611|<br />
*Prevents weapon radius from being doubled when doing collision test. Makes bombs harder to intercept.}}<br />
<br />
==="no subsystem homing"===<br />
{{Table3611|<br />
*Prevents weapon from acquiring a subsystem as its target. Missile homing points are spread over the target ship.}}<br />
<br />
==="no lifeleft penalty"===<br />
{{Table3611|<br />
*Prevents weapon lifetime from being penalized if the angle to the target is too big.}}<br />
<br />
==="can be targeted"===<br />
{{Table3611|<br />
*Allows weapon to be targeted by player. Does not influence AI}}<br />
<br />
==="show on radar"===<br />
{{Table3611|<br />
*Allows weapon to be visible on the radar}}<br />
<br />
==="show friendly on radar"===<br />
{{Table3611|<br />
*Allows friendly, otherwise visible to radar weapon, to be visible on player radar}}<br />
<br />
==="capital+"===<br />
{{Table3613|<br />
*Tells AI to use this weapon only on capital ships}}<br />
<br />
==="chain external model fps"===<br />
{{Table3613|<br />
*Tells game to keep switching external model firingpoints when firing}}<br />
<br />
==="external model launcher"===<br />
{{Table3613|<br />
*Tells game that the external model is a launcher so that it would be kept static without loading motion}}<br />
<br />
==="takes blast damage"===<br />
{{Table3613|<br />
*Weapon takes damage from weapon blasts}}<br />
<br />
==="takes shockwave damage"===<br />
{{Table3613|<br />
*Weapon takes damage from shockwaves}}<br />
<br />
==="ciws"===<br />
{{Table3615|<br />
*Weapon can deal shockwave/blast damage to bombs, regardless of whether the target weapons have the "take blast/shockwave damage" flags.}}<br />
<br />
==="render flak"===<br />
{{Table3615|<br />
*Normally, flak shells are not rendered. This flag switches rendering on for those weapons.}}<br />
<br />
==="anti-subsystem beam"===<br />
{{Table3615|<br />
*Beam weapons with this flag can target subsystems on enemy ships, just like normal weapons.}}<br />
<br />
==="no primary linking"===<br />
{{Table3615|<br />
*Primary weapons with this flag can not be linked with other weapons.}}<br />
<br />
==="same emp time for capships"===<br />
{{Table37|<br />
*capships affected by this weapon will use the tabled EMP time rather than the fixed retail value (7.5 secs)}}<br />
<br />
==="no primary linked penalty"===<br />
{{Table371|<br />
*Primary weapons with this flag do not incur the retail linked fire penalty}}<br />
<br />
==="no homing speed ramp"===<br />
{{Table371|<br />
*Locked homing weapons will not perform the standard 1 second long acceleration when fired. Note that use of $Acceleration Time is '''not''' affected by this flag.}}<br />
<br />
==="pulls aspect seekers"===<br />
{{Table371|<br />
*If an aspect seeker is grabbed by this countermeasure the missile will follow the countermeasure instead of going into dumbfire mode.<br />
'''Only valid for countermeasures!'''}}<br />
<br />
==="turret interceptable"===<br />
==="fighter interceptable"===<br />
==="interceptable"===<br />
{{Table371|<br />
*Allows turrets/fighters/both (respectively) to shoot at this weapon without requiring it to be a bomb. If this is the first time this weapon has been defined, it also gives it a default of 25 hitpoints so that it can be shot down.<br />
'''If you use a TBM to give this flag to an existing weapon, you'll need to specify hitpoints manually (unless you want it to be unkillable but still draw defensive fire).'''}}<br />
<br />
==="apply recoil"===<br />
{{Table373|<br />
*A ship that fires a weapon with this flag will experience a recoil effect, slowing the ship down and, with lighter strikecraft, inducing some rotation if the firing points are offset from the center of mass.<br />
'''Do not use this with MVPs or retail ships unless you increase their density to 10 or use either $Recoil Modifier: in weapons.tbl or $Ship Recoil Modifier in ships.tbl. This is to avoid exaggerated effects due to retail models having manually defined masses.'''}}<br />
<br />
==="don't spawn if shot"===<br />
{{Table373|<br />
*Prevents parent weapons from spawning children in the even of the parent weapon being shot down.}}<br />
<br />
==="die on lost lock"===<br />
{{Table373|<br />
*Aspect seeking missiles (only, not heat seekers) will detonate upon losing their lock. Currently they only lose lock if decoyed by a countermeasure, AND "pulls aspect seekers" or similar is not set. The detonation will use their "dinky" explosion (i.e. same as if ran out of lifetime).}}<br />
<br />
==Countermeasures==<br />
*Usually not altered. Only one can exist<br />
{{Table3610|<br />
*More than one can exist}}<br />
<br />
<br />
===$Name:===<br />
*Name of the countermeasure<br />
*Syntax: '''''String''''', name<br />
<br />
<br />
===$Velocity:===<br />
*Defines the speed of the countermeasure, relative to the ship.<br />
*Syntax: '''''Float''''', meter per second<br />
<br />
===$Fire Wait:===<br />
*Definies the minumum time between the countermeasure launches<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===Lifetime===<br />
*Countermeasure's life time is defined between with minimum and maximum lifetime<br />
*'''$Lifetime Min:'''<br />
**Syntax: '''''Float''''', seconds<br />
*'''$Lifetime Max:'''<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$LaunchSnd:===<br />
*Defines the sound for the countermeasure launch<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Model:===<br />
*Defines the used model file (.pof)<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
==Player Weapon Precedence==<br />
*First the primary weapons are defined, from most powerful to least powerful, and then the same for secondaries<br />
*Syntax: ( '''''"String" "String"'''''), names of the weapons<br />
*Example:<br />
<br />
<pre><br />
$Player Weapon Precedence: (<br />
"UD-8 Kayser"<br />
"Prometheus R"<br />
"Subach HL-7"<br />
"Harpoon"<br />
"Tempest"<br />
"Rockeye" )<br />
</pre><br />
<br />
==Sample==<br />
<br />
<pre><br />
#Primary Weapons<br />
<br />
$Name: @Subach HL-7<br />
+Title: XSTR("GTW Subach HL-7", 3243)<br />
+Description:<br />
XSTR( "Standard Issue<br />
Level 3 Hull Damage<br />
Level 2 Shield Damage", 3244)<br />
$end_multi_text<br />
+Tech Title: XSTR("Subach HL-7", 146)<br />
+Tech Anim: Tech_Subach_HL-7<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: none<br />
@Laser Bitmap: newglo9<br />
@Laser Glow: 2_laserglow03<br />
@Laser Color: 250, 0, 0<br />
@Laser Color2: 0, 0, 250<br />
@Laser Length: 10.0<br />
@Laser Head Radius: 0.90<br />
@Laser Tail Radius: 0.90<br />
$Mass: 0.2<br />
$Velocity: 450.0<br />
$Fire Wait: 0.2<br />
$Damage: 15<br />
$Armor Factor: 0.9<br />
$Shield Factor: 0.7<br />
$Subsystem Factor: 0.3<br />
$Lifetime: 2.0<br />
$Energy Consumed: 0.20<br />
$Cargo Size: 0.0<br />
$Homing: NO<br />
$LaunchSnd: 76<br />
$ImpactSnd: 85<br />
$Flags: ( "in tech database"<br />
"player allowed"<br />
"stream")<br />
$Icon: iconSD4<br />
$Anim: SD4<br />
$Impact Explosion: none<br />
<br />
#End<br />
<br />
<br />
#Secondary Weapons<br />
<br />
$Name: EMP Adv.<br />
+Title: XSTR("GTM-14 EMP Adv.", 3396)<br />
+Description:<br />
XSTR( "Advanced Missile<br />
Electromagnetic Pulse Weapon<br />
General Purpose Suppression", 3397)<br />
$end_multi_text<br />
+Tech Title: XSTR("GTM-14 EM Pulse Adv.", 3398)<br />
+Tech Anim: Tech_EMP<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: EMPulse2.pof<br />
$Mass: 15.0<br />
$Velocity: 275.0<br />
$Fire Wait: 2.0<br />
$Damage: 45<br />
$Blast Force: 20.0<br />
$Inner Radius: 80.0<br />
$Outer Radius: 300.0<br />
$Shockwave Speed: 120.0<br />
$Armor Factor: 1.0<br />
$Shield Factor: 0.8<br />
$Subsystem Factor: 0.5<br />
$Lifetime: 5.0<br />
$Energy Consumed: 0.0<br />
$Cargo Size: 4.0<br />
$Homing: YES<br />
+Type: ASPECT<br />
+Turn Time: 1.0<br />
+Min Lock Time: 2.0<br />
+Lock Pixels/Sec: 70<br />
+Catch-up Pixels/Sec: 100<br />
+Catch-up Penalty: 30<br />
$LaunchSnd: 118<br />
$ImpactSnd: 88<br />
$FlyBySnd: -1<br />
$Rearm Rate: 2.0<br />
$Flags: ( "player allowed"<br />
"EMP")<br />
$Trail:<br />
+Start Width: 0.25<br />
+End Width: 0.75<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.5<br />
+Bitmap: MissileTrail04<br />
$Icon: iconEMPulse<br />
$Anim: ecm<br />
$Impact Explosion: ExpMissileHit1<br />
$Impact Explosion Radius: 10.0<br />
$EMP Intensity: 375.0<br />
$EMP Time: 20.0<br />
<br />
#End<br />
<br />
$Player Weapon Precedence: (<br />
"Subach HL-7"<br />
"EMP Adv." )<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Weapons.tbl&diff=58814
Weapons.tbl
2019-08-05T14:58:26Z
<p>Cyborg17: /* $Rearm Rate: */</p>
<hr />
<div>{{TableVersionGit|2017-08-25|2039815}}<br />
<br />
The '''weapons.tbl''' defines all of the weapon classes used in FSO.<br />
<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-wep.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==Introduction==<br />
The weapons.tbl is responsible for defining the behavior of the numerous weapon effects used in FSO, including the amount of damage dealt, the firing rate, and graphical effects.<br />
<br />
This wiki page goes over all of the entries used exclusively in the weapons.tbl file. Hyperlinks to individual weapon creation/editing tutorials are provided when appropriate.<br />
<br />
<br />
<br />
==Special Case Weapons==<br />
===Beam Cannons===<br />
'''REQUIRES:'''<br />
*'''"beam"''' flag<br />
*'''[[weapons.tbl#$BeamInfo:|$BeamInfo:]]'''<br />
<br />
See also: [http://www.hard-light.net/wiki/index.php/Tutorial_-_Beam_Weapons Tutorial - Beam Weapons]<br />
<br />
<br />
===Flak Guns===<br />
'''REQUIRES:'''<br />
*'''"flak"''' flag<br />
*'''"particle spew"''' flag<br />
*Must have inner and outer radius defined to have any effect.<br />
*A '''.pof''' model must be defined ( usually '''Hornet.pof''' )<br />
**Note: the model is not actually used... Instead, it uses [[Weapons.tbl#$Pspew:|particle spew]]. Trails may also be added.<br />
<br />
<br />
<br />
==General Format==<br />
*The weapons table consist of several sections<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>'''End''' before the next section.<br />
**<nowiki>#</nowiki>'''Primary Weapons'''<br />
***Defines all '''standard primaries weapons''' as well as '''beam cannons''' and '''flak cannons'''.<br />
**<nowiki>#</nowiki>'''Secondary Weapons'''<br />
***Defines all '''secondary weapons'''.<br />
**<nowiki>#</nowiki>'''Beam Weapons'''<br />
***I haven't got any ideas for this one.<br />
**<nowiki>#</nowiki>'''[[Weapons.tbl#Countermeasures|Countermeasures]]'''<br />
***Defines the used countermeasure.<br />
**'''$Player Weapon Precedence'''<br />
***Player Weapon Precedence is used in weapon selection when a default specified by the mission designer is not available to the player. The next weapon on the list is used in its place (assuming that weapon is allowed for the player).<br />
<br />
==Core Table==<br />
<br />
<br />
===$Name:===<br />
*This is the name of the weapon. If it's going to be used by the player, keep it under 12 characters so it doesn't spill over the HUD box.<br>Two special characters can be used in the name: '''#''' and '''@'''. Their usage details are the very same than inside the [[Ships.tbl#.24Name:_2|$Name field from Ships.tbl]].<br />
*Syntax: '''''String'''''<br />
<br />
<br />
====+nocreate====<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in Weapons.tbl or in earlier parsed *-wep.tbm files) by the time the *-wep.tbm is read.}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3611|<br />
*An alternative name that can be referenced instead of $Name:<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Subtype:===<br />
{{Table3610| <br />
Specifies the weapon 's subtype. Overrides the default subtype as specified by the #-section it is in (#Primary, #Secondary, #Beam Weapon, etc.).<br />
<br />
<br />
{{Note|<br />
:Since the weapon subtype is already specified by the #-section it is in, this option is not particularly useful when the weapon is inside a #Primary or #Secondary section. However, it may be used to specify the weapon slot it uses on fighters/bombers for weapons that are normally capship only (such as beam cannons).}} <br />
<br />
<br />
*Syntax: '''''String'''''<br />
*Valid Entries: <br />
:Primary<br />
:Secondary}}<br />
<br />
===+Title:===<br />
*This is the title of the weapon in the Weapons loadout screen. Only needed for player allowed weapons. Title may be anything. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Description:===<br />
*This is the description you see in the weapons loadout screen. Again, these aren't based on any hard numbers, just approximations. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''Standard Issue<br />
''Level 3 Hull Damage<br />
''Level 2 Shield Damage''", -1)<br />
$end_multi_text<br />
</pre><br />
<br />
===+Tech Title:===<br />
*Title of the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Tech Anim:===<br />
*Animation used for the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: '''''String''''', animation filename<br />
**Example: ''Tech_Subach_HL-7''<br />
<br />
<br />
===+Tech Description:===<br />
*Descriptive text you see in the tech room. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''The Subach-Innes HL-7...''", 3245)<br />
$end_multi_text<br />
</pre><br />
<br />
===$Tech Model:===<br />
{{Table3610|<br />
*Defines model used in wing loadout screen for the weapon. 3D weapon models in the tech room have not yet been implemented.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
====+Closeup_Pos:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. The position of the camera relative to the model center.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively}}<br />
<br />
====+Closeup_Zoom:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians}}<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: '''''String''''', either "FS1", or "Off". This defaults to the FS2 effect.<br />
}}<br />
<br />
===$HUD Image:===<br />
{{Table3610|<br />
*Defines the picture used to represent the weapon in HUD loadout list<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Model File:===<br />
*Filename of the model file (.pof) at data/models folder. Additional fields beginning from '''''@Laser Bitmap:''''' and ending to '''''@Laser Tail Radius:''''' are not needed if a model has been defined for the weapon.<br />
*Standard primaries and beam cannons do not use specific models so for those the name is 'none'.<br />
*Flak weapons and secondaries use models, though the exact model is not important with the flak weapons.<br />
*Syntax: '''''String.pof''''' or ''none'', model filename<br />
**Example: ''none''<br />
<br />
<br />
===$POF target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of the model used in HUD targeting view<br />
*Syntax: '''''Integer'''''}}<br />
<br />
===$Detail Distance:===<br />
{{Table3613|<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Optional. If not defined the game uses the formula ((radius * 20.0 + 20.0) * LOD)<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''}}<br />
<br />
===$External Model File:===<br />
{{Table3610|<br />
*Defines the models shown on the gunpoint, used with Bobb's external-visible-weapon code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Submodel Rotation Speed:===<br />
{{Table3610|<br />
*Defines the rotation speed of the subobject, with the $gun_rotation property defined, in the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Note: weapon fire will be delayed by the time it takes for the weapon to spin up to this speed (using $Submodel Rotation Acceleration or its default value), regardless of whether an external model is used or not.<br />
}}<br />
{{Table38|<br />
*Note: It's no longer required that the ship actually have external models enabled (whether or not this weapon has one defined) for the spin up delay to occur.<br />
}}<br />
<br />
===$Submodel Rotation Acceleration:===<br />
{{Table3610|<br />
*Defines the rotation acceleration of the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Default value: 10}}<br />
<br />
===@Laser===<br />
In the event a 3D model is not defined for the weapon, FSO creates an object similar to a glowpoint. Essentially, it is a 2D plane that always faces the player's camera with an additive texture applied to it, and may or may not have an omnilight follow it.<br />
<br />
As suggested by its name, this option group is normally used for lasers and similar primaries, but it may also be used for other weapon types as well.<br />
<br />
Unless said otherwise, the graphic files used within this group may be of any compatible type (.DDS, .PCX, .TGA, etc.), however a .DDS is recommended.<br />
<br />
<br />
====@Laser Bitmap:====<br />
Defines the graphic file to be used as the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Bitmap: my_laser_bitmap<br />
</pre><br />
<br />
<br />
====@Laser Glow:====<br />
Defines the graphic file to be used for the glowmap of the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
*This file is 'multiplied' by a value between Color and Color2.<br />
*The physical dimensions of the glowmap in-game is 2x the size of the bitmap.<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Glow: my_laser_glowmap<br />
</pre><br />
<br />
<br />
====@Laser Color:====<br />
The RGB color of the glow effect.<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Red glow effect at the start of the effect's lifetime<br />
</pre><br />
<br />
<br />
====@Laser Color2:====<br />
The RGB color of the glow effect at the end of the effect's lifetime (at its maximum range).<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
*The actual color of the glow effect is somewhere in between the values defined by Color and Color2. Essentially, the actual color "fades" from Color to Color2 over its lifetime.<br />
**If Color is not defined, then a default value of 255, 255, 255 is assumed for its initial color.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color2: 0, 0, 255 ; Blue glow effect at the end of the effect's lifetime.<br />
</pre><br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Start with a Red glow effect, and fade into...<br />
@Laser Color2: 0, 0, 255 ; a Blue glow effect over the lifetime of the effect.<br />
</pre><br />
<br />
<br />
====@Laser Length:====<br />
Defines the length of the weapon effect.<br />
*This option stretches the 2D plane "away" from its origin.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Length: 1.0<br />
</pre><br />
<br />
<br />
====@Laser Head Radius:====<br />
Defines the width of the leading edge, or "head," of the weapon effect.<br />
*The edge of the 2D plane farthest away from its origin is the leading edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Head Radius: 0.75<br />
</pre><br />
<br />
<br />
====@Laser Tail Radius:====<br />
Defines the width of the trailing edge, or "tail" of the weapon effect.<br />
*The edge of the 2D plane that is closest to its origin is the trailing edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Tail Radius: 0.75<br />
</pre><br />
<br />
<br />
===$Mass:===<br />
*How much of a kinetic effect this weapon has on its target. 3+ gives you the Flail effect. Set it to 10 and you can knock cruisers around.<br />
*This is somehow multiplied by the speed. ie ''$Mass: 3'' and ''$Velocity: 200'' has much weaker kinetic effect than ''$Mass: 3'' and ''$Velocity: 1000''. Also $Mass is used to calculate intensity of "shudder" effect if flagged.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Velocity:===<br />
*How fast the weapon travels. Is also used to define the weapon range, '''''$Velocity x $Lifetime = range'''''.<br />
*Beams travel instantly so this field has effect only on weapon range and AI beam targeting with certain beam types. $Velocity of beam also applies to its kinetic effect along with $Mass.<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Fire Wait:===<br />
*Time in seconds between firings<br />
*Note that Fire wait will be reset to 1 if it is set over 5 for non turreted primary weapons (doesn't apply to 3.6.14+)<br />
*Syntax: '''''Float''''', seconds<br />
<br />
====+Max Delay:====<br />
{{Table373|<br />
*Defines the maximum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Min Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
====+Min Delay:====<br />
{{Table373|<br />
*Defines the minimum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Max Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
===$Damage:===<br />
*Base damage this weapon does. The actual damage is this number multiplied by the factors below.<br />
*Base damage this beam does is continuous damage, damage is 5.5 times the damage value per second. The actual damage is this number multiplied by one of the factors below.<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
<br />
===$Damage Time:===<br />
{{Table373|<br />
*This sets a time from the end of the weapons lifetime that damage will start to attenuate at. '''''Example: Weapon lifetime is 2.0 seconds and the desired effect is to attenuate after 0.5 seconds have passed, set this to 1.5 seconds.'''''<br />
*Syntax: '''''Float''''', seconds. Defaults to 0.0.<br />
**Note: If neither +Min Damage: nor +Max Damage: is set, the damage will always attenuate to zero at max range.<br />
***If both +Min Damage: and +Max Damage: are set, both are defaulted to 0.0 and damage will be attenuated to zero.}}<br />
<br />
====+Attenuation Damage:====<br />
{{Table373|<br />
*This sets the damage a weapon will attenuate to after reaching $Damage Time:.<br />
*Syntax: '''''Float''''', damage.}}<br />
<br />
====+Min Damage:====<br />
{{Table373|<br />
*This sets the lowest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
====+Max Damage:====<br />
{{Table373|<br />
*This sets the highest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
===$Damage Type:===<br />
{{Table3610|<br />
Defines the damage type that this weapon uses. All armor effects are applied after shield and have no function against shockwave or subsystem damage.<br />
<br />
'''REQUIRES:''' [[armor.tbl]]<br />
<br />
*Syntax: '''''String''''', name of the damage type ( as defined by [[armor.tbl#$Damage Type:|$Damage Type]] )}}<br />
<br />
===$Arm time:===<br />
{{Table3610|<br />
*Defines the time after the launch that is required before the weapon comes hot<br />
*If the time has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Arm distance:===<br />
{{Table3610|<br />
*Defines the distance from the firing ships that is required before the weapon comes hot<br />
*If the distance has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', meters}}<br />
{{Table3615|<br />
*This parameter is also applied to flak weapons. Previous behaviour was to arm weapons after 10 meters of travel.}}<br />
<br />
===$Arm radius:===<br />
{{Table3610|<br />
*Defines the distance from the target where the weapon will arm itself<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Detonation Range:===<br />
{{Table3610|<br />
*Defines the distance from the point in space that the weapon was launched where the weapon will detonate<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Radius:===<br />
{{Table3610|<br />
*Defines the distance between the target center point point and the weapon which detonates the weapon.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shockwave damage:===<br />
{{Table3610|<br />
*Override for the damage caused by shockwaves (default is [[#$Damage:]])<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
}}<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the weapon explosions<br />
*Syntax: '''''String''''', name as defined in [[armor.tbl]]}}<br />
<br />
===$Flak Detonation Accuracy:===<br />
{{Table3615|<br />
*Normally, flak weapons detonate at a range of 65 to 99 meters from their intended target, depending on the firing ships' weapon subsystem health. This parameter can be used to adjust this behaviour, as it defines the base range used to determine this detonation range. Standard value is 65.<br />
*Syntax: '''''Float''''', range in meters}}<br />
<br />
===$Flak Targeting Accuracy:===<br />
{{Table3615|<br />
*Turret-fired flak weapons are normally firing in a cone around the target's predicted position. This parameter can be used to adjust the size of this cones' base radius. Standard is 60 meters.<br />
*Syntax: '''''Float''''', radius in meters}}<br />
<br />
===$Untargeted Flak Range Penalty:===<br />
{{Table3615|<br />
*If a flak weapon is fired without a target selected, this parameter defines the range penalty applied to that weapon. Standard is 20 meters, meaning an untargeted flak weapon will detonate after travelling its max range - 20 meters.<br />
*Syntax: '''''Float''''', penalty in meters.}}<br />
<br />
===$Blast Force:===<br />
*The intensity of the kinetic blast effect when ship is within the outer radius of the explosion. Comes in effect only if inner and outer radius are defined.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
===$Inner Radius:===<br />
*Radius at which the full explosion damage is done. Marks the line where damage attenuation begins. Damage is reduced by the square of the distance between the inner radius and outer radius. i.e. half way between inner and outer results in 1/4 damage<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Outer Radius:===<br />
*Maximum radius at which any damage is done. See $Inner Radius for the attenuation formula.<br />
*Also defines the size of the shockwave (if shockwave speed is > 0)<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at. Zero means no shockwave and that damage is applied immediately<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave rotation:===<br />
{{Table3610|<br />
*Defines how the 3D shockwave is rotated.<br />
*Syntax: '''''Angle''''', three values, pitch, bank, heading respectively, in degrees}}<br />
<br />
<br />
===$Shockwave model:===<br />
{{Table3610|<br />
*Defines the model file (.pof) used as a shockwave for the 3D shockwaves.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave name:===<br />
{{Table3610|<br />
*Defines the name of the animation used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Dinky shockwave:===<br />
{{Table3610|<br />
*Dinky shockwave are used if the weapon is shot down before arming or if the conditions marked at '''Arm time''' and '''Arm distance''' are not reached before impact<br />
*It uses exactly same entries as the standard shockwaves<br />
*'''''+Shockwave damage:'''''<br />
*'''''+Shockwave damage type:'''''<br />
*'''''+Blast Force:'''''<br />
*'''''+Inner Radius:'''''<br />
*'''''+Outer Radius:'''''<br />
*'''''+Shockwave Speed:'''''<br />
*'''''+Shockwave Rotation:'''''<br />
*'''''+Shockwave Model:'''''<br />
*'''''+Shockwave Name:'''''}}<br />
<br />
<br />
===$Armor Factor:===<br />
*Multiplier for the damage done to armor<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Shield Factor:===<br />
*Multiplier for the damage done to shields<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Subsystem Factor:===<br />
*Multiplier for the damage done to subsystems<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Lifetime Min:===<br />
{{Table3610|<br />
*Defines the minimum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime Max:===<br />
{{Table3610|<br />
*Defines the maximum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime:===<br />
*Time before the standard primaries fizzle out and secondaries self destruct. Multiply this by the speed to get the range. If values are too low (below framerate) then the collision detection and graphic effects may suffer.<br />
*This field has no effect for the beams apart from weapon range and AI beam targeting with certain beam types<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Energy Consumed:===<br />
*The amount of energy each bolt drains firing ship. Has no effect on turretted weapons.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Cargo Size:===<br />
*Cargo size, is not used with non-ballistic primaries.<br />
*Amount of missiles available = Bank capacity / Cargo Size.<br />
*Syntax: '''''Float'''''<br />
<br />
===$Homing:===<br />
'''This option is exclusive to secondaries.'''<br />
<br />
Defines if the bolts/missiles in question is homing<br />
*The bolts of primaries will turn to face their target if this option is set to YES... but is otherwise the same as a normal bolt ( when the option is set to NO ).<br />
<br />
If set to NO, then following fields are not required in the table.<br />
<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
===='''+Type:'''====<br />
Defines the homing method<br />
*Syntax: '''''String''''', ''ASPECT'' or ''HEAT''<br />
{{Table3610| An additional option, ''JAVELIN'', has been added. This behaves like an aspect missile but automatically only locks onto the engines of a target, and only if the engines are in sight.}}<br />
<br />
<br />
===='''+Turn Time:'''====<br />
Determines how well the missile maneuvers. Is defined as the number of seconds it takes the missile to do a 360 degree circle<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===='''+View Cone:'''====<br />
'''Heat-seeking missiles only'''<br />
<br />
This is the width of the weapon's viewing cone, given in degrees. Objects outside this cone are effectively invisible to the missile. The value / 2 gives the angle from the missile's centerline to the edge of the viewing cone.<br />
*Syntax: '''''Float''''', degrees<br />
{{Table3610| Has been enabled also to aspect seekers as an option.}}<br />
<br />
<br />
===='''+Min Lock Time:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The minimum number of seconds to gain a target lock.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===='''+Lock Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
The number of pixels the aspect triangle moves per second while attempting lock-on.<br />
<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The number of pixels moved per second while attempting to catch up to the target.<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Penalty:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
Extra pixels to move after catching up. (Needs verification )<br />
**Syntax: '''''Integer''''', pixels<br />
<br />
<br />
===='''+Seeker Strength:'''====<br />
{{Table3610|<br />
Defines the seeking ability of the homing system. Default of heat seekers is 3.0 and for aspect seekers 2.0. Spoofing chance is defined as '''[[#$Countermeasure:|cm type effectiveness]]'''/'''seeker strength''' (missile must be within the countermeasures '''[[#$Countermeasure:|+Effective Radius:]]'''<br />
*Syntax: '''''Float''''', seeker strength}}<br />
<br />
===='''+Target Lead Scaler:'''====<br />
{{Table3611|<br />
Defines the type of pursuit course the missile tries to obtain.<br />
*Values < 0 give lag pursuit, values ~ 0 give pure pursuit, values > 0 give lead pursuit.<br />
*Syntax: '''''Float''''', default for heat seekers: 0, default for aspect or javelin seekers: 1.}}<br />
<br />
<br />
<br />
===$Swarm:===<br />
*The number of missiles to fire per volley if it's a swarm missile<br />
*Can be issued to Standard primaries also. Causes single part turrets to malfunction but causes multi part turrets to fire only on their barrel line. Can be used for 'burst fire weapons'. Does not work with player weapons.<br />
*Is incompatible with "Corkscrew" option.<br />
*Swarm will negatively affect the missile's ability to hit its target. Especially when fired off-bore.<br />
*Syntax: '''''Integer''''', number of shots in a swarm<br />
{{Table3610|<br />
*'''+SwarmWait:'''<br />
**Defines the time between weapons fired in a swarm<br />
**Syntax: '''''Float''''', seconds<br />
***Default: 0.150<br />
***Max: 0.5 (Resets to default if set over 0.5)}}<br />
<br />
===$Acceleration Time:===<br />
{{Table371|<br />
*Defines how long it takes for a secondary weapon to attain full speed. Takes precedence over $Free Flight Time (see below) in terms of the weapon's velocity, and affects both locked-on and dumbfired secondaries.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.0}}<br />
<br />
===$Velocity Inherit:===<br />
{{Table371|<br />
*Defines how much of the parent ship's velocity to inherit, if [[Ai_profiles.tbl#.24use_additive_weapon_velocity:]] is used.<br />
*Syntax: '''''Float''''', percents<br />
**Default: 100.0}}<br />
<br />
===$Free Flight Time:===<br />
{{Table3610|<br />
*Defines the free flight time of homing weapons. During this time weapon flies at 1/4 of its velocity + firing ships velocity in a straight line.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.25}}<br />
<br />
'''Note:''' due to dumbfires never changing their speed, using this on a dumbfire missile will have it stuck at freeflight speed even after the end of the freeflight time.<br />
<br />
===$Free Flight Speed:===<br />
{{Table3613|<br />
*Defines the speed that the weapon will be travelling at during the free flight segment (see above).<br />
*Syntax: '''''Float''''', Multiplier for the actual speed, minimum 0.01.<br />
**Default: 0.25<br />
{{Note| This feature was never implemented correctly and was removed in r8867. FSO currently parses but doesn't use the value, and prints a warning in the log saying that the value will not be used.}}<br />
}}<br />
<br />
===$PreLaunchSnd:===<br />
{{Table3613|<br />
*Defines the one-shot sound effect to play at the beginning of a firing stream. Currently only has an effect on primary weapons.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
**Default: No Sound}}<br />
<br />
===+PreLaunchSnd Min Interval:===<br />
{{Table3613|<br />
*Defines Minimum interval between when the player stops firing and the next time the pre-launch sound can play, as a limiter in case the player is pumping the trigger.<br />
*Syntax: '''''Integer''''', Minimum delay in milliseconds between the end of the previous firing sequence and the next time the pre-launch sound effect will be played.<br />
**Default: 0 (play pre-launch sound at the beginning of every firing sequence, if present)}}<br />
<br />
===$LaunchSnd:===<br />
*Corresponding sound effect when the weapon is launched.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$ImpactSnd:===<br />
*Sound the weapon makes when it hits a hull.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Disarmed ImpactSnd:===<br />
{{Table3610|<br />
*Sound the weapon makes when it hits a hull before being armed.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$FlyBySnd:===<br />
*The sound this weapon makes if it narrowly misses you. -1 is no sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]], usually -1<br />
<br />
<br />
===$TrackingSnd===<br />
{{Table3615|<br />
*The looping sound played when this weapon tracks a target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$LockedSnd===<br />
{{Table3615|<br />
*The sound played when this weapon has locked onto its target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$InFlightSnd===<br />
{{Table3615|<br />
*The looping sound played when the missile is currently flying.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Inflight sound type'''<br />
**Specifies when the in flight sound is played.<br />
**The value can be one of the following values which are matched case-insensitively:<br />
***''''''TARGETED'''''': The sound is played when the missile tracks a target<br />
***''''''UNTARGETED'''''': The sound is played when the missile is currently not tracking a target<br />
***''''''ALWAYS'''''': The sound is played always}}<br />
<br />
<br />
===$Model:===<br />
{{Table3610|<br />
*Defines used model file. Included for compatibility with countermeasures as they have been merged with weapons in the code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Rearm Rate:===<br />
*Defines the frequency that weapons are loaded to the ship<br />
*Syntax: '''''Float''''', How many times per second the weapons are loaded.<br />
**Example: 2.0 will reload every half second. 0.1 will load every ten seconds.<br />
<br />
===+Weapon Range:===<br />
*Defines the range to the target where the weapons under AI will start firing.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===+Weapon Min Range:===<br />
{{Table3610|<br />
*Defines the minimum range to the target where the weapons under AI will still fire.<br />
*Implemented before FS_Open 3.6.5<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Weapons.tbl#Weapons.tbl_Flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the weapon<br />
**Example: ( "Player allowed" "in tech database" )<br />
<br />
{{Table3610|<br />
*Can be followed by '''+override''' option in order to reset the weapon flags before parsing in the new ones<br />
*Using this option will erase all '''homing'''-related flags as well as '''swarm''', '''variable lead''', '''trail''', '''TAG''', and '''transparent''' settings in addition to the listed flags. All these should be set again - if they are required - when this option is used.<br />
<br />
**Syntax: '''''+override'''''}}<br />
<br />
<br />
===$Trail:===<br />
*This is used if you want your weapon to have a trail. Trail is often used only with secondaries though it works with standard primaries as well.<br />
*'''+Start Width:'''<br />
**How wide the head of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+End Width:'''<br />
**How wide the tail of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Start Alpha:'''<br />
**The opacity of the trail head.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+End Alpha:'''<br />
**The opacity of the trail tail.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+Max Life:'''<br />
**How long the trail lasts.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Bitmap:'''<br />
**The graphic file to use for the trail.<br />
**Syntax: '''''String''''', filename<br />
{{Table3611|<br />
*'''+Faded Out Sections:'''<br />
**Defines the number of the trail sections (counting from the leading edge) which are gradually faded out.<br />
**Syntax: '''''Integer''''', number of trail sections}}<br />
<br />
<br />
===$Icon:===<br />
*Loadout icon used in the weapons selection screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Anim:===<br />
*Green grid animation used on the weapons screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Collide Ship:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Collide Weapon:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
===$Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for impacts of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Impact Explosion'' and ''$Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
===$Impact Explosion:===<br />
*Impact explosion used. Must be defined in weapon_expl.tbl,<br />
*Syntax: '''''String''''', filename or ''none''<br />
<br />
<br />
===$Impact Explosion Radius:===<br />
*Radius of the defined impact explosion.<br />
*Syntax: '''''Float''''', meters, default 1.0<br />
<br />
<br />
===$Shield Impact Explosion Radius:===<br />
{{Table373|<br />
*Radius of the shield impact explosion, see [[Ships.tbl#.24Shield_Impact_Explosion:]].<br />
*Syntax: '''''Float''''', meters, defaults to value of $Impact Explosion Radius}}<br />
<br />
===$Dinky Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for Dinky (not armed) explosions of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Dinky Impact Explosion'' and ''$Dinky Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
<br />
===$Dinky Impact Explosion:===<br />
{{Table3610|<br />
*Same as Impact Explosion but for Dinky (not armed) explosions<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Dinky Impact Explosion Radius:===<br />
{{Table3610|<br />
*Same as Impact Explosion Radius but for Dinky explosions<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Piercing Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for piercing impacts.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then piercing impact options below are not valid!<br />
}}<br />
<br />
===$Piercing Impact Explosion:===<br />
{{Table3611|<br />
*Defines the effect used for events when weapon pierces the target<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Piercing Impact Radius:===<br />
{{Table3611|<br />
*Defines the base radius of the effect used for piercing weapon impacts<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles piercing the target<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Splash Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles splashing from the target (secondary piercing effects<br />
*Negative value causes the second batch or particles to splash to opposite direction<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Variance:===<br />
{{Table3611|<br />
*Defines the variance added to the particles<br />
*Values near 0 cause very little variance and values close to 1 cause extreme dispersal.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the lifetime of the effect for single frame effects<br />
*For multiple frame effects the lifetime is the lifetime of the animation used<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Particles:===<br />
{{Table3611|<br />
*Defines the number of particles released per impact<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Piercing Impact Draw Modifier:===<br />
{{Table3611|<br />
*Defines the multiplier applied to the ships piercing effect limit percentage<br />
*Syntax: '''''Float'''''}}<br />
*Option removed in 3.6.12. Use [[armor.tbl]] to finetune piercing effects.<br />
<br />
===$Inflight Effect:===<br />
{{Table38|<br />
*Sets the inflight [[Particle Effects|particle effect]] which is used when the laser is active. This is only used by laser weapons.<br />
*Syntax: '''''String''''', the particle effect name<br />
}}<br />
===$Freeflight Effect:===<br />
{{Table38|<br />
*Sets the [[Particle Effects|particle effect]] which is used when the missile is in the free flight phase. See [[#$Free Flight Time:|$Free Flight Time]] for more information.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Ignition Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is transitioning from free flight to homed or unhomed flight.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Homed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in homed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Unhomed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in unhomed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
<br />
===$Muzzleflash:===<br />
*Normally only with flak cannons.<br />
*Defines the muzzle flash the weapon uses<br />
*Syntax: '''''String''''', muzzleflash name, as defined in [[mflash.tbl]]<br />
<br />
<br />
===$EMP Intensity:===<br />
*If it has an EMP effect, how deeply it scrambles your electronics<br />
*Basically a percentage, a value of 250 results in a 25% chance of something getting scrambled each frame. <br />
*Maximum value of 500<br />
**Syntax: '''''Float'''''<br />
<br />
===$EMP Time:===<br />
**Duration of the EMP effect<br />
**Syntax: '''''Float''''', seconds<br />
<br />
===$Recoil Modifier:===<br />
{{Table373|<br />
*Multiplies the recoil force of a weapon by this value, use a value greater than 1.0 to increase the force, use a value between 1.0 and 0.0 to decrease.<br />
**Syntax: '''''Float''''' (defaults to 1.0)<br />
{{Note| The "apply recoil" weapon flag must be set for this to be valid. If the flag is not set, FSO will throw a warning and automatically set it at runtime.}}<br />
}}<br />
<br />
===$Leech Weapon:===<br />
**The amount of weapon energy to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Leech Afterburner:===<br />
**The amount of afterburner fuel to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Corkscrew:===<br />
{{Table3610|<br />
*Allow corkscrew parameters to be defined<br />
*'''+Num Fired:'''<br />
**Defines the number of weapons fired in sequence. Same as the standard swarm entry but for corkscrew missiles<br />
**Syntax: '''''Integer''''', number of missiles<br />
*'''+Radius:'''<br />
**Defines the radius used in the corkscrew motion<br />
**Syntax: '''''Float''''', meters<br />
*'''+Fire Delay:'''<br />
**Defines the delay between missile firings<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Counter rotate:'''<br />
**Defines if every other missile rotates to a different direction (clockwise / anticlockwise)<br />
**Syntax: '''''Boolean''''', ''0'' or ''1'', no or yes<br />
*'''+Twist:'''<br />
**Defines the speed of rotation movement on the radius of corkscrew motion.<br />
**Syntax: '''''Float''''', radians per second}}<br />
<br />
<br />
===$Electronics:===<br />
{{Table3610|<br />
*Defines the weapons effect against electronics. Requires [[weapons.tbl#"Electronics"|"electronics"]] flag. '''+New Style:''' and '''+Old Style:''' options are mutually exclusive.<br />
*'''+New Style:'''<br />
**Defines that the electronics use the new style which enables more options.<br />
*'''+Old Style:'''<br />
**Defines that the electronics use the old style. The old style was the way the D-Missile worked in Descent: FreeSpace.<br />
}}<br />
{{Table371|<br />
*'''+Area Of Effect'''<br />
**If specified, allows the electronics effect to apply to every ship hit by this weapon's blast or shockwave (the "Electronics" flag isn't necessary with this option).<br />
}}<br />
{{Table3610|<br />
*'''+Intensity:'''<br />
**May only be used with '''+New Style:''' electronics. '''''Has been deprecated'''''.<br />
**Syntax: '''''Float'''''<br />
*'''+Lifetime:'''<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Engine Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for engine subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Weapon Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for non-beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Turret Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Sensors Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for sensor subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Randomness Time:'''<br />
**Defines the randomness of duration target suffers from the electronics hit. A random number between 0 and this time will be added or subtracted from the disruption time.<br />
**Syntax: '''''Integer''''', milliseconds<br />
<br />
* Without any electronics parameters, a weapon with the "electronics" flag will default to the ''Old Style'' mode with a lifetime of 6000 milliseconds and a randomness of 4000 milliseconds. Thus any ship that gets hit can get disrupted for anywhere between 2 to 10 seconds.<br />
<br />
}}<br />
<br />
===$Spawn Angle:===<br />
{{Table3610|<br />
*Defines the cone (with an angle) where the spawned weapons appear. ''Value'' gives the angle from the missiles centerline. The maximum possible angle between any two child weapons would be ''Value*2''.<br />
*Spawn angle can be defined as many times as the carrier missile has child weapons defined for it (up to 5).<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Local SSM:===<br />
{{Table3610|<br />
*Defines the local SSM (Subspace Missile). In effect missile moves via subspace to a position close to the target and starts homing.<br />
*Weapon must be '''''aspect seeking missile''''' and must have '''''[[Weapons.tbl#"local ssm"|local ssm]]''''' flag.<br />
*'''+Warpout Delay:'''<br />
**Defines the time between the missile launch and the subspace jump.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warpin Delay:'''<br />
**Defines the time missile stays in subspace before exiting.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Stage 5 Velocity:'''<br />
**Defines the velocity of the missile after the subspace jump.<br />
**Syntax: '''''Float''''', meters per second<br />
*'''+Warpin Radius:'''<br />
**Defines how far from the SSM will appear from the outer radius of the target.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Lock Range:'''<br />
**Defines the maximum range where SSM can achieve target lock<br />
**Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Countermeasure:===<br />
<br />
*Defines the countermeasure effectiveness, radius, etc<br />
{{note| <br />
*Spoofing chance is defined as '''cm type effectiveness'''/'''[[#+Seeker Strength:|seeker strength]]''' (missile must be within the countermeasures '''+Effective Radius:''').<br />
*All countermeasures in the mission perform tests to spoof missiles for two frames after '''any countermeasure''' is created in the mission. No, this doesn't seem to make much sense.<br />
{{Table382|The global frame counter can be bypassed by using '''[[#+Pulse Interval:|pulse interval]]'''.}}<br />
*'''Provisional'''; Countermeasures are only given one chance to spoof any individual missile. This makes tuning seeker strength/effectiveness meaningful.<br />
**Previously some record of which countermeasures had been seen by each missile was kept, but it broke when multiple countermeasures were involved. A good chance of breaking with two countermeasures, and a guaranteed chance of breaking with three or more. This reduced the impact of the seeker strength/effectiveness ratio, but was partly cancelled out by the 2 frames thing.<br />
}}<br />
<br />
{{Table3610|<br />
===='''+Heat Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against heat seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
**Default: 1.0<br />
<br />
===='''+Aspect Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against aspect seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
*Default: 1.0<br />
<br />
===='''+Effective Radius:'''====<br />
*Defines the countermeasures effective radius<br />
*Syntax: '''''Float''''', meters<br />
**Default: 300.0<br />
}}<br />
<br />
{{Table373|<br />
====+Missile Detonation Radius:====<br />
*Defines the radius within which a missile homing on this countermeasure will trigger a detonation (see '''+Single Missile Kill:''')<br />
*Syntax: '''''Float''''', meters<br />
**Default: 40.0<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
<br />
====+Single Missile Kill:====<br />
*Defines if countermeasures will detonate only the missile homing on this countermeasure, or every missile within '''+Missile Detonation Radius:'''<br />
*Syntax: '''''Boolean'''''<br />
**Default: false<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
}}<br />
<br />
{{Table382|<br />
====+Pulse Interval:====<br />
*Defines how much time passes between each pulse of this countermeasure.<br />
*Syntax: '''''Float''''', milliseconds<br />
**Default: 0<br />
{{note| any value less than or equal to 0 means the countermeasure doesn't pulse, and uses the global 2-frame counter after any countermeasure is fired.}}<br />
}}<br />
<br />
===$BeamInfo:===<br />
*'''+Type:'''<br />
**Defines the type of beam in question. Beam types: 0 is a standard non-slashing type beam. 1 is a slashing type beam. 2 is a targeting beam that is used to trigger SSMs. 3 is a beam type that fires pulses in anti-fighter role and acts like type 0 beam in other roles. 4 is a beam that is restricted to what is directly in front of it, along turrets firepoints normal.<br />
**Syntax: '''''Integer''''',, only values from 0 to 4 are legal<br />
*'''+Life:'''<br />
**How long it lasts once the beam is actually firing.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Warmup:'''<br />
**Warmup time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warmdown:'''<br />
**Warmdown time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Radius:'''<br />
**Muzzle glow radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PCount:'''<br />
**Particles spewed every interval. ??<br />
**Syntax: '''''Integer'''''<br />
*'''+PRadius:'''<br />
**Particle radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PAngle:'''<br />
**Defines the random "cone" where the particles are generated<br />
**Syntax: '''''Float''''', angle of the cone<br />
*'''+PAni:'''<br />
**Animation used to represent the particles<br />
**Syntax: '''''String''''', filename<br />
*'''+Miss Factor:'''<br />
**The higher the numbers, the more likely that this beam will miss. One value for every difficulty level<br />
**Syntax: '''''Miss Factor''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5<br />
{{Table3613|<br />
*'''IFF specific miss factors'''<br />
**Identical to the preceding entry but IFF specific. Replace the <IFF> with the name of the IFF from [[iff_defs.tbl]]<br />
**Syntax: '''''+<IFF> Miss Factor:''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5}}<br />
*'''+BeamSound:'''<br />
**Corresponding looping sound effect when the beam is firing.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmupSound:'''<br />
**Corresponding sound effect when the beam is beam warmed up.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmdownSound:'''<br />
**Corresponding sound effect when the beam is warming down.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Muzzleglow:'''<br />
**Defines the bitmap used to create the muzzle glow<br />
**Syntax: '''''String''''', filename<br />
{{Table372|<br />
*'''+Directional Glow:'''<br />
**Defines the length to stretch the muzzleglow along the beam.<br />
**Syntax: '''''Float''''', length in meters, the muzzleglow is rendered along (in the same plane) as the beam instead of perpendicular to the camera.}}<br />
*'''+Shots:'''<br />
**Defines into how may invidual shots the type 3 (AAA) beams are divided. Note total firing is the same as the +Life:<br />
**Syntax: '''''Integer'''''<br />
*'''+ShrinkFactor:'''<br />
**What percentage of lifetime where beam starts shrinking (0.1 == 10% life left)<br />
**Syntax: '''''Float'''''<br />
*'''+ShrinkPct:'''<br />
**What percentage of max width we subtract per second<br />
**Syntax: '''''Float'''''<br />
{{Table3610|<br />
*'''+Range:'''<br />
**Defines the maximum range where the beam still has any effect.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Attenuation:'''<br />
**Defines the point where the damage caused by the beam starts to attenuate. At maximum range damage is zero.<br />
**Syntax: '''''Float''''', from 0 - firing point to 1 - no effect<br />
***Default: 1}}<br />
{{Table3611|<br />
*'''+BeamWidth:'''<br />
**Defines the width of the beam for collision test purposes instead of using widest beam section.<br />
**Syntax: '''''Float''''<br />
{{Table38|<br />
*'''+Beam Flash Particle Effect:'''<br />
**Specifies the beam flash [[Particle Effects|particle effect]].<br />
**Syntax: '''''String''''', particle effect name<br />
**If this is specified then '''+Beam Flash Effect''' and '''+Beam Flash Radius''' are not valid options!<br />
}}<br />
*'''+Beam Flash Effect:'''<br />
**Defines the additional impact flash effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Flash Radius:'''<br />
**Defines the radius for the additional impact flash effect.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect:'''<br />
**Defines the beam piercing (bursting flames) effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Piercing Radius:'''<br />
**Defines the average radius used for the beam piercing effects.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Velocity:'''<br />
**Defines the base velocity for the piercing effects<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Splash Effect Velocity:'''<br />
**Defines the base velocity for the secondary piercing effects<br />
**Negative velocity causes the particles to move to opposite direction<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Variance:'''<br />
**Defines the variances of the particles from the main path<br />
**Values close to 0 cause minimum variance, higher values cause higher variances<br />
**Syntax: '''''Float'''''}}<br />
<br />
*'''$Section:'''<br />
**Beams are made up of up to five sections layered atop one another to create the effect. Each section has its own parameters.<br />
{{Table3610|<br />
:*'''+Index:'''<br />
:**Field used to define with [[Modular Tables]] the beam section which is edited.<br />
:**Only needed when editing beams that already exist in other tables.<br />
:**Syntax: '''''Integer''''', index number legal values are from 0 to 5<br />
:*'''+remove'''<br />
:**Removes the set beam section.<br />
:*'''+nocreate'''<br />
:**Does not create new section for the beam}}<br />
<br />
:*'''+Width:'''<br />
:**Width of the section<br />
:**Syntax: '''''Float''''', meters<br />
:*'''+Texture:'''<br />
:**Texture for the section<br />
:**Syntax: '''''String''''', filename<br />
:*'''+RGBA Inner:'''<br />
:**Defines the color and transparency of the center of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 255 255 255 255<br />
:*'''+RGBA Outer:'''<br />
:**Defines the color and transparency of the edges of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 150 150 150 10<br />
:*'''+Flicker:'''<br />
:**Defines how much the section flickers<br />
:**Syntax: '''''Float''''', value from 0 to 1<br />
:*'''+Zadd:'''<br />
:**Defines the 'thickness' of the section. The higher the Zadd, the closer the section appears to be. (Zadd can be safely ignored; it actually does nothing.)<br />
:**Syntax: '''''Float'''''<br />
{{Table3610|<br />
:*'''+Tile Factor:'''<br />
:**Defines the beam texture tiling factor. Second number defines the tiling type. Type 0 tiles the graphic in the beam as many times as defined by the 1st number. Type 1 uses the 1st value as the lenght of the tile.<br />
:**Syntax: '''''Float''''', '''''Integer'''''<br />
:*'''+Translation:'''<br />
:**Defines the speed of translation of the beam, a positive value moves from the impact point to the firing point, while a negative value moves away from the firing point towards the impact point. Measured in tiles per second, where the tile count is defined in the "+Tile Factor:" field above.<br />
:**Syntax: '''''Float'''''}}<br />
<br />
===$Pspew:===<br />
{{Table3610|<br />
*Defines a particle spew effect for the given weapon<br />
}}{{Table3613|<br />
*'''+Index:'''<br />
**indicates which spewer to add/edit/delete. may be 0-3. used for xmt compatibility.<br />
**Syntax: '''''Integer'''''<br />
*'''+Remove'''<br />
**removes spewer at +Index: (requires +index:)<br />
*'''+Type:'''<br />
**type of particle spew<br />
**Syntax: '''''String'', Default, Helix, Sparkler, Ring, or Plume '''<br />
}}{{Table3610|<br />
*'''+Count:'''<br />
**Defines how many particles are spawn when they are ready to be created (at each +Time: interval)<br />
**Syntax: '''''Integer'''''<br />
*'''+Time:'''<br />
**Defines the time in milliseconds between next particle(s) spewed<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Vel:'''<br />
**Defines the created particles velocity as percentage of the weapons velocity<br />
**Syntax: '''''Float'''''<br />
*'''+Radius:'''<br />
**Defines the size of the created particles<br />
**Syntax: '''''Float''''', meters<br />
*'''+Life:'''<br />
**Defines how long the particles last.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Scale:'''<br />
**Defines the particle spread. Small value will make particles group together<br />
**typically controls how big the effect is or how fast it moves away from the weapon path on a perpendicular (or sometimes arbitrary) axis. <br />
**helical spews and rings use this value to control how fast the particle helix moves away from the central axis.<br />
**sparklers use this to control how fast particles move away from the spawn point, in any direction<br />
**plumes use this to set the diameter of the disk across which particles are spawned<br />
**Syntax: '''''Float'''''<br />
}}{{Table3613|<br />
*'''+Z Scale:'''<br />
**for sparklers, allows you to elongate the effect to surround other effects, like lasers. essentially a length multiplier<br />
**for plume, it multiplies against +scale to set the plume to spread or converge, zero would be full convergence, 1 would be straight flight, and bigger numbers would cause particles to diverge from the disk.<br />
**Syntax: '''''Float'''''<br />
*'''+Rotation Rate:'''<br />
**used only by helical spews, controls how many rotations per second the helix makes<br />
**Syntax: '''''Float'', may be negative, useful for setting up 2 spews that spin in opposite directions'''<br />
*'''+Offset:'''<br />
**position of effect with regards to the weapon center<br />
**Syntax: '''''Vector'''''<br />
*'''+Initial Velocity:'''<br />
**to indicate both direction and speed of particle effects regards to the weapon velocity and +scale:<br />
**Syntax: '''''Vector'''''<br />
}}{{Table3610|<br />
*'''+Bitmap:<br />
**Defines the animation used to create the particle spew effect<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Tag:===<br />
*Allowed for secondary weapons<br />
{{Table3610|<br />
*Allowed for primary weapons and secondary weapons}}<br />
<br />
*Sets this weapon as a TAG missile, level 1, 2, or 3. The second number is the duration in seconds.<br />
*TAG Level 1 will illuminate hidden targets such as stealth fighters or ships normally obscured by nebula conditions.<br />
*TAG Level 2 illiminates targets much like TAG Level 1, but turrets will prefer to shoot at them over other ships.<br />
*TAG Level 3 has no effect in retail.<br />
{{Table3610|<br />
*TAG Level 3 allows the weapon to trigger [[Weapon.tbl#$SSM:|SSMs]]}}<br />
<br />
*Syntax: '''''Integer''''' '''''Float''''', TAG level and seconds respectively<br />
*'''Note''': TAG will not trigger unless the weapon in question has a non-zero damage value.<br />
<br />
===$SSM:===<br />
{{Table3610|<br />
*Defines the weapons SSM index number.<br />
*Requires [[Weapons.tbl#$Tag:|TAG level 3]] or a targeting beam.<br />
*Syntax: '''''Integer'''''}}<br />
{{Table373|<br />
*Now also accepts SSM strike names.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$FOF:===<br />
{{Table3610|<br />
*Defines the field of fire for the weapon. Causes weapon to fire into a firing cone instead of direct firing line thus causing light inaccuracy<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
====+FOF Spread Rate:====<br />
{{Table37|<br />
*Defines the spread rate of the field of fire. This controls how the FOF increases over time while the weapon is firing.<br />
*Syntax: ''''''Float'''''', rate}}<br />
<br />
====+FOF Reset Rate:====<br />
{{Table37|<br />
*Rate at which the spread decreases if the weapon isn't firing.<br />
*Syntax: ''''''Float'''''', rate<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
====+Max FOF:====<br />
{{Table37|<br />
*The maximum FOF. After the FOF reaches this value it will not increase any further.<br />
*Syntax: ''''''Float'''''', degrees. Must be greater than or equal to zero.<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
===$Shots:===<br />
{{Table3610|<br />
*Defines the number of shots every time the weapon is fired.<br />
*Works only for primary weapons<br />
*Syntax: '''''Integer''''', number of shots}}<br />
<br />
<br />
===$decal:===<br />
{{Table3610|<br />
*Defines impact decals if they are in use<br />
*'''+texture:'''<br />
**Defines the texture used for impact decals (can use '''''-burn''''' and '''''-glow''''' textures)<br />
**Syntax: '''''String''''', filename<br />
*'''+backface texture:'''<br />
**Defines ???<br />
**Syntax: '''''String''''', filename<br />
*'''+radius:'''<br />
**Defines the size of the impact decals on target<br />
**Syntax: '''''Float''''', meters<br />
*'''+burn time:'''<br />
**Defines the time the '''''-burn''''' texture appears on the target<br />
**Syntax: '''''Integer''''', milliseconds}}<br />
{{Table3613|<br />
*Feature removed - table parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Transparent:===<br />
{{Table3610|<br />
*Defines weapon effect as transparent. Enables optional fields for 'alpha animations'<br />
*'''+Alpha:'''<br />
**Defines the strenght of the alpha (transparency). And also the maximum value for the alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Min:'''<br />
**Defines the minimum alpha value for alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Cycle:'''<br />
**Defines the change in alpha per frame, between '''Alpha''' and '''Alpha Min''' values<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Hitpoints:===<br />
{{Table3611|<br />
*Defines the amount of hitpoints a weapon has.<br />
*Weapons with '''"bomb"''' flag have 50 hitpoints by default<br />
*Giving weapon hitpoints makes it possible for the weapon to be shot down or be destroyed by EMP.<br />
**Syntax: '''''Integer'''''<br />
}}<br />
<br />
===$Armor Type:===<br />
{{Table3613|<br />
*REQUIRES ADDITIONAL TABLE. Defines the armor type for the weapon. This works exactly like ship armor types.<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]<br />
}}<br />
<br />
===$Burst Shots:===<br />
{{Table3611|<br />
*Defines the number of shots in a burst<br />
*Shots in a burst use shorter ( '''$Burst Delay:''' ) delay than usually<br />
**Syntax: '''''Integer'''''}}<br />
<br />
===$Burst Delay:===<br />
{{Table3611|<br />
*Defines the time in milliseconds between the shots in a burst<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Burst Flags:===<br />
{{Table3611|<br />
*Defines the flags used to define the burst firing behaviour<br />
**Syntax: ( '''''String''''' '''''String''''' ), list of flags<br />
**Available burst flags:<br />
***'''"fast firing"''', acts as if '''same turret cooldown''' flag would be used between the shots in the burst.<br />
***'''"random length"''', makes AI to fire burst of random length (from 1 to burst shots).}}<br />
<br />
<br />
===$Thruster Flame Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the modeled thruster of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the glow type effect of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Radius Factor:===<br />
{{Table3611|<br />
*Defines the radius multiplier for the thruster's glow type effect<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Substitute:===<br />
{{Table3613|<br />
Defines a pattern of ammo to substitute for primary or secondary weapons. '''$Substitute:''' can be repeated any number of times (so you could make something like a rainbow laser with several ammo substitutions, for example). If neither ''+period'' or ''+index'' is specified, it is assumed to be equivalent to ''+index: '''0'''''.<br />
<br />
*Syntax: '''''Weapon Name'''''<br />
*'''Swarm missiles act in a strange way when used with $Substitute, use at your own risk.'''}}<br />
<br />
{{Table3615|<br />
Turrets can use $Substitute as well.<br />
}}<br />
====+period:====<br />
{{Table3613|<br />
FSO will substitute '''Weapon Name''' every ''period'' shots.<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
=====+offset:=====<br />
{{Table3613|<br />
A suboption of +period, offsets the substitute pattern according to the launched ammo. For example, an offset of 3 and a period of 4 will substitute on the 3rd ammo launched, and then every 4th ammo after that.<br />
<br />
*Syntax: '''''Positive Integer'''''}}<br />
<br />
====+index:====<br />
{{Table3613|<br />
FSO will substitute the '''Weapon Name''' at firepoint ''index'' in the shot pattern. Similar to carefully using both +period and +offset, but is not affected by ships with different firepoint numbers. i.e. Firepoint ''index'' will always have the substitution, while +period and +offset will cycle at different rates dependant on the number of firepoints.'''<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
<br />
==Weapons.tbl Flags==<br />
<br />
<br />
==="Electronics"===<br />
*Will seize up the weapons and engines systems of any ship for a short period of time.<br />
<br />
<br />
==="Spawn ''Name'',''Value''"===<br />
*Will spawn the specified number of defined missiles upon detonation.<br />
{{Table3610|<br />
*Multiple spawn types can be defined for a single 'carrier' weapon up to maximum of 5 different weapons}}<br />
<br />
==="Remote Detonate"===<br />
*Can be triggered remotely via a second press on the trigger<br />
<br />
<br />
==="Big Ship"===<br />
*These weapons cannot be mounted on small ships like fighters, bombers, sentry guns etc.<br />
<br />
<br />
==="Huge"===<br />
*Allows this weapon to do the final 10% damage to a ship with the "Big Damage" flag. Also the AI will not try to hit fighters with it, but only if the weapon is in a turret or is a secondary. If the weapon is a primary in a fighter then there are no targeting restrictions. See [[Weapons.tbl#.22capital.2B.22|capital+]] instead.<br />
<br />
==="Supercap"===<br />
*Allows this weapon to do the final 75% damage to a ship with the "supercap" flag.<br />
<br />
<br />
==="Bomber+"===<br />
*The AI will prefer to use this weapon against bombers<br />
<br />
<br />
==="child"===<br />
*Cannot be set as a weapon on any ship, but is instead a child of a weapon. Usually defined with "Spawn ''Name'',''Value''"<br />
<br />
<br />
==="Bomb"===<br />
*Makes this weapon targetable with the B key, and the AI prefers to use it against large ships<br />
<br />
<br />
==="No Dumbfire"===<br />
*Missile will not fire without a lock<br />
<br />
<br />
==="in tech database"===<br />
*Has the weapon in the tech database at the start of the campaign<br />
<br />
<br />
==="Player allowed"===<br />
*Allows this weapon as a player weapon.<br />
{{Table3610|<br />
*'''EXTREMELY IMPORTANT NOTE:'''<br />
**Whenever you plan to use a weapon as a player one in your campaign or missions, '''USE THIS FLAG'''.<br />
**Not using it can cause problems within fs_open and it's a BAD MOD DESIGN.<br />
**In the future, fs_open will maybe be able to avoid these problems but, nevertheless, it's still a BAD DESIGN.<br />
**As another possible example: be careful to update "retail" tables if you plan to use Shivan weapons in player fighters.}}<br />
<br />
==="Particle Spew"===<br />
*Makes the weapon projectile spew out particles<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Pspew:|Particle Spew parameters]]}}<br />
<br />
<br />
==="EMP"===<br />
*This weapon will have an EMP effect on any ship within the blast radius<br />
*Can be defined with [[Weapons.tbl#$EMP_Intensity:|EMP Intensity]] and [[Weapons.tbl#$EMP_Time:|EMP Time]]<br />
<br />
<br />
==="Esuck"===<br />
*Drains the target's energy banks<br />
*Can be defined with [[Weapons.tbl#$Leech_Weapon:|Leech Weapon]] and [[Weapons.tbl#$Leech_Afterburner:|Leech Afterburner]]<br />
<br />
<br />
==="Flak"===<br />
*Makes this weapon a [[weapons.tbl#Flak_Guns|flak gun]]<br />
<br />
<br />
==="Corkscrew"===<br />
*Makes this weapon spiral AND swarm 4.<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Corkscrew:|Corkscrew parameters]]}}<br />
<br />
<br />
==="Shudder"===<br />
*Makes your ship shudder while you're firing the weapon<br />
<br />
<br />
==="lockarm"===<br />
*Requires a target lock in order to arm its warhead. In other words weapon causes less damage if it hits the target without target lock.<br />
<br />
<br />
==="beam"===<br />
*Makes this weapon a [[weapons.tbl#Beam Cannons|beam cannon]]<br />
<br />
<br />
==="stream"===<br />
* Does nothing<br />
<br />
==="puncture"===<br />
*Reduces hull damage by 75%<br />
The AI will prefer these weapons for anti-subsystem use<br />
<br />
==="countermeasure"===<br />
{{Table3610|<br />
*Defines the weapon as a countermeasure}}<br />
<br />
<br />
==="Ballistic"===<br />
{{Table3610|<br />
*Defines the weapon as a ballistic weapon that needs ammunition.<br />
*Make sure you define the size and reload rate for ballistic weapons}}<br />
<br />
<br />
==="pierce shields"===<br />
{{Table3610|<br />
*Causes weapons to penetrate shield without causing damage to it.}}<br />
<br />
<br />
==="no pierce shields"===<br />
{{Table3610|<br />
*Prevents weapons (beams) from piercing shields causing shields to be damaged by weapons first.}}<br />
<br />
<br />
==="local ssm"===<br />
{{Table3610| }}<br />
<br />
<br />
==="tagged only"===<br />
{{Table3610|<br />
*Weapon can only be fired at tagged targets}}<br />
<br />
<br />
==="beam no whack"===<br />
{{Table3610|<br />
*Disables beam whacking (push). Practically same as setting beam mass to zero.}}<br />
<br />
<br />
==="cycle"===<br />
{{Table3610|<br />
*Causes weapon to alternate between firing points}}<br />
<br />
<br />
==="small only"===<br />
{{Table3610|<br />
*Causes AI to use the weapon only on small targets (fighters, bombers etc.)}}<br />
<br />
<br />
==="same turret cooldown"===<br />
{{Table3610|<br />
*Forces the turrets to fire on the designated rate of fire on all difficulty levels and all AI levels}}<br />
<br />
<br />
==="apply no light"===<br />
{{Table3610|<br />
*Prevents light from being applied to the weapon model.}}<br />
<br />
==="training"===<br />
{{Table3610|<br />
*Sets weapon to be of training weapon type. ?}}<br />
<br />
==="smart spawn"===<br />
{{Table3611|<br />
*Forces turret fired spawn weapon of this type to be fired like normal weapons.}}<br />
<br />
==="inherit parent target"===<br />
{{Table3611|<br />
*Sets spawned 'child' weapons to use parent weapon's target.}}<br />
<br />
==="no emp kill"===<br />
{{Table3611|<br />
*Defines the weapon (with hitpoints) to be immune to automatic EMP destruction.}}<br />
<br />
==="untargeted heat seeker"===<br />
{{Table3611|<br />
*Defines the weapon as a heatseeker type missile which acquires its target by itself.}}<br />
<br />
==="no radius doubling"===<br />
{{Table3611|<br />
*Prevents weapon radius from being doubled when doing collision test. Makes bombs harder to intercept.}}<br />
<br />
==="no subsystem homing"===<br />
{{Table3611|<br />
*Prevents weapon from acquiring a subsystem as its target. Missile homing points are spread over the target ship.}}<br />
<br />
==="no lifeleft penalty"===<br />
{{Table3611|<br />
*Prevents weapon lifetime from being penalized if the angle to the target is too big.}}<br />
<br />
==="can be targeted"===<br />
{{Table3611|<br />
*Allows weapon to be targeted by player. Does not influence AI}}<br />
<br />
==="show on radar"===<br />
{{Table3611|<br />
*Allows weapon to be visible on the radar}}<br />
<br />
==="show friendly on radar"===<br />
{{Table3611|<br />
*Allows friendly, otherwise visible to radar weapon, to be visible on player radar}}<br />
<br />
==="capital+"===<br />
{{Table3613|<br />
*Tells AI to use this weapon only on capital ships}}<br />
<br />
==="chain external model fps"===<br />
{{Table3613|<br />
*Tells game to keep switching external model firingpoints when firing}}<br />
<br />
==="external model launcher"===<br />
{{Table3613|<br />
*Tells game that the external model is a launcher so that it would be kept static without loading motion}}<br />
<br />
==="takes blast damage"===<br />
{{Table3613|<br />
*Weapon takes damage from weapon blasts}}<br />
<br />
==="takes shockwave damage"===<br />
{{Table3613|<br />
*Weapon takes damage from shockwaves}}<br />
<br />
==="ciws"===<br />
{{Table3615|<br />
*Weapon can deal shockwave/blast damage to bombs, regardless of whether the target weapons have the "take blast/shockwave damage" flags.}}<br />
<br />
==="render flak"===<br />
{{Table3615|<br />
*Normally, flak shells are not rendered. This flag switches rendering on for those weapons.}}<br />
<br />
==="anti-subsystem beam"===<br />
{{Table3615|<br />
*Beam weapons with this flag can target subsystems on enemy ships, just like normal weapons.}}<br />
<br />
==="no primary linking"===<br />
{{Table3615|<br />
*Primary weapons with this flag can not be linked with other weapons.}}<br />
<br />
==="same emp time for capships"===<br />
{{Table37|<br />
*capships affected by this weapon will use the tabled EMP time rather than the fixed retail value (7.5 secs)}}<br />
<br />
==="no primary linked penalty"===<br />
{{Table371|<br />
*Primary weapons with this flag do not incur the retail linked fire penalty}}<br />
<br />
==="no homing speed ramp"===<br />
{{Table371|<br />
*Locked homing weapons will not perform the standard 1 second long acceleration when fired. Note that use of $Acceleration Time is '''not''' affected by this flag.}}<br />
<br />
==="pulls aspect seekers"===<br />
{{Table371|<br />
*If an aspect seeker is grabbed by this countermeasure the missile will follow the countermeasure instead of going into dumbfire mode.<br />
'''Only valid for countermeasures!'''}}<br />
<br />
==="turret interceptable"===<br />
==="fighter interceptable"===<br />
==="interceptable"===<br />
{{Table371|<br />
*Allows turrets/fighters/both (respectively) to shoot at this weapon without requiring it to be a bomb. If this is the first time this weapon has been defined, it also gives it a default of 25 hitpoints so that it can be shot down.<br />
'''If you use a TBM to give this flag to an existing weapon, you'll need to specify hitpoints manually (unless you want it to be unkillable but still draw defensive fire).'''}}<br />
<br />
==="apply recoil"===<br />
{{Table373|<br />
*A ship that fires a weapon with this flag will experience a recoil effect, slowing the ship down and, with lighter strikecraft, inducing some rotation if the firing points are offset from the center of mass.<br />
'''Do not use this with MVPs or retail ships unless you increase their density to 10 or use either $Recoil Modifier: in weapons.tbl or $Ship Recoil Modifier in ships.tbl. This is to avoid exaggerated effects due to retail models having manually defined masses.'''}}<br />
<br />
==="don't spawn if shot"===<br />
{{Table373|<br />
*Prevents parent weapons from spawning children in the even of the parent weapon being shot down.}}<br />
<br />
==="die on lost lock"===<br />
{{Table373|<br />
*Aspect seeking missiles (only, not heat seekers) will detonate upon losing their lock. Currently they only lose lock if decoyed by a countermeasure, AND "pulls aspect seekers" or similar is not set. The detonation will use their "dinky" explosion (i.e. same as if ran out of lifetime).}}<br />
<br />
==Countermeasures==<br />
*Usually not altered. Only one can exist<br />
{{Table3610|<br />
*More than one can exist}}<br />
<br />
<br />
===$Name:===<br />
*Name of the countermeasure<br />
*Syntax: '''''String''''', name<br />
<br />
<br />
===$Velocity:===<br />
*Defines the speed of the countermeasure, relative to the ship.<br />
*Syntax: '''''Float''''', meter per second<br />
<br />
===$Fire Wait:===<br />
*Definies the minumum time between the countermeasure launches<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===Lifetime===<br />
*Countermeasure's life time is defined between with minimum and maximum lifetime<br />
*'''$Lifetime Min:'''<br />
**Syntax: '''''Float''''', seconds<br />
*'''$Lifetime Max:'''<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$LaunchSnd:===<br />
*Defines the sound for the countermeasure launch<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Model:===<br />
*Defines the used model file (.pof)<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
==Player Weapon Precedence==<br />
*First the primary weapons are defined, from most powerful to least powerful, and then the same for secondaries<br />
*Syntax: ( '''''"String" "String"'''''), names of the weapons<br />
*Example:<br />
<br />
<pre><br />
$Player Weapon Precedence: (<br />
"UD-8 Kayser"<br />
"Prometheus R"<br />
"Subach HL-7"<br />
"Harpoon"<br />
"Tempest"<br />
"Rockeye" )<br />
</pre><br />
<br />
==Sample==<br />
<br />
<pre><br />
#Primary Weapons<br />
<br />
$Name: @Subach HL-7<br />
+Title: XSTR("GTW Subach HL-7", 3243)<br />
+Description:<br />
XSTR( "Standard Issue<br />
Level 3 Hull Damage<br />
Level 2 Shield Damage", 3244)<br />
$end_multi_text<br />
+Tech Title: XSTR("Subach HL-7", 146)<br />
+Tech Anim: Tech_Subach_HL-7<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: none<br />
@Laser Bitmap: newglo9<br />
@Laser Glow: 2_laserglow03<br />
@Laser Color: 250, 0, 0<br />
@Laser Color2: 0, 0, 250<br />
@Laser Length: 10.0<br />
@Laser Head Radius: 0.90<br />
@Laser Tail Radius: 0.90<br />
$Mass: 0.2<br />
$Velocity: 450.0<br />
$Fire Wait: 0.2<br />
$Damage: 15<br />
$Armor Factor: 0.9<br />
$Shield Factor: 0.7<br />
$Subsystem Factor: 0.3<br />
$Lifetime: 2.0<br />
$Energy Consumed: 0.20<br />
$Cargo Size: 0.0<br />
$Homing: NO<br />
$LaunchSnd: 76<br />
$ImpactSnd: 85<br />
$Flags: ( "in tech database"<br />
"player allowed"<br />
"stream")<br />
$Icon: iconSD4<br />
$Anim: SD4<br />
$Impact Explosion: none<br />
<br />
#End<br />
<br />
<br />
#Secondary Weapons<br />
<br />
$Name: EMP Adv.<br />
+Title: XSTR("GTM-14 EMP Adv.", 3396)<br />
+Description:<br />
XSTR( "Advanced Missile<br />
Electromagnetic Pulse Weapon<br />
General Purpose Suppression", 3397)<br />
$end_multi_text<br />
+Tech Title: XSTR("GTM-14 EM Pulse Adv.", 3398)<br />
+Tech Anim: Tech_EMP<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: EMPulse2.pof<br />
$Mass: 15.0<br />
$Velocity: 275.0<br />
$Fire Wait: 2.0<br />
$Damage: 45<br />
$Blast Force: 20.0<br />
$Inner Radius: 80.0<br />
$Outer Radius: 300.0<br />
$Shockwave Speed: 120.0<br />
$Armor Factor: 1.0<br />
$Shield Factor: 0.8<br />
$Subsystem Factor: 0.5<br />
$Lifetime: 5.0<br />
$Energy Consumed: 0.0<br />
$Cargo Size: 4.0<br />
$Homing: YES<br />
+Type: ASPECT<br />
+Turn Time: 1.0<br />
+Min Lock Time: 2.0<br />
+Lock Pixels/Sec: 70<br />
+Catch-up Pixels/Sec: 100<br />
+Catch-up Penalty: 30<br />
$LaunchSnd: 118<br />
$ImpactSnd: 88<br />
$FlyBySnd: -1<br />
$Rearm Rate: 2.0<br />
$Flags: ( "player allowed"<br />
"EMP")<br />
$Trail:<br />
+Start Width: 0.25<br />
+End Width: 0.75<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.5<br />
+Bitmap: MissileTrail04<br />
$Icon: iconEMPulse<br />
$Anim: ecm<br />
$Impact Explosion: ExpMissileHit1<br />
$Impact Explosion Radius: 10.0<br />
$EMP Intensity: 375.0<br />
$EMP Time: 20.0<br />
<br />
#End<br />
<br />
$Player Weapon Precedence: (<br />
"Subach HL-7"<br />
"EMP Adv." )<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Weapons.tbl&diff=58813
Weapons.tbl
2019-08-05T14:58:00Z
<p>Cyborg17: /* $Rearm Rate: */ Needed to match formatting for the rest of the page.</p>
<hr />
<div>{{TableVersionGit|2017-08-25|2039815}}<br />
<br />
The '''weapons.tbl''' defines all of the weapon classes used in FSO.<br />
<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-wep.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==Introduction==<br />
The weapons.tbl is responsible for defining the behavior of the numerous weapon effects used in FSO, including the amount of damage dealt, the firing rate, and graphical effects.<br />
<br />
This wiki page goes over all of the entries used exclusively in the weapons.tbl file. Hyperlinks to individual weapon creation/editing tutorials are provided when appropriate.<br />
<br />
<br />
<br />
==Special Case Weapons==<br />
===Beam Cannons===<br />
'''REQUIRES:'''<br />
*'''"beam"''' flag<br />
*'''[[weapons.tbl#$BeamInfo:|$BeamInfo:]]'''<br />
<br />
See also: [http://www.hard-light.net/wiki/index.php/Tutorial_-_Beam_Weapons Tutorial - Beam Weapons]<br />
<br />
<br />
===Flak Guns===<br />
'''REQUIRES:'''<br />
*'''"flak"''' flag<br />
*'''"particle spew"''' flag<br />
*Must have inner and outer radius defined to have any effect.<br />
*A '''.pof''' model must be defined ( usually '''Hornet.pof''' )<br />
**Note: the model is not actually used... Instead, it uses [[Weapons.tbl#$Pspew:|particle spew]]. Trails may also be added.<br />
<br />
<br />
<br />
==General Format==<br />
*The weapons table consist of several sections<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>'''End''' before the next section.<br />
**<nowiki>#</nowiki>'''Primary Weapons'''<br />
***Defines all '''standard primaries weapons''' as well as '''beam cannons''' and '''flak cannons'''.<br />
**<nowiki>#</nowiki>'''Secondary Weapons'''<br />
***Defines all '''secondary weapons'''.<br />
**<nowiki>#</nowiki>'''Beam Weapons'''<br />
***I haven't got any ideas for this one.<br />
**<nowiki>#</nowiki>'''[[Weapons.tbl#Countermeasures|Countermeasures]]'''<br />
***Defines the used countermeasure.<br />
**'''$Player Weapon Precedence'''<br />
***Player Weapon Precedence is used in weapon selection when a default specified by the mission designer is not available to the player. The next weapon on the list is used in its place (assuming that weapon is allowed for the player).<br />
<br />
==Core Table==<br />
<br />
<br />
===$Name:===<br />
*This is the name of the weapon. If it's going to be used by the player, keep it under 12 characters so it doesn't spill over the HUD box.<br>Two special characters can be used in the name: '''#''' and '''@'''. Their usage details are the very same than inside the [[Ships.tbl#.24Name:_2|$Name field from Ships.tbl]].<br />
*Syntax: '''''String'''''<br />
<br />
<br />
====+nocreate====<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in Weapons.tbl or in earlier parsed *-wep.tbm files) by the time the *-wep.tbm is read.}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3611|<br />
*An alternative name that can be referenced instead of $Name:<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Subtype:===<br />
{{Table3610| <br />
Specifies the weapon 's subtype. Overrides the default subtype as specified by the #-section it is in (#Primary, #Secondary, #Beam Weapon, etc.).<br />
<br />
<br />
{{Note|<br />
:Since the weapon subtype is already specified by the #-section it is in, this option is not particularly useful when the weapon is inside a #Primary or #Secondary section. However, it may be used to specify the weapon slot it uses on fighters/bombers for weapons that are normally capship only (such as beam cannons).}} <br />
<br />
<br />
*Syntax: '''''String'''''<br />
*Valid Entries: <br />
:Primary<br />
:Secondary}}<br />
<br />
===+Title:===<br />
*This is the title of the weapon in the Weapons loadout screen. Only needed for player allowed weapons. Title may be anything. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Description:===<br />
*This is the description you see in the weapons loadout screen. Again, these aren't based on any hard numbers, just approximations. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''Standard Issue<br />
''Level 3 Hull Damage<br />
''Level 2 Shield Damage''", -1)<br />
$end_multi_text<br />
</pre><br />
<br />
===+Tech Title:===<br />
*Title of the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Tech Anim:===<br />
*Animation used for the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: '''''String''''', animation filename<br />
**Example: ''Tech_Subach_HL-7''<br />
<br />
<br />
===+Tech Description:===<br />
*Descriptive text you see in the tech room. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''The Subach-Innes HL-7...''", 3245)<br />
$end_multi_text<br />
</pre><br />
<br />
===$Tech Model:===<br />
{{Table3610|<br />
*Defines model used in wing loadout screen for the weapon. 3D weapon models in the tech room have not yet been implemented.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
====+Closeup_Pos:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. The position of the camera relative to the model center.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively}}<br />
<br />
====+Closeup_Zoom:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians}}<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: '''''String''''', either "FS1", or "Off". This defaults to the FS2 effect.<br />
}}<br />
<br />
===$HUD Image:===<br />
{{Table3610|<br />
*Defines the picture used to represent the weapon in HUD loadout list<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Model File:===<br />
*Filename of the model file (.pof) at data/models folder. Additional fields beginning from '''''@Laser Bitmap:''''' and ending to '''''@Laser Tail Radius:''''' are not needed if a model has been defined for the weapon.<br />
*Standard primaries and beam cannons do not use specific models so for those the name is 'none'.<br />
*Flak weapons and secondaries use models, though the exact model is not important with the flak weapons.<br />
*Syntax: '''''String.pof''''' or ''none'', model filename<br />
**Example: ''none''<br />
<br />
<br />
===$POF target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of the model used in HUD targeting view<br />
*Syntax: '''''Integer'''''}}<br />
<br />
===$Detail Distance:===<br />
{{Table3613|<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Optional. If not defined the game uses the formula ((radius * 20.0 + 20.0) * LOD)<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''}}<br />
<br />
===$External Model File:===<br />
{{Table3610|<br />
*Defines the models shown on the gunpoint, used with Bobb's external-visible-weapon code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Submodel Rotation Speed:===<br />
{{Table3610|<br />
*Defines the rotation speed of the subobject, with the $gun_rotation property defined, in the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Note: weapon fire will be delayed by the time it takes for the weapon to spin up to this speed (using $Submodel Rotation Acceleration or its default value), regardless of whether an external model is used or not.<br />
}}<br />
{{Table38|<br />
*Note: It's no longer required that the ship actually have external models enabled (whether or not this weapon has one defined) for the spin up delay to occur.<br />
}}<br />
<br />
===$Submodel Rotation Acceleration:===<br />
{{Table3610|<br />
*Defines the rotation acceleration of the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Default value: 10}}<br />
<br />
===@Laser===<br />
In the event a 3D model is not defined for the weapon, FSO creates an object similar to a glowpoint. Essentially, it is a 2D plane that always faces the player's camera with an additive texture applied to it, and may or may not have an omnilight follow it.<br />
<br />
As suggested by its name, this option group is normally used for lasers and similar primaries, but it may also be used for other weapon types as well.<br />
<br />
Unless said otherwise, the graphic files used within this group may be of any compatible type (.DDS, .PCX, .TGA, etc.), however a .DDS is recommended.<br />
<br />
<br />
====@Laser Bitmap:====<br />
Defines the graphic file to be used as the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Bitmap: my_laser_bitmap<br />
</pre><br />
<br />
<br />
====@Laser Glow:====<br />
Defines the graphic file to be used for the glowmap of the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
*This file is 'multiplied' by a value between Color and Color2.<br />
*The physical dimensions of the glowmap in-game is 2x the size of the bitmap.<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Glow: my_laser_glowmap<br />
</pre><br />
<br />
<br />
====@Laser Color:====<br />
The RGB color of the glow effect.<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Red glow effect at the start of the effect's lifetime<br />
</pre><br />
<br />
<br />
====@Laser Color2:====<br />
The RGB color of the glow effect at the end of the effect's lifetime (at its maximum range).<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
*The actual color of the glow effect is somewhere in between the values defined by Color and Color2. Essentially, the actual color "fades" from Color to Color2 over its lifetime.<br />
**If Color is not defined, then a default value of 255, 255, 255 is assumed for its initial color.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color2: 0, 0, 255 ; Blue glow effect at the end of the effect's lifetime.<br />
</pre><br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Start with a Red glow effect, and fade into...<br />
@Laser Color2: 0, 0, 255 ; a Blue glow effect over the lifetime of the effect.<br />
</pre><br />
<br />
<br />
====@Laser Length:====<br />
Defines the length of the weapon effect.<br />
*This option stretches the 2D plane "away" from its origin.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Length: 1.0<br />
</pre><br />
<br />
<br />
====@Laser Head Radius:====<br />
Defines the width of the leading edge, or "head," of the weapon effect.<br />
*The edge of the 2D plane farthest away from its origin is the leading edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Head Radius: 0.75<br />
</pre><br />
<br />
<br />
====@Laser Tail Radius:====<br />
Defines the width of the trailing edge, or "tail" of the weapon effect.<br />
*The edge of the 2D plane that is closest to its origin is the trailing edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Tail Radius: 0.75<br />
</pre><br />
<br />
<br />
===$Mass:===<br />
*How much of a kinetic effect this weapon has on its target. 3+ gives you the Flail effect. Set it to 10 and you can knock cruisers around.<br />
*This is somehow multiplied by the speed. ie ''$Mass: 3'' and ''$Velocity: 200'' has much weaker kinetic effect than ''$Mass: 3'' and ''$Velocity: 1000''. Also $Mass is used to calculate intensity of "shudder" effect if flagged.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Velocity:===<br />
*How fast the weapon travels. Is also used to define the weapon range, '''''$Velocity x $Lifetime = range'''''.<br />
*Beams travel instantly so this field has effect only on weapon range and AI beam targeting with certain beam types. $Velocity of beam also applies to its kinetic effect along with $Mass.<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Fire Wait:===<br />
*Time in seconds between firings<br />
*Note that Fire wait will be reset to 1 if it is set over 5 for non turreted primary weapons (doesn't apply to 3.6.14+)<br />
*Syntax: '''''Float''''', seconds<br />
<br />
====+Max Delay:====<br />
{{Table373|<br />
*Defines the maximum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Min Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
====+Min Delay:====<br />
{{Table373|<br />
*Defines the minimum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Max Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
===$Damage:===<br />
*Base damage this weapon does. The actual damage is this number multiplied by the factors below.<br />
*Base damage this beam does is continuous damage, damage is 5.5 times the damage value per second. The actual damage is this number multiplied by one of the factors below.<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
<br />
===$Damage Time:===<br />
{{Table373|<br />
*This sets a time from the end of the weapons lifetime that damage will start to attenuate at. '''''Example: Weapon lifetime is 2.0 seconds and the desired effect is to attenuate after 0.5 seconds have passed, set this to 1.5 seconds.'''''<br />
*Syntax: '''''Float''''', seconds. Defaults to 0.0.<br />
**Note: If neither +Min Damage: nor +Max Damage: is set, the damage will always attenuate to zero at max range.<br />
***If both +Min Damage: and +Max Damage: are set, both are defaulted to 0.0 and damage will be attenuated to zero.}}<br />
<br />
====+Attenuation Damage:====<br />
{{Table373|<br />
*This sets the damage a weapon will attenuate to after reaching $Damage Time:.<br />
*Syntax: '''''Float''''', damage.}}<br />
<br />
====+Min Damage:====<br />
{{Table373|<br />
*This sets the lowest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
====+Max Damage:====<br />
{{Table373|<br />
*This sets the highest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
===$Damage Type:===<br />
{{Table3610|<br />
Defines the damage type that this weapon uses. All armor effects are applied after shield and have no function against shockwave or subsystem damage.<br />
<br />
'''REQUIRES:''' [[armor.tbl]]<br />
<br />
*Syntax: '''''String''''', name of the damage type ( as defined by [[armor.tbl#$Damage Type:|$Damage Type]] )}}<br />
<br />
===$Arm time:===<br />
{{Table3610|<br />
*Defines the time after the launch that is required before the weapon comes hot<br />
*If the time has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Arm distance:===<br />
{{Table3610|<br />
*Defines the distance from the firing ships that is required before the weapon comes hot<br />
*If the distance has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', meters}}<br />
{{Table3615|<br />
*This parameter is also applied to flak weapons. Previous behaviour was to arm weapons after 10 meters of travel.}}<br />
<br />
===$Arm radius:===<br />
{{Table3610|<br />
*Defines the distance from the target where the weapon will arm itself<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Detonation Range:===<br />
{{Table3610|<br />
*Defines the distance from the point in space that the weapon was launched where the weapon will detonate<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Radius:===<br />
{{Table3610|<br />
*Defines the distance between the target center point point and the weapon which detonates the weapon.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shockwave damage:===<br />
{{Table3610|<br />
*Override for the damage caused by shockwaves (default is [[#$Damage:]])<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
}}<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the weapon explosions<br />
*Syntax: '''''String''''', name as defined in [[armor.tbl]]}}<br />
<br />
===$Flak Detonation Accuracy:===<br />
{{Table3615|<br />
*Normally, flak weapons detonate at a range of 65 to 99 meters from their intended target, depending on the firing ships' weapon subsystem health. This parameter can be used to adjust this behaviour, as it defines the base range used to determine this detonation range. Standard value is 65.<br />
*Syntax: '''''Float''''', range in meters}}<br />
<br />
===$Flak Targeting Accuracy:===<br />
{{Table3615|<br />
*Turret-fired flak weapons are normally firing in a cone around the target's predicted position. This parameter can be used to adjust the size of this cones' base radius. Standard is 60 meters.<br />
*Syntax: '''''Float''''', radius in meters}}<br />
<br />
===$Untargeted Flak Range Penalty:===<br />
{{Table3615|<br />
*If a flak weapon is fired without a target selected, this parameter defines the range penalty applied to that weapon. Standard is 20 meters, meaning an untargeted flak weapon will detonate after travelling its max range - 20 meters.<br />
*Syntax: '''''Float''''', penalty in meters.}}<br />
<br />
===$Blast Force:===<br />
*The intensity of the kinetic blast effect when ship is within the outer radius of the explosion. Comes in effect only if inner and outer radius are defined.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
===$Inner Radius:===<br />
*Radius at which the full explosion damage is done. Marks the line where damage attenuation begins. Damage is reduced by the square of the distance between the inner radius and outer radius. i.e. half way between inner and outer results in 1/4 damage<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Outer Radius:===<br />
*Maximum radius at which any damage is done. See $Inner Radius for the attenuation formula.<br />
*Also defines the size of the shockwave (if shockwave speed is > 0)<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at. Zero means no shockwave and that damage is applied immediately<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave rotation:===<br />
{{Table3610|<br />
*Defines how the 3D shockwave is rotated.<br />
*Syntax: '''''Angle''''', three values, pitch, bank, heading respectively, in degrees}}<br />
<br />
<br />
===$Shockwave model:===<br />
{{Table3610|<br />
*Defines the model file (.pof) used as a shockwave for the 3D shockwaves.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave name:===<br />
{{Table3610|<br />
*Defines the name of the animation used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Dinky shockwave:===<br />
{{Table3610|<br />
*Dinky shockwave are used if the weapon is shot down before arming or if the conditions marked at '''Arm time''' and '''Arm distance''' are not reached before impact<br />
*It uses exactly same entries as the standard shockwaves<br />
*'''''+Shockwave damage:'''''<br />
*'''''+Shockwave damage type:'''''<br />
*'''''+Blast Force:'''''<br />
*'''''+Inner Radius:'''''<br />
*'''''+Outer Radius:'''''<br />
*'''''+Shockwave Speed:'''''<br />
*'''''+Shockwave Rotation:'''''<br />
*'''''+Shockwave Model:'''''<br />
*'''''+Shockwave Name:'''''}}<br />
<br />
<br />
===$Armor Factor:===<br />
*Multiplier for the damage done to armor<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Shield Factor:===<br />
*Multiplier for the damage done to shields<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Subsystem Factor:===<br />
*Multiplier for the damage done to subsystems<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Lifetime Min:===<br />
{{Table3610|<br />
*Defines the minimum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime Max:===<br />
{{Table3610|<br />
*Defines the maximum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime:===<br />
*Time before the standard primaries fizzle out and secondaries self destruct. Multiply this by the speed to get the range. If values are too low (below framerate) then the collision detection and graphic effects may suffer.<br />
*This field has no effect for the beams apart from weapon range and AI beam targeting with certain beam types<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Energy Consumed:===<br />
*The amount of energy each bolt drains firing ship. Has no effect on turretted weapons.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Cargo Size:===<br />
*Cargo size, is not used with non-ballistic primaries.<br />
*Amount of missiles available = Bank capacity / Cargo Size.<br />
*Syntax: '''''Float'''''<br />
<br />
===$Homing:===<br />
'''This option is exclusive to secondaries.'''<br />
<br />
Defines if the bolts/missiles in question is homing<br />
*The bolts of primaries will turn to face their target if this option is set to YES... but is otherwise the same as a normal bolt ( when the option is set to NO ).<br />
<br />
If set to NO, then following fields are not required in the table.<br />
<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
===='''+Type:'''====<br />
Defines the homing method<br />
*Syntax: '''''String''''', ''ASPECT'' or ''HEAT''<br />
{{Table3610| An additional option, ''JAVELIN'', has been added. This behaves like an aspect missile but automatically only locks onto the engines of a target, and only if the engines are in sight.}}<br />
<br />
<br />
===='''+Turn Time:'''====<br />
Determines how well the missile maneuvers. Is defined as the number of seconds it takes the missile to do a 360 degree circle<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===='''+View Cone:'''====<br />
'''Heat-seeking missiles only'''<br />
<br />
This is the width of the weapon's viewing cone, given in degrees. Objects outside this cone are effectively invisible to the missile. The value / 2 gives the angle from the missile's centerline to the edge of the viewing cone.<br />
*Syntax: '''''Float''''', degrees<br />
{{Table3610| Has been enabled also to aspect seekers as an option.}}<br />
<br />
<br />
===='''+Min Lock Time:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The minimum number of seconds to gain a target lock.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===='''+Lock Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
The number of pixels the aspect triangle moves per second while attempting lock-on.<br />
<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The number of pixels moved per second while attempting to catch up to the target.<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Penalty:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
Extra pixels to move after catching up. (Needs verification )<br />
**Syntax: '''''Integer''''', pixels<br />
<br />
<br />
===='''+Seeker Strength:'''====<br />
{{Table3610|<br />
Defines the seeking ability of the homing system. Default of heat seekers is 3.0 and for aspect seekers 2.0. Spoofing chance is defined as '''[[#$Countermeasure:|cm type effectiveness]]'''/'''seeker strength''' (missile must be within the countermeasures '''[[#$Countermeasure:|+Effective Radius:]]'''<br />
*Syntax: '''''Float''''', seeker strength}}<br />
<br />
===='''+Target Lead Scaler:'''====<br />
{{Table3611|<br />
Defines the type of pursuit course the missile tries to obtain.<br />
*Values < 0 give lag pursuit, values ~ 0 give pure pursuit, values > 0 give lead pursuit.<br />
*Syntax: '''''Float''''', default for heat seekers: 0, default for aspect or javelin seekers: 1.}}<br />
<br />
<br />
<br />
===$Swarm:===<br />
*The number of missiles to fire per volley if it's a swarm missile<br />
*Can be issued to Standard primaries also. Causes single part turrets to malfunction but causes multi part turrets to fire only on their barrel line. Can be used for 'burst fire weapons'. Does not work with player weapons.<br />
*Is incompatible with "Corkscrew" option.<br />
*Swarm will negatively affect the missile's ability to hit its target. Especially when fired off-bore.<br />
*Syntax: '''''Integer''''', number of shots in a swarm<br />
{{Table3610|<br />
*'''+SwarmWait:'''<br />
**Defines the time between weapons fired in a swarm<br />
**Syntax: '''''Float''''', seconds<br />
***Default: 0.150<br />
***Max: 0.5 (Resets to default if set over 0.5)}}<br />
<br />
===$Acceleration Time:===<br />
{{Table371|<br />
*Defines how long it takes for a secondary weapon to attain full speed. Takes precedence over $Free Flight Time (see below) in terms of the weapon's velocity, and affects both locked-on and dumbfired secondaries.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.0}}<br />
<br />
===$Velocity Inherit:===<br />
{{Table371|<br />
*Defines how much of the parent ship's velocity to inherit, if [[Ai_profiles.tbl#.24use_additive_weapon_velocity:]] is used.<br />
*Syntax: '''''Float''''', percents<br />
**Default: 100.0}}<br />
<br />
===$Free Flight Time:===<br />
{{Table3610|<br />
*Defines the free flight time of homing weapons. During this time weapon flies at 1/4 of its velocity + firing ships velocity in a straight line.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.25}}<br />
<br />
'''Note:''' due to dumbfires never changing their speed, using this on a dumbfire missile will have it stuck at freeflight speed even after the end of the freeflight time.<br />
<br />
===$Free Flight Speed:===<br />
{{Table3613|<br />
*Defines the speed that the weapon will be travelling at during the free flight segment (see above).<br />
*Syntax: '''''Float''''', Multiplier for the actual speed, minimum 0.01.<br />
**Default: 0.25<br />
{{Note| This feature was never implemented correctly and was removed in r8867. FSO currently parses but doesn't use the value, and prints a warning in the log saying that the value will not be used.}}<br />
}}<br />
<br />
===$PreLaunchSnd:===<br />
{{Table3613|<br />
*Defines the one-shot sound effect to play at the beginning of a firing stream. Currently only has an effect on primary weapons.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
**Default: No Sound}}<br />
<br />
===+PreLaunchSnd Min Interval:===<br />
{{Table3613|<br />
*Defines Minimum interval between when the player stops firing and the next time the pre-launch sound can play, as a limiter in case the player is pumping the trigger.<br />
*Syntax: '''''Integer''''', Minimum delay in milliseconds between the end of the previous firing sequence and the next time the pre-launch sound effect will be played.<br />
**Default: 0 (play pre-launch sound at the beginning of every firing sequence, if present)}}<br />
<br />
===$LaunchSnd:===<br />
*Corresponding sound effect when the weapon is launched.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$ImpactSnd:===<br />
*Sound the weapon makes when it hits a hull.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Disarmed ImpactSnd:===<br />
{{Table3610|<br />
*Sound the weapon makes when it hits a hull before being armed.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$FlyBySnd:===<br />
*The sound this weapon makes if it narrowly misses you. -1 is no sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]], usually -1<br />
<br />
<br />
===$TrackingSnd===<br />
{{Table3615|<br />
*The looping sound played when this weapon tracks a target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$LockedSnd===<br />
{{Table3615|<br />
*The sound played when this weapon has locked onto its target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$InFlightSnd===<br />
{{Table3615|<br />
*The looping sound played when the missile is currently flying.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Inflight sound type'''<br />
**Specifies when the in flight sound is played.<br />
**The value can be one of the following values which are matched case-insensitively:<br />
***''''''TARGETED'''''': The sound is played when the missile tracks a target<br />
***''''''UNTARGETED'''''': The sound is played when the missile is currently not tracking a target<br />
***''''''ALWAYS'''''': The sound is played always}}<br />
<br />
<br />
===$Model:===<br />
{{Table3610|<br />
*Defines used model file. Included for compatibility with countermeasures as they have been merged with weapons in the code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Rearm Rate:===<br />
*Defines the frequency that weapons are loaded to the ship<br />
*Syntax: '''''Float''''', How many times per second the weapons are loaded.<br />
**Example: 2.0 will reload every half second. 0.1 will load every ten of a seconds.<br />
<br />
===+Weapon Range:===<br />
*Defines the range to the target where the weapons under AI will start firing.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===+Weapon Min Range:===<br />
{{Table3610|<br />
*Defines the minimum range to the target where the weapons under AI will still fire.<br />
*Implemented before FS_Open 3.6.5<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Weapons.tbl#Weapons.tbl_Flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the weapon<br />
**Example: ( "Player allowed" "in tech database" )<br />
<br />
{{Table3610|<br />
*Can be followed by '''+override''' option in order to reset the weapon flags before parsing in the new ones<br />
*Using this option will erase all '''homing'''-related flags as well as '''swarm''', '''variable lead''', '''trail''', '''TAG''', and '''transparent''' settings in addition to the listed flags. All these should be set again - if they are required - when this option is used.<br />
<br />
**Syntax: '''''+override'''''}}<br />
<br />
<br />
===$Trail:===<br />
*This is used if you want your weapon to have a trail. Trail is often used only with secondaries though it works with standard primaries as well.<br />
*'''+Start Width:'''<br />
**How wide the head of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+End Width:'''<br />
**How wide the tail of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Start Alpha:'''<br />
**The opacity of the trail head.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+End Alpha:'''<br />
**The opacity of the trail tail.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+Max Life:'''<br />
**How long the trail lasts.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Bitmap:'''<br />
**The graphic file to use for the trail.<br />
**Syntax: '''''String''''', filename<br />
{{Table3611|<br />
*'''+Faded Out Sections:'''<br />
**Defines the number of the trail sections (counting from the leading edge) which are gradually faded out.<br />
**Syntax: '''''Integer''''', number of trail sections}}<br />
<br />
<br />
===$Icon:===<br />
*Loadout icon used in the weapons selection screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Anim:===<br />
*Green grid animation used on the weapons screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Collide Ship:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Collide Weapon:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
===$Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for impacts of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Impact Explosion'' and ''$Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
===$Impact Explosion:===<br />
*Impact explosion used. Must be defined in weapon_expl.tbl,<br />
*Syntax: '''''String''''', filename or ''none''<br />
<br />
<br />
===$Impact Explosion Radius:===<br />
*Radius of the defined impact explosion.<br />
*Syntax: '''''Float''''', meters, default 1.0<br />
<br />
<br />
===$Shield Impact Explosion Radius:===<br />
{{Table373|<br />
*Radius of the shield impact explosion, see [[Ships.tbl#.24Shield_Impact_Explosion:]].<br />
*Syntax: '''''Float''''', meters, defaults to value of $Impact Explosion Radius}}<br />
<br />
===$Dinky Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for Dinky (not armed) explosions of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Dinky Impact Explosion'' and ''$Dinky Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
<br />
===$Dinky Impact Explosion:===<br />
{{Table3610|<br />
*Same as Impact Explosion but for Dinky (not armed) explosions<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Dinky Impact Explosion Radius:===<br />
{{Table3610|<br />
*Same as Impact Explosion Radius but for Dinky explosions<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Piercing Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for piercing impacts.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then piercing impact options below are not valid!<br />
}}<br />
<br />
===$Piercing Impact Explosion:===<br />
{{Table3611|<br />
*Defines the effect used for events when weapon pierces the target<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Piercing Impact Radius:===<br />
{{Table3611|<br />
*Defines the base radius of the effect used for piercing weapon impacts<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles piercing the target<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Splash Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles splashing from the target (secondary piercing effects<br />
*Negative value causes the second batch or particles to splash to opposite direction<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Variance:===<br />
{{Table3611|<br />
*Defines the variance added to the particles<br />
*Values near 0 cause very little variance and values close to 1 cause extreme dispersal.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the lifetime of the effect for single frame effects<br />
*For multiple frame effects the lifetime is the lifetime of the animation used<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Particles:===<br />
{{Table3611|<br />
*Defines the number of particles released per impact<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Piercing Impact Draw Modifier:===<br />
{{Table3611|<br />
*Defines the multiplier applied to the ships piercing effect limit percentage<br />
*Syntax: '''''Float'''''}}<br />
*Option removed in 3.6.12. Use [[armor.tbl]] to finetune piercing effects.<br />
<br />
===$Inflight Effect:===<br />
{{Table38|<br />
*Sets the inflight [[Particle Effects|particle effect]] which is used when the laser is active. This is only used by laser weapons.<br />
*Syntax: '''''String''''', the particle effect name<br />
}}<br />
===$Freeflight Effect:===<br />
{{Table38|<br />
*Sets the [[Particle Effects|particle effect]] which is used when the missile is in the free flight phase. See [[#$Free Flight Time:|$Free Flight Time]] for more information.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Ignition Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is transitioning from free flight to homed or unhomed flight.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Homed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in homed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Unhomed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in unhomed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
<br />
===$Muzzleflash:===<br />
*Normally only with flak cannons.<br />
*Defines the muzzle flash the weapon uses<br />
*Syntax: '''''String''''', muzzleflash name, as defined in [[mflash.tbl]]<br />
<br />
<br />
===$EMP Intensity:===<br />
*If it has an EMP effect, how deeply it scrambles your electronics<br />
*Basically a percentage, a value of 250 results in a 25% chance of something getting scrambled each frame. <br />
*Maximum value of 500<br />
**Syntax: '''''Float'''''<br />
<br />
===$EMP Time:===<br />
**Duration of the EMP effect<br />
**Syntax: '''''Float''''', seconds<br />
<br />
===$Recoil Modifier:===<br />
{{Table373|<br />
*Multiplies the recoil force of a weapon by this value, use a value greater than 1.0 to increase the force, use a value between 1.0 and 0.0 to decrease.<br />
**Syntax: '''''Float''''' (defaults to 1.0)<br />
{{Note| The "apply recoil" weapon flag must be set for this to be valid. If the flag is not set, FSO will throw a warning and automatically set it at runtime.}}<br />
}}<br />
<br />
===$Leech Weapon:===<br />
**The amount of weapon energy to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Leech Afterburner:===<br />
**The amount of afterburner fuel to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Corkscrew:===<br />
{{Table3610|<br />
*Allow corkscrew parameters to be defined<br />
*'''+Num Fired:'''<br />
**Defines the number of weapons fired in sequence. Same as the standard swarm entry but for corkscrew missiles<br />
**Syntax: '''''Integer''''', number of missiles<br />
*'''+Radius:'''<br />
**Defines the radius used in the corkscrew motion<br />
**Syntax: '''''Float''''', meters<br />
*'''+Fire Delay:'''<br />
**Defines the delay between missile firings<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Counter rotate:'''<br />
**Defines if every other missile rotates to a different direction (clockwise / anticlockwise)<br />
**Syntax: '''''Boolean''''', ''0'' or ''1'', no or yes<br />
*'''+Twist:'''<br />
**Defines the speed of rotation movement on the radius of corkscrew motion.<br />
**Syntax: '''''Float''''', radians per second}}<br />
<br />
<br />
===$Electronics:===<br />
{{Table3610|<br />
*Defines the weapons effect against electronics. Requires [[weapons.tbl#"Electronics"|"electronics"]] flag. '''+New Style:''' and '''+Old Style:''' options are mutually exclusive.<br />
*'''+New Style:'''<br />
**Defines that the electronics use the new style which enables more options.<br />
*'''+Old Style:'''<br />
**Defines that the electronics use the old style. The old style was the way the D-Missile worked in Descent: FreeSpace.<br />
}}<br />
{{Table371|<br />
*'''+Area Of Effect'''<br />
**If specified, allows the electronics effect to apply to every ship hit by this weapon's blast or shockwave (the "Electronics" flag isn't necessary with this option).<br />
}}<br />
{{Table3610|<br />
*'''+Intensity:'''<br />
**May only be used with '''+New Style:''' electronics. '''''Has been deprecated'''''.<br />
**Syntax: '''''Float'''''<br />
*'''+Lifetime:'''<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Engine Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for engine subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Weapon Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for non-beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Turret Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Sensors Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for sensor subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Randomness Time:'''<br />
**Defines the randomness of duration target suffers from the electronics hit. A random number between 0 and this time will be added or subtracted from the disruption time.<br />
**Syntax: '''''Integer''''', milliseconds<br />
<br />
* Without any electronics parameters, a weapon with the "electronics" flag will default to the ''Old Style'' mode with a lifetime of 6000 milliseconds and a randomness of 4000 milliseconds. Thus any ship that gets hit can get disrupted for anywhere between 2 to 10 seconds.<br />
<br />
}}<br />
<br />
===$Spawn Angle:===<br />
{{Table3610|<br />
*Defines the cone (with an angle) where the spawned weapons appear. ''Value'' gives the angle from the missiles centerline. The maximum possible angle between any two child weapons would be ''Value*2''.<br />
*Spawn angle can be defined as many times as the carrier missile has child weapons defined for it (up to 5).<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Local SSM:===<br />
{{Table3610|<br />
*Defines the local SSM (Subspace Missile). In effect missile moves via subspace to a position close to the target and starts homing.<br />
*Weapon must be '''''aspect seeking missile''''' and must have '''''[[Weapons.tbl#"local ssm"|local ssm]]''''' flag.<br />
*'''+Warpout Delay:'''<br />
**Defines the time between the missile launch and the subspace jump.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warpin Delay:'''<br />
**Defines the time missile stays in subspace before exiting.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Stage 5 Velocity:'''<br />
**Defines the velocity of the missile after the subspace jump.<br />
**Syntax: '''''Float''''', meters per second<br />
*'''+Warpin Radius:'''<br />
**Defines how far from the SSM will appear from the outer radius of the target.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Lock Range:'''<br />
**Defines the maximum range where SSM can achieve target lock<br />
**Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Countermeasure:===<br />
<br />
*Defines the countermeasure effectiveness, radius, etc<br />
{{note| <br />
*Spoofing chance is defined as '''cm type effectiveness'''/'''[[#+Seeker Strength:|seeker strength]]''' (missile must be within the countermeasures '''+Effective Radius:''').<br />
*All countermeasures in the mission perform tests to spoof missiles for two frames after '''any countermeasure''' is created in the mission. No, this doesn't seem to make much sense.<br />
{{Table382|The global frame counter can be bypassed by using '''[[#+Pulse Interval:|pulse interval]]'''.}}<br />
*'''Provisional'''; Countermeasures are only given one chance to spoof any individual missile. This makes tuning seeker strength/effectiveness meaningful.<br />
**Previously some record of which countermeasures had been seen by each missile was kept, but it broke when multiple countermeasures were involved. A good chance of breaking with two countermeasures, and a guaranteed chance of breaking with three or more. This reduced the impact of the seeker strength/effectiveness ratio, but was partly cancelled out by the 2 frames thing.<br />
}}<br />
<br />
{{Table3610|<br />
===='''+Heat Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against heat seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
**Default: 1.0<br />
<br />
===='''+Aspect Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against aspect seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
*Default: 1.0<br />
<br />
===='''+Effective Radius:'''====<br />
*Defines the countermeasures effective radius<br />
*Syntax: '''''Float''''', meters<br />
**Default: 300.0<br />
}}<br />
<br />
{{Table373|<br />
====+Missile Detonation Radius:====<br />
*Defines the radius within which a missile homing on this countermeasure will trigger a detonation (see '''+Single Missile Kill:''')<br />
*Syntax: '''''Float''''', meters<br />
**Default: 40.0<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
<br />
====+Single Missile Kill:====<br />
*Defines if countermeasures will detonate only the missile homing on this countermeasure, or every missile within '''+Missile Detonation Radius:'''<br />
*Syntax: '''''Boolean'''''<br />
**Default: false<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
}}<br />
<br />
{{Table382|<br />
====+Pulse Interval:====<br />
*Defines how much time passes between each pulse of this countermeasure.<br />
*Syntax: '''''Float''''', milliseconds<br />
**Default: 0<br />
{{note| any value less than or equal to 0 means the countermeasure doesn't pulse, and uses the global 2-frame counter after any countermeasure is fired.}}<br />
}}<br />
<br />
===$BeamInfo:===<br />
*'''+Type:'''<br />
**Defines the type of beam in question. Beam types: 0 is a standard non-slashing type beam. 1 is a slashing type beam. 2 is a targeting beam that is used to trigger SSMs. 3 is a beam type that fires pulses in anti-fighter role and acts like type 0 beam in other roles. 4 is a beam that is restricted to what is directly in front of it, along turrets firepoints normal.<br />
**Syntax: '''''Integer''''',, only values from 0 to 4 are legal<br />
*'''+Life:'''<br />
**How long it lasts once the beam is actually firing.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Warmup:'''<br />
**Warmup time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warmdown:'''<br />
**Warmdown time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Radius:'''<br />
**Muzzle glow radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PCount:'''<br />
**Particles spewed every interval. ??<br />
**Syntax: '''''Integer'''''<br />
*'''+PRadius:'''<br />
**Particle radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PAngle:'''<br />
**Defines the random "cone" where the particles are generated<br />
**Syntax: '''''Float''''', angle of the cone<br />
*'''+PAni:'''<br />
**Animation used to represent the particles<br />
**Syntax: '''''String''''', filename<br />
*'''+Miss Factor:'''<br />
**The higher the numbers, the more likely that this beam will miss. One value for every difficulty level<br />
**Syntax: '''''Miss Factor''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5<br />
{{Table3613|<br />
*'''IFF specific miss factors'''<br />
**Identical to the preceding entry but IFF specific. Replace the <IFF> with the name of the IFF from [[iff_defs.tbl]]<br />
**Syntax: '''''+<IFF> Miss Factor:''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5}}<br />
*'''+BeamSound:'''<br />
**Corresponding looping sound effect when the beam is firing.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmupSound:'''<br />
**Corresponding sound effect when the beam is beam warmed up.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmdownSound:'''<br />
**Corresponding sound effect when the beam is warming down.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Muzzleglow:'''<br />
**Defines the bitmap used to create the muzzle glow<br />
**Syntax: '''''String''''', filename<br />
{{Table372|<br />
*'''+Directional Glow:'''<br />
**Defines the length to stretch the muzzleglow along the beam.<br />
**Syntax: '''''Float''''', length in meters, the muzzleglow is rendered along (in the same plane) as the beam instead of perpendicular to the camera.}}<br />
*'''+Shots:'''<br />
**Defines into how may invidual shots the type 3 (AAA) beams are divided. Note total firing is the same as the +Life:<br />
**Syntax: '''''Integer'''''<br />
*'''+ShrinkFactor:'''<br />
**What percentage of lifetime where beam starts shrinking (0.1 == 10% life left)<br />
**Syntax: '''''Float'''''<br />
*'''+ShrinkPct:'''<br />
**What percentage of max width we subtract per second<br />
**Syntax: '''''Float'''''<br />
{{Table3610|<br />
*'''+Range:'''<br />
**Defines the maximum range where the beam still has any effect.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Attenuation:'''<br />
**Defines the point where the damage caused by the beam starts to attenuate. At maximum range damage is zero.<br />
**Syntax: '''''Float''''', from 0 - firing point to 1 - no effect<br />
***Default: 1}}<br />
{{Table3611|<br />
*'''+BeamWidth:'''<br />
**Defines the width of the beam for collision test purposes instead of using widest beam section.<br />
**Syntax: '''''Float''''<br />
{{Table38|<br />
*'''+Beam Flash Particle Effect:'''<br />
**Specifies the beam flash [[Particle Effects|particle effect]].<br />
**Syntax: '''''String''''', particle effect name<br />
**If this is specified then '''+Beam Flash Effect''' and '''+Beam Flash Radius''' are not valid options!<br />
}}<br />
*'''+Beam Flash Effect:'''<br />
**Defines the additional impact flash effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Flash Radius:'''<br />
**Defines the radius for the additional impact flash effect.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect:'''<br />
**Defines the beam piercing (bursting flames) effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Piercing Radius:'''<br />
**Defines the average radius used for the beam piercing effects.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Velocity:'''<br />
**Defines the base velocity for the piercing effects<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Splash Effect Velocity:'''<br />
**Defines the base velocity for the secondary piercing effects<br />
**Negative velocity causes the particles to move to opposite direction<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Variance:'''<br />
**Defines the variances of the particles from the main path<br />
**Values close to 0 cause minimum variance, higher values cause higher variances<br />
**Syntax: '''''Float'''''}}<br />
<br />
*'''$Section:'''<br />
**Beams are made up of up to five sections layered atop one another to create the effect. Each section has its own parameters.<br />
{{Table3610|<br />
:*'''+Index:'''<br />
:**Field used to define with [[Modular Tables]] the beam section which is edited.<br />
:**Only needed when editing beams that already exist in other tables.<br />
:**Syntax: '''''Integer''''', index number legal values are from 0 to 5<br />
:*'''+remove'''<br />
:**Removes the set beam section.<br />
:*'''+nocreate'''<br />
:**Does not create new section for the beam}}<br />
<br />
:*'''+Width:'''<br />
:**Width of the section<br />
:**Syntax: '''''Float''''', meters<br />
:*'''+Texture:'''<br />
:**Texture for the section<br />
:**Syntax: '''''String''''', filename<br />
:*'''+RGBA Inner:'''<br />
:**Defines the color and transparency of the center of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 255 255 255 255<br />
:*'''+RGBA Outer:'''<br />
:**Defines the color and transparency of the edges of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 150 150 150 10<br />
:*'''+Flicker:'''<br />
:**Defines how much the section flickers<br />
:**Syntax: '''''Float''''', value from 0 to 1<br />
:*'''+Zadd:'''<br />
:**Defines the 'thickness' of the section. The higher the Zadd, the closer the section appears to be. (Zadd can be safely ignored; it actually does nothing.)<br />
:**Syntax: '''''Float'''''<br />
{{Table3610|<br />
:*'''+Tile Factor:'''<br />
:**Defines the beam texture tiling factor. Second number defines the tiling type. Type 0 tiles the graphic in the beam as many times as defined by the 1st number. Type 1 uses the 1st value as the lenght of the tile.<br />
:**Syntax: '''''Float''''', '''''Integer'''''<br />
:*'''+Translation:'''<br />
:**Defines the speed of translation of the beam, a positive value moves from the impact point to the firing point, while a negative value moves away from the firing point towards the impact point. Measured in tiles per second, where the tile count is defined in the "+Tile Factor:" field above.<br />
:**Syntax: '''''Float'''''}}<br />
<br />
===$Pspew:===<br />
{{Table3610|<br />
*Defines a particle spew effect for the given weapon<br />
}}{{Table3613|<br />
*'''+Index:'''<br />
**indicates which spewer to add/edit/delete. may be 0-3. used for xmt compatibility.<br />
**Syntax: '''''Integer'''''<br />
*'''+Remove'''<br />
**removes spewer at +Index: (requires +index:)<br />
*'''+Type:'''<br />
**type of particle spew<br />
**Syntax: '''''String'', Default, Helix, Sparkler, Ring, or Plume '''<br />
}}{{Table3610|<br />
*'''+Count:'''<br />
**Defines how many particles are spawn when they are ready to be created (at each +Time: interval)<br />
**Syntax: '''''Integer'''''<br />
*'''+Time:'''<br />
**Defines the time in milliseconds between next particle(s) spewed<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Vel:'''<br />
**Defines the created particles velocity as percentage of the weapons velocity<br />
**Syntax: '''''Float'''''<br />
*'''+Radius:'''<br />
**Defines the size of the created particles<br />
**Syntax: '''''Float''''', meters<br />
*'''+Life:'''<br />
**Defines how long the particles last.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Scale:'''<br />
**Defines the particle spread. Small value will make particles group together<br />
**typically controls how big the effect is or how fast it moves away from the weapon path on a perpendicular (or sometimes arbitrary) axis. <br />
**helical spews and rings use this value to control how fast the particle helix moves away from the central axis.<br />
**sparklers use this to control how fast particles move away from the spawn point, in any direction<br />
**plumes use this to set the diameter of the disk across which particles are spawned<br />
**Syntax: '''''Float'''''<br />
}}{{Table3613|<br />
*'''+Z Scale:'''<br />
**for sparklers, allows you to elongate the effect to surround other effects, like lasers. essentially a length multiplier<br />
**for plume, it multiplies against +scale to set the plume to spread or converge, zero would be full convergence, 1 would be straight flight, and bigger numbers would cause particles to diverge from the disk.<br />
**Syntax: '''''Float'''''<br />
*'''+Rotation Rate:'''<br />
**used only by helical spews, controls how many rotations per second the helix makes<br />
**Syntax: '''''Float'', may be negative, useful for setting up 2 spews that spin in opposite directions'''<br />
*'''+Offset:'''<br />
**position of effect with regards to the weapon center<br />
**Syntax: '''''Vector'''''<br />
*'''+Initial Velocity:'''<br />
**to indicate both direction and speed of particle effects regards to the weapon velocity and +scale:<br />
**Syntax: '''''Vector'''''<br />
}}{{Table3610|<br />
*'''+Bitmap:<br />
**Defines the animation used to create the particle spew effect<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Tag:===<br />
*Allowed for secondary weapons<br />
{{Table3610|<br />
*Allowed for primary weapons and secondary weapons}}<br />
<br />
*Sets this weapon as a TAG missile, level 1, 2, or 3. The second number is the duration in seconds.<br />
*TAG Level 1 will illuminate hidden targets such as stealth fighters or ships normally obscured by nebula conditions.<br />
*TAG Level 2 illiminates targets much like TAG Level 1, but turrets will prefer to shoot at them over other ships.<br />
*TAG Level 3 has no effect in retail.<br />
{{Table3610|<br />
*TAG Level 3 allows the weapon to trigger [[Weapon.tbl#$SSM:|SSMs]]}}<br />
<br />
*Syntax: '''''Integer''''' '''''Float''''', TAG level and seconds respectively<br />
*'''Note''': TAG will not trigger unless the weapon in question has a non-zero damage value.<br />
<br />
===$SSM:===<br />
{{Table3610|<br />
*Defines the weapons SSM index number.<br />
*Requires [[Weapons.tbl#$Tag:|TAG level 3]] or a targeting beam.<br />
*Syntax: '''''Integer'''''}}<br />
{{Table373|<br />
*Now also accepts SSM strike names.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$FOF:===<br />
{{Table3610|<br />
*Defines the field of fire for the weapon. Causes weapon to fire into a firing cone instead of direct firing line thus causing light inaccuracy<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
====+FOF Spread Rate:====<br />
{{Table37|<br />
*Defines the spread rate of the field of fire. This controls how the FOF increases over time while the weapon is firing.<br />
*Syntax: ''''''Float'''''', rate}}<br />
<br />
====+FOF Reset Rate:====<br />
{{Table37|<br />
*Rate at which the spread decreases if the weapon isn't firing.<br />
*Syntax: ''''''Float'''''', rate<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
====+Max FOF:====<br />
{{Table37|<br />
*The maximum FOF. After the FOF reaches this value it will not increase any further.<br />
*Syntax: ''''''Float'''''', degrees. Must be greater than or equal to zero.<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
===$Shots:===<br />
{{Table3610|<br />
*Defines the number of shots every time the weapon is fired.<br />
*Works only for primary weapons<br />
*Syntax: '''''Integer''''', number of shots}}<br />
<br />
<br />
===$decal:===<br />
{{Table3610|<br />
*Defines impact decals if they are in use<br />
*'''+texture:'''<br />
**Defines the texture used for impact decals (can use '''''-burn''''' and '''''-glow''''' textures)<br />
**Syntax: '''''String''''', filename<br />
*'''+backface texture:'''<br />
**Defines ???<br />
**Syntax: '''''String''''', filename<br />
*'''+radius:'''<br />
**Defines the size of the impact decals on target<br />
**Syntax: '''''Float''''', meters<br />
*'''+burn time:'''<br />
**Defines the time the '''''-burn''''' texture appears on the target<br />
**Syntax: '''''Integer''''', milliseconds}}<br />
{{Table3613|<br />
*Feature removed - table parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Transparent:===<br />
{{Table3610|<br />
*Defines weapon effect as transparent. Enables optional fields for 'alpha animations'<br />
*'''+Alpha:'''<br />
**Defines the strenght of the alpha (transparency). And also the maximum value for the alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Min:'''<br />
**Defines the minimum alpha value for alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Cycle:'''<br />
**Defines the change in alpha per frame, between '''Alpha''' and '''Alpha Min''' values<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Hitpoints:===<br />
{{Table3611|<br />
*Defines the amount of hitpoints a weapon has.<br />
*Weapons with '''"bomb"''' flag have 50 hitpoints by default<br />
*Giving weapon hitpoints makes it possible for the weapon to be shot down or be destroyed by EMP.<br />
**Syntax: '''''Integer'''''<br />
}}<br />
<br />
===$Armor Type:===<br />
{{Table3613|<br />
*REQUIRES ADDITIONAL TABLE. Defines the armor type for the weapon. This works exactly like ship armor types.<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]<br />
}}<br />
<br />
===$Burst Shots:===<br />
{{Table3611|<br />
*Defines the number of shots in a burst<br />
*Shots in a burst use shorter ( '''$Burst Delay:''' ) delay than usually<br />
**Syntax: '''''Integer'''''}}<br />
<br />
===$Burst Delay:===<br />
{{Table3611|<br />
*Defines the time in milliseconds between the shots in a burst<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Burst Flags:===<br />
{{Table3611|<br />
*Defines the flags used to define the burst firing behaviour<br />
**Syntax: ( '''''String''''' '''''String''''' ), list of flags<br />
**Available burst flags:<br />
***'''"fast firing"''', acts as if '''same turret cooldown''' flag would be used between the shots in the burst.<br />
***'''"random length"''', makes AI to fire burst of random length (from 1 to burst shots).}}<br />
<br />
<br />
===$Thruster Flame Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the modeled thruster of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the glow type effect of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Radius Factor:===<br />
{{Table3611|<br />
*Defines the radius multiplier for the thruster's glow type effect<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Substitute:===<br />
{{Table3613|<br />
Defines a pattern of ammo to substitute for primary or secondary weapons. '''$Substitute:''' can be repeated any number of times (so you could make something like a rainbow laser with several ammo substitutions, for example). If neither ''+period'' or ''+index'' is specified, it is assumed to be equivalent to ''+index: '''0'''''.<br />
<br />
*Syntax: '''''Weapon Name'''''<br />
*'''Swarm missiles act in a strange way when used with $Substitute, use at your own risk.'''}}<br />
<br />
{{Table3615|<br />
Turrets can use $Substitute as well.<br />
}}<br />
====+period:====<br />
{{Table3613|<br />
FSO will substitute '''Weapon Name''' every ''period'' shots.<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
=====+offset:=====<br />
{{Table3613|<br />
A suboption of +period, offsets the substitute pattern according to the launched ammo. For example, an offset of 3 and a period of 4 will substitute on the 3rd ammo launched, and then every 4th ammo after that.<br />
<br />
*Syntax: '''''Positive Integer'''''}}<br />
<br />
====+index:====<br />
{{Table3613|<br />
FSO will substitute the '''Weapon Name''' at firepoint ''index'' in the shot pattern. Similar to carefully using both +period and +offset, but is not affected by ships with different firepoint numbers. i.e. Firepoint ''index'' will always have the substitution, while +period and +offset will cycle at different rates dependant on the number of firepoints.'''<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
<br />
==Weapons.tbl Flags==<br />
<br />
<br />
==="Electronics"===<br />
*Will seize up the weapons and engines systems of any ship for a short period of time.<br />
<br />
<br />
==="Spawn ''Name'',''Value''"===<br />
*Will spawn the specified number of defined missiles upon detonation.<br />
{{Table3610|<br />
*Multiple spawn types can be defined for a single 'carrier' weapon up to maximum of 5 different weapons}}<br />
<br />
==="Remote Detonate"===<br />
*Can be triggered remotely via a second press on the trigger<br />
<br />
<br />
==="Big Ship"===<br />
*These weapons cannot be mounted on small ships like fighters, bombers, sentry guns etc.<br />
<br />
<br />
==="Huge"===<br />
*Allows this weapon to do the final 10% damage to a ship with the "Big Damage" flag. Also the AI will not try to hit fighters with it, but only if the weapon is in a turret or is a secondary. If the weapon is a primary in a fighter then there are no targeting restrictions. See [[Weapons.tbl#.22capital.2B.22|capital+]] instead.<br />
<br />
==="Supercap"===<br />
*Allows this weapon to do the final 75% damage to a ship with the "supercap" flag.<br />
<br />
<br />
==="Bomber+"===<br />
*The AI will prefer to use this weapon against bombers<br />
<br />
<br />
==="child"===<br />
*Cannot be set as a weapon on any ship, but is instead a child of a weapon. Usually defined with "Spawn ''Name'',''Value''"<br />
<br />
<br />
==="Bomb"===<br />
*Makes this weapon targetable with the B key, and the AI prefers to use it against large ships<br />
<br />
<br />
==="No Dumbfire"===<br />
*Missile will not fire without a lock<br />
<br />
<br />
==="in tech database"===<br />
*Has the weapon in the tech database at the start of the campaign<br />
<br />
<br />
==="Player allowed"===<br />
*Allows this weapon as a player weapon.<br />
{{Table3610|<br />
*'''EXTREMELY IMPORTANT NOTE:'''<br />
**Whenever you plan to use a weapon as a player one in your campaign or missions, '''USE THIS FLAG'''.<br />
**Not using it can cause problems within fs_open and it's a BAD MOD DESIGN.<br />
**In the future, fs_open will maybe be able to avoid these problems but, nevertheless, it's still a BAD DESIGN.<br />
**As another possible example: be careful to update "retail" tables if you plan to use Shivan weapons in player fighters.}}<br />
<br />
==="Particle Spew"===<br />
*Makes the weapon projectile spew out particles<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Pspew:|Particle Spew parameters]]}}<br />
<br />
<br />
==="EMP"===<br />
*This weapon will have an EMP effect on any ship within the blast radius<br />
*Can be defined with [[Weapons.tbl#$EMP_Intensity:|EMP Intensity]] and [[Weapons.tbl#$EMP_Time:|EMP Time]]<br />
<br />
<br />
==="Esuck"===<br />
*Drains the target's energy banks<br />
*Can be defined with [[Weapons.tbl#$Leech_Weapon:|Leech Weapon]] and [[Weapons.tbl#$Leech_Afterburner:|Leech Afterburner]]<br />
<br />
<br />
==="Flak"===<br />
*Makes this weapon a [[weapons.tbl#Flak_Guns|flak gun]]<br />
<br />
<br />
==="Corkscrew"===<br />
*Makes this weapon spiral AND swarm 4.<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Corkscrew:|Corkscrew parameters]]}}<br />
<br />
<br />
==="Shudder"===<br />
*Makes your ship shudder while you're firing the weapon<br />
<br />
<br />
==="lockarm"===<br />
*Requires a target lock in order to arm its warhead. In other words weapon causes less damage if it hits the target without target lock.<br />
<br />
<br />
==="beam"===<br />
*Makes this weapon a [[weapons.tbl#Beam Cannons|beam cannon]]<br />
<br />
<br />
==="stream"===<br />
* Does nothing<br />
<br />
==="puncture"===<br />
*Reduces hull damage by 75%<br />
The AI will prefer these weapons for anti-subsystem use<br />
<br />
==="countermeasure"===<br />
{{Table3610|<br />
*Defines the weapon as a countermeasure}}<br />
<br />
<br />
==="Ballistic"===<br />
{{Table3610|<br />
*Defines the weapon as a ballistic weapon that needs ammunition.<br />
*Make sure you define the size and reload rate for ballistic weapons}}<br />
<br />
<br />
==="pierce shields"===<br />
{{Table3610|<br />
*Causes weapons to penetrate shield without causing damage to it.}}<br />
<br />
<br />
==="no pierce shields"===<br />
{{Table3610|<br />
*Prevents weapons (beams) from piercing shields causing shields to be damaged by weapons first.}}<br />
<br />
<br />
==="local ssm"===<br />
{{Table3610| }}<br />
<br />
<br />
==="tagged only"===<br />
{{Table3610|<br />
*Weapon can only be fired at tagged targets}}<br />
<br />
<br />
==="beam no whack"===<br />
{{Table3610|<br />
*Disables beam whacking (push). Practically same as setting beam mass to zero.}}<br />
<br />
<br />
==="cycle"===<br />
{{Table3610|<br />
*Causes weapon to alternate between firing points}}<br />
<br />
<br />
==="small only"===<br />
{{Table3610|<br />
*Causes AI to use the weapon only on small targets (fighters, bombers etc.)}}<br />
<br />
<br />
==="same turret cooldown"===<br />
{{Table3610|<br />
*Forces the turrets to fire on the designated rate of fire on all difficulty levels and all AI levels}}<br />
<br />
<br />
==="apply no light"===<br />
{{Table3610|<br />
*Prevents light from being applied to the weapon model.}}<br />
<br />
==="training"===<br />
{{Table3610|<br />
*Sets weapon to be of training weapon type. ?}}<br />
<br />
==="smart spawn"===<br />
{{Table3611|<br />
*Forces turret fired spawn weapon of this type to be fired like normal weapons.}}<br />
<br />
==="inherit parent target"===<br />
{{Table3611|<br />
*Sets spawned 'child' weapons to use parent weapon's target.}}<br />
<br />
==="no emp kill"===<br />
{{Table3611|<br />
*Defines the weapon (with hitpoints) to be immune to automatic EMP destruction.}}<br />
<br />
==="untargeted heat seeker"===<br />
{{Table3611|<br />
*Defines the weapon as a heatseeker type missile which acquires its target by itself.}}<br />
<br />
==="no radius doubling"===<br />
{{Table3611|<br />
*Prevents weapon radius from being doubled when doing collision test. Makes bombs harder to intercept.}}<br />
<br />
==="no subsystem homing"===<br />
{{Table3611|<br />
*Prevents weapon from acquiring a subsystem as its target. Missile homing points are spread over the target ship.}}<br />
<br />
==="no lifeleft penalty"===<br />
{{Table3611|<br />
*Prevents weapon lifetime from being penalized if the angle to the target is too big.}}<br />
<br />
==="can be targeted"===<br />
{{Table3611|<br />
*Allows weapon to be targeted by player. Does not influence AI}}<br />
<br />
==="show on radar"===<br />
{{Table3611|<br />
*Allows weapon to be visible on the radar}}<br />
<br />
==="show friendly on radar"===<br />
{{Table3611|<br />
*Allows friendly, otherwise visible to radar weapon, to be visible on player radar}}<br />
<br />
==="capital+"===<br />
{{Table3613|<br />
*Tells AI to use this weapon only on capital ships}}<br />
<br />
==="chain external model fps"===<br />
{{Table3613|<br />
*Tells game to keep switching external model firingpoints when firing}}<br />
<br />
==="external model launcher"===<br />
{{Table3613|<br />
*Tells game that the external model is a launcher so that it would be kept static without loading motion}}<br />
<br />
==="takes blast damage"===<br />
{{Table3613|<br />
*Weapon takes damage from weapon blasts}}<br />
<br />
==="takes shockwave damage"===<br />
{{Table3613|<br />
*Weapon takes damage from shockwaves}}<br />
<br />
==="ciws"===<br />
{{Table3615|<br />
*Weapon can deal shockwave/blast damage to bombs, regardless of whether the target weapons have the "take blast/shockwave damage" flags.}}<br />
<br />
==="render flak"===<br />
{{Table3615|<br />
*Normally, flak shells are not rendered. This flag switches rendering on for those weapons.}}<br />
<br />
==="anti-subsystem beam"===<br />
{{Table3615|<br />
*Beam weapons with this flag can target subsystems on enemy ships, just like normal weapons.}}<br />
<br />
==="no primary linking"===<br />
{{Table3615|<br />
*Primary weapons with this flag can not be linked with other weapons.}}<br />
<br />
==="same emp time for capships"===<br />
{{Table37|<br />
*capships affected by this weapon will use the tabled EMP time rather than the fixed retail value (7.5 secs)}}<br />
<br />
==="no primary linked penalty"===<br />
{{Table371|<br />
*Primary weapons with this flag do not incur the retail linked fire penalty}}<br />
<br />
==="no homing speed ramp"===<br />
{{Table371|<br />
*Locked homing weapons will not perform the standard 1 second long acceleration when fired. Note that use of $Acceleration Time is '''not''' affected by this flag.}}<br />
<br />
==="pulls aspect seekers"===<br />
{{Table371|<br />
*If an aspect seeker is grabbed by this countermeasure the missile will follow the countermeasure instead of going into dumbfire mode.<br />
'''Only valid for countermeasures!'''}}<br />
<br />
==="turret interceptable"===<br />
==="fighter interceptable"===<br />
==="interceptable"===<br />
{{Table371|<br />
*Allows turrets/fighters/both (respectively) to shoot at this weapon without requiring it to be a bomb. If this is the first time this weapon has been defined, it also gives it a default of 25 hitpoints so that it can be shot down.<br />
'''If you use a TBM to give this flag to an existing weapon, you'll need to specify hitpoints manually (unless you want it to be unkillable but still draw defensive fire).'''}}<br />
<br />
==="apply recoil"===<br />
{{Table373|<br />
*A ship that fires a weapon with this flag will experience a recoil effect, slowing the ship down and, with lighter strikecraft, inducing some rotation if the firing points are offset from the center of mass.<br />
'''Do not use this with MVPs or retail ships unless you increase their density to 10 or use either $Recoil Modifier: in weapons.tbl or $Ship Recoil Modifier in ships.tbl. This is to avoid exaggerated effects due to retail models having manually defined masses.'''}}<br />
<br />
==="don't spawn if shot"===<br />
{{Table373|<br />
*Prevents parent weapons from spawning children in the even of the parent weapon being shot down.}}<br />
<br />
==="die on lost lock"===<br />
{{Table373|<br />
*Aspect seeking missiles (only, not heat seekers) will detonate upon losing their lock. Currently they only lose lock if decoyed by a countermeasure, AND "pulls aspect seekers" or similar is not set. The detonation will use their "dinky" explosion (i.e. same as if ran out of lifetime).}}<br />
<br />
==Countermeasures==<br />
*Usually not altered. Only one can exist<br />
{{Table3610|<br />
*More than one can exist}}<br />
<br />
<br />
===$Name:===<br />
*Name of the countermeasure<br />
*Syntax: '''''String''''', name<br />
<br />
<br />
===$Velocity:===<br />
*Defines the speed of the countermeasure, relative to the ship.<br />
*Syntax: '''''Float''''', meter per second<br />
<br />
===$Fire Wait:===<br />
*Definies the minumum time between the countermeasure launches<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===Lifetime===<br />
*Countermeasure's life time is defined between with minimum and maximum lifetime<br />
*'''$Lifetime Min:'''<br />
**Syntax: '''''Float''''', seconds<br />
*'''$Lifetime Max:'''<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$LaunchSnd:===<br />
*Defines the sound for the countermeasure launch<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Model:===<br />
*Defines the used model file (.pof)<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
==Player Weapon Precedence==<br />
*First the primary weapons are defined, from most powerful to least powerful, and then the same for secondaries<br />
*Syntax: ( '''''"String" "String"'''''), names of the weapons<br />
*Example:<br />
<br />
<pre><br />
$Player Weapon Precedence: (<br />
"UD-8 Kayser"<br />
"Prometheus R"<br />
"Subach HL-7"<br />
"Harpoon"<br />
"Tempest"<br />
"Rockeye" )<br />
</pre><br />
<br />
==Sample==<br />
<br />
<pre><br />
#Primary Weapons<br />
<br />
$Name: @Subach HL-7<br />
+Title: XSTR("GTW Subach HL-7", 3243)<br />
+Description:<br />
XSTR( "Standard Issue<br />
Level 3 Hull Damage<br />
Level 2 Shield Damage", 3244)<br />
$end_multi_text<br />
+Tech Title: XSTR("Subach HL-7", 146)<br />
+Tech Anim: Tech_Subach_HL-7<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: none<br />
@Laser Bitmap: newglo9<br />
@Laser Glow: 2_laserglow03<br />
@Laser Color: 250, 0, 0<br />
@Laser Color2: 0, 0, 250<br />
@Laser Length: 10.0<br />
@Laser Head Radius: 0.90<br />
@Laser Tail Radius: 0.90<br />
$Mass: 0.2<br />
$Velocity: 450.0<br />
$Fire Wait: 0.2<br />
$Damage: 15<br />
$Armor Factor: 0.9<br />
$Shield Factor: 0.7<br />
$Subsystem Factor: 0.3<br />
$Lifetime: 2.0<br />
$Energy Consumed: 0.20<br />
$Cargo Size: 0.0<br />
$Homing: NO<br />
$LaunchSnd: 76<br />
$ImpactSnd: 85<br />
$Flags: ( "in tech database"<br />
"player allowed"<br />
"stream")<br />
$Icon: iconSD4<br />
$Anim: SD4<br />
$Impact Explosion: none<br />
<br />
#End<br />
<br />
<br />
#Secondary Weapons<br />
<br />
$Name: EMP Adv.<br />
+Title: XSTR("GTM-14 EMP Adv.", 3396)<br />
+Description:<br />
XSTR( "Advanced Missile<br />
Electromagnetic Pulse Weapon<br />
General Purpose Suppression", 3397)<br />
$end_multi_text<br />
+Tech Title: XSTR("GTM-14 EM Pulse Adv.", 3398)<br />
+Tech Anim: Tech_EMP<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: EMPulse2.pof<br />
$Mass: 15.0<br />
$Velocity: 275.0<br />
$Fire Wait: 2.0<br />
$Damage: 45<br />
$Blast Force: 20.0<br />
$Inner Radius: 80.0<br />
$Outer Radius: 300.0<br />
$Shockwave Speed: 120.0<br />
$Armor Factor: 1.0<br />
$Shield Factor: 0.8<br />
$Subsystem Factor: 0.5<br />
$Lifetime: 5.0<br />
$Energy Consumed: 0.0<br />
$Cargo Size: 4.0<br />
$Homing: YES<br />
+Type: ASPECT<br />
+Turn Time: 1.0<br />
+Min Lock Time: 2.0<br />
+Lock Pixels/Sec: 70<br />
+Catch-up Pixels/Sec: 100<br />
+Catch-up Penalty: 30<br />
$LaunchSnd: 118<br />
$ImpactSnd: 88<br />
$FlyBySnd: -1<br />
$Rearm Rate: 2.0<br />
$Flags: ( "player allowed"<br />
"EMP")<br />
$Trail:<br />
+Start Width: 0.25<br />
+End Width: 0.75<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.5<br />
+Bitmap: MissileTrail04<br />
$Icon: iconEMPulse<br />
$Anim: ecm<br />
$Impact Explosion: ExpMissileHit1<br />
$Impact Explosion Radius: 10.0<br />
$EMP Intensity: 375.0<br />
$EMP Time: 20.0<br />
<br />
#End<br />
<br />
$Player Weapon Precedence: (<br />
"Subach HL-7"<br />
"EMP Adv." )<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Weapons.tbl&diff=58812
Weapons.tbl
2019-08-05T14:56:01Z
<p>Cyborg17: /* $Rearm Rate: */ Actual code in FSO is that it will take the inverse of the float given and apply that to how often the ammo is loaded. It has no control over the amount of munitions loaded per increment.</p>
<hr />
<div>{{TableVersionGit|2017-08-25|2039815}}<br />
<br />
The '''weapons.tbl''' defines all of the weapon classes used in FSO.<br />
<br />
<br />
This table is one of the [[Modular Tables]] and can be extended with xxx-wep.tbm<br />
<br />
[[Tables|List of Tables]]<br />
<br />
==Introduction==<br />
The weapons.tbl is responsible for defining the behavior of the numerous weapon effects used in FSO, including the amount of damage dealt, the firing rate, and graphical effects.<br />
<br />
This wiki page goes over all of the entries used exclusively in the weapons.tbl file. Hyperlinks to individual weapon creation/editing tutorials are provided when appropriate.<br />
<br />
<br />
<br />
==Special Case Weapons==<br />
===Beam Cannons===<br />
'''REQUIRES:'''<br />
*'''"beam"''' flag<br />
*'''[[weapons.tbl#$BeamInfo:|$BeamInfo:]]'''<br />
<br />
See also: [http://www.hard-light.net/wiki/index.php/Tutorial_-_Beam_Weapons Tutorial - Beam Weapons]<br />
<br />
<br />
===Flak Guns===<br />
'''REQUIRES:'''<br />
*'''"flak"''' flag<br />
*'''"particle spew"''' flag<br />
*Must have inner and outer radius defined to have any effect.<br />
*A '''.pof''' model must be defined ( usually '''Hornet.pof''' )<br />
**Note: the model is not actually used... Instead, it uses [[Weapons.tbl#$Pspew:|particle spew]]. Trails may also be added.<br />
<br />
<br />
<br />
==General Format==<br />
*The weapons table consist of several sections<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>'''End''' before the next section.<br />
**<nowiki>#</nowiki>'''Primary Weapons'''<br />
***Defines all '''standard primaries weapons''' as well as '''beam cannons''' and '''flak cannons'''.<br />
**<nowiki>#</nowiki>'''Secondary Weapons'''<br />
***Defines all '''secondary weapons'''.<br />
**<nowiki>#</nowiki>'''Beam Weapons'''<br />
***I haven't got any ideas for this one.<br />
**<nowiki>#</nowiki>'''[[Weapons.tbl#Countermeasures|Countermeasures]]'''<br />
***Defines the used countermeasure.<br />
**'''$Player Weapon Precedence'''<br />
***Player Weapon Precedence is used in weapon selection when a default specified by the mission designer is not available to the player. The next weapon on the list is used in its place (assuming that weapon is allowed for the player).<br />
<br />
==Core Table==<br />
<br />
<br />
===$Name:===<br />
*This is the name of the weapon. If it's going to be used by the player, keep it under 12 characters so it doesn't spill over the HUD box.<br>Two special characters can be used in the name: '''#''' and '''@'''. Their usage details are the very same than inside the [[Ships.tbl#.24Name:_2|$Name field from Ships.tbl]].<br />
*Syntax: '''''String'''''<br />
<br />
<br />
====+nocreate====<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in Weapons.tbl or in earlier parsed *-wep.tbm files) by the time the *-wep.tbm is read.}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3611|<br />
*An alternative name that can be referenced instead of $Name:<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Subtype:===<br />
{{Table3610| <br />
Specifies the weapon 's subtype. Overrides the default subtype as specified by the #-section it is in (#Primary, #Secondary, #Beam Weapon, etc.).<br />
<br />
<br />
{{Note|<br />
:Since the weapon subtype is already specified by the #-section it is in, this option is not particularly useful when the weapon is inside a #Primary or #Secondary section. However, it may be used to specify the weapon slot it uses on fighters/bombers for weapons that are normally capship only (such as beam cannons).}} <br />
<br />
<br />
*Syntax: '''''String'''''<br />
*Valid Entries: <br />
:Primary<br />
:Secondary}}<br />
<br />
===+Title:===<br />
*This is the title of the weapon in the Weapons loadout screen. Only needed for player allowed weapons. Title may be anything. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Description:===<br />
*This is the description you see in the weapons loadout screen. Again, these aren't based on any hard numbers, just approximations. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''Standard Issue<br />
''Level 3 Hull Damage<br />
''Level 2 Shield Damage''", -1)<br />
$end_multi_text<br />
</pre><br />
<br />
===+Tech Title:===<br />
*Title of the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Tech Anim:===<br />
*Animation used for the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: '''''String''''', animation filename<br />
**Example: ''Tech_Subach_HL-7''<br />
<br />
<br />
===+Tech Description:===<br />
*Descriptive text you see in the tech room. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Must be followed by '''$end_multi_text'''<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''The Subach-Innes HL-7...''", 3245)<br />
$end_multi_text<br />
</pre><br />
<br />
===$Tech Model:===<br />
{{Table3610|<br />
*Defines model used in wing loadout screen for the weapon. 3D weapon models in the tech room have not yet been implemented.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
====+Closeup_Pos:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. The position of the camera relative to the model center.<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively}}<br />
<br />
====+Closeup_Zoom:====<br />
{{Table3613|<br />
*How the model will show on the Loadout Screen. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians}}<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: '''''String''''', either "FS1", or "Off". This defaults to the FS2 effect.<br />
}}<br />
<br />
===$HUD Image:===<br />
{{Table3610|<br />
*Defines the picture used to represent the weapon in HUD loadout list<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Model File:===<br />
*Filename of the model file (.pof) at data/models folder. Additional fields beginning from '''''@Laser Bitmap:''''' and ending to '''''@Laser Tail Radius:''''' are not needed if a model has been defined for the weapon.<br />
*Standard primaries and beam cannons do not use specific models so for those the name is 'none'.<br />
*Flak weapons and secondaries use models, though the exact model is not important with the flak weapons.<br />
*Syntax: '''''String.pof''''' or ''none'', model filename<br />
**Example: ''none''<br />
<br />
<br />
===$POF target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of the model used in HUD targeting view<br />
*Syntax: '''''Integer'''''}}<br />
<br />
===$Detail Distance:===<br />
{{Table3613|<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Optional. If not defined the game uses the formula ((radius * 20.0 + 20.0) * LOD)<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''}}<br />
<br />
===$External Model File:===<br />
{{Table3610|<br />
*Defines the models shown on the gunpoint, used with Bobb's external-visible-weapon code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Submodel Rotation Speed:===<br />
{{Table3610|<br />
*Defines the rotation speed of the subobject, with the $gun_rotation property defined, in the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Note: weapon fire will be delayed by the time it takes for the weapon to spin up to this speed (using $Submodel Rotation Acceleration or its default value), regardless of whether an external model is used or not.<br />
}}<br />
{{Table38|<br />
*Note: It's no longer required that the ship actually have external models enabled (whether or not this weapon has one defined) for the spin up delay to occur.<br />
}}<br />
<br />
===$Submodel Rotation Acceleration:===<br />
{{Table3610|<br />
*Defines the rotation acceleration of the external weapon model.<br />
*Syntax: '''''Float'''''<br />
*Default value: 10}}<br />
<br />
===@Laser===<br />
In the event a 3D model is not defined for the weapon, FSO creates an object similar to a glowpoint. Essentially, it is a 2D plane that always faces the player's camera with an additive texture applied to it, and may or may not have an omnilight follow it.<br />
<br />
As suggested by its name, this option group is normally used for lasers and similar primaries, but it may also be used for other weapon types as well.<br />
<br />
Unless said otherwise, the graphic files used within this group may be of any compatible type (.DDS, .PCX, .TGA, etc.), however a .DDS is recommended.<br />
<br />
<br />
====@Laser Bitmap:====<br />
Defines the graphic file to be used as the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Bitmap: my_laser_bitmap<br />
</pre><br />
<br />
<br />
====@Laser Glow:====<br />
Defines the graphic file to be used for the glowmap of the weapon effect.<br />
<br />
Blending type: additive<br />
<br />
*This file is 'multiplied' by a value between Color and Color2.<br />
*The physical dimensions of the glowmap in-game is 2x the size of the bitmap.<br />
<br />
Syntax: '''''String''''', filename<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Glow: my_laser_glowmap<br />
</pre><br />
<br />
<br />
====@Laser Color:====<br />
The RGB color of the glow effect.<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Red glow effect at the start of the effect's lifetime<br />
</pre><br />
<br />
<br />
====@Laser Color2:====<br />
The RGB color of the glow effect at the end of the effect's lifetime (at its maximum range).<br />
<br />
*The color is applied both to the glowmap and the omnilight that follows the effect.<br />
*The actual color of the glow effect is somewhere in between the values defined by Color and Color2. Essentially, the actual color "fades" from Color to Color2 over its lifetime.<br />
**If Color is not defined, then a default value of 255, 255, 255 is assumed for its initial color.<br />
<br />
Syntax: '''''Color''''', red, green, blue respectively, 8-bit value from 0 to 255<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color2: 0, 0, 255 ; Blue glow effect at the end of the effect's lifetime.<br />
</pre><br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Color: 255, 0, 0 ; Start with a Red glow effect, and fade into...<br />
@Laser Color2: 0, 0, 255 ; a Blue glow effect over the lifetime of the effect.<br />
</pre><br />
<br />
<br />
====@Laser Length:====<br />
Defines the length of the weapon effect.<br />
*This option stretches the 2D plane "away" from its origin.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Length: 1.0<br />
</pre><br />
<br />
<br />
====@Laser Head Radius:====<br />
Defines the width of the leading edge, or "head," of the weapon effect.<br />
*The edge of the 2D plane farthest away from its origin is the leading edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Head Radius: 0.75<br />
</pre><br />
<br />
<br />
====@Laser Tail Radius:====<br />
Defines the width of the trailing edge, or "tail" of the weapon effect.<br />
*The edge of the 2D plane that is closest to its origin is the trailing edge.<br />
Syntax: '''''Float''''', meters<br />
<br />
<br />
'''Example:'''<br />
<pre><br />
@Laser Tail Radius: 0.75<br />
</pre><br />
<br />
<br />
===$Mass:===<br />
*How much of a kinetic effect this weapon has on its target. 3+ gives you the Flail effect. Set it to 10 and you can knock cruisers around.<br />
*This is somehow multiplied by the speed. ie ''$Mass: 3'' and ''$Velocity: 200'' has much weaker kinetic effect than ''$Mass: 3'' and ''$Velocity: 1000''. Also $Mass is used to calculate intensity of "shudder" effect if flagged.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Velocity:===<br />
*How fast the weapon travels. Is also used to define the weapon range, '''''$Velocity x $Lifetime = range'''''.<br />
*Beams travel instantly so this field has effect only on weapon range and AI beam targeting with certain beam types. $Velocity of beam also applies to its kinetic effect along with $Mass.<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Fire Wait:===<br />
*Time in seconds between firings<br />
*Note that Fire wait will be reset to 1 if it is set over 5 for non turreted primary weapons (doesn't apply to 3.6.14+)<br />
*Syntax: '''''Float''''', seconds<br />
<br />
====+Max Delay:====<br />
{{Table373|<br />
*Defines the maximum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Min Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
====+Min Delay:====<br />
{{Table373|<br />
*Defines the minimum amount of time it takes to refire a weapon in a random fire delay range.<br />
**This must be used with +Max Delay: to have any effect.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
===$Damage:===<br />
*Base damage this weapon does. The actual damage is this number multiplied by the factors below.<br />
*Base damage this beam does is continuous damage, damage is 5.5 times the damage value per second. The actual damage is this number multiplied by one of the factors below.<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
<br />
===$Damage Time:===<br />
{{Table373|<br />
*This sets a time from the end of the weapons lifetime that damage will start to attenuate at. '''''Example: Weapon lifetime is 2.0 seconds and the desired effect is to attenuate after 0.5 seconds have passed, set this to 1.5 seconds.'''''<br />
*Syntax: '''''Float''''', seconds. Defaults to 0.0.<br />
**Note: If neither +Min Damage: nor +Max Damage: is set, the damage will always attenuate to zero at max range.<br />
***If both +Min Damage: and +Max Damage: are set, both are defaulted to 0.0 and damage will be attenuated to zero.}}<br />
<br />
====+Attenuation Damage:====<br />
{{Table373|<br />
*This sets the damage a weapon will attenuate to after reaching $Damage Time:.<br />
*Syntax: '''''Float''''', damage.}}<br />
<br />
====+Min Damage:====<br />
{{Table373|<br />
*This sets the lowest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
====+Max Damage:====<br />
{{Table373|<br />
*This sets the highest amount of damage possible assuming damage attenuation is taking place. '''''This has been deprecated, please use +Attenuation Damage: instead.'''''<br />
*Syntax: '''''Float''''', damage. Defaults to 0.0.}}<br />
<br />
===$Damage Type:===<br />
{{Table3610|<br />
Defines the damage type that this weapon uses. All armor effects are applied after shield and have no function against shockwave or subsystem damage.<br />
<br />
'''REQUIRES:''' [[armor.tbl]]<br />
<br />
*Syntax: '''''String''''', name of the damage type ( as defined by [[armor.tbl#$Damage Type:|$Damage Type]] )}}<br />
<br />
===$Arm time:===<br />
{{Table3610|<br />
*Defines the time after the launch that is required before the weapon comes hot<br />
*If the time has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Arm distance:===<br />
{{Table3610|<br />
*Defines the distance from the firing ships that is required before the weapon comes hot<br />
*If the distance has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', meters}}<br />
{{Table3615|<br />
*This parameter is also applied to flak weapons. Previous behaviour was to arm weapons after 10 meters of travel.}}<br />
<br />
===$Arm radius:===<br />
{{Table3610|<br />
*Defines the distance from the target where the weapon will arm itself<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Detonation Range:===<br />
{{Table3610|<br />
*Defines the distance from the point in space that the weapon was launched where the weapon will detonate<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Radius:===<br />
{{Table3610|<br />
*Defines the distance between the target center point point and the weapon which detonates the weapon.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shockwave damage:===<br />
{{Table3610|<br />
*Override for the damage caused by shockwaves (default is [[#$Damage:]])<br />
*Syntax: '''''Float''''', damage<br />
*Note: adding a shockwave to a weapon doubles its effective damage to the target (i.e. 1x impact, 1x shockwave)<br />
}}<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the weapon explosions<br />
*Syntax: '''''String''''', name as defined in [[armor.tbl]]}}<br />
<br />
===$Flak Detonation Accuracy:===<br />
{{Table3615|<br />
*Normally, flak weapons detonate at a range of 65 to 99 meters from their intended target, depending on the firing ships' weapon subsystem health. This parameter can be used to adjust this behaviour, as it defines the base range used to determine this detonation range. Standard value is 65.<br />
*Syntax: '''''Float''''', range in meters}}<br />
<br />
===$Flak Targeting Accuracy:===<br />
{{Table3615|<br />
*Turret-fired flak weapons are normally firing in a cone around the target's predicted position. This parameter can be used to adjust the size of this cones' base radius. Standard is 60 meters.<br />
*Syntax: '''''Float''''', radius in meters}}<br />
<br />
===$Untargeted Flak Range Penalty:===<br />
{{Table3615|<br />
*If a flak weapon is fired without a target selected, this parameter defines the range penalty applied to that weapon. Standard is 20 meters, meaning an untargeted flak weapon will detonate after travelling its max range - 20 meters.<br />
*Syntax: '''''Float''''', penalty in meters.}}<br />
<br />
===$Blast Force:===<br />
*The intensity of the kinetic blast effect when ship is within the outer radius of the explosion. Comes in effect only if inner and outer radius are defined.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
===$Inner Radius:===<br />
*Radius at which the full explosion damage is done. Marks the line where damage attenuation begins. Damage is reduced by the square of the distance between the inner radius and outer radius. i.e. half way between inner and outer results in 1/4 damage<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Outer Radius:===<br />
*Maximum radius at which any damage is done. See $Inner Radius for the attenuation formula.<br />
*Also defines the size of the shockwave (if shockwave speed is > 0)<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at. Zero means no shockwave and that damage is applied immediately<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave rotation:===<br />
{{Table3610|<br />
*Defines how the 3D shockwave is rotated.<br />
*Syntax: '''''Angle''''', three values, pitch, bank, heading respectively, in degrees}}<br />
<br />
<br />
===$Shockwave model:===<br />
{{Table3610|<br />
*Defines the model file (.pof) used as a shockwave for the 3D shockwaves.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave name:===<br />
{{Table3610|<br />
*Defines the name of the animation used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Dinky shockwave:===<br />
{{Table3610|<br />
*Dinky shockwave are used if the weapon is shot down before arming or if the conditions marked at '''Arm time''' and '''Arm distance''' are not reached before impact<br />
*It uses exactly same entries as the standard shockwaves<br />
*'''''+Shockwave damage:'''''<br />
*'''''+Shockwave damage type:'''''<br />
*'''''+Blast Force:'''''<br />
*'''''+Inner Radius:'''''<br />
*'''''+Outer Radius:'''''<br />
*'''''+Shockwave Speed:'''''<br />
*'''''+Shockwave Rotation:'''''<br />
*'''''+Shockwave Model:'''''<br />
*'''''+Shockwave Name:'''''}}<br />
<br />
<br />
===$Armor Factor:===<br />
*Multiplier for the damage done to armor<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Shield Factor:===<br />
*Multiplier for the damage done to shields<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Subsystem Factor:===<br />
*Multiplier for the damage done to subsystems<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Lifetime Min:===<br />
{{Table3610|<br />
*Defines the minimum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime Max:===<br />
{{Table3610|<br />
*Defines the maximum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime:===<br />
*Time before the standard primaries fizzle out and secondaries self destruct. Multiply this by the speed to get the range. If values are too low (below framerate) then the collision detection and graphic effects may suffer.<br />
*This field has no effect for the beams apart from weapon range and AI beam targeting with certain beam types<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Energy Consumed:===<br />
*The amount of energy each bolt drains firing ship. Has no effect on turretted weapons.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Cargo Size:===<br />
*Cargo size, is not used with non-ballistic primaries.<br />
*Amount of missiles available = Bank capacity / Cargo Size.<br />
*Syntax: '''''Float'''''<br />
<br />
===$Homing:===<br />
'''This option is exclusive to secondaries.'''<br />
<br />
Defines if the bolts/missiles in question is homing<br />
*The bolts of primaries will turn to face their target if this option is set to YES... but is otherwise the same as a normal bolt ( when the option is set to NO ).<br />
<br />
If set to NO, then following fields are not required in the table.<br />
<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
===='''+Type:'''====<br />
Defines the homing method<br />
*Syntax: '''''String''''', ''ASPECT'' or ''HEAT''<br />
{{Table3610| An additional option, ''JAVELIN'', has been added. This behaves like an aspect missile but automatically only locks onto the engines of a target, and only if the engines are in sight.}}<br />
<br />
<br />
===='''+Turn Time:'''====<br />
Determines how well the missile maneuvers. Is defined as the number of seconds it takes the missile to do a 360 degree circle<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===='''+View Cone:'''====<br />
'''Heat-seeking missiles only'''<br />
<br />
This is the width of the weapon's viewing cone, given in degrees. Objects outside this cone are effectively invisible to the missile. The value / 2 gives the angle from the missile's centerline to the edge of the viewing cone.<br />
*Syntax: '''''Float''''', degrees<br />
{{Table3610| Has been enabled also to aspect seekers as an option.}}<br />
<br />
<br />
===='''+Min Lock Time:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The minimum number of seconds to gain a target lock.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
===='''+Lock Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
The number of pixels the aspect triangle moves per second while attempting lock-on.<br />
<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Pixels/Sec:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
The number of pixels moved per second while attempting to catch up to the target.<br />
*Syntax: '''''Integer''''', pixels per second<br />
<br />
<br />
===='''+Catch-up Penalty:'''====<br />
'''For aspect/javelin missiles only'''<br />
<br />
Extra pixels to move after catching up. (Needs verification )<br />
**Syntax: '''''Integer''''', pixels<br />
<br />
<br />
===='''+Seeker Strength:'''====<br />
{{Table3610|<br />
Defines the seeking ability of the homing system. Default of heat seekers is 3.0 and for aspect seekers 2.0. Spoofing chance is defined as '''[[#$Countermeasure:|cm type effectiveness]]'''/'''seeker strength''' (missile must be within the countermeasures '''[[#$Countermeasure:|+Effective Radius:]]'''<br />
*Syntax: '''''Float''''', seeker strength}}<br />
<br />
===='''+Target Lead Scaler:'''====<br />
{{Table3611|<br />
Defines the type of pursuit course the missile tries to obtain.<br />
*Values < 0 give lag pursuit, values ~ 0 give pure pursuit, values > 0 give lead pursuit.<br />
*Syntax: '''''Float''''', default for heat seekers: 0, default for aspect or javelin seekers: 1.}}<br />
<br />
<br />
<br />
===$Swarm:===<br />
*The number of missiles to fire per volley if it's a swarm missile<br />
*Can be issued to Standard primaries also. Causes single part turrets to malfunction but causes multi part turrets to fire only on their barrel line. Can be used for 'burst fire weapons'. Does not work with player weapons.<br />
*Is incompatible with "Corkscrew" option.<br />
*Swarm will negatively affect the missile's ability to hit its target. Especially when fired off-bore.<br />
*Syntax: '''''Integer''''', number of shots in a swarm<br />
{{Table3610|<br />
*'''+SwarmWait:'''<br />
**Defines the time between weapons fired in a swarm<br />
**Syntax: '''''Float''''', seconds<br />
***Default: 0.150<br />
***Max: 0.5 (Resets to default if set over 0.5)}}<br />
<br />
===$Acceleration Time:===<br />
{{Table371|<br />
*Defines how long it takes for a secondary weapon to attain full speed. Takes precedence over $Free Flight Time (see below) in terms of the weapon's velocity, and affects both locked-on and dumbfired secondaries.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.0}}<br />
<br />
===$Velocity Inherit:===<br />
{{Table371|<br />
*Defines how much of the parent ship's velocity to inherit, if [[Ai_profiles.tbl#.24use_additive_weapon_velocity:]] is used.<br />
*Syntax: '''''Float''''', percents<br />
**Default: 100.0}}<br />
<br />
===$Free Flight Time:===<br />
{{Table3610|<br />
*Defines the free flight time of homing weapons. During this time weapon flies at 1/4 of its velocity + firing ships velocity in a straight line.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.25}}<br />
<br />
'''Note:''' due to dumbfires never changing their speed, using this on a dumbfire missile will have it stuck at freeflight speed even after the end of the freeflight time.<br />
<br />
===$Free Flight Speed:===<br />
{{Table3613|<br />
*Defines the speed that the weapon will be travelling at during the free flight segment (see above).<br />
*Syntax: '''''Float''''', Multiplier for the actual speed, minimum 0.01.<br />
**Default: 0.25<br />
{{Note| This feature was never implemented correctly and was removed in r8867. FSO currently parses but doesn't use the value, and prints a warning in the log saying that the value will not be used.}}<br />
}}<br />
<br />
===$PreLaunchSnd:===<br />
{{Table3613|<br />
*Defines the one-shot sound effect to play at the beginning of a firing stream. Currently only has an effect on primary weapons.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
**Default: No Sound}}<br />
<br />
===+PreLaunchSnd Min Interval:===<br />
{{Table3613|<br />
*Defines Minimum interval between when the player stops firing and the next time the pre-launch sound can play, as a limiter in case the player is pumping the trigger.<br />
*Syntax: '''''Integer''''', Minimum delay in milliseconds between the end of the previous firing sequence and the next time the pre-launch sound effect will be played.<br />
**Default: 0 (play pre-launch sound at the beginning of every firing sequence, if present)}}<br />
<br />
===$LaunchSnd:===<br />
*Corresponding sound effect when the weapon is launched.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$ImpactSnd:===<br />
*Sound the weapon makes when it hits a hull.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Disarmed ImpactSnd:===<br />
{{Table3610|<br />
*Sound the weapon makes when it hits a hull before being armed.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$FlyBySnd:===<br />
*The sound this weapon makes if it narrowly misses you. -1 is no sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]], usually -1<br />
<br />
<br />
===$TrackingSnd===<br />
{{Table3615|<br />
*The looping sound played when this weapon tracks a target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$LockedSnd===<br />
{{Table3615|<br />
*The sound played when this weapon has locked onto its target.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$InFlightSnd===<br />
{{Table3615|<br />
*The looping sound played when the missile is currently flying.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Inflight sound type'''<br />
**Specifies when the in flight sound is played.<br />
**The value can be one of the following values which are matched case-insensitively:<br />
***''''''TARGETED'''''': The sound is played when the missile tracks a target<br />
***''''''UNTARGETED'''''': The sound is played when the missile is currently not tracking a target<br />
***''''''ALWAYS'''''': The sound is played always}}<br />
<br />
<br />
===$Model:===<br />
{{Table3610|<br />
*Defines used model file. Included for compatibility with countermeasures as they have been merged with weapons in the code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Rearm Rate:===<br />
*Defines the frequency that weapons are loaded to the ship<br />
*Syntax: '''''Float''''', How many times per second the weapons are loaded.<br />
*<br />
*Example: 2.0 will reload every half second. 0.1 will load every ten of a seconds.<br />
<br />
===+Weapon Range:===<br />
*Defines the range to the target where the weapons under AI will start firing.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===+Weapon Min Range:===<br />
{{Table3610|<br />
*Defines the minimum range to the target where the weapons under AI will still fire.<br />
*Implemented before FS_Open 3.6.5<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Weapons.tbl#Weapons.tbl_Flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the weapon<br />
**Example: ( "Player allowed" "in tech database" )<br />
<br />
{{Table3610|<br />
*Can be followed by '''+override''' option in order to reset the weapon flags before parsing in the new ones<br />
*Using this option will erase all '''homing'''-related flags as well as '''swarm''', '''variable lead''', '''trail''', '''TAG''', and '''transparent''' settings in addition to the listed flags. All these should be set again - if they are required - when this option is used.<br />
<br />
**Syntax: '''''+override'''''}}<br />
<br />
<br />
===$Trail:===<br />
*This is used if you want your weapon to have a trail. Trail is often used only with secondaries though it works with standard primaries as well.<br />
*'''+Start Width:'''<br />
**How wide the head of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+End Width:'''<br />
**How wide the tail of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Start Alpha:'''<br />
**The opacity of the trail head.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+End Alpha:'''<br />
**The opacity of the trail tail.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+Max Life:'''<br />
**How long the trail lasts.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Bitmap:'''<br />
**The graphic file to use for the trail.<br />
**Syntax: '''''String''''', filename<br />
{{Table3611|<br />
*'''+Faded Out Sections:'''<br />
**Defines the number of the trail sections (counting from the leading edge) which are gradually faded out.<br />
**Syntax: '''''Integer''''', number of trail sections}}<br />
<br />
<br />
===$Icon:===<br />
*Loadout icon used in the weapons selection screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Anim:===<br />
*Green grid animation used on the weapons screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Collide Ship:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Collide Weapon:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
===$Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for impacts of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Impact Explosion'' and ''$Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
===$Impact Explosion:===<br />
*Impact explosion used. Must be defined in weapon_expl.tbl,<br />
*Syntax: '''''String''''', filename or ''none''<br />
<br />
<br />
===$Impact Explosion Radius:===<br />
*Radius of the defined impact explosion.<br />
*Syntax: '''''Float''''', meters, default 1.0<br />
<br />
<br />
===$Shield Impact Explosion Radius:===<br />
{{Table373|<br />
*Radius of the shield impact explosion, see [[Ships.tbl#.24Shield_Impact_Explosion:]].<br />
*Syntax: '''''Float''''', meters, defaults to value of $Impact Explosion Radius}}<br />
<br />
===$Dinky Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for Dinky (not armed) explosions of this weapon.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then ''$Dinky Impact Explosion'' and ''$Dinky Impact Explosion Radius'' are not valid options!<br />
}}<br />
<br />
<br />
===$Dinky Impact Explosion:===<br />
{{Table3610|<br />
*Same as Impact Explosion but for Dinky (not armed) explosions<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Dinky Impact Explosion Radius:===<br />
{{Table3610|<br />
*Same as Impact Explosion Radius but for Dinky explosions<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
===$Piercing Impact Effect:===<br />
{{Table38|<br />
*Specifies the [[Particle Effects|particle effect]] which will be used for piercing impacts.<br />
*Syntax: '''String''', the particle effect name<br />
*If this option is specified then piercing impact options below are not valid!<br />
}}<br />
<br />
===$Piercing Impact Explosion:===<br />
{{Table3611|<br />
*Defines the effect used for events when weapon pierces the target<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Piercing Impact Radius:===<br />
{{Table3611|<br />
*Defines the base radius of the effect used for piercing weapon impacts<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles piercing the target<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Splash Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles splashing from the target (secondary piercing effects<br />
*Negative value causes the second batch or particles to splash to opposite direction<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Variance:===<br />
{{Table3611|<br />
*Defines the variance added to the particles<br />
*Values near 0 cause very little variance and values close to 1 cause extreme dispersal.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the lifetime of the effect for single frame effects<br />
*For multiple frame effects the lifetime is the lifetime of the animation used<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Particles:===<br />
{{Table3611|<br />
*Defines the number of particles released per impact<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Piercing Impact Draw Modifier:===<br />
{{Table3611|<br />
*Defines the multiplier applied to the ships piercing effect limit percentage<br />
*Syntax: '''''Float'''''}}<br />
*Option removed in 3.6.12. Use [[armor.tbl]] to finetune piercing effects.<br />
<br />
===$Inflight Effect:===<br />
{{Table38|<br />
*Sets the inflight [[Particle Effects|particle effect]] which is used when the laser is active. This is only used by laser weapons.<br />
*Syntax: '''''String''''', the particle effect name<br />
}}<br />
===$Freeflight Effect:===<br />
{{Table38|<br />
*Sets the [[Particle Effects|particle effect]] which is used when the missile is in the free flight phase. See [[#$Free Flight Time:|$Free Flight Time]] for more information.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Ignition Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is transitioning from free flight to homed or unhomed flight.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Homed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in homed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
===$Unhomed Flight Effect:===<br />
{{Table38|<br />
*Sets the ignition [[Particle Effects|particle effect]] which is used when the missile is in unhomed flight mode.<br />
*Syntax: '''''String''''', the particle effect name<br />
*This option is only valid for missile weapons<br />
}}<br />
<br />
===$Muzzleflash:===<br />
*Normally only with flak cannons.<br />
*Defines the muzzle flash the weapon uses<br />
*Syntax: '''''String''''', muzzleflash name, as defined in [[mflash.tbl]]<br />
<br />
<br />
===$EMP Intensity:===<br />
*If it has an EMP effect, how deeply it scrambles your electronics<br />
*Basically a percentage, a value of 250 results in a 25% chance of something getting scrambled each frame. <br />
*Maximum value of 500<br />
**Syntax: '''''Float'''''<br />
<br />
===$EMP Time:===<br />
**Duration of the EMP effect<br />
**Syntax: '''''Float''''', seconds<br />
<br />
===$Recoil Modifier:===<br />
{{Table373|<br />
*Multiplies the recoil force of a weapon by this value, use a value greater than 1.0 to increase the force, use a value between 1.0 and 0.0 to decrease.<br />
**Syntax: '''''Float''''' (defaults to 1.0)<br />
{{Note| The "apply recoil" weapon flag must be set for this to be valid. If the flag is not set, FSO will throw a warning and automatically set it at runtime.}}<br />
}}<br />
<br />
===$Leech Weapon:===<br />
**The amount of weapon energy to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Leech Afterburner:===<br />
**The amount of afterburner fuel to drain with each hit (a flat value, not a percentage)<br />
**Needs the [[#Esuck|Esuck]] flag set to have any effect<br />
**Syntax: '''''Float''''' (defaults to 10.0)<br />
<br />
===$Corkscrew:===<br />
{{Table3610|<br />
*Allow corkscrew parameters to be defined<br />
*'''+Num Fired:'''<br />
**Defines the number of weapons fired in sequence. Same as the standard swarm entry but for corkscrew missiles<br />
**Syntax: '''''Integer''''', number of missiles<br />
*'''+Radius:'''<br />
**Defines the radius used in the corkscrew motion<br />
**Syntax: '''''Float''''', meters<br />
*'''+Fire Delay:'''<br />
**Defines the delay between missile firings<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Counter rotate:'''<br />
**Defines if every other missile rotates to a different direction (clockwise / anticlockwise)<br />
**Syntax: '''''Boolean''''', ''0'' or ''1'', no or yes<br />
*'''+Twist:'''<br />
**Defines the speed of rotation movement on the radius of corkscrew motion.<br />
**Syntax: '''''Float''''', radians per second}}<br />
<br />
<br />
===$Electronics:===<br />
{{Table3610|<br />
*Defines the weapons effect against electronics. Requires [[weapons.tbl#"Electronics"|"electronics"]] flag. '''+New Style:''' and '''+Old Style:''' options are mutually exclusive.<br />
*'''+New Style:'''<br />
**Defines that the electronics use the new style which enables more options.<br />
*'''+Old Style:'''<br />
**Defines that the electronics use the old style. The old style was the way the D-Missile worked in Descent: FreeSpace.<br />
}}<br />
{{Table371|<br />
*'''+Area Of Effect'''<br />
**If specified, allows the electronics effect to apply to every ship hit by this weapon's blast or shockwave (the "Electronics" flag isn't necessary with this option).<br />
}}<br />
{{Table3610|<br />
*'''+Intensity:'''<br />
**May only be used with '''+New Style:''' electronics. '''''Has been deprecated'''''.<br />
**Syntax: '''''Float'''''<br />
*'''+Lifetime:'''<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Engine Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for engine subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Weapon Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for non-beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Turret Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Sensors Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for sensor subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Randomness Time:'''<br />
**Defines the randomness of duration target suffers from the electronics hit. A random number between 0 and this time will be added or subtracted from the disruption time.<br />
**Syntax: '''''Integer''''', milliseconds<br />
<br />
* Without any electronics parameters, a weapon with the "electronics" flag will default to the ''Old Style'' mode with a lifetime of 6000 milliseconds and a randomness of 4000 milliseconds. Thus any ship that gets hit can get disrupted for anywhere between 2 to 10 seconds.<br />
<br />
}}<br />
<br />
===$Spawn Angle:===<br />
{{Table3610|<br />
*Defines the cone (with an angle) where the spawned weapons appear. ''Value'' gives the angle from the missiles centerline. The maximum possible angle between any two child weapons would be ''Value*2''.<br />
*Spawn angle can be defined as many times as the carrier missile has child weapons defined for it (up to 5).<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Local SSM:===<br />
{{Table3610|<br />
*Defines the local SSM (Subspace Missile). In effect missile moves via subspace to a position close to the target and starts homing.<br />
*Weapon must be '''''aspect seeking missile''''' and must have '''''[[Weapons.tbl#"local ssm"|local ssm]]''''' flag.<br />
*'''+Warpout Delay:'''<br />
**Defines the time between the missile launch and the subspace jump.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warpin Delay:'''<br />
**Defines the time missile stays in subspace before exiting.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Stage 5 Velocity:'''<br />
**Defines the velocity of the missile after the subspace jump.<br />
**Syntax: '''''Float''''', meters per second<br />
*'''+Warpin Radius:'''<br />
**Defines how far from the SSM will appear from the outer radius of the target.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Lock Range:'''<br />
**Defines the maximum range where SSM can achieve target lock<br />
**Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Countermeasure:===<br />
<br />
*Defines the countermeasure effectiveness, radius, etc<br />
{{note| <br />
*Spoofing chance is defined as '''cm type effectiveness'''/'''[[#+Seeker Strength:|seeker strength]]''' (missile must be within the countermeasures '''+Effective Radius:''').<br />
*All countermeasures in the mission perform tests to spoof missiles for two frames after '''any countermeasure''' is created in the mission. No, this doesn't seem to make much sense.<br />
{{Table382|The global frame counter can be bypassed by using '''[[#+Pulse Interval:|pulse interval]]'''.}}<br />
*'''Provisional'''; Countermeasures are only given one chance to spoof any individual missile. This makes tuning seeker strength/effectiveness meaningful.<br />
**Previously some record of which countermeasures had been seen by each missile was kept, but it broke when multiple countermeasures were involved. A good chance of breaking with two countermeasures, and a guaranteed chance of breaking with three or more. This reduced the impact of the seeker strength/effectiveness ratio, but was partly cancelled out by the 2 frames thing.<br />
}}<br />
<br />
{{Table3610|<br />
===='''+Heat Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against heat seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
**Default: 1.0<br />
<br />
===='''+Aspect Effectiveness:'''====<br />
*Defines the countermeasures effectiveness against aspect seeking missiles<br />
*Syntax: '''''Float''''', cm effectiveness<br />
*Default: 1.0<br />
<br />
===='''+Effective Radius:'''====<br />
*Defines the countermeasures effective radius<br />
*Syntax: '''''Float''''', meters<br />
**Default: 300.0<br />
}}<br />
<br />
{{Table373|<br />
====+Missile Detonation Radius:====<br />
*Defines the radius within which a missile homing on this countermeasure will trigger a detonation (see '''+Single Missile Kill:''')<br />
*Syntax: '''''Float''''', meters<br />
**Default: 40.0<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
<br />
====+Single Missile Kill:====<br />
*Defines if countermeasures will detonate only the missile homing on this countermeasure, or every missile within '''+Missile Detonation Radius:'''<br />
*Syntax: '''''Boolean'''''<br />
**Default: false<br />
{{note| only affects missiles homing on countermeasures, i.e. heat or aspect with "pulls aspect seekers" flag}}<br />
}}<br />
<br />
{{Table382|<br />
====+Pulse Interval:====<br />
*Defines how much time passes between each pulse of this countermeasure.<br />
*Syntax: '''''Float''''', milliseconds<br />
**Default: 0<br />
{{note| any value less than or equal to 0 means the countermeasure doesn't pulse, and uses the global 2-frame counter after any countermeasure is fired.}}<br />
}}<br />
<br />
===$BeamInfo:===<br />
*'''+Type:'''<br />
**Defines the type of beam in question. Beam types: 0 is a standard non-slashing type beam. 1 is a slashing type beam. 2 is a targeting beam that is used to trigger SSMs. 3 is a beam type that fires pulses in anti-fighter role and acts like type 0 beam in other roles. 4 is a beam that is restricted to what is directly in front of it, along turrets firepoints normal.<br />
**Syntax: '''''Integer''''',, only values from 0 to 4 are legal<br />
*'''+Life:'''<br />
**How long it lasts once the beam is actually firing.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Warmup:'''<br />
**Warmup time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warmdown:'''<br />
**Warmdown time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Radius:'''<br />
**Muzzle glow radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PCount:'''<br />
**Particles spewed every interval. ??<br />
**Syntax: '''''Integer'''''<br />
*'''+PRadius:'''<br />
**Particle radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PAngle:'''<br />
**Defines the random "cone" where the particles are generated<br />
**Syntax: '''''Float''''', angle of the cone<br />
*'''+PAni:'''<br />
**Animation used to represent the particles<br />
**Syntax: '''''String''''', filename<br />
*'''+Miss Factor:'''<br />
**The higher the numbers, the more likely that this beam will miss. One value for every difficulty level<br />
**Syntax: '''''Miss Factor''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5<br />
{{Table3613|<br />
*'''IFF specific miss factors'''<br />
**Identical to the preceding entry but IFF specific. Replace the <IFF> with the name of the IFF from [[iff_defs.tbl]]<br />
**Syntax: '''''+<IFF> Miss Factor:''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5}}<br />
*'''+BeamSound:'''<br />
**Corresponding looping sound effect when the beam is firing.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmupSound:'''<br />
**Corresponding sound effect when the beam is beam warmed up.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmdownSound:'''<br />
**Corresponding sound effect when the beam is warming down.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Muzzleglow:'''<br />
**Defines the bitmap used to create the muzzle glow<br />
**Syntax: '''''String''''', filename<br />
{{Table372|<br />
*'''+Directional Glow:'''<br />
**Defines the length to stretch the muzzleglow along the beam.<br />
**Syntax: '''''Float''''', length in meters, the muzzleglow is rendered along (in the same plane) as the beam instead of perpendicular to the camera.}}<br />
*'''+Shots:'''<br />
**Defines into how may invidual shots the type 3 (AAA) beams are divided. Note total firing is the same as the +Life:<br />
**Syntax: '''''Integer'''''<br />
*'''+ShrinkFactor:'''<br />
**What percentage of lifetime where beam starts shrinking (0.1 == 10% life left)<br />
**Syntax: '''''Float'''''<br />
*'''+ShrinkPct:'''<br />
**What percentage of max width we subtract per second<br />
**Syntax: '''''Float'''''<br />
{{Table3610|<br />
*'''+Range:'''<br />
**Defines the maximum range where the beam still has any effect.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Attenuation:'''<br />
**Defines the point where the damage caused by the beam starts to attenuate. At maximum range damage is zero.<br />
**Syntax: '''''Float''''', from 0 - firing point to 1 - no effect<br />
***Default: 1}}<br />
{{Table3611|<br />
*'''+BeamWidth:'''<br />
**Defines the width of the beam for collision test purposes instead of using widest beam section.<br />
**Syntax: '''''Float''''<br />
{{Table38|<br />
*'''+Beam Flash Particle Effect:'''<br />
**Specifies the beam flash [[Particle Effects|particle effect]].<br />
**Syntax: '''''String''''', particle effect name<br />
**If this is specified then '''+Beam Flash Effect''' and '''+Beam Flash Radius''' are not valid options!<br />
}}<br />
*'''+Beam Flash Effect:'''<br />
**Defines the additional impact flash effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Flash Radius:'''<br />
**Defines the radius for the additional impact flash effect.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect:'''<br />
**Defines the beam piercing (bursting flames) effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Piercing Radius:'''<br />
**Defines the average radius used for the beam piercing effects.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Velocity:'''<br />
**Defines the base velocity for the piercing effects<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Splash Effect Velocity:'''<br />
**Defines the base velocity for the secondary piercing effects<br />
**Negative velocity causes the particles to move to opposite direction<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Variance:'''<br />
**Defines the variances of the particles from the main path<br />
**Values close to 0 cause minimum variance, higher values cause higher variances<br />
**Syntax: '''''Float'''''}}<br />
<br />
*'''$Section:'''<br />
**Beams are made up of up to five sections layered atop one another to create the effect. Each section has its own parameters.<br />
{{Table3610|<br />
:*'''+Index:'''<br />
:**Field used to define with [[Modular Tables]] the beam section which is edited.<br />
:**Only needed when editing beams that already exist in other tables.<br />
:**Syntax: '''''Integer''''', index number legal values are from 0 to 5<br />
:*'''+remove'''<br />
:**Removes the set beam section.<br />
:*'''+nocreate'''<br />
:**Does not create new section for the beam}}<br />
<br />
:*'''+Width:'''<br />
:**Width of the section<br />
:**Syntax: '''''Float''''', meters<br />
:*'''+Texture:'''<br />
:**Texture for the section<br />
:**Syntax: '''''String''''', filename<br />
:*'''+RGBA Inner:'''<br />
:**Defines the color and transparency of the center of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 255 255 255 255<br />
:*'''+RGBA Outer:'''<br />
:**Defines the color and transparency of the edges of the section<br />
{{Table3613|:**Not used in current builds. Settings entered here will have no effect.}}<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 150 150 150 10<br />
:*'''+Flicker:'''<br />
:**Defines how much the section flickers<br />
:**Syntax: '''''Float''''', value from 0 to 1<br />
:*'''+Zadd:'''<br />
:**Defines the 'thickness' of the section. The higher the Zadd, the closer the section appears to be. (Zadd can be safely ignored; it actually does nothing.)<br />
:**Syntax: '''''Float'''''<br />
{{Table3610|<br />
:*'''+Tile Factor:'''<br />
:**Defines the beam texture tiling factor. Second number defines the tiling type. Type 0 tiles the graphic in the beam as many times as defined by the 1st number. Type 1 uses the 1st value as the lenght of the tile.<br />
:**Syntax: '''''Float''''', '''''Integer'''''<br />
:*'''+Translation:'''<br />
:**Defines the speed of translation of the beam, a positive value moves from the impact point to the firing point, while a negative value moves away from the firing point towards the impact point. Measured in tiles per second, where the tile count is defined in the "+Tile Factor:" field above.<br />
:**Syntax: '''''Float'''''}}<br />
<br />
===$Pspew:===<br />
{{Table3610|<br />
*Defines a particle spew effect for the given weapon<br />
}}{{Table3613|<br />
*'''+Index:'''<br />
**indicates which spewer to add/edit/delete. may be 0-3. used for xmt compatibility.<br />
**Syntax: '''''Integer'''''<br />
*'''+Remove'''<br />
**removes spewer at +Index: (requires +index:)<br />
*'''+Type:'''<br />
**type of particle spew<br />
**Syntax: '''''String'', Default, Helix, Sparkler, Ring, or Plume '''<br />
}}{{Table3610|<br />
*'''+Count:'''<br />
**Defines how many particles are spawn when they are ready to be created (at each +Time: interval)<br />
**Syntax: '''''Integer'''''<br />
*'''+Time:'''<br />
**Defines the time in milliseconds between next particle(s) spewed<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Vel:'''<br />
**Defines the created particles velocity as percentage of the weapons velocity<br />
**Syntax: '''''Float'''''<br />
*'''+Radius:'''<br />
**Defines the size of the created particles<br />
**Syntax: '''''Float''''', meters<br />
*'''+Life:'''<br />
**Defines how long the particles last.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Scale:'''<br />
**Defines the particle spread. Small value will make particles group together<br />
**typically controls how big the effect is or how fast it moves away from the weapon path on a perpendicular (or sometimes arbitrary) axis. <br />
**helical spews and rings use this value to control how fast the particle helix moves away from the central axis.<br />
**sparklers use this to control how fast particles move away from the spawn point, in any direction<br />
**plumes use this to set the diameter of the disk across which particles are spawned<br />
**Syntax: '''''Float'''''<br />
}}{{Table3613|<br />
*'''+Z Scale:'''<br />
**for sparklers, allows you to elongate the effect to surround other effects, like lasers. essentially a length multiplier<br />
**for plume, it multiplies against +scale to set the plume to spread or converge, zero would be full convergence, 1 would be straight flight, and bigger numbers would cause particles to diverge from the disk.<br />
**Syntax: '''''Float'''''<br />
*'''+Rotation Rate:'''<br />
**used only by helical spews, controls how many rotations per second the helix makes<br />
**Syntax: '''''Float'', may be negative, useful for setting up 2 spews that spin in opposite directions'''<br />
*'''+Offset:'''<br />
**position of effect with regards to the weapon center<br />
**Syntax: '''''Vector'''''<br />
*'''+Initial Velocity:'''<br />
**to indicate both direction and speed of particle effects regards to the weapon velocity and +scale:<br />
**Syntax: '''''Vector'''''<br />
}}{{Table3610|<br />
*'''+Bitmap:<br />
**Defines the animation used to create the particle spew effect<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Tag:===<br />
*Allowed for secondary weapons<br />
{{Table3610|<br />
*Allowed for primary weapons and secondary weapons}}<br />
<br />
*Sets this weapon as a TAG missile, level 1, 2, or 3. The second number is the duration in seconds.<br />
*TAG Level 1 will illuminate hidden targets such as stealth fighters or ships normally obscured by nebula conditions.<br />
*TAG Level 2 illiminates targets much like TAG Level 1, but turrets will prefer to shoot at them over other ships.<br />
*TAG Level 3 has no effect in retail.<br />
{{Table3610|<br />
*TAG Level 3 allows the weapon to trigger [[Weapon.tbl#$SSM:|SSMs]]}}<br />
<br />
*Syntax: '''''Integer''''' '''''Float''''', TAG level and seconds respectively<br />
*'''Note''': TAG will not trigger unless the weapon in question has a non-zero damage value.<br />
<br />
===$SSM:===<br />
{{Table3610|<br />
*Defines the weapons SSM index number.<br />
*Requires [[Weapons.tbl#$Tag:|TAG level 3]] or a targeting beam.<br />
*Syntax: '''''Integer'''''}}<br />
{{Table373|<br />
*Now also accepts SSM strike names.<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$FOF:===<br />
{{Table3610|<br />
*Defines the field of fire for the weapon. Causes weapon to fire into a firing cone instead of direct firing line thus causing light inaccuracy<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
====+FOF Spread Rate:====<br />
{{Table37|<br />
*Defines the spread rate of the field of fire. This controls how the FOF increases over time while the weapon is firing.<br />
*Syntax: ''''''Float'''''', rate}}<br />
<br />
====+FOF Reset Rate:====<br />
{{Table37|<br />
*Rate at which the spread decreases if the weapon isn't firing.<br />
*Syntax: ''''''Float'''''', rate<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
====+Max FOF:====<br />
{{Table37|<br />
*The maximum FOF. After the FOF reaches this value it will not increase any further.<br />
*Syntax: ''''''Float'''''', degrees. Must be greater than or equal to zero.<br />
*This is required if '''+FOF Spread Rate:''' is present}}<br />
<br />
===$Shots:===<br />
{{Table3610|<br />
*Defines the number of shots every time the weapon is fired.<br />
*Works only for primary weapons<br />
*Syntax: '''''Integer''''', number of shots}}<br />
<br />
<br />
===$decal:===<br />
{{Table3610|<br />
*Defines impact decals if they are in use<br />
*'''+texture:'''<br />
**Defines the texture used for impact decals (can use '''''-burn''''' and '''''-glow''''' textures)<br />
**Syntax: '''''String''''', filename<br />
*'''+backface texture:'''<br />
**Defines ???<br />
**Syntax: '''''String''''', filename<br />
*'''+radius:'''<br />
**Defines the size of the impact decals on target<br />
**Syntax: '''''Float''''', meters<br />
*'''+burn time:'''<br />
**Defines the time the '''''-burn''''' texture appears on the target<br />
**Syntax: '''''Integer''''', milliseconds}}<br />
{{Table3613|<br />
*Feature removed - table parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Transparent:===<br />
{{Table3610|<br />
*Defines weapon effect as transparent. Enables optional fields for 'alpha animations'<br />
*'''+Alpha:'''<br />
**Defines the strenght of the alpha (transparency). And also the maximum value for the alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Min:'''<br />
**Defines the minimum alpha value for alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Cycle:'''<br />
**Defines the change in alpha per frame, between '''Alpha''' and '''Alpha Min''' values<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Hitpoints:===<br />
{{Table3611|<br />
*Defines the amount of hitpoints a weapon has.<br />
*Weapons with '''"bomb"''' flag have 50 hitpoints by default<br />
*Giving weapon hitpoints makes it possible for the weapon to be shot down or be destroyed by EMP.<br />
**Syntax: '''''Integer'''''<br />
}}<br />
<br />
===$Armor Type:===<br />
{{Table3613|<br />
*REQUIRES ADDITIONAL TABLE. Defines the armor type for the weapon. This works exactly like ship armor types.<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]<br />
}}<br />
<br />
===$Burst Shots:===<br />
{{Table3611|<br />
*Defines the number of shots in a burst<br />
*Shots in a burst use shorter ( '''$Burst Delay:''' ) delay than usually<br />
**Syntax: '''''Integer'''''}}<br />
<br />
===$Burst Delay:===<br />
{{Table3611|<br />
*Defines the time in milliseconds between the shots in a burst<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Burst Flags:===<br />
{{Table3611|<br />
*Defines the flags used to define the burst firing behaviour<br />
**Syntax: ( '''''String''''' '''''String''''' ), list of flags<br />
**Available burst flags:<br />
***'''"fast firing"''', acts as if '''same turret cooldown''' flag would be used between the shots in the burst.<br />
***'''"random length"''', makes AI to fire burst of random length (from 1 to burst shots).}}<br />
<br />
<br />
===$Thruster Flame Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the modeled thruster of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the glow type effect of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Radius Factor:===<br />
{{Table3611|<br />
*Defines the radius multiplier for the thruster's glow type effect<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Substitute:===<br />
{{Table3613|<br />
Defines a pattern of ammo to substitute for primary or secondary weapons. '''$Substitute:''' can be repeated any number of times (so you could make something like a rainbow laser with several ammo substitutions, for example). If neither ''+period'' or ''+index'' is specified, it is assumed to be equivalent to ''+index: '''0'''''.<br />
<br />
*Syntax: '''''Weapon Name'''''<br />
*'''Swarm missiles act in a strange way when used with $Substitute, use at your own risk.'''}}<br />
<br />
{{Table3615|<br />
Turrets can use $Substitute as well.<br />
}}<br />
====+period:====<br />
{{Table3613|<br />
FSO will substitute '''Weapon Name''' every ''period'' shots.<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
=====+offset:=====<br />
{{Table3613|<br />
A suboption of +period, offsets the substitute pattern according to the launched ammo. For example, an offset of 3 and a period of 4 will substitute on the 3rd ammo launched, and then every 4th ammo after that.<br />
<br />
*Syntax: '''''Positive Integer'''''}}<br />
<br />
====+index:====<br />
{{Table3613|<br />
FSO will substitute the '''Weapon Name''' at firepoint ''index'' in the shot pattern. Similar to carefully using both +period and +offset, but is not affected by ships with different firepoint numbers. i.e. Firepoint ''index'' will always have the substitution, while +period and +offset will cycle at different rates dependant on the number of firepoints.'''<br />
<br />
*Syntax: '''''Positive Integer'''''<br />
<br />
*'''You may not define both +period and +index for the same $Substitute entry'''}}<br />
<br />
==Weapons.tbl Flags==<br />
<br />
<br />
==="Electronics"===<br />
*Will seize up the weapons and engines systems of any ship for a short period of time.<br />
<br />
<br />
==="Spawn ''Name'',''Value''"===<br />
*Will spawn the specified number of defined missiles upon detonation.<br />
{{Table3610|<br />
*Multiple spawn types can be defined for a single 'carrier' weapon up to maximum of 5 different weapons}}<br />
<br />
==="Remote Detonate"===<br />
*Can be triggered remotely via a second press on the trigger<br />
<br />
<br />
==="Big Ship"===<br />
*These weapons cannot be mounted on small ships like fighters, bombers, sentry guns etc.<br />
<br />
<br />
==="Huge"===<br />
*Allows this weapon to do the final 10% damage to a ship with the "Big Damage" flag. Also the AI will not try to hit fighters with it, but only if the weapon is in a turret or is a secondary. If the weapon is a primary in a fighter then there are no targeting restrictions. See [[Weapons.tbl#.22capital.2B.22|capital+]] instead.<br />
<br />
==="Supercap"===<br />
*Allows this weapon to do the final 75% damage to a ship with the "supercap" flag.<br />
<br />
<br />
==="Bomber+"===<br />
*The AI will prefer to use this weapon against bombers<br />
<br />
<br />
==="child"===<br />
*Cannot be set as a weapon on any ship, but is instead a child of a weapon. Usually defined with "Spawn ''Name'',''Value''"<br />
<br />
<br />
==="Bomb"===<br />
*Makes this weapon targetable with the B key, and the AI prefers to use it against large ships<br />
<br />
<br />
==="No Dumbfire"===<br />
*Missile will not fire without a lock<br />
<br />
<br />
==="in tech database"===<br />
*Has the weapon in the tech database at the start of the campaign<br />
<br />
<br />
==="Player allowed"===<br />
*Allows this weapon as a player weapon.<br />
{{Table3610|<br />
*'''EXTREMELY IMPORTANT NOTE:'''<br />
**Whenever you plan to use a weapon as a player one in your campaign or missions, '''USE THIS FLAG'''.<br />
**Not using it can cause problems within fs_open and it's a BAD MOD DESIGN.<br />
**In the future, fs_open will maybe be able to avoid these problems but, nevertheless, it's still a BAD DESIGN.<br />
**As another possible example: be careful to update "retail" tables if you plan to use Shivan weapons in player fighters.}}<br />
<br />
==="Particle Spew"===<br />
*Makes the weapon projectile spew out particles<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Pspew:|Particle Spew parameters]]}}<br />
<br />
<br />
==="EMP"===<br />
*This weapon will have an EMP effect on any ship within the blast radius<br />
*Can be defined with [[Weapons.tbl#$EMP_Intensity:|EMP Intensity]] and [[Weapons.tbl#$EMP_Time:|EMP Time]]<br />
<br />
<br />
==="Esuck"===<br />
*Drains the target's energy banks<br />
*Can be defined with [[Weapons.tbl#$Leech_Weapon:|Leech Weapon]] and [[Weapons.tbl#$Leech_Afterburner:|Leech Afterburner]]<br />
<br />
<br />
==="Flak"===<br />
*Makes this weapon a [[weapons.tbl#Flak_Guns|flak gun]]<br />
<br />
<br />
==="Corkscrew"===<br />
*Makes this weapon spiral AND swarm 4.<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Corkscrew:|Corkscrew parameters]]}}<br />
<br />
<br />
==="Shudder"===<br />
*Makes your ship shudder while you're firing the weapon<br />
<br />
<br />
==="lockarm"===<br />
*Requires a target lock in order to arm its warhead. In other words weapon causes less damage if it hits the target without target lock.<br />
<br />
<br />
==="beam"===<br />
*Makes this weapon a [[weapons.tbl#Beam Cannons|beam cannon]]<br />
<br />
<br />
==="stream"===<br />
* Does nothing<br />
<br />
==="puncture"===<br />
*Reduces hull damage by 75%<br />
The AI will prefer these weapons for anti-subsystem use<br />
<br />
==="countermeasure"===<br />
{{Table3610|<br />
*Defines the weapon as a countermeasure}}<br />
<br />
<br />
==="Ballistic"===<br />
{{Table3610|<br />
*Defines the weapon as a ballistic weapon that needs ammunition.<br />
*Make sure you define the size and reload rate for ballistic weapons}}<br />
<br />
<br />
==="pierce shields"===<br />
{{Table3610|<br />
*Causes weapons to penetrate shield without causing damage to it.}}<br />
<br />
<br />
==="no pierce shields"===<br />
{{Table3610|<br />
*Prevents weapons (beams) from piercing shields causing shields to be damaged by weapons first.}}<br />
<br />
<br />
==="local ssm"===<br />
{{Table3610| }}<br />
<br />
<br />
==="tagged only"===<br />
{{Table3610|<br />
*Weapon can only be fired at tagged targets}}<br />
<br />
<br />
==="beam no whack"===<br />
{{Table3610|<br />
*Disables beam whacking (push). Practically same as setting beam mass to zero.}}<br />
<br />
<br />
==="cycle"===<br />
{{Table3610|<br />
*Causes weapon to alternate between firing points}}<br />
<br />
<br />
==="small only"===<br />
{{Table3610|<br />
*Causes AI to use the weapon only on small targets (fighters, bombers etc.)}}<br />
<br />
<br />
==="same turret cooldown"===<br />
{{Table3610|<br />
*Forces the turrets to fire on the designated rate of fire on all difficulty levels and all AI levels}}<br />
<br />
<br />
==="apply no light"===<br />
{{Table3610|<br />
*Prevents light from being applied to the weapon model.}}<br />
<br />
==="training"===<br />
{{Table3610|<br />
*Sets weapon to be of training weapon type. ?}}<br />
<br />
==="smart spawn"===<br />
{{Table3611|<br />
*Forces turret fired spawn weapon of this type to be fired like normal weapons.}}<br />
<br />
==="inherit parent target"===<br />
{{Table3611|<br />
*Sets spawned 'child' weapons to use parent weapon's target.}}<br />
<br />
==="no emp kill"===<br />
{{Table3611|<br />
*Defines the weapon (with hitpoints) to be immune to automatic EMP destruction.}}<br />
<br />
==="untargeted heat seeker"===<br />
{{Table3611|<br />
*Defines the weapon as a heatseeker type missile which acquires its target by itself.}}<br />
<br />
==="no radius doubling"===<br />
{{Table3611|<br />
*Prevents weapon radius from being doubled when doing collision test. Makes bombs harder to intercept.}}<br />
<br />
==="no subsystem homing"===<br />
{{Table3611|<br />
*Prevents weapon from acquiring a subsystem as its target. Missile homing points are spread over the target ship.}}<br />
<br />
==="no lifeleft penalty"===<br />
{{Table3611|<br />
*Prevents weapon lifetime from being penalized if the angle to the target is too big.}}<br />
<br />
==="can be targeted"===<br />
{{Table3611|<br />
*Allows weapon to be targeted by player. Does not influence AI}}<br />
<br />
==="show on radar"===<br />
{{Table3611|<br />
*Allows weapon to be visible on the radar}}<br />
<br />
==="show friendly on radar"===<br />
{{Table3611|<br />
*Allows friendly, otherwise visible to radar weapon, to be visible on player radar}}<br />
<br />
==="capital+"===<br />
{{Table3613|<br />
*Tells AI to use this weapon only on capital ships}}<br />
<br />
==="chain external model fps"===<br />
{{Table3613|<br />
*Tells game to keep switching external model firingpoints when firing}}<br />
<br />
==="external model launcher"===<br />
{{Table3613|<br />
*Tells game that the external model is a launcher so that it would be kept static without loading motion}}<br />
<br />
==="takes blast damage"===<br />
{{Table3613|<br />
*Weapon takes damage from weapon blasts}}<br />
<br />
==="takes shockwave damage"===<br />
{{Table3613|<br />
*Weapon takes damage from shockwaves}}<br />
<br />
==="ciws"===<br />
{{Table3615|<br />
*Weapon can deal shockwave/blast damage to bombs, regardless of whether the target weapons have the "take blast/shockwave damage" flags.}}<br />
<br />
==="render flak"===<br />
{{Table3615|<br />
*Normally, flak shells are not rendered. This flag switches rendering on for those weapons.}}<br />
<br />
==="anti-subsystem beam"===<br />
{{Table3615|<br />
*Beam weapons with this flag can target subsystems on enemy ships, just like normal weapons.}}<br />
<br />
==="no primary linking"===<br />
{{Table3615|<br />
*Primary weapons with this flag can not be linked with other weapons.}}<br />
<br />
==="same emp time for capships"===<br />
{{Table37|<br />
*capships affected by this weapon will use the tabled EMP time rather than the fixed retail value (7.5 secs)}}<br />
<br />
==="no primary linked penalty"===<br />
{{Table371|<br />
*Primary weapons with this flag do not incur the retail linked fire penalty}}<br />
<br />
==="no homing speed ramp"===<br />
{{Table371|<br />
*Locked homing weapons will not perform the standard 1 second long acceleration when fired. Note that use of $Acceleration Time is '''not''' affected by this flag.}}<br />
<br />
==="pulls aspect seekers"===<br />
{{Table371|<br />
*If an aspect seeker is grabbed by this countermeasure the missile will follow the countermeasure instead of going into dumbfire mode.<br />
'''Only valid for countermeasures!'''}}<br />
<br />
==="turret interceptable"===<br />
==="fighter interceptable"===<br />
==="interceptable"===<br />
{{Table371|<br />
*Allows turrets/fighters/both (respectively) to shoot at this weapon without requiring it to be a bomb. If this is the first time this weapon has been defined, it also gives it a default of 25 hitpoints so that it can be shot down.<br />
'''If you use a TBM to give this flag to an existing weapon, you'll need to specify hitpoints manually (unless you want it to be unkillable but still draw defensive fire).'''}}<br />
<br />
==="apply recoil"===<br />
{{Table373|<br />
*A ship that fires a weapon with this flag will experience a recoil effect, slowing the ship down and, with lighter strikecraft, inducing some rotation if the firing points are offset from the center of mass.<br />
'''Do not use this with MVPs or retail ships unless you increase their density to 10 or use either $Recoil Modifier: in weapons.tbl or $Ship Recoil Modifier in ships.tbl. This is to avoid exaggerated effects due to retail models having manually defined masses.'''}}<br />
<br />
==="don't spawn if shot"===<br />
{{Table373|<br />
*Prevents parent weapons from spawning children in the even of the parent weapon being shot down.}}<br />
<br />
==="die on lost lock"===<br />
{{Table373|<br />
*Aspect seeking missiles (only, not heat seekers) will detonate upon losing their lock. Currently they only lose lock if decoyed by a countermeasure, AND "pulls aspect seekers" or similar is not set. The detonation will use their "dinky" explosion (i.e. same as if ran out of lifetime).}}<br />
<br />
==Countermeasures==<br />
*Usually not altered. Only one can exist<br />
{{Table3610|<br />
*More than one can exist}}<br />
<br />
<br />
===$Name:===<br />
*Name of the countermeasure<br />
*Syntax: '''''String''''', name<br />
<br />
<br />
===$Velocity:===<br />
*Defines the speed of the countermeasure, relative to the ship.<br />
*Syntax: '''''Float''''', meter per second<br />
<br />
===$Fire Wait:===<br />
*Definies the minumum time between the countermeasure launches<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===Lifetime===<br />
*Countermeasure's life time is defined between with minimum and maximum lifetime<br />
*'''$Lifetime Min:'''<br />
**Syntax: '''''Float''''', seconds<br />
*'''$Lifetime Max:'''<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$LaunchSnd:===<br />
*Defines the sound for the countermeasure launch<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Model:===<br />
*Defines the used model file (.pof)<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
==Player Weapon Precedence==<br />
*First the primary weapons are defined, from most powerful to least powerful, and then the same for secondaries<br />
*Syntax: ( '''''"String" "String"'''''), names of the weapons<br />
*Example:<br />
<br />
<pre><br />
$Player Weapon Precedence: (<br />
"UD-8 Kayser"<br />
"Prometheus R"<br />
"Subach HL-7"<br />
"Harpoon"<br />
"Tempest"<br />
"Rockeye" )<br />
</pre><br />
<br />
==Sample==<br />
<br />
<pre><br />
#Primary Weapons<br />
<br />
$Name: @Subach HL-7<br />
+Title: XSTR("GTW Subach HL-7", 3243)<br />
+Description:<br />
XSTR( "Standard Issue<br />
Level 3 Hull Damage<br />
Level 2 Shield Damage", 3244)<br />
$end_multi_text<br />
+Tech Title: XSTR("Subach HL-7", 146)<br />
+Tech Anim: Tech_Subach_HL-7<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: none<br />
@Laser Bitmap: newglo9<br />
@Laser Glow: 2_laserglow03<br />
@Laser Color: 250, 0, 0<br />
@Laser Color2: 0, 0, 250<br />
@Laser Length: 10.0<br />
@Laser Head Radius: 0.90<br />
@Laser Tail Radius: 0.90<br />
$Mass: 0.2<br />
$Velocity: 450.0<br />
$Fire Wait: 0.2<br />
$Damage: 15<br />
$Armor Factor: 0.9<br />
$Shield Factor: 0.7<br />
$Subsystem Factor: 0.3<br />
$Lifetime: 2.0<br />
$Energy Consumed: 0.20<br />
$Cargo Size: 0.0<br />
$Homing: NO<br />
$LaunchSnd: 76<br />
$ImpactSnd: 85<br />
$Flags: ( "in tech database"<br />
"player allowed"<br />
"stream")<br />
$Icon: iconSD4<br />
$Anim: SD4<br />
$Impact Explosion: none<br />
<br />
#End<br />
<br />
<br />
#Secondary Weapons<br />
<br />
$Name: EMP Adv.<br />
+Title: XSTR("GTM-14 EMP Adv.", 3396)<br />
+Description:<br />
XSTR( "Advanced Missile<br />
Electromagnetic Pulse Weapon<br />
General Purpose Suppression", 3397)<br />
$end_multi_text<br />
+Tech Title: XSTR("GTM-14 EM Pulse Adv.", 3398)<br />
+Tech Anim: Tech_EMP<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: EMPulse2.pof<br />
$Mass: 15.0<br />
$Velocity: 275.0<br />
$Fire Wait: 2.0<br />
$Damage: 45<br />
$Blast Force: 20.0<br />
$Inner Radius: 80.0<br />
$Outer Radius: 300.0<br />
$Shockwave Speed: 120.0<br />
$Armor Factor: 1.0<br />
$Shield Factor: 0.8<br />
$Subsystem Factor: 0.5<br />
$Lifetime: 5.0<br />
$Energy Consumed: 0.0<br />
$Cargo Size: 4.0<br />
$Homing: YES<br />
+Type: ASPECT<br />
+Turn Time: 1.0<br />
+Min Lock Time: 2.0<br />
+Lock Pixels/Sec: 70<br />
+Catch-up Pixels/Sec: 100<br />
+Catch-up Penalty: 30<br />
$LaunchSnd: 118<br />
$ImpactSnd: 88<br />
$FlyBySnd: -1<br />
$Rearm Rate: 2.0<br />
$Flags: ( "player allowed"<br />
"EMP")<br />
$Trail:<br />
+Start Width: 0.25<br />
+End Width: 0.75<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.5<br />
+Bitmap: MissileTrail04<br />
$Icon: iconEMPulse<br />
$Anim: ecm<br />
$Impact Explosion: ExpMissileHit1<br />
$Impact Explosion Radius: 10.0<br />
$EMP Intensity: 375.0<br />
$EMP Time: 20.0<br />
<br />
#End<br />
<br />
$Player Weapon Precedence: (<br />
"Subach HL-7"<br />
"EMP Adv." )<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Source_Code_Project_index&diff=44366
Source Code Project index
2014-12-03T16:43:33Z
<p>Cyborg17: FSO installer should be metioned to save people time</p>
<hr />
<div>This is a list of Source Code Project-related articles.<br />
<br />
<br />
'''To install Freepsace Open, use the Freespace Open installer:'''<br />
*'''[http://www.hard-light.net/forums/index.php?topic=87537.0 FSO Installer]'''<br />
<br />
'''Or for manual installation instructions, choose your platform:'''<br />
* '''[http://www.hard-light.net/forums/index.php?topic=78710.0 Windows]'''<br />
* '''[http://www.hard-light.net/forums/index.php?topic=79545.0 Linux]'''<br />
* '''[http://www.hard-light.net/forums/index.php?topic=79546.0 Mac OS X]'''<br />
<br />
<br />
===Getting Started with the FreeSpace Source Code Project (FSSCP)===<br />
#[[Source Code Project|Introduction]]<br />
#[[Getting FreeSpace]]<br />
#Installing FreeSpace 2 (FS2) Open<br />
#*[[FreeSpace Open Installer|Using the FreeSpace Open (FSO) Installer]]<br />
#*[[Installing FreeSpace 2 Open|Manual Installation Guide (Steps to take if not using the FSO Installer)]]<br />
#*[[Guide to FS Open on Linux|Linux Installation Guide]]<br />
#*[[Mac Installation Guide]]<br />
<br />
====Optional Post-Install Information====<br />
*[[Installing Mods for FS2 Open|Installing Mods for FS2 Open]]<br />
*[[Troubleshooting]]<br />
*[[Bug Reporting]]<br />
<br />
====Errata====<br />
*[[FS2 Status Page]]<br />
*[[FS2 data installation]]<br />
<!-- This data installation section need to be revised and moved to the install section --><br />
<br />
===Getting Started with Development===<br />
*[[Getting the FreeSpace2: SCP Source Code|Getting the Source Code]]<br />
*[[Coding In C]]<br />
*[[Guide to FS Open on Linux]]<br />
*[[Guide to FS Open and git]]<br />
*[[FSO Error Handling]]<br />
<!-- This list should be made more comprehensive --><br />
<br />
===Notes===<br />
*[[FreeSpace 2 EULA]]<br />
<br />
[[Category:Source Code Project|*]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=GTI_Asteria&diff=43074
GTI Asteria
2013-12-14T19:05:12Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{User-made Ships|''GTI '''Asteria'''''}}<br />
<br />
<br />
{{shipimage|image=[[Image:GTIAsteria.png|750px]]|caption=The GTI Asteria}}<br />
<br />
==Description:==<br />
<br />
===''The Shard Of Infinity'' Tech Room Description===<br />
The GTI Asteria is a station originally designed for commerce and trade. With its 9 docking points and able to station at least one wing of fighters for patrols, the station is well-fitted to serve as a hub for trade in system. Because Asteria-class Stations are easily set-up, this class of station became the GTA's choice for supply outposts in contested areas. With 24 turrets the Asteria's self-defense is outstanding for a station of its size but with its smaller size also comes lower durability, therefore using fighters are its primary means of defense is highly advised.<br />
<br />
===Developer Notes===<br />
The model was originally made by Axem and then converted by Oddgrim. However, there were some problems with the model regarding the dockpoints, a nonfunctional fighterbay and the mapping. These were solved by 0rph3u5. Another version of the model exists in the Inferno Alliance mod which was derived independently from Oddgrim's conversion or even Axem's original model.<br />
<br />
Some features of the original model were lost during the conversion&mdash;like the ''teeth'' around the hexagonal ''hole''. <br />
<br />
<br />
===Name origin===<br />
Asteria is the name of various characters of Greek mythology, including a Titan goddess. In Hesoid's texts, the island Asteria is identical to the island of Delos.<br />
<br />
==Performance:==<br />
===Statistics===<br />
{{Ship Stats|Installation|Unknown|N/A|N/A|N/A|N/A|85 000|0|1625}}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''The Shard of Infinity'''<br />
| colspan=2 style="background:#191970;"| '''[[Blue Planet]]'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| [[Terran Huge Turret]]<br />
| 4<br />
| [[TerPulse]]<br />
| 4<br />
|- align="center"<br />
| [[Terran Turret]]<br />
| 12<br />
| [[STerPulse]]<br />
| 11<br />
|- align="center"<br />
| [[Standard Flak]]<br />
| 8<br />
| [[Standard Flak]]<br />
| 6<br />
|- align="center"<br />
| <br />
| <br />
| [[AAAf]]<br />
| 3<br />
|}<br />
<br />
==Gallery==<br />
<br />
<gallery><br />
Image:TIScreen0002.jpg | An Asteria forms the core of a shipyard in [[Epsilon Pegasi]]. <br />
Image:RScreen0007.jpg | An Asteria installation in orbit above Earth.<br />
Image:RScreen0107.png | The GTVA Neptune HQ in [[Blue Planet]].<br />
</gallery><br />
<br />
==Veteran Comments==<br />
{{Comment| Compared with Arcadia, the Asteria has really some serious defensive ground-work. Most of the 24 turrets are well placed to defend the station&mdash;some are placed quite odd spaces and have questionable effect on the defense.<br />
<br />
<br />
When I last downloaded this station, the fighters were flying their docking path backwards. If you're going to use this station, test to see if it's happening to you, then make sure to manually reverse point 1 and point 3 on each of the fighterbay paths while in PCS2. That fixed the problem for me. }}<br />
<br />
==Download link:==<br />
*http://www.freespacemods.net/download.php?view.577<br />
<br />
[[Category:Installation]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=GTI_Asteria&diff=43073
GTI Asteria
2013-12-14T19:04:47Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{User-made Ships|''GTI '''Asteria'''''}}<br />
<br />
<br />
{{shipimage|image=[[Image:GTIAsteria.png|750px]]|caption=The GTI Asteria}}<br />
<br />
==Description:==<br />
<br />
===''The Shard Of Infinity'' Tech Room Description===<br />
The GTI Asteria is a station originally designed for commerce and trade. With its 9 docking points and able to station at least one wing of fighters for patrols, the station is well-fitted to serve as a hub for trade in system. Because Asteria-class Stations are easily set-up, this class of station became the GTA's choice for supply outposts in contested areas. With 24 turrets the Asteria's self-defense is outstanding for a station of its size but with its smaller size also comes lower durability, therefore using fighters are its primary means of defense is highly advised.<br />
<br />
===Developer Notes===<br />
The model was originally made by Axem and then converted by Oddgrim. However, there were some problems with the model regarding the dockpoints, a nonfunctional fighterbay and the mapping. These were solved by 0rph3u5. Another version of the model exists in the Inferno Alliance mod which was derived independently from Oddgrim's conversion or even Axem's original model.<br />
<br />
Some features of the original model were lost during the conversion&mdash;like the ''teeth'' around the hexagonal ''hole''. <br />
<br />
<br />
===Name origin===<br />
Asteria is the name of various characters of Greek mythology, including a Titan goddess. In Hesoid's texts, the island Asteria is identical to the island of Delos.<br />
<br />
==Performance:==<br />
===Statistics===<br />
{{Ship Stats|Installation|Unknown|N/A|N/A|N/A|N/A|85 000|0|1625}}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''The Shard of Infinity'''<br />
| colspan=2 style="background:#191970;"| '''[[Blue Planet]]'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| [[Terran Huge Turret]]<br />
| 4<br />
| [[TerPulse]]<br />
| 4<br />
|- align="center"<br />
| [[Terran Turret]]<br />
| 12<br />
| [[STerPulse]]<br />
| 11<br />
|- align="center"<br />
| [[Standard Flak]]<br />
| 8<br />
| [[Standard Flak]]<br />
| 6<br />
|- align="center"<br />
| <br />
| <br />
| [[AAAf]]<br />
| 3<br />
|}<br />
<br />
==Gallery==<br />
<br />
<gallery><br />
Image:TIScreen0002.jpg | An Asteria forms the core of a shipyard in [[Epsilon Pegasi]]. <br />
Image:RScreen0007.jpg | An Asteria installation in orbit above Earth.<br />
Image:RScreen0107.png | The GTVA Neptune HQ in [[Blue Planet]].<br />
</gallery><br />
<br />
==Veteran Comments==<br />
{{Comment| Compared with Arcadia, the Asteria has really some serious defensive ground-work. Most of the 24 turrets are well placed to defend the station&mdash;some are placed quite odd spaces and have questionable effect on the defense.<br />
<br />
<br />
When I last downloaded this station, the fighters were flying their docking path backwards. If you're going to use this station, test to see if it's happening to you, then make sure to manually reverse point 1 and point 3 on each of the docking paths while in PCS2. That fixed the problem for me. }}<br />
<br />
==Download link:==<br />
*http://www.freespacemods.net/download.php?view.577<br />
<br />
[[Category:Installation]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=GTI_Asteria&diff=43072
GTI Asteria
2013-12-14T19:04:34Z
<p>Cyborg17: </p>
<hr />
<div>{{User-made Ships|''GTI '''Asteria'''''}}<br />
<br />
<br />
{{shipimage|image=[[Image:GTIAsteria.png|750px]]|caption=The GTI Asteria}}<br />
<br />
==Description:==<br />
<br />
===''The Shard Of Infinity'' Tech Room Description===<br />
The GTI Asteria is a station originally designed for commerce and trade. With its 9 docking points and able to station at least one wing of fighters for patrols, the station is well-fitted to serve as a hub for trade in system. Because Asteria-class Stations are easily set-up, this class of station became the GTA's choice for supply outposts in contested areas. With 24 turrets the Asteria's self-defense is outstanding for a station of its size but with its smaller size also comes lower durability, therefore using fighters are its primary means of defense is highly advised.<br />
<br />
===Developer Notes===<br />
The model was originally made by Axem and then converted by Oddgrim. However, there were some problems with the model regarding the dockpoints, a nonfunctional fighterbay and the mapping. These were solved by 0rph3u5. Another version of the model exists in the Inferno Alliance mod which was derived independently from Oddgrim's conversion or even Axem's original model.<br />
<br />
Some features of the original model were lost during the conversion&mdash;like the ''teeth'' around the hexagonal ''hole''. <br />
<br />
<br />
===Name origin===<br />
Asteria is the name of various characters of Greek mythology, including a Titan goddess. In Hesoid's texts, the island Asteria is identical to the island of Delos.<br />
<br />
==Performance:==<br />
===Statistics===<br />
{{Ship Stats|Installation|Unknown|N/A|N/A|N/A|N/A|85 000|0|1625}}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''The Shard of Infinity'''<br />
| colspan=2 style="background:#191970;"| '''[[Blue Planet]]'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| [[Terran Huge Turret]]<br />
| 4<br />
| [[TerPulse]]<br />
| 4<br />
|- align="center"<br />
| [[Terran Turret]]<br />
| 12<br />
| [[STerPulse]]<br />
| 11<br />
|- align="center"<br />
| [[Standard Flak]]<br />
| 8<br />
| [[Standard Flak]]<br />
| 6<br />
|- align="center"<br />
| <br />
| <br />
| [[AAAf]]<br />
| 3<br />
|}<br />
<br />
==Gallery==<br />
<br />
<gallery><br />
Image:TIScreen0002.jpg | An Asteria forms the core of a shipyard in [[Epsilon Pegasi]]. <br />
Image:RScreen0007.jpg | An Asteria installation in orbit above Earth.<br />
Image:RScreen0107.png | The GTVA Neptune HQ in [[Blue Planet]].<br />
</gallery><br />
<br />
==Veteran Comments==<br />
{{Comment| Compared with Arcadia, the Asteria has really some serious defensive ground-work. Most of the 24 turrets are well placed to defend the station&mdash;some are placed quite odd spaces and have questionable effect on the defense.<br />
<br />
When I last downloaded this station, the fighters were flying their docking path backwards. If you're going to use this station, test to see if it's happening to you, then make sure to manually reverse point 1 and point 3 on each of the docking paths while in PCS2. That fixed the problem for me. }}<br />
<br />
==Download link:==<br />
*http://www.freespacemods.net/download.php?view.577<br />
<br />
[[Category:Installation]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=GTDS_Goliath&diff=38026
GTDS Goliath
2012-03-19T04:31:36Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{User-made Ships|''GTDS '''Goliath'''''}}<br />
<br />
<br />
{{shipimage|image=[[Image:Goliath1.jpg|500px]]|caption=GTDS Goliath}}<br />
<br />
==Description:==<br />
<br />
===Tech Room Description===<br />
This cruiser size installation is able to defend herself against few fighter squadrons and also make an equal fight with a corvette. DS Goliath is first line jump nodes and important installation defence. <br />
<br />
===Credits===<br />
*Model by '''c914'''<br />
<br />
==Performance:==<br />
===Statistics===<br />
{|<br />
|-<br />
| style="width:200px" | '''[[Technical_Terms_and_Definitions#Type|Type]]'''<br />
| style="width:200px" | Defense Station <br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Manufacturer|Manufacturer]]'''<br />
| Unknown<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Maneuverablity|Maneuverability]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Velocity|Max Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Afterburner Velocity|Max Afterburner Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Armor|Armor]]'''<br />
| N/A<br />
|-<br />
| [[Technical_Terms_and_Definitions#Hitpoints|Hitpoints]]<br />
| ???<br />
|-<br />
| [[Technical_Terms_and_Definitions#Shields|Shields]]<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Length|Length]]'''<br />
| 200 m<br />
|}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''Default Statistics'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| L.R.T.<br />
| 4<br />
|- align="center"<br />
| RFPulse<br />
| 2<br />
|- align="center"<br />
| [[Standard Flak]]<br />
| 3<br />
|- align="center"<br />
| [[Terran Turret]]<br />
| 6<br />
|}<br />
<br />
<br />
===Veteran Comments===<br />
{{comment| This model can be a pain in the neck to mod with. If you're going to use it in a mod, it's good to note that it uses at least 10 textures and is tile-mapped. Since it's an installation, also, when you want to make table edits, make sure '''''not''''' to set $Rotation time: to 0.0, 0.0, 0.0, even though it cannot rotate in game. This will cause the model to disappear.}}<br />
<br />
==Download link:==<br />
*Release Thread (Dead link) - http://www.hard-light.net/forums/index.php?topic=67201.0<br />
*Freespacemods - http://www.freespacemods.net/download.php?view.621<br />
<br />
[[Category:Installation]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=GTDS_Goliath&diff=38025
GTDS Goliath
2012-03-19T04:27:19Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{User-made Ships|''GTDS '''Goliath'''''}}<br />
<br />
<br />
{{shipimage|image=[[Image:Goliath1.jpg|500px]]|caption=GTDS Goliath}}<br />
<br />
==Description:==<br />
<br />
===Tech Room Description===<br />
This cruiser size installation is able to defend herself against few fighter squadrons and also make an equal fight with a corvette. DS Goliath is first line jump nodes and important installation defence. <br />
<br />
===Credits===<br />
*Model by '''c914'''<br />
<br />
==Performance:==<br />
===Statistics===<br />
{|<br />
|-<br />
| style="width:200px" | '''[[Technical_Terms_and_Definitions#Type|Type]]'''<br />
| style="width:200px" | Defense Station <br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Manufacturer|Manufacturer]]'''<br />
| Unknown<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Maneuverablity|Maneuverability]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Velocity|Max Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Afterburner Velocity|Max Afterburner Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Armor|Armor]]'''<br />
| N/A<br />
|-<br />
| [[Technical_Terms_and_Definitions#Hitpoints|Hitpoints]]<br />
| ???<br />
|-<br />
| [[Technical_Terms_and_Definitions#Shields|Shields]]<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Length|Length]]'''<br />
| 200 m<br />
|}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''Default Statistics'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| L.R.T.<br />
| 4<br />
|- align="center"<br />
| RFPulse<br />
| 2<br />
|- align="center"<br />
| [[Standard Flak]]<br />
| 3<br />
|- align="center"<br />
| [[Terran Turret]]<br />
| 6<br />
|}<br />
<br />
<br />
===Veteran Comments===<br />
{{comment|}}<br />
This model can be a pain in the neck to mod with. If you're going to use it in a mod, it's good to note that it uses at least 10 textures and is tile-mapped. Since it's an installation, also, when you want to make table edits, make sure '''''not''''' to set $Rotation time: to 0.0, 0.0, 0.0, even though it cannot rotate in game. This will cause the model to disappear.<br />
<br />
==Download link:==<br />
*Release Thread (Dead link) - http://www.hard-light.net/forums/index.php?topic=67201.0<br />
*Freespacemods - http://www.freespacemods.net/download.php?view.621<br />
<br />
[[Category:Installation]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Ships.tbl&diff=38024
Ships.tbl
2012-03-19T04:22:53Z
<p>Cyborg17: /* $Rotation Time: */</p>
<hr />
<div>{{TableVersion|7923}}<br />
<br />
<!-- I'll leave these here - commented away - until we can be sure they are not needed<br />
Links to archived versions:<br />
*[[Ships.tbl/CVS_version|CVS version of ships.tbl]]<br />
*[[Ships.tbl/Retail_version|Retail version of ships.tbl]]<br />
--><br />
==General Format==<br />
*Ship.tbl is formed of several different sections.<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>End before the next section.<br />
**<nowiki>#</nowiki>'''Default Player Ship'''<br />
***Defines the default player ship in the game and also in the FRED. If in a mission appears a ship that has not been properly included to tables then game replaces the ship with the Default Player Ship.<br />
**<nowiki>#</nowiki>'''Engine Wash Info'''<br />
***Includes all the definitions of all engine washes used in the game.<br />
{{Table3610|<br />
:*<nowiki>#</nowiki>'''Ship Templates'''<br />
:**Includes entries for ship templates}}<br />
<br />
:*<nowiki>#</nowiki>'''Ship Classes'''<br />
:**Includes entries for every ship and also defines their attributes that are used in the game<br />
:**Is discussed in detail at [[Ships.tbl#Table_Options|Table Options]] section.<br />
:*'''$Player Ship Precedence'''<br />
:**Player Ship Precedence is used in ship selection when a ship specified by the mission designer is not available to the player. The next ship on the list is used in its place (assuming that ship is allowed for the player)<br />
<br />
==Default Player Ship==<br />
*Defines the default ship in the game.<br />
*Syntax: ''Name'', name of ship model as defined in [[Ships.tbl#Table_Options|Table Options]].<br />
<br />
<br />
==Engine Wash==<br />
*Defines the engines washes<br />
*First entry must be named 'default'<br />
<br />
<br />
===$Name:===<br />
*Defines the name of the engine wash.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===$Angle:===<br />
*Defines the angle from the engine where the engine wash exists<br />
*Syntax: '''''Float''''', degrees<br />
<br />
<br />
===$Radius Mult:===<br />
*Defines engine wash multiplier<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Length:===<br />
*Defines the length of the engine wash<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Intensity:===<br />
*Defines the strength of the engine wash<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
'''Example'''<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
<br />
==Ship Template Options==<br />
{{Table3610|<br />
*Example of template usage [[Ship_Templates]] in which both [[GTB Artemis]] variants have been defined using a single template}}<br />
<br />
<br />
===$Template:===<br />
{{Table3610|<br />
*Defines the name of template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Another template can be used as template for the current template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
==Ships Table Options==<br />
<br />
<br />
===$Name:===<br />
*Model name that is used also in game. It is also used as name for the whole ship entry.<br>There are two special characters can be used in the name: '''#''' and '''@'''<br />
**'''#'''. It's used in the middle of the name. It makes the right part of the name not being shown in the ship class info of the target window, (or beside the target brackets in FS_Open builds). It allows making different versions of a base ship while showing the same class name inside the game.<br>An example from FSPort FreeSpace 1: The '''SF Dragon#weakened''' ship, used in [[Enter the Dragon]], appears to the player just as any other '''SF Dragon'''.<br />
**'''@'''. It's used before the proper ship name. It is fully ignored by the game. Moreover, '''@WhateverShip''' and '''WhateverShip''' are exactly the same name and therefore they both appear as '''WhateverShip''' inside the game. It just allows the user marking ships in the table because of any modding reason.<br>In the retail FS2 ships there are several ships starting by '''@'''.<br />
*Syntax: '''''String''''', name<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Sets the table entry to use template based on an existing table entry instead of creating totally new one<br />
*Syntax: '''''String''''', name of the template}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3613|<br />
*Alternative $Name: for the ship.<br />
*Syntax: '''''String''''', Alternate $Name:}}<br />
<br />
<br />
===$Short name:===<br />
*Shortened model name, for FRED, Usually more descriptive than the real name.<br />
*Syntax: '''''String''''''<br />
<br />
<br />
===$Species:===<br />
*Defines species (Terran, Vasudan or Shivan). Determines many things, including the color of the engine glow, the flyby sound effects, the briefing icon and the support ship.<br />
{{Table3610|<br />
*More species have been enabled, and all of these have to be defined in [[species_defs.tbl]].}}<br />
<br />
*Syntax: '''''String''''', name of the species<br />
**Example: ''Terran''<br />
<br />
<br />
===Technical Description===<br />
List of descriptive terms for techroom and ship selection screens. Number after the quotes refers to [[tstrings.tbl]]<br />
<br />
====+Type:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Maneuverability:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Armor:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Manufacturer:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Tech Title:====<br />
{{Table3613|<br />
*Defines name of the ship as displayed in the tech room<br />
*Syntax: '''''String'''''}}<br />
<br />
====+Tech Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Length:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Gun Mounts:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Missile Banks:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: String, either "FS1", or "Off". This defaults to the FS2 effect.}}<br />
<br />
===$Cockpit POF file:===<br />
{{Table3610|*Filename of the cockpit model file<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
===+Cockpit Offset:===<br />
{{Table3610|*Defines the offset of the cockpit model<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$POF File:===<br />
*Filename of the model file (.pof) at data/models folder<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$Texture Replace:===<br />
{{Table3610|<br />
*'''+old:'''<br />
*Defines the texture to be replaced<br />
**Syntax: '''''String''''', filename<br />
*'''+new:'''<br />
*Defines the new texture<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$POF Target File:===<br />
*Optional hud targeting model<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$POF Target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of target model used in the HUD targetbox<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Detail Distance:===<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''<br />
<br />
<br />
===$ND:===<br />
*No Dim field field was used in FreeSpace for ship lights. Use of glowmaps is preferred to the $ND entry. Only noticeable in Glide or Software mode.<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''42, 42, 224''<br />
<br />
<br />
===$Show Damage:===<br />
*No function at all. The engine will read values, but discard them. In 3.6.10 or later, this can be left out without adverse consequences.<br />
*Syntax: '''''Boolean''''', yes or no, usually yes<br />
<br />
<br />
===$Damage Lightning Type:===<br />
{{Table3613|<br />
*Changes the damage lightning effect shown on highly damaged ships. <br />
*Can be defined as:<br />
**''None''<br />
**''Default''}}<br />
<br />
<br />
===$Impact:===<br />
{{Table3610|<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the collision<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Impact Spew:===<br />
{{Table3610|<br />
*Used to define the impact particle spew<br />
*Note: You CANNOT define a different type of particle spew here; the only option possible is listed below<br />
*'''+Max particles:'''<br />
**Defines the maximum number of particles spewed<br />
**Setting to zero causes model to generate no particles at all<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 30}}{{Table3613|<br />
*'''+Min particles:'''<br />
**Defines the minimum number of particles spewed<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 25<br />
*'''+Max Radius:'''<br />
**Defines the maximum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.5f<br />
*'''+Min Radius:'''<br />
**Defines the minimum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.2f<br />
*'''+Max Lifetime:'''<br />
**Defines the maximum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.55f<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.05f<br />
*'''+Max Velocity:'''<br />
**Defines the maximum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 12.0f<br />
*'''+Min Velocity:'''<br />
**Defines the minimum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 2.0f<br />
*'''+Normal Variance:'''<br />
**Defines the variance of particle direction from the normal<br />
**Syntax: '''''Float'''''<br />
**Default Value: 1.0f}}<br />
<br />
<br />
===$Damage Spew:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the 'smoke' released on weapon impact point<br />
*Certain default values (marked with '''X''') gain a specific multiplier based on ship radius<br />
::If the radius is less than 20 the multiplier is 1<br />
::If the radius is larger than 40 the multipler is 1.2<br />
::Otherwise it is between 1 and 1.2<br />
{{Table3610|<br />
*'''+Max Particles:'''<br />
**Default Value: 50 * '''X'''}}{{Table3613|<br />
*'''+Min Particles:'''<br />
**Default Value: 20 * '''X'''<br />
*'''+Max Radius:'''<br />
**Default Value: 1.3 <br />
*'''+Min Radius:'''<br />
**Default Value: 0.7<br />
*'''+Max Lifetime:'''<br />
**Default Value: 1.5 * '''X'''<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.7 * '''X'''<br />
*'''+Max Velocity:'''<br />
**Default Value: 12.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 3.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 0.2 * '''X'''}}<br />
<br />
<br />
===$Collision Physics:===<br />
{{Table3613|<br />
*Parameters affecting collision physics, including landings.<br />
*"Landing" means the ship will not take damage or shake when it touches down. Instead, the ship will reorient towards a neutral resting orientation. "Reorient" thresholds below mean that the ship will still take damage (counts as a crash) but will move towards the correct landing orientation. <br />
<br />
====+Bounce:====<br />
When this ship collides with a large ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Both Small Bounce:====<br />
When this ship collides with a small ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Friction:====<br />
During collisions, how much friction to apply (slowing lateral movement). Default is 0.0.<br />
====+Rotation Factor:====<br />
Affects the rotational energy of collisions. Default is 0.2.<br />
====+Landing Max Forward Vel:====<br />
Maximum velocity for which landing physics are used. <br />
====+Landing Min Forward Vel:====<br />
Minimum velocity for which landing physics are used. <br />
====+Landing Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still be considered a landing. <br />
====+Landing Max Horizontal Vel:====<br />
Maximum sideways velocity the ship can land at.<br />
====+Landing Max Angle:====<br />
Maximum angle of attack the ship can land at (in degrees).<br />
====+Landing Min Angle:====<br />
Minimum angle of attack the ship can land at (in degrees).<br />
====+Landing Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to count as a landing. <br />
====+Reorient Max Forward Vel:====<br />
Maximum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Min Forward Vel:====<br />
Minimum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still reorient. <br />
====+Reorient Max Horizontal Vel:====<br />
Maximum sideways velocity for reorienting.<br />
====+Reorient Max Angle:====<br />
Maximum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Min Angle:====<br />
Minimum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to be reoriented on impact.<br />
====+Reorient Speed Mult:====<br />
How quickly the reorientation takes place (when applicable)<br />
====+Landing Rest Angle:====<br />
Angle of the ship's nose relative to the plane of the landing surface when the ship is at rest. Reorient will move the ship towards this angle. <br />
====+Landing Sound:====<br />
Sound to play when landing (if it's not a landing, normal collision sound is used).<br />
}}<br />
<br />
<br />
===$Debris:===<br />
{{Table3610|<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of the debris (Default value is a random number)<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Max Lifetime:<br />
**Defines the maximum lifetime of the debris<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Min Speed:<br />
**Defines the minimum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Max Speed:<br />
**Defines the maximum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Min Rotation speed:<br />
**Defines the minimum rotational speed of the debris (Default is (6 to 10)/Ship-radius)<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Max Rotation speed:<br />
**Defines the maximum rotational speed of the debris<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the debris<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
{{Table3611|<br />
*'''+Min Hitpoints:'''<br />
**Defines the minimum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Max Hitpoints:'''<br />
**Defines the maximum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Damage Multiplier:'''<br />
**Defines the collision damage multiplier for collisions against the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Lightning Arc Percent:'''<br />
**Controls what percent of debris pieces will have the damage lightning effect applied to them.<br />
**Defaults to 50%.<br />
**Syntax: '''''Float,''' 0-100}}<br />
<br />
<br />
===$Density:===<br />
*This defines how hard you hit something. If you set it very high, a collision will the lower density ship and not yours; the higher the numbers are, the harder they will hit and the farther they will be pushed. However, this doesn't apply to asteroids. When a high density fighter collides with an asteroid, the high-density fighter will receive damage, but it will also destroy the asteroid. Setting a density of 1000 on a fighter with 180 hitpoints will cause the fighter to immediately explode if it collides with, say, an asteroid. A low-density fighter will not have any effect on an asteroid, but if the fighter destroys the asteroid, the fighter will fly far away.<br />
*Syntax: '''''Float''''', usually 1<br />
<br />
<br />
===$Damp:===<br />
*Damp affects how quickly you will accel/decel to your target velocity. Higher damp means slow acceleration and deceleration. The lower this number, the faster the ship responds. For example, specifying a value of 0.0 means there is no damping, in other words, people would say, "this has no physics, like Wing Commander." The more damping, the harder to control, but the more smoothly it moves.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Rotdamp:===<br />
*Same thing, but for rotational movement.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Banking Constant:===<br />
{{Table3610|<br />
*Defines a factor for how much roll is added during a yaw. Set as 1 for full roll and 0 is no roll. Default is 0.5.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Max Velocity:===<br />
*Defines maximum velocities with standard energy settings on x (left/right), y (up/down), and z (forward) -axis (respectively). z -axis velocity defines the maximum forward velocity.<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
**Example: ''0.0, 0.0, 80.0''<br />
<br />
<br />
===$Rotation Time:===<br />
*Defines rotation times around the x, y, and z-axis. Number is seconds it takes to complete rotate a ship (360 degrees) around the given axis. X-axis is "pitch," y-axis is "yaw," and z-axis is "roll."<br />
*Syntax: '''''Vector''''', three '''floats''', seconds per 360 degree turn around x-axis, y-axis, z-axis, respectively<br />
**Example: ''3.0, 2.6, 5.0''<br />
**Note: Setting to Zero will cause the model to disappear in mission.<br />
<br />
===$Rear Velocity:===<br />
*Defines rear velocity<br />
*Syntax: '''''Float''''', meters per second<br />
**Note: This value must be set for [[Ships.tbl#.2BAburn_Max_Reverse_Vel:|+Aburn_Max_Reverse_Vel:]] to work<br />
<br />
<br />
===$Forward Accel:===<br />
*Number of seconds needed from full stop to maximum velocity<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Forward Decel:===<br />
*Number of seconds needed from maximum velocity to full stop<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Accel:===<br />
*Same for sliding as the $Forward accel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Decel:===<br />
*Same for sliding as the $Forward decel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Glide:===<br />
{{Table3610|<br />
*Allows gliding in game, i.e. turning the ship's facing without changing its direction.<br />
*Syntax: '''''Boolean''''', yes or no}}<br />
<br />
<br />
====+Dynamic Glide Cap:====<br />
{{Table3611|<br />
*If set, game uses dynamic glide cap. The dynamic glide cap means that the maximum glide speed will follow the same rules as normal flight, including the effects of afterburner and power to engines. If set to YES, the value in +Max Glide Speed is ignored.<br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
====+Max Glide Speed:====<br />
{{Table3610|<br />
*Defines the maximum glide speed if glide has been enabled. If 0, this is set to the fastest speed the ship can go. If negative, there is no glide cap (allowing practically infinite maximum gliding speed). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
====+Glide Accel Mult:====<br />
{{Table3611|<br />
*Defines the acceleration multiplier for the gliding mode. If > 0, sets a fixed acceleration rate in glide mode depending on value. If set to 0, impossible to accelerate while in glide mode. If negative, enables glide speed ramping (acceleration in glide mode ramps in the same way as in normal flight). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
{{Table3610|<br />
*Entry exists as a dummy entry which doesnt do anything to prevent compatibility issues}}<br />
<br />
<br />
===$Use Newtonian Dampening:===<br />
{{Table3611|<br />
*If set, forces the ship to use (or not use) newtonian dampening. Basically, allows overriding the AI Profiles flag on a per-ship basis. <br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
===$Autoaim FOV:===<br />
{{Table3610|<br />
*Defines the field of view for autoaim<br />
*Syntax: '''''Integer'''''}}<br />
<br />
====+Converging Autoaim====<br />
{{Table3611|<br />
*Defines that the autoaim uses convergence}}<br />
<br />
====+Minimum Distance:====<br />
{{Table3611|<br />
*Defines the minimum distance for the convergence}}<br />
<br />
<br />
===$Convergence:===<br />
{{Table3611|<br />
*Defines the weapons use convergence}}<br />
<br />
====+Automatic====<br />
{{Table3611|<br />
*Defines that the ship uses automatic convergence - converging distance calculated from estimated hit position (lead) of the current target.<br />
*'''+Minimum Distance:'''<br />
**Defines the minimum distance for the convergence. Overrides the setting for $Autoaim FOV's minimum distance.}}<br />
<br />
====+Standard====<br />
{{Table3611|<br />
*Defines that ship uses fixed convergence.<br />
*'''+Distance:'''<br />
**Defines the converging distance from the ship}}<br />
<br />
====+Offset:====<br />
{{Table3611|<br />
*Defines the offset from the ship centerpoint for the convergence<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$Warpin Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpin effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpin Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps in for '''default''' warpin effect<br />
*Sets the time that the ships warp in (not the animation itself) takes for '''BTRL''' type warpin effects<br />
*Syntax: '''''Float''''', meters per second or miiliseconds}}<br />
<br />
<br />
===$Warpin Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpin Decel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the deceleration curve at the end of the warpin. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual deceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpin Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpin Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpin effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpout effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpout Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Engage Time:===<br />
{{Table3615|<br />
*Defines the delay the it takes for the warp drive of the ship to engage, during which the player may still abort the warpout. Affects both the player as well as AI ships. If not defined, defaults to 3 seconds for the player and none for the AI.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps out for '''default''' warpout effect<br />
*Sets the time that the ships warp out (not the animation itself) takes for '''BTRL''' type warpout effects}}<br />
{{Table3613|<br />
*Sets the minimum speed required for the ship to warp out for '''hyperspace''' type warpout effects}}<br />
{{Table3610|<br />
*Syntax: '''''Float''''', meters per second or milliseconds}}<br />
<br />
<br />
===$Warpout Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Accel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the acceleration curve at the start of the warpout. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual acceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpout Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpout Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpout effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Player Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the player warps out from the game<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Expl Inner Rad:===<br />
*Radius at which the full explosion damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Outer Rad:===<br />
*Maximum radius at which any damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Damage:===<br />
*Amount of damage done inside the inner radius<br />
*Syntax: '''''Float''''', damage<br />
<br />
<br />
===$Expl Blast:===<br />
*The intensity of the blast effect when you're within the outer radius<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Expl Propagates:===<br />
*This decides whether the ship explodes into debris immediately, or whether it has the many small explosions before breaking apart slowly<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
<br />
===$Propagating Expl Radius Multiplier:===<br />
{{Table3613|<br />
*This sets the multiplier for the ship splitting propagating explosions<br />
*Syntax: '''''Float''''', defaults to 1}}<br />
<br />
<br />
===$Expl Visual Rad:===<br />
{{Table3611|<br />
*This determines the visual size of the main fireball for an exploding ship. Does not affect ships with propagating explosions. <br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Base Death-Roll Time:===<br />
{{Table3613|<br />
*Defines the base death-roll time<br />
*Values is modified depending on conditions when the ship died<br />
*Syntax: '''''Integer''''', milliseconds<br />
**Default: 3000}}<br />
<br />
<br />
===$Death-Roll Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the radius of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death-Roll Explosion Intensity Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the amount of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier applied to the ship death explosions<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Count:===<br />
{{Table3613|<br />
*Defines the number of explosion effect game uses when a large ship dies<br />
*Syntax: '''''Integer'''''<br />
**Default: 6}}<br />
<br />
<br />
===$Ship Splitting Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on every explosion event which happens when ship is splitting apart<br />
*The old 'popcorn' effect<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 80<br />
*'''+Min Particles:'''<br />
**Default Value: 40<br />
*'''+Max Radius:'''<br />
**Default Value: Ship radius * 0.015<br />
*'''+Min Radius:'''<br />
**Default Value: Ship radius * 0.005<br />
*'''+Max Lifetime:'''<br />
**Default Value: 6.0 * (1 + 0.002 * Ship radius)<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5 * (1 + 0.002 * Ship radius) <br />
*'''+Max Velocity:'''<br />
**Default Value: Speed of the propagating explosion<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Ship Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on the moment 'non-knossos' type object dies<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 100<br />
*'''+Min Particles:'''<br />
**Default Value: 50<br />
*'''+Max Radius:'''<br />
**Default Value: 1.5<br />
*'''+Min Radius:'''<br />
**Default Value: 0.1<br />
*'''+Max Lifetime:'''<br />
**Default Value: 4.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5<br />
*'''+Max Velocity:'''<br />
**Default Value: 20.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Alternate Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released when 'knossos' type object is dying<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 30<br />
*'''+Min Particles:'''<br />
**Default Value: 15<br />
*'''+Max Radius:'''<br />
**Default Value: 100.0<br />
*'''+Min Radius:'''<br />
**Default Value: 30.0<br />
*'''+Max Lifetime:'''<br />
**Default Value: 12.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 2.0<br />
*'''+Max Velocity:'''<br />
**Default Value: 350.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 50.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Vaporize Percent Chance:===<br />
{{Table3611|<br />
*Allows ships to sometimes explode instantly (vaporize) instead of going through a death roll first. Overrides the same flag in [[objecttypes.tbl]]. <br />
*Syntax: '''''Float''''', percent chance of vaporization}}<br />
<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the ship explosions<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at, 0 means no shockwave<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave Count:===<br />
*Defines the number of shockwaves to spawned<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Shockwave Model:===<br />
{{Table3610|<br />
*Defines the textured model used as the ship's 3D shockwave<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave Name:===<br />
{{Table3610|<br />
*Defines the name of the animation to used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Explosion Animations:===<br />
{{Table3610|<br />
*Defines the explosion animations used for the ship<br />
*Syntax: '''''Integer list'''''}}<br />
<br />
<br />
===$Weapon Model Draw Distance:===<br />
{{Table3610|<br />
*Distance that external weapons are shown, ie. missiles and such.<br />
*Syntax: '''''Float''''', meters<br />
**Default: ''200''}}<br />
<br />
<br />
===Primary Weapons===<br />
====$Allowed PBanks:====<br />
*List of allowed primary weapons in brackets (weapon name marked with quotes).<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has its own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight PBanks:====<br />
*Primary weapons for multiplayer dogfights.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon dogfight banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default PBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$PBank Capacity:====<br />
{{Table3610|<br />
*Defines ammunition capacity of primary weapon banks. In brackets, different weapon banks separated by commas.<br />
*NOTE: In order for this to work, at least one of the primary weapons in the list of default primaries must be a ballistic weapon.<br />
*Syntax: '''''( Integer, Integer )'''''}}<br />
<br />
<br />
====$Show Primary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for primary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )''''', yes or no<br />
**Example: ''( YES YES )'' - Note the spaces on the insides of the brackets.}}<br />
<br />
<br />
===Secondary Weapons===<br />
====$Allowed SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon dogfight banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default SBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$SBank Capacity:====<br />
*Defines ammunition capacity of secondary weapon banks. In brackets, different weapon banks separated by commas.<br />
*Syntax: '''''( Integer, Integer )'''''<br />
<br />
<br />
====$Show Secondary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for secondary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )'''''<br />
**Example: ''(YES YES)''}}<br />
<br />
<br />
===$Shields:===<br />
*Determines the shield strength<br />
*Syntax: '''''Float''''', total shield strength<br />
<br />
<br />
===$Shield Color:===<br />
*RGB value for shield color<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''100, 100, 255''<br />
<br />
<br />
===$Power Output:===<br />
*The amount of energy available. The higher the output, the faster your weapons and shields recharge.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Shield Regeneration Rate:===<br />
{{Table3610|<br />
*Repair rates for shields at percent per second<br />
*Syntax: '''''Float''''', multiplier of total shield hitpoints recharged each second. ('''NOT A PERCENTAGE''', 0.02 equals 2% recharged per second)<br />
**Default: ''0.02''}}<br />
<br />
<br />
===$Support Shield Repair Rate:===<br />
{{Table3611|<br />
*Shield repair rate when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Regeneration Rate:===<br />
{{Table3610|<br />
*Regeneration rates for primary guns at percent per second<br />
*Syntax: '''''Float''''', multiplier of total gun energy recharged each second ('''NOT A PERCENTAGE''', 0.04 equals 4% recharged per second)<br />
**Default: ''0.04''}}<br />
<br />
<br />
===$Max Oclk Speed:===<br />
*Can also be '''$Max Overclock Speed:'''<br />
*Maximum velocity with all energy diverted to engines<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Max Weapon Eng:===<br />
*Can also be '''$Max Weapon Energy:'''<br />
*The maximum amount of energy you can store in your primary weapons bank.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Hitpoints:===<br />
*How much damage the ship can take<br />
*Syntax: '''''Float''''', hitpoints<br />
**Default: ''100''<br />
<br />
<br />
===$Hull Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for hull at percent per second<br />
*Syntax: '''''Float''''', multiplier of hitpoints repaired per second, '''NOT A PERCENTAGE''', 0.01 equals 1% recharged per second}}<br />
<br />
<br />
===$Support Hull Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for hull when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Subsystem Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for sybsystems percent per second<br />
*Syntax: ''Value'', multiplier of total subsystem hitpoints repaired per second, 0.01 equals 1% of total hitpoints recharged per second}}<br />
<br />
<br />
===$Support Subsystem Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for subsystems when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Armor Type===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines armor type used for the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shield Armor Type:===<br />
{{Table3611|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the armor type used for shield of the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Ships.tbl#Ships.tbl_flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the ship<br />
**Example: ( "fighter" "in tech database" )<br />
{{Table3610|<br />
*'''+noreplace'''<br />
**Can be used to force game to retain existing flags instead of reseting the ship flags before parsing in the new flags.}}<br />
<br />
<br />
===$AI Class:===<br />
*Default AI class<br />
*Syntax: '''''String''''', name of the AI class as defined in [[ai.tbl]]<br />
<br />
<br />
===$Afterburner:===<br />
*Defines if the ships has afterburner<br />
*Syntax: '''''Boolean''''', yes or no<br />
====+Aburn Max Vel:====<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
====+Aburn For accel:====<br />
*Defined only for the forward acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds<br />
{{Table3611|<br />
====+Aburn Max Reverse Vel:====<br />
*Defined only for the reverse acceleration, Set the top speed for Reverse Afterburner.<br />
*Syntax: '''''Float''''', seconds<br />
**NOTE: Requires [[Ships.tbl#.24Rear_Velocity:|$Rear Velocity:]] to be set in order to work.<br />
====+Aburn Rev accel:====<br />
*Defined only for the reverse acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds'''''}}<br />
====+Aburn Fuel:====<br />
*Amount of afterburner fuel the ship has<br />
*Syntax: '''''Float''''', fuel<br />
====+Aburn Burn Rate:====<br />
*Rate the fuel is consumed when afterburner is engaged (in units per seconds)<br />
*Syntax: '''''Float''''', fuel units per second<br />
====+Aburn Rec Rate:====<br />
*Rate the fuel is restored.<br />
*Syntax: '''''Float''''', fuel units per second<br />
{{Table3610|<br />
====$Trails:====<br />
*Allows afterburner trails to be used<br />
=====+Bitmap:=====<br />
*Texture used to draw the afterburner trail<br />
*Syntax: '''''String''''', filename<br />
=====+Width:=====<br />
*Width of afterburner trail at the beginning of it (ie. the thruster end)<br />
*Syntax: '''''Float''''', meters<br />
=====+Alpha:=====<br />
*Transparancy of the trail, value from 1 (non-transparent) to 0 (totally transparent)<br />
*Syntax: '''''Float'''''<br />
=====+Life:=====<br />
*How long the trail will last<br />
*Syntax: '''''Float''''', seconds}}<br />
{{Table3611|<br />
=====+Faded Out Sections:=====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Countermeasure Type:===<br />
{{Table3610|<br />
*Defines the weapon used as a countermeasure. Weapon does not have to be included in the countermeasure section of the weapons.tbl, but it has to have "countermeasure" flag in that case.<br />
*Syntax: '''''String''''', name of the weapon as defined in [[weapons.tbl]]}}<br />
<br />
<br />
===$Countermeasures:===<br />
*Number of countermeasures that can be loaded to the ship<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Scan Time:===<br />
*Time it takes to scan the ship<br />
*Syntax: '''''Integer''''', milliseconds<br />
<br />
<br />
===$EngineSnd:===<br />
*Engine sound used for the ship with number referring to sounds.tbl<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
===$GlideStartSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when entering glide mode, instead of the default throttle down sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$GlideEndSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when exiting glide mode, instead of the default throttle up sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CockpitEngineSnd===<br />
{{Table3613|<br />
*Optional sound to be used for looping engine sound heard in the cockpit.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$FullThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to full power.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ZeroThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to zero power<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleUpSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when increasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleDownSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when decreasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the looping sound heard when the afterburner is active<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerEngageSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the sound heard when the afterburner is engaged<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the activation of the afterburner failed<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileTrackingSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player tries to acquire a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player has acquired a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his primary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his secondary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$TargetAcquiredSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player acquires a new target<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the primary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the secondary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is locked onto the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileEvadedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a missile has been evaded<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CargoScanningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the cargo of an object is being scanned<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$Closeup_Pos:===<br />
*How the model will show at techroom. The position of the camera relative to the model in the tech room and the target box view<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively<br />
<br />
<br />
===$Closeup_Zoom:===<br />
*How the model will show at techroom. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians<br />
<br />
<br />
===$Topdown Offset:===<br />
{{Table3610|<br />
*Specifies how high the camera is above the center point of a ship in topdown camera views, or 2D missions.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shield_Icon:===<br />
*This .ani file must be at data/hud and included to the hud.tbl.<br />
{{Table3610|<br />
*Reference to the hud.tbl is no longer needed.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Icon:===<br />
*The icon used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Anim:===<br />
*The glowing green grid animation used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Ship_Overhead:===<br />
*The overhead view used in the weapons loadout.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Score:===<br />
*Points awarded for destroying the ship<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===Customized Thruster Effects===<br />
{{Table3611|<br />
*Defines the texture of the modeled thruster effect cone<br />
*'''$Thruster Normal Flame:'''<br />
**Syntax: '''''String''''', filename<br />
*Defines the texture of the modeled thruster effect cone with afterburners lit<br />
*'''$Thruster Afterburner Flame:'''<br />
**Syntax: '''''String''''', filename}}<br />
{{Table3610|<br />
*'''Defines the primary thruster glow - the one visible only from behind'''<br />
**'''$Thruster Bitmap 1:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Normal:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 1a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Afterburner:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster01 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
*'''Defines the secondary glow type-effect for thrusters - the feathery trail like haze behind the main glow'''<br />
**'''$Thruster Bitmap 2:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Sec_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 2a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Sec_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster02 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster02 Length factor:'''<br />
***Defines the length multiplier for the trail type (secondary) glowpoint thrusters<br />
***Replaces the older '''$Thruster01 Length factor:'''<br />
***Syntax: '''''Float'''''<br />
*'''Defines the tertiary glow type-effect for thrusters - the one visible from all directions'''<br />
**NOTE: The rotation of this effect is jittered, which can look quite bad with certain types of effects.<br />
**'''$Thruster Bitmap 3:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Ter_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 3a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Ter_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster03 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''}}<br />
{{Table3613|<br />
*'''Defines the distortion effect for thrusters'''<br />
**'''$Thruster Bitmap Distortion:'''<br />
***Defines name of normal thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap Distortion a:'''<br />
***Defines name of afterburner thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Distortion Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion Length factor:'''<br />
***Defines the length multiplier for the thruster distortion<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion:'''<br />
***Defines whether the distortion effect is rendered for this ship.<br />
***Syntax: '''''Bool'''''}}<br />
<br />
===$Thruster Particles:===<br />
{{Table3610|<br />
*Defines the alternative particle thruster<br />
*'''$Thruster Particle Bitmap:''' OR '''$Afterburner Particle Bitmap:'''<br />
**Name of the animation used for particle thrusters, up to '''three''' can be defined for both '''standard''' thrusters and '''afterburners''' (6 in total). Afterburner particles require at least 1 existing particle thruster entry.<br />
**Syntax: '''''String''''', filename<br />
*'''$Min Radius:'''<br />
**Defines the minimum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Max Radius:'''<br />
**Defines the maximum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Min Created:'''<br />
**Defines the minimum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Max Created:'''<br />
**Defines the maximum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Variance:'''<br />
**Value that describes the randomness of particle generation, values close to 0 will cause particles to spew very close to the thrusters normal while values close 1 will cause some particles to be spewed even to opposite direction<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Stealth:===<br />
*Defines: Ship behaves as a stealth-ship: non-targettable, and not on radar.<br />
{{Table3610|<br />
This field is [[deprecated]], and mods using 3.6.8 and above should use the "stealth" flag.}}<br />
<br />
<br />
===$Max Decals:===<br />
{{Table3610|<br />
*Defines: Maximum number of weapon decals on a ship<br />
*Syntax: '''''Integer''''', maximum number of decals on ship<br />
**Default: 50 for anything below cruiser size, 100 for anything below superdestroyer/installation size, 300 for anything above destroyer size, 10 for everything else.}}<br />
{{Table3613|<br />
*Feature disabled. Parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Trail:===<br />
*These are the origins of the white contrails that appear in the nebula missions. Ship may have multiple trails.<br />
{{Table3611|<br />
*'''+ClearAll'''<br />
**Clears all existing trail data from the ship}}<br />
====+Offset:====<br />
*The position of the contrail's head<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively, relative to the center point of the model<br />
====+Start Width:====<br />
*The width of the contrail's head<br />
*Syntax: '''''Float''''', meters<br />
====+End Width:====<br />
*The width of the contrail's tail<br />
*Syntax: '''''Float''''', meters<br />
====+Start Alpha:====<br />
*The opacity of the contrail's head<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+End Alpha:====<br />
*The opacity of the contrail's tail<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+Max Life:====<br />
*How long the contrail remains<br />
*Syntax: '''''Float'''''', seconds<br />
====+Spew Time:====<br />
*Syntax: '''''Integer'''''<br />
====+Bitmap:====<br />
*The image to use for the contrail.<br />
*Syntax: '''''String''''', filename<br />
{{Table3611|<br />
====+Faded Out Sections:====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.}}<br />
<br />
<br />
===$Thruster:===<br />
{{Table3610|<br />
*Defines maneuvering thrusters. Ship may have multiple $Thrusters defined.<br />
*'''+Index:'''<br />
**Defines the index number of the manoeuvring thruster defined in this entry<br />
**Syntax: '''''Integer'''''<br />
*'''+Used For:'''<br />
**Defines the maneuver that triggers the maneuvering thruster<br />
**List of maneuvers: Bank right, Bank left, Pitch up, Pitch down, Roll right, Roll left, Slide right, Slide left, Slide up, Slide down, Forward, Reverse<br />
**Syntax: '''''String, String'''''<br />
*'''+Position:'''<br />
**Defines thruster location<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), position from the ships center point, x, y, z axis respectively<br />
*'''+Normal:'''<br />
**Defines the direction where the thruster points to<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), direction of the thrusters normal, x, y, z axis respectively<br />
*'''+Texture:'''<br />
**Defines the graphic that will be used for trail, rendered like beams<br />
**Syntax: '''''String''''', filename<br />
*'''+Radius:'''<br />
**Defines the radius of cylinder<br />
**Syntax: '''''Float''''', meters<br />
*'''+Length:'''<br />
**Defines the length of thruster trail<br />
**Syntax: '''''Float''''', meters<br />
*'''+StartSnd:'''<br />
**Defines the sound played when the thruster is started<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+LoopSnd:'''<br />
**Defines the sound played when the thruster is continuously used<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+StopSnd:'''<br />
**Defines the sound played when the thruster is shutting down<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$Radar Image 2D:===<br />
{{Table3611|<br />
*Defines the bitmap used to represent the ship on the radar screen.<br />
*Syntax: '''''Filename'''''<br />
*'''$Radar Image Size:'''<br />
**Defines the size of the bitmap on the radar screen (length of the longer dimension)<br />
**Syntax: '''''Integer'''''<br />
*'''$3D Radar Blip Size Multiplier:'''<br />
**Defines the multiplier used for blip size on the 3D radar.<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Ship IFF Colors:===<br />
{{Table3611|<br />
*Defines the alternate color for the ship. Affects both the targeting brackets as well as the radar screen.<br />
*'''+Seen By:'''<br />
**Defines the IFF actually viewing the object (most often 'Friendly')<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+When IFF Is:'''<br />
**Defines the IFF which the ship has to have for its color to be altered.<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+As Color:'''<br />
**Defines the new color of the ship's targeting brackets and radar blip<br />
**Syntax: '''''Integer list''''', red, blue and green respectively}}<br />
<br />
<br />
===$Target Priority Groups:===<br />
{{Table3611|<br />
*Defines into which target priority groups the ship belongs to<br />
*Syntax: '''''String list''''', names of the targeting groups<br />
*'''+Override'''<br />
**Overrides the ships existing groupings}}<br />
<br />
<br />
===$EMP Resistance Modifier:===<br />
{{Table3611|<br />
*Defines the ships EMP resistance modifier:<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Damage Draw Limit:===<br />
{{Table3611|<br />
*Defines the maximum percentage of hitpoints ship has before piercing effects are enabled<br />
*Syntax: '''''Float'''''<br />
**Example: '''10''', sets the limit to 10%}}<br />
<br />
===$Path Metadata:===<br />
{{Table3613|<br />
*Allows definition of extra metadata<br />
*Syntax: '''''String''''', name of the path as defined in the ship POF file.<br />
**Example: '''$Path Metadata: $Bay01'''<br />
====+departure rvec:====<br />
When using this path to depart via fighterbay, the departing ship will rotate to align itself with this rvec (so the right side of the ship is pointing in this direction). Only affects paths used to depart via fighterbay.<br />
}}<br />
<br />
===[[Subsystem]]<nowiki>:</nowiki>===<br />
:''Main article: [[Subsystem]]''<br />
<br />
==Ships.tbl flags==<br />
<br />
<br />
==="no_collide"===<br />
*Defines ship as non-collideable, ie. everything will go through it<br />
<br />
<br />
==="player_ship"===<br />
*Makes it possible for the player to fly the ship<br />
<br />
==="default_player_ship"===<br />
*Makes this ship as a default part of the loadout options in FRED<br />
<br />
<br />
----<br />
<br />
===Ship Type===<br />
*Flags in this section are used to define the type of the ship<br />
*Use only one '''ship type''' flag per table entry<br />
{{Table3610|<br />
*New ship types can be defined in [[objecttypes.tbl]]}}<br />
<br />
<br />
===="repair_rearm"====<br />
*Alternate name for "support"<br />
<br />
<br />
===="support"====<br />
*Defines the ship as repair and rearm vessel and sets AI behaviour accordingly<br />
*Only one such vessel can be defined per species<br />
<br />
<br />
===="cargo"====<br />
*Defines ship as a cargo crate and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="fighter"====<br />
*Defines ship as a fighter and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="bomber"====<br />
*Defines ship as a bomber and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="transport"====<br />
*Defines ship as a transport and also sets the AI behaviour<br />
<br />
<br />
===="freighter"====<br />
*Defines ship as a freighter and also sets the AI behaviour<br />
<br />
<br />
===="capital"====<br />
*Defines ship as a capital ship and also sets the AI behaviour<br />
<br />
<br />
===="supercap"====<br />
*Alternate name for "super cap"<br />
<br />
<br />
===="super cap"====<br />
*Defines ship as a super capital ship and also sets the AI behaviour<br />
<br />
<br />
===="drydock"====<br />
*Defines ship as a drydock and also sets the AI behaviour<br />
<br />
<br />
===="cruiser"====<br />
*Defines ship as a cruiser and also sets the AI behaviour<br />
<br />
<br />
===="navbuoy"====<br />
*Defines ship as a navbuoy and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="sentrygun"====<br />
*Alternate name for "sentry gun"<br />
<br />
<br />
===="sentry gun"====<br />
*Defines ship as a sentrygun and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="escapepod"====<br />
*Alternate name for "escape pod"<br />
<br />
<br />
===="escape pod"====<br />
*Defines ship as a escapepod and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="corvette"====<br />
*Defines ship as a corvette and also sets the AI behaviour<br />
<br />
<br />
===="gas miner"====<br />
*Defines ship as a gas miner and also sets the AI behaviour<br />
<br />
<br />
===="awacs"====<br />
*Defines ship as a AWACS and also sets the AI behaviour<br />
<br />
<br />
===="knossos"====<br />
*Alternate name for the "Knossos device"<br />
<br />
<br />
===="knossos device"====<br />
*Defines ship as a Knossos and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="stealth"====<br />
{{Table3610|<br />
*Defines ship as a stealth-ship: non-targettable, and not on radar.}}<br />
<br />
<br />
===="no type"====<br />
*Does ???<br />
<br />
----<br />
<br />
<br />
==="ship copy"===<br />
*Defines the ship as a copy of another model<br />
<br />
<br />
==="in tech database"===<br />
*Includes ships description to the tech database from the beginning of the campaign<br />
<br />
<br />
==="in tech database multi"===<br />
*Includes the ship to multiplayer tech database<br />
<br />
<br />
==="dont collide invisible"===<br />
*Defines invisible textures as non-collideable (For example, a hangar entrace)<br />
<br />
<br />
==="big damage"===<br />
*Limits the damage made to the ship by non-huge weapons.<br />
<br />
<br />
==="no_fred"===<br />
*Ship will not appear in FRED.<br />
<br />
<br />
==="ballistic primaries"===<br />
{{Table3610|<br />
*Enables the ship to use ballistic primaries<br />
*No longer needed, game handles it automatically}}<br />
<br />
<br />
==="flash"===<br />
{{Table3610|<br />
*Makes a flash when a ship dies}}<br />
<br />
<br />
==="surface shields"===<br />
{{Table3610|<br />
*Shots that impact the hull are applied to shields, regardless of if the ship has a shield mesh.}}<br />
<br />
<br />
==="show ship"===<br />
{{Table3610|<br />
*Enable rendering the ship even when the ship is a player ship<br />
*Will result in the player's ship model being rendered, when in cockpit mode}}<br />
<br />
<br />
==="generate icon"===<br />
{{Table3610|<br />
*Creates a HUD icon from the model itself}}<br />
<br />
<br />
==="gun convergence"===<br />
{{Table3610|<br />
*Enables ship to use the firing points' normals in defining the direction where the weapon fire}}<br />
<br />
<br />
==="no thruster geometry noise"===<br />
{{Table3611|<br />
*Prevents noise from being added to the thruster effects geometry}}<br />
<br />
==="intrinsic no shields"===<br />
{{Table3611|<br />
*Defines that ship has no shields by default, to allow mixing and matching shielded and unshielded craft in loadout}}<br />
<br />
==="no primary linking"===<br />
{{Table3611|<br />
*Bypasses linked primaries while cycling. Does not block SEXPs/scripts that might be able to lock them, only the act of cycling for players and determing whether to link or not for AI.}}<br />
<br />
==="no pain flash"===<br />
{{Table3613|<br />
*Prevents pain flash from being shown when ship is hit}}<br />
<br />
==="dynamic primary linking"===<br />
{{Table37|<br />
*Allows this ship use the primary firepoint cycling code. With a key bind added in 3.6.13, you can toggle between various factorizations of primary firepoint groupings on a per-primary bank basis. So a 4-firepoint bank could cycle through all four firepoints firing together (1x4), each firepoint firing individually (4x1, all 4 firing over the timespan of the bank cooldown, so no change in damage over time, or DPS, occurs from retail behavior), or firing in pairs (2x2).}}<br />
<br />
==="no ets"===<br />
{{Table37|<br />
Sets ship class to have no ETS}}<br />
<br />
==="no lighting"===<br />
{{Table3613|<br />
Ship will not receive lighting calculations}}<br />
<br />
==Player Ship Precedence==<br />
*Syntax: ( '''''"String" "String"''''')<br />
===Example===<br />
<br />
<pre><br />
$Player Ship Precedence: (<br />
"GTF Ulysses"<br />
"GTF Hercules"<br />
"GTB Medusa"<br />
"GTB Ursa" )<br />
</pre><br />
<br />
<br />
==Sample==<br />
<br />
<pre><br />
#Default Player Ship<br />
<br />
$Name: GTF Ulysses<br />
<br />
#End<br />
<br />
<br />
#Engine Wash Info<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
#End<br />
<br />
<br />
#Ship Classes<br />
$Name: GTF Ulysses<br />
$Short name: TFight<br />
$Species: Terran<br />
+Type: XSTR("Space Superiority", -1)<br />
+Maneuverability: XSTR("Excellent", -1)<br />
+Armor: XSTR("Light", -1<br />
+Manufacturer: XSTR("Triton / Mekhu", -1)<br />
+Description: XSTR( " ", -1)<br />
$end_multi_text<br />
+Tech Description: XSTR("Descriptive text", -1)<br />
$end_multi_text<br />
+Length: 16 m<br />
+Gun Mounts: 4<br />
+Missile Banks: 1<br />
$POF File: fighter01.pof<br />
$Detail Distance: (0, 80, 300, 900)<br />
$ND: 42 42 244<br />
$Show Damage: YES<br />
$Density: 1<br />
$Damp: 0.1<br />
$Rotdamp: 0.35<br />
$Max Velocity: 0.0, 0.0, 70.0<br />
$Rotation Time: 3.0, 2.6, 5.0<br />
$Rear Velocity: 0.0<br />
$Forward Accel: 2.0<br />
$Forward Decel: 1.5<br />
$Slide Accel: 0.0<br />
$Slide Decel: 0.0<br />
$Expl Inner Rad: 25.0<br />
$Expl Outer Rad: 55.0<br />
$Expl Damage: 15.0<br />
$Expl Blast: 1000.0<br />
$Expl Propagates: NO<br />
$Shockwave Speed: 0.0<br />
$Allowed PBanks: ( "Subach HL-7" "Prometheus R")<br />
$Allowed Dogfight PBanks: ( "Subach HL-D" "Prometheus D" )<br />
$Default PBanks: ( "Subach HL-7" "Prometheus R" )<br />
$Allowed SBanks: ( "Rockeye" "Tempest" )<br />
$Allowed Dogfight SBanks: ( "Tempest D" "Hornet D" )<br />
$Default SBanks: ( "Harpoon" )<br />
$SBank Capacity: ( 40 )<br />
$Shields: 380<br />
$Shield Color: 100 100 255<br />
$Power Output: 2.0<br />
$Max Oclk Speed: 94.0<br />
$Max Weapon Eng: 80.0<br />
$Hitpoints: 180<br />
$Flags: ( "player_ship"<br />
"default_player_ship"<br />
"fighter"<br />
"in tech database")<br />
$AI Class: Captain<br />
$Afterburner: YES<br />
+Aburn Max Vel: 0.0, 0.0, 150.0<br />
+Aburn For accel: 0.7<br />
+Aburn Fuel: 300.0<br />
+Aburn Burn Rate: 50.0<br />
+Aburn Rec Rate: 25.0<br />
$Countermeasures: 25<br />
$Scan Time: 2000<br />
$EngineSnd: 128<br />
$Closeup_Pos: 0.0, 0.0, -22<br />
$Closeup_Zoom: 0.5<br />
$Shield_Icon: shield-f01<br />
$Ship_Icon: iconfighter01<br />
$Ship_Anim: ssfighter01<br />
$Ship_Overhead: loadfighter01<br />
$Score: 8<br />
$Trail:<br />
+Offset: -7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Trail:<br />
+Offset: 7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Subsystem: communication, 10, 0<br />
$Subsystem: navigation, 10, 0<br />
$Subsystem: weapons, 20, 0<br />
$Subsystem: sensors, 10, 0<br />
$Subsystem: engines, 35, 0<br />
<br />
#End<br />
<br />
$Player Ship Precedence: (<br />
"GTF Ulysses")<br />
</pre><br />
<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Ships.tbl&diff=38023
Ships.tbl
2012-03-19T04:21:57Z
<p>Cyborg17: /* $Rotation Time: */</p>
<hr />
<div>{{TableVersion|7923}}<br />
<br />
<!-- I'll leave these here - commented away - until we can be sure they are not needed<br />
Links to archived versions:<br />
*[[Ships.tbl/CVS_version|CVS version of ships.tbl]]<br />
*[[Ships.tbl/Retail_version|Retail version of ships.tbl]]<br />
--><br />
==General Format==<br />
*Ship.tbl is formed of several different sections.<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>End before the next section.<br />
**<nowiki>#</nowiki>'''Default Player Ship'''<br />
***Defines the default player ship in the game and also in the FRED. If in a mission appears a ship that has not been properly included to tables then game replaces the ship with the Default Player Ship.<br />
**<nowiki>#</nowiki>'''Engine Wash Info'''<br />
***Includes all the definitions of all engine washes used in the game.<br />
{{Table3610|<br />
:*<nowiki>#</nowiki>'''Ship Templates'''<br />
:**Includes entries for ship templates}}<br />
<br />
:*<nowiki>#</nowiki>'''Ship Classes'''<br />
:**Includes entries for every ship and also defines their attributes that are used in the game<br />
:**Is discussed in detail at [[Ships.tbl#Table_Options|Table Options]] section.<br />
:*'''$Player Ship Precedence'''<br />
:**Player Ship Precedence is used in ship selection when a ship specified by the mission designer is not available to the player. The next ship on the list is used in its place (assuming that ship is allowed for the player)<br />
<br />
==Default Player Ship==<br />
*Defines the default ship in the game.<br />
*Syntax: ''Name'', name of ship model as defined in [[Ships.tbl#Table_Options|Table Options]].<br />
<br />
<br />
==Engine Wash==<br />
*Defines the engines washes<br />
*First entry must be named 'default'<br />
<br />
<br />
===$Name:===<br />
*Defines the name of the engine wash.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===$Angle:===<br />
*Defines the angle from the engine where the engine wash exists<br />
*Syntax: '''''Float''''', degrees<br />
<br />
<br />
===$Radius Mult:===<br />
*Defines engine wash multiplier<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Length:===<br />
*Defines the length of the engine wash<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Intensity:===<br />
*Defines the strength of the engine wash<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
'''Example'''<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
<br />
==Ship Template Options==<br />
{{Table3610|<br />
*Example of template usage [[Ship_Templates]] in which both [[GTB Artemis]] variants have been defined using a single template}}<br />
<br />
<br />
===$Template:===<br />
{{Table3610|<br />
*Defines the name of template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Another template can be used as template for the current template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
==Ships Table Options==<br />
<br />
<br />
===$Name:===<br />
*Model name that is used also in game. It is also used as name for the whole ship entry.<br>There are two special characters can be used in the name: '''#''' and '''@'''<br />
**'''#'''. It's used in the middle of the name. It makes the right part of the name not being shown in the ship class info of the target window, (or beside the target brackets in FS_Open builds). It allows making different versions of a base ship while showing the same class name inside the game.<br>An example from FSPort FreeSpace 1: The '''SF Dragon#weakened''' ship, used in [[Enter the Dragon]], appears to the player just as any other '''SF Dragon'''.<br />
**'''@'''. It's used before the proper ship name. It is fully ignored by the game. Moreover, '''@WhateverShip''' and '''WhateverShip''' are exactly the same name and therefore they both appear as '''WhateverShip''' inside the game. It just allows the user marking ships in the table because of any modding reason.<br>In the retail FS2 ships there are several ships starting by '''@'''.<br />
*Syntax: '''''String''''', name<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Sets the table entry to use template based on an existing table entry instead of creating totally new one<br />
*Syntax: '''''String''''', name of the template}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3613|<br />
*Alternative $Name: for the ship.<br />
*Syntax: '''''String''''', Alternate $Name:}}<br />
<br />
<br />
===$Short name:===<br />
*Shortened model name, for FRED, Usually more descriptive than the real name.<br />
*Syntax: '''''String''''''<br />
<br />
<br />
===$Species:===<br />
*Defines species (Terran, Vasudan or Shivan). Determines many things, including the color of the engine glow, the flyby sound effects, the briefing icon and the support ship.<br />
{{Table3610|<br />
*More species have been enabled, and all of these have to be defined in [[species_defs.tbl]].}}<br />
<br />
*Syntax: '''''String''''', name of the species<br />
**Example: ''Terran''<br />
<br />
<br />
===Technical Description===<br />
List of descriptive terms for techroom and ship selection screens. Number after the quotes refers to [[tstrings.tbl]]<br />
<br />
====+Type:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Maneuverability:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Armor:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Manufacturer:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Tech Title:====<br />
{{Table3613|<br />
*Defines name of the ship as displayed in the tech room<br />
*Syntax: '''''String'''''}}<br />
<br />
====+Tech Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Length:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Gun Mounts:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Missile Banks:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: String, either "FS1", or "Off". This defaults to the FS2 effect.}}<br />
<br />
===$Cockpit POF file:===<br />
{{Table3610|*Filename of the cockpit model file<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
===+Cockpit Offset:===<br />
{{Table3610|*Defines the offset of the cockpit model<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$POF File:===<br />
*Filename of the model file (.pof) at data/models folder<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$Texture Replace:===<br />
{{Table3610|<br />
*'''+old:'''<br />
*Defines the texture to be replaced<br />
**Syntax: '''''String''''', filename<br />
*'''+new:'''<br />
*Defines the new texture<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$POF Target File:===<br />
*Optional hud targeting model<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$POF Target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of target model used in the HUD targetbox<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Detail Distance:===<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''<br />
<br />
<br />
===$ND:===<br />
*No Dim field field was used in FreeSpace for ship lights. Use of glowmaps is preferred to the $ND entry. Only noticeable in Glide or Software mode.<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''42, 42, 224''<br />
<br />
<br />
===$Show Damage:===<br />
*No function at all. The engine will read values, but discard them. In 3.6.10 or later, this can be left out without adverse consequences.<br />
*Syntax: '''''Boolean''''', yes or no, usually yes<br />
<br />
<br />
===$Damage Lightning Type:===<br />
{{Table3613|<br />
*Changes the damage lightning effect shown on highly damaged ships. <br />
*Can be defined as:<br />
**''None''<br />
**''Default''}}<br />
<br />
<br />
===$Impact:===<br />
{{Table3610|<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the collision<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Impact Spew:===<br />
{{Table3610|<br />
*Used to define the impact particle spew<br />
*Note: You CANNOT define a different type of particle spew here; the only option possible is listed below<br />
*'''+Max particles:'''<br />
**Defines the maximum number of particles spewed<br />
**Setting to zero causes model to generate no particles at all<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 30}}{{Table3613|<br />
*'''+Min particles:'''<br />
**Defines the minimum number of particles spewed<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 25<br />
*'''+Max Radius:'''<br />
**Defines the maximum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.5f<br />
*'''+Min Radius:'''<br />
**Defines the minimum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.2f<br />
*'''+Max Lifetime:'''<br />
**Defines the maximum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.55f<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.05f<br />
*'''+Max Velocity:'''<br />
**Defines the maximum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 12.0f<br />
*'''+Min Velocity:'''<br />
**Defines the minimum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 2.0f<br />
*'''+Normal Variance:'''<br />
**Defines the variance of particle direction from the normal<br />
**Syntax: '''''Float'''''<br />
**Default Value: 1.0f}}<br />
<br />
<br />
===$Damage Spew:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the 'smoke' released on weapon impact point<br />
*Certain default values (marked with '''X''') gain a specific multiplier based on ship radius<br />
::If the radius is less than 20 the multiplier is 1<br />
::If the radius is larger than 40 the multipler is 1.2<br />
::Otherwise it is between 1 and 1.2<br />
{{Table3610|<br />
*'''+Max Particles:'''<br />
**Default Value: 50 * '''X'''}}{{Table3613|<br />
*'''+Min Particles:'''<br />
**Default Value: 20 * '''X'''<br />
*'''+Max Radius:'''<br />
**Default Value: 1.3 <br />
*'''+Min Radius:'''<br />
**Default Value: 0.7<br />
*'''+Max Lifetime:'''<br />
**Default Value: 1.5 * '''X'''<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.7 * '''X'''<br />
*'''+Max Velocity:'''<br />
**Default Value: 12.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 3.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 0.2 * '''X'''}}<br />
<br />
<br />
===$Collision Physics:===<br />
{{Table3613|<br />
*Parameters affecting collision physics, including landings.<br />
*"Landing" means the ship will not take damage or shake when it touches down. Instead, the ship will reorient towards a neutral resting orientation. "Reorient" thresholds below mean that the ship will still take damage (counts as a crash) but will move towards the correct landing orientation. <br />
<br />
====+Bounce:====<br />
When this ship collides with a large ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Both Small Bounce:====<br />
When this ship collides with a small ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Friction:====<br />
During collisions, how much friction to apply (slowing lateral movement). Default is 0.0.<br />
====+Rotation Factor:====<br />
Affects the rotational energy of collisions. Default is 0.2.<br />
====+Landing Max Forward Vel:====<br />
Maximum velocity for which landing physics are used. <br />
====+Landing Min Forward Vel:====<br />
Minimum velocity for which landing physics are used. <br />
====+Landing Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still be considered a landing. <br />
====+Landing Max Horizontal Vel:====<br />
Maximum sideways velocity the ship can land at.<br />
====+Landing Max Angle:====<br />
Maximum angle of attack the ship can land at (in degrees).<br />
====+Landing Min Angle:====<br />
Minimum angle of attack the ship can land at (in degrees).<br />
====+Landing Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to count as a landing. <br />
====+Reorient Max Forward Vel:====<br />
Maximum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Min Forward Vel:====<br />
Minimum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still reorient. <br />
====+Reorient Max Horizontal Vel:====<br />
Maximum sideways velocity for reorienting.<br />
====+Reorient Max Angle:====<br />
Maximum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Min Angle:====<br />
Minimum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to be reoriented on impact.<br />
====+Reorient Speed Mult:====<br />
How quickly the reorientation takes place (when applicable)<br />
====+Landing Rest Angle:====<br />
Angle of the ship's nose relative to the plane of the landing surface when the ship is at rest. Reorient will move the ship towards this angle. <br />
====+Landing Sound:====<br />
Sound to play when landing (if it's not a landing, normal collision sound is used).<br />
}}<br />
<br />
<br />
===$Debris:===<br />
{{Table3610|<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of the debris (Default value is a random number)<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Max Lifetime:<br />
**Defines the maximum lifetime of the debris<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Min Speed:<br />
**Defines the minimum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Max Speed:<br />
**Defines the maximum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Min Rotation speed:<br />
**Defines the minimum rotational speed of the debris (Default is (6 to 10)/Ship-radius)<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Max Rotation speed:<br />
**Defines the maximum rotational speed of the debris<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the debris<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
{{Table3611|<br />
*'''+Min Hitpoints:'''<br />
**Defines the minimum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Max Hitpoints:'''<br />
**Defines the maximum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Damage Multiplier:'''<br />
**Defines the collision damage multiplier for collisions against the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Lightning Arc Percent:'''<br />
**Controls what percent of debris pieces will have the damage lightning effect applied to them.<br />
**Defaults to 50%.<br />
**Syntax: '''''Float,''' 0-100}}<br />
<br />
<br />
===$Density:===<br />
*This defines how hard you hit something. If you set it very high, a collision will the lower density ship and not yours; the higher the numbers are, the harder they will hit and the farther they will be pushed. However, this doesn't apply to asteroids. When a high density fighter collides with an asteroid, the high-density fighter will receive damage, but it will also destroy the asteroid. Setting a density of 1000 on a fighter with 180 hitpoints will cause the fighter to immediately explode if it collides with, say, an asteroid. A low-density fighter will not have any effect on an asteroid, but if the fighter destroys the asteroid, the fighter will fly far away.<br />
*Syntax: '''''Float''''', usually 1<br />
<br />
<br />
===$Damp:===<br />
*Damp affects how quickly you will accel/decel to your target velocity. Higher damp means slow acceleration and deceleration. The lower this number, the faster the ship responds. For example, specifying a value of 0.0 means there is no damping, in other words, people would say, "this has no physics, like Wing Commander." The more damping, the harder to control, but the more smoothly it moves.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Rotdamp:===<br />
*Same thing, but for rotational movement.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Banking Constant:===<br />
{{Table3610|<br />
*Defines a factor for how much roll is added during a yaw. Set as 1 for full roll and 0 is no roll. Default is 0.5.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Max Velocity:===<br />
*Defines maximum velocities with standard energy settings on x (left/right), y (up/down), and z (forward) -axis (respectively). z -axis velocity defines the maximum forward velocity.<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
**Example: ''0.0, 0.0, 80.0''<br />
<br />
<br />
===$Rotation Time:===<br />
*Defines rotation times around the x, y, and z-axis. Number is seconds it takes to complete rotate a ship (360 degrees) around the given axis. X-axis is "pitch," y-axis is "yaw," and z-axis is "roll."<br />
*Syntax: '''''Vector''''', three '''floats''', seconds per 360 degree turn around x-axis, y-axis, z-axis, respectively<br />
**Example: ''3.0, 2.6, 5.0''<br />
<br />
**Note: Setting to Zero will cause the model to disappear in mission.<br />
<br />
===$Rear Velocity:===<br />
*Defines rear velocity<br />
*Syntax: '''''Float''''', meters per second<br />
**Note: This value must be set for [[Ships.tbl#.2BAburn_Max_Reverse_Vel:|+Aburn_Max_Reverse_Vel:]] to work<br />
<br />
<br />
===$Forward Accel:===<br />
*Number of seconds needed from full stop to maximum velocity<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Forward Decel:===<br />
*Number of seconds needed from maximum velocity to full stop<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Accel:===<br />
*Same for sliding as the $Forward accel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Decel:===<br />
*Same for sliding as the $Forward decel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Glide:===<br />
{{Table3610|<br />
*Allows gliding in game, i.e. turning the ship's facing without changing its direction.<br />
*Syntax: '''''Boolean''''', yes or no}}<br />
<br />
<br />
====+Dynamic Glide Cap:====<br />
{{Table3611|<br />
*If set, game uses dynamic glide cap. The dynamic glide cap means that the maximum glide speed will follow the same rules as normal flight, including the effects of afterburner and power to engines. If set to YES, the value in +Max Glide Speed is ignored.<br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
====+Max Glide Speed:====<br />
{{Table3610|<br />
*Defines the maximum glide speed if glide has been enabled. If 0, this is set to the fastest speed the ship can go. If negative, there is no glide cap (allowing practically infinite maximum gliding speed). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
====+Glide Accel Mult:====<br />
{{Table3611|<br />
*Defines the acceleration multiplier for the gliding mode. If > 0, sets a fixed acceleration rate in glide mode depending on value. If set to 0, impossible to accelerate while in glide mode. If negative, enables glide speed ramping (acceleration in glide mode ramps in the same way as in normal flight). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
{{Table3610|<br />
*Entry exists as a dummy entry which doesnt do anything to prevent compatibility issues}}<br />
<br />
<br />
===$Use Newtonian Dampening:===<br />
{{Table3611|<br />
*If set, forces the ship to use (or not use) newtonian dampening. Basically, allows overriding the AI Profiles flag on a per-ship basis. <br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
===$Autoaim FOV:===<br />
{{Table3610|<br />
*Defines the field of view for autoaim<br />
*Syntax: '''''Integer'''''}}<br />
<br />
====+Converging Autoaim====<br />
{{Table3611|<br />
*Defines that the autoaim uses convergence}}<br />
<br />
====+Minimum Distance:====<br />
{{Table3611|<br />
*Defines the minimum distance for the convergence}}<br />
<br />
<br />
===$Convergence:===<br />
{{Table3611|<br />
*Defines the weapons use convergence}}<br />
<br />
====+Automatic====<br />
{{Table3611|<br />
*Defines that the ship uses automatic convergence - converging distance calculated from estimated hit position (lead) of the current target.<br />
*'''+Minimum Distance:'''<br />
**Defines the minimum distance for the convergence. Overrides the setting for $Autoaim FOV's minimum distance.}}<br />
<br />
====+Standard====<br />
{{Table3611|<br />
*Defines that ship uses fixed convergence.<br />
*'''+Distance:'''<br />
**Defines the converging distance from the ship}}<br />
<br />
====+Offset:====<br />
{{Table3611|<br />
*Defines the offset from the ship centerpoint for the convergence<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$Warpin Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpin effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpin Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps in for '''default''' warpin effect<br />
*Sets the time that the ships warp in (not the animation itself) takes for '''BTRL''' type warpin effects<br />
*Syntax: '''''Float''''', meters per second or miiliseconds}}<br />
<br />
<br />
===$Warpin Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpin Decel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the deceleration curve at the end of the warpin. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual deceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpin Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpin Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpin effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpout effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpout Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Engage Time:===<br />
{{Table3615|<br />
*Defines the delay the it takes for the warp drive of the ship to engage, during which the player may still abort the warpout. Affects both the player as well as AI ships. If not defined, defaults to 3 seconds for the player and none for the AI.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps out for '''default''' warpout effect<br />
*Sets the time that the ships warp out (not the animation itself) takes for '''BTRL''' type warpout effects}}<br />
{{Table3613|<br />
*Sets the minimum speed required for the ship to warp out for '''hyperspace''' type warpout effects}}<br />
{{Table3610|<br />
*Syntax: '''''Float''''', meters per second or milliseconds}}<br />
<br />
<br />
===$Warpout Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Accel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the acceleration curve at the start of the warpout. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual acceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpout Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpout Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpout effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Player Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the player warps out from the game<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Expl Inner Rad:===<br />
*Radius at which the full explosion damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Outer Rad:===<br />
*Maximum radius at which any damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Damage:===<br />
*Amount of damage done inside the inner radius<br />
*Syntax: '''''Float''''', damage<br />
<br />
<br />
===$Expl Blast:===<br />
*The intensity of the blast effect when you're within the outer radius<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Expl Propagates:===<br />
*This decides whether the ship explodes into debris immediately, or whether it has the many small explosions before breaking apart slowly<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
<br />
===$Propagating Expl Radius Multiplier:===<br />
{{Table3613|<br />
*This sets the multiplier for the ship splitting propagating explosions<br />
*Syntax: '''''Float''''', defaults to 1}}<br />
<br />
<br />
===$Expl Visual Rad:===<br />
{{Table3611|<br />
*This determines the visual size of the main fireball for an exploding ship. Does not affect ships with propagating explosions. <br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Base Death-Roll Time:===<br />
{{Table3613|<br />
*Defines the base death-roll time<br />
*Values is modified depending on conditions when the ship died<br />
*Syntax: '''''Integer''''', milliseconds<br />
**Default: 3000}}<br />
<br />
<br />
===$Death-Roll Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the radius of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death-Roll Explosion Intensity Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the amount of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier applied to the ship death explosions<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Count:===<br />
{{Table3613|<br />
*Defines the number of explosion effect game uses when a large ship dies<br />
*Syntax: '''''Integer'''''<br />
**Default: 6}}<br />
<br />
<br />
===$Ship Splitting Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on every explosion event which happens when ship is splitting apart<br />
*The old 'popcorn' effect<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 80<br />
*'''+Min Particles:'''<br />
**Default Value: 40<br />
*'''+Max Radius:'''<br />
**Default Value: Ship radius * 0.015<br />
*'''+Min Radius:'''<br />
**Default Value: Ship radius * 0.005<br />
*'''+Max Lifetime:'''<br />
**Default Value: 6.0 * (1 + 0.002 * Ship radius)<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5 * (1 + 0.002 * Ship radius) <br />
*'''+Max Velocity:'''<br />
**Default Value: Speed of the propagating explosion<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Ship Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on the moment 'non-knossos' type object dies<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 100<br />
*'''+Min Particles:'''<br />
**Default Value: 50<br />
*'''+Max Radius:'''<br />
**Default Value: 1.5<br />
*'''+Min Radius:'''<br />
**Default Value: 0.1<br />
*'''+Max Lifetime:'''<br />
**Default Value: 4.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5<br />
*'''+Max Velocity:'''<br />
**Default Value: 20.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Alternate Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released when 'knossos' type object is dying<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 30<br />
*'''+Min Particles:'''<br />
**Default Value: 15<br />
*'''+Max Radius:'''<br />
**Default Value: 100.0<br />
*'''+Min Radius:'''<br />
**Default Value: 30.0<br />
*'''+Max Lifetime:'''<br />
**Default Value: 12.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 2.0<br />
*'''+Max Velocity:'''<br />
**Default Value: 350.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 50.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Vaporize Percent Chance:===<br />
{{Table3611|<br />
*Allows ships to sometimes explode instantly (vaporize) instead of going through a death roll first. Overrides the same flag in [[objecttypes.tbl]]. <br />
*Syntax: '''''Float''''', percent chance of vaporization}}<br />
<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the ship explosions<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at, 0 means no shockwave<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave Count:===<br />
*Defines the number of shockwaves to spawned<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Shockwave Model:===<br />
{{Table3610|<br />
*Defines the textured model used as the ship's 3D shockwave<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave Name:===<br />
{{Table3610|<br />
*Defines the name of the animation to used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Explosion Animations:===<br />
{{Table3610|<br />
*Defines the explosion animations used for the ship<br />
*Syntax: '''''Integer list'''''}}<br />
<br />
<br />
===$Weapon Model Draw Distance:===<br />
{{Table3610|<br />
*Distance that external weapons are shown, ie. missiles and such.<br />
*Syntax: '''''Float''''', meters<br />
**Default: ''200''}}<br />
<br />
<br />
===Primary Weapons===<br />
====$Allowed PBanks:====<br />
*List of allowed primary weapons in brackets (weapon name marked with quotes).<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has its own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight PBanks:====<br />
*Primary weapons for multiplayer dogfights.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon dogfight banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default PBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$PBank Capacity:====<br />
{{Table3610|<br />
*Defines ammunition capacity of primary weapon banks. In brackets, different weapon banks separated by commas.<br />
*NOTE: In order for this to work, at least one of the primary weapons in the list of default primaries must be a ballistic weapon.<br />
*Syntax: '''''( Integer, Integer )'''''}}<br />
<br />
<br />
====$Show Primary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for primary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )''''', yes or no<br />
**Example: ''( YES YES )'' - Note the spaces on the insides of the brackets.}}<br />
<br />
<br />
===Secondary Weapons===<br />
====$Allowed SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon dogfight banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default SBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$SBank Capacity:====<br />
*Defines ammunition capacity of secondary weapon banks. In brackets, different weapon banks separated by commas.<br />
*Syntax: '''''( Integer, Integer )'''''<br />
<br />
<br />
====$Show Secondary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for secondary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )'''''<br />
**Example: ''(YES YES)''}}<br />
<br />
<br />
===$Shields:===<br />
*Determines the shield strength<br />
*Syntax: '''''Float''''', total shield strength<br />
<br />
<br />
===$Shield Color:===<br />
*RGB value for shield color<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''100, 100, 255''<br />
<br />
<br />
===$Power Output:===<br />
*The amount of energy available. The higher the output, the faster your weapons and shields recharge.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Shield Regeneration Rate:===<br />
{{Table3610|<br />
*Repair rates for shields at percent per second<br />
*Syntax: '''''Float''''', multiplier of total shield hitpoints recharged each second. ('''NOT A PERCENTAGE''', 0.02 equals 2% recharged per second)<br />
**Default: ''0.02''}}<br />
<br />
<br />
===$Support Shield Repair Rate:===<br />
{{Table3611|<br />
*Shield repair rate when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Regeneration Rate:===<br />
{{Table3610|<br />
*Regeneration rates for primary guns at percent per second<br />
*Syntax: '''''Float''''', multiplier of total gun energy recharged each second ('''NOT A PERCENTAGE''', 0.04 equals 4% recharged per second)<br />
**Default: ''0.04''}}<br />
<br />
<br />
===$Max Oclk Speed:===<br />
*Can also be '''$Max Overclock Speed:'''<br />
*Maximum velocity with all energy diverted to engines<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Max Weapon Eng:===<br />
*Can also be '''$Max Weapon Energy:'''<br />
*The maximum amount of energy you can store in your primary weapons bank.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Hitpoints:===<br />
*How much damage the ship can take<br />
*Syntax: '''''Float''''', hitpoints<br />
**Default: ''100''<br />
<br />
<br />
===$Hull Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for hull at percent per second<br />
*Syntax: '''''Float''''', multiplier of hitpoints repaired per second, '''NOT A PERCENTAGE''', 0.01 equals 1% recharged per second}}<br />
<br />
<br />
===$Support Hull Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for hull when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Subsystem Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for sybsystems percent per second<br />
*Syntax: ''Value'', multiplier of total subsystem hitpoints repaired per second, 0.01 equals 1% of total hitpoints recharged per second}}<br />
<br />
<br />
===$Support Subsystem Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for subsystems when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Armor Type===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines armor type used for the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shield Armor Type:===<br />
{{Table3611|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the armor type used for shield of the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Ships.tbl#Ships.tbl_flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the ship<br />
**Example: ( "fighter" "in tech database" )<br />
{{Table3610|<br />
*'''+noreplace'''<br />
**Can be used to force game to retain existing flags instead of reseting the ship flags before parsing in the new flags.}}<br />
<br />
<br />
===$AI Class:===<br />
*Default AI class<br />
*Syntax: '''''String''''', name of the AI class as defined in [[ai.tbl]]<br />
<br />
<br />
===$Afterburner:===<br />
*Defines if the ships has afterburner<br />
*Syntax: '''''Boolean''''', yes or no<br />
====+Aburn Max Vel:====<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
====+Aburn For accel:====<br />
*Defined only for the forward acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds<br />
{{Table3611|<br />
====+Aburn Max Reverse Vel:====<br />
*Defined only for the reverse acceleration, Set the top speed for Reverse Afterburner.<br />
*Syntax: '''''Float''''', seconds<br />
**NOTE: Requires [[Ships.tbl#.24Rear_Velocity:|$Rear Velocity:]] to be set in order to work.<br />
====+Aburn Rev accel:====<br />
*Defined only for the reverse acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds'''''}}<br />
====+Aburn Fuel:====<br />
*Amount of afterburner fuel the ship has<br />
*Syntax: '''''Float''''', fuel<br />
====+Aburn Burn Rate:====<br />
*Rate the fuel is consumed when afterburner is engaged (in units per seconds)<br />
*Syntax: '''''Float''''', fuel units per second<br />
====+Aburn Rec Rate:====<br />
*Rate the fuel is restored.<br />
*Syntax: '''''Float''''', fuel units per second<br />
{{Table3610|<br />
====$Trails:====<br />
*Allows afterburner trails to be used<br />
=====+Bitmap:=====<br />
*Texture used to draw the afterburner trail<br />
*Syntax: '''''String''''', filename<br />
=====+Width:=====<br />
*Width of afterburner trail at the beginning of it (ie. the thruster end)<br />
*Syntax: '''''Float''''', meters<br />
=====+Alpha:=====<br />
*Transparancy of the trail, value from 1 (non-transparent) to 0 (totally transparent)<br />
*Syntax: '''''Float'''''<br />
=====+Life:=====<br />
*How long the trail will last<br />
*Syntax: '''''Float''''', seconds}}<br />
{{Table3611|<br />
=====+Faded Out Sections:=====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Countermeasure Type:===<br />
{{Table3610|<br />
*Defines the weapon used as a countermeasure. Weapon does not have to be included in the countermeasure section of the weapons.tbl, but it has to have "countermeasure" flag in that case.<br />
*Syntax: '''''String''''', name of the weapon as defined in [[weapons.tbl]]}}<br />
<br />
<br />
===$Countermeasures:===<br />
*Number of countermeasures that can be loaded to the ship<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Scan Time:===<br />
*Time it takes to scan the ship<br />
*Syntax: '''''Integer''''', milliseconds<br />
<br />
<br />
===$EngineSnd:===<br />
*Engine sound used for the ship with number referring to sounds.tbl<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
===$GlideStartSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when entering glide mode, instead of the default throttle down sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$GlideEndSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when exiting glide mode, instead of the default throttle up sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CockpitEngineSnd===<br />
{{Table3613|<br />
*Optional sound to be used for looping engine sound heard in the cockpit.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$FullThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to full power.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ZeroThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to zero power<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleUpSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when increasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleDownSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when decreasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the looping sound heard when the afterburner is active<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerEngageSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the sound heard when the afterburner is engaged<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the activation of the afterburner failed<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileTrackingSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player tries to acquire a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player has acquired a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his primary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his secondary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$TargetAcquiredSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player acquires a new target<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the primary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the secondary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is locked onto the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileEvadedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a missile has been evaded<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CargoScanningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the cargo of an object is being scanned<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$Closeup_Pos:===<br />
*How the model will show at techroom. The position of the camera relative to the model in the tech room and the target box view<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively<br />
<br />
<br />
===$Closeup_Zoom:===<br />
*How the model will show at techroom. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians<br />
<br />
<br />
===$Topdown Offset:===<br />
{{Table3610|<br />
*Specifies how high the camera is above the center point of a ship in topdown camera views, or 2D missions.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shield_Icon:===<br />
*This .ani file must be at data/hud and included to the hud.tbl.<br />
{{Table3610|<br />
*Reference to the hud.tbl is no longer needed.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Icon:===<br />
*The icon used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Anim:===<br />
*The glowing green grid animation used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Ship_Overhead:===<br />
*The overhead view used in the weapons loadout.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Score:===<br />
*Points awarded for destroying the ship<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===Customized Thruster Effects===<br />
{{Table3611|<br />
*Defines the texture of the modeled thruster effect cone<br />
*'''$Thruster Normal Flame:'''<br />
**Syntax: '''''String''''', filename<br />
*Defines the texture of the modeled thruster effect cone with afterburners lit<br />
*'''$Thruster Afterburner Flame:'''<br />
**Syntax: '''''String''''', filename}}<br />
{{Table3610|<br />
*'''Defines the primary thruster glow - the one visible only from behind'''<br />
**'''$Thruster Bitmap 1:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Normal:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 1a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Afterburner:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster01 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
*'''Defines the secondary glow type-effect for thrusters - the feathery trail like haze behind the main glow'''<br />
**'''$Thruster Bitmap 2:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Sec_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 2a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Sec_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster02 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster02 Length factor:'''<br />
***Defines the length multiplier for the trail type (secondary) glowpoint thrusters<br />
***Replaces the older '''$Thruster01 Length factor:'''<br />
***Syntax: '''''Float'''''<br />
*'''Defines the tertiary glow type-effect for thrusters - the one visible from all directions'''<br />
**NOTE: The rotation of this effect is jittered, which can look quite bad with certain types of effects.<br />
**'''$Thruster Bitmap 3:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Ter_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 3a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Ter_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster03 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''}}<br />
{{Table3613|<br />
*'''Defines the distortion effect for thrusters'''<br />
**'''$Thruster Bitmap Distortion:'''<br />
***Defines name of normal thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap Distortion a:'''<br />
***Defines name of afterburner thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Distortion Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion Length factor:'''<br />
***Defines the length multiplier for the thruster distortion<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion:'''<br />
***Defines whether the distortion effect is rendered for this ship.<br />
***Syntax: '''''Bool'''''}}<br />
<br />
===$Thruster Particles:===<br />
{{Table3610|<br />
*Defines the alternative particle thruster<br />
*'''$Thruster Particle Bitmap:''' OR '''$Afterburner Particle Bitmap:'''<br />
**Name of the animation used for particle thrusters, up to '''three''' can be defined for both '''standard''' thrusters and '''afterburners''' (6 in total). Afterburner particles require at least 1 existing particle thruster entry.<br />
**Syntax: '''''String''''', filename<br />
*'''$Min Radius:'''<br />
**Defines the minimum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Max Radius:'''<br />
**Defines the maximum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Min Created:'''<br />
**Defines the minimum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Max Created:'''<br />
**Defines the maximum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Variance:'''<br />
**Value that describes the randomness of particle generation, values close to 0 will cause particles to spew very close to the thrusters normal while values close 1 will cause some particles to be spewed even to opposite direction<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Stealth:===<br />
*Defines: Ship behaves as a stealth-ship: non-targettable, and not on radar.<br />
{{Table3610|<br />
This field is [[deprecated]], and mods using 3.6.8 and above should use the "stealth" flag.}}<br />
<br />
<br />
===$Max Decals:===<br />
{{Table3610|<br />
*Defines: Maximum number of weapon decals on a ship<br />
*Syntax: '''''Integer''''', maximum number of decals on ship<br />
**Default: 50 for anything below cruiser size, 100 for anything below superdestroyer/installation size, 300 for anything above destroyer size, 10 for everything else.}}<br />
{{Table3613|<br />
*Feature disabled. Parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Trail:===<br />
*These are the origins of the white contrails that appear in the nebula missions. Ship may have multiple trails.<br />
{{Table3611|<br />
*'''+ClearAll'''<br />
**Clears all existing trail data from the ship}}<br />
====+Offset:====<br />
*The position of the contrail's head<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively, relative to the center point of the model<br />
====+Start Width:====<br />
*The width of the contrail's head<br />
*Syntax: '''''Float''''', meters<br />
====+End Width:====<br />
*The width of the contrail's tail<br />
*Syntax: '''''Float''''', meters<br />
====+Start Alpha:====<br />
*The opacity of the contrail's head<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+End Alpha:====<br />
*The opacity of the contrail's tail<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+Max Life:====<br />
*How long the contrail remains<br />
*Syntax: '''''Float'''''', seconds<br />
====+Spew Time:====<br />
*Syntax: '''''Integer'''''<br />
====+Bitmap:====<br />
*The image to use for the contrail.<br />
*Syntax: '''''String''''', filename<br />
{{Table3611|<br />
====+Faded Out Sections:====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.}}<br />
<br />
<br />
===$Thruster:===<br />
{{Table3610|<br />
*Defines maneuvering thrusters. Ship may have multiple $Thrusters defined.<br />
*'''+Index:'''<br />
**Defines the index number of the manoeuvring thruster defined in this entry<br />
**Syntax: '''''Integer'''''<br />
*'''+Used For:'''<br />
**Defines the maneuver that triggers the maneuvering thruster<br />
**List of maneuvers: Bank right, Bank left, Pitch up, Pitch down, Roll right, Roll left, Slide right, Slide left, Slide up, Slide down, Forward, Reverse<br />
**Syntax: '''''String, String'''''<br />
*'''+Position:'''<br />
**Defines thruster location<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), position from the ships center point, x, y, z axis respectively<br />
*'''+Normal:'''<br />
**Defines the direction where the thruster points to<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), direction of the thrusters normal, x, y, z axis respectively<br />
*'''+Texture:'''<br />
**Defines the graphic that will be used for trail, rendered like beams<br />
**Syntax: '''''String''''', filename<br />
*'''+Radius:'''<br />
**Defines the radius of cylinder<br />
**Syntax: '''''Float''''', meters<br />
*'''+Length:'''<br />
**Defines the length of thruster trail<br />
**Syntax: '''''Float''''', meters<br />
*'''+StartSnd:'''<br />
**Defines the sound played when the thruster is started<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+LoopSnd:'''<br />
**Defines the sound played when the thruster is continuously used<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+StopSnd:'''<br />
**Defines the sound played when the thruster is shutting down<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$Radar Image 2D:===<br />
{{Table3611|<br />
*Defines the bitmap used to represent the ship on the radar screen.<br />
*Syntax: '''''Filename'''''<br />
*'''$Radar Image Size:'''<br />
**Defines the size of the bitmap on the radar screen (length of the longer dimension)<br />
**Syntax: '''''Integer'''''<br />
*'''$3D Radar Blip Size Multiplier:'''<br />
**Defines the multiplier used for blip size on the 3D radar.<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Ship IFF Colors:===<br />
{{Table3611|<br />
*Defines the alternate color for the ship. Affects both the targeting brackets as well as the radar screen.<br />
*'''+Seen By:'''<br />
**Defines the IFF actually viewing the object (most often 'Friendly')<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+When IFF Is:'''<br />
**Defines the IFF which the ship has to have for its color to be altered.<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+As Color:'''<br />
**Defines the new color of the ship's targeting brackets and radar blip<br />
**Syntax: '''''Integer list''''', red, blue and green respectively}}<br />
<br />
<br />
===$Target Priority Groups:===<br />
{{Table3611|<br />
*Defines into which target priority groups the ship belongs to<br />
*Syntax: '''''String list''''', names of the targeting groups<br />
*'''+Override'''<br />
**Overrides the ships existing groupings}}<br />
<br />
<br />
===$EMP Resistance Modifier:===<br />
{{Table3611|<br />
*Defines the ships EMP resistance modifier:<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Damage Draw Limit:===<br />
{{Table3611|<br />
*Defines the maximum percentage of hitpoints ship has before piercing effects are enabled<br />
*Syntax: '''''Float'''''<br />
**Example: '''10''', sets the limit to 10%}}<br />
<br />
===$Path Metadata:===<br />
{{Table3613|<br />
*Allows definition of extra metadata<br />
*Syntax: '''''String''''', name of the path as defined in the ship POF file.<br />
**Example: '''$Path Metadata: $Bay01'''<br />
====+departure rvec:====<br />
When using this path to depart via fighterbay, the departing ship will rotate to align itself with this rvec (so the right side of the ship is pointing in this direction). Only affects paths used to depart via fighterbay.<br />
}}<br />
<br />
===[[Subsystem]]<nowiki>:</nowiki>===<br />
:''Main article: [[Subsystem]]''<br />
<br />
==Ships.tbl flags==<br />
<br />
<br />
==="no_collide"===<br />
*Defines ship as non-collideable, ie. everything will go through it<br />
<br />
<br />
==="player_ship"===<br />
*Makes it possible for the player to fly the ship<br />
<br />
==="default_player_ship"===<br />
*Makes this ship as a default part of the loadout options in FRED<br />
<br />
<br />
----<br />
<br />
===Ship Type===<br />
*Flags in this section are used to define the type of the ship<br />
*Use only one '''ship type''' flag per table entry<br />
{{Table3610|<br />
*New ship types can be defined in [[objecttypes.tbl]]}}<br />
<br />
<br />
===="repair_rearm"====<br />
*Alternate name for "support"<br />
<br />
<br />
===="support"====<br />
*Defines the ship as repair and rearm vessel and sets AI behaviour accordingly<br />
*Only one such vessel can be defined per species<br />
<br />
<br />
===="cargo"====<br />
*Defines ship as a cargo crate and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="fighter"====<br />
*Defines ship as a fighter and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="bomber"====<br />
*Defines ship as a bomber and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="transport"====<br />
*Defines ship as a transport and also sets the AI behaviour<br />
<br />
<br />
===="freighter"====<br />
*Defines ship as a freighter and also sets the AI behaviour<br />
<br />
<br />
===="capital"====<br />
*Defines ship as a capital ship and also sets the AI behaviour<br />
<br />
<br />
===="supercap"====<br />
*Alternate name for "super cap"<br />
<br />
<br />
===="super cap"====<br />
*Defines ship as a super capital ship and also sets the AI behaviour<br />
<br />
<br />
===="drydock"====<br />
*Defines ship as a drydock and also sets the AI behaviour<br />
<br />
<br />
===="cruiser"====<br />
*Defines ship as a cruiser and also sets the AI behaviour<br />
<br />
<br />
===="navbuoy"====<br />
*Defines ship as a navbuoy and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="sentrygun"====<br />
*Alternate name for "sentry gun"<br />
<br />
<br />
===="sentry gun"====<br />
*Defines ship as a sentrygun and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="escapepod"====<br />
*Alternate name for "escape pod"<br />
<br />
<br />
===="escape pod"====<br />
*Defines ship as a escapepod and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="corvette"====<br />
*Defines ship as a corvette and also sets the AI behaviour<br />
<br />
<br />
===="gas miner"====<br />
*Defines ship as a gas miner and also sets the AI behaviour<br />
<br />
<br />
===="awacs"====<br />
*Defines ship as a AWACS and also sets the AI behaviour<br />
<br />
<br />
===="knossos"====<br />
*Alternate name for the "Knossos device"<br />
<br />
<br />
===="knossos device"====<br />
*Defines ship as a Knossos and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="stealth"====<br />
{{Table3610|<br />
*Defines ship as a stealth-ship: non-targettable, and not on radar.}}<br />
<br />
<br />
===="no type"====<br />
*Does ???<br />
<br />
----<br />
<br />
<br />
==="ship copy"===<br />
*Defines the ship as a copy of another model<br />
<br />
<br />
==="in tech database"===<br />
*Includes ships description to the tech database from the beginning of the campaign<br />
<br />
<br />
==="in tech database multi"===<br />
*Includes the ship to multiplayer tech database<br />
<br />
<br />
==="dont collide invisible"===<br />
*Defines invisible textures as non-collideable (For example, a hangar entrace)<br />
<br />
<br />
==="big damage"===<br />
*Limits the damage made to the ship by non-huge weapons.<br />
<br />
<br />
==="no_fred"===<br />
*Ship will not appear in FRED.<br />
<br />
<br />
==="ballistic primaries"===<br />
{{Table3610|<br />
*Enables the ship to use ballistic primaries<br />
*No longer needed, game handles it automatically}}<br />
<br />
<br />
==="flash"===<br />
{{Table3610|<br />
*Makes a flash when a ship dies}}<br />
<br />
<br />
==="surface shields"===<br />
{{Table3610|<br />
*Shots that impact the hull are applied to shields, regardless of if the ship has a shield mesh.}}<br />
<br />
<br />
==="show ship"===<br />
{{Table3610|<br />
*Enable rendering the ship even when the ship is a player ship<br />
*Will result in the player's ship model being rendered, when in cockpit mode}}<br />
<br />
<br />
==="generate icon"===<br />
{{Table3610|<br />
*Creates a HUD icon from the model itself}}<br />
<br />
<br />
==="gun convergence"===<br />
{{Table3610|<br />
*Enables ship to use the firing points' normals in defining the direction where the weapon fire}}<br />
<br />
<br />
==="no thruster geometry noise"===<br />
{{Table3611|<br />
*Prevents noise from being added to the thruster effects geometry}}<br />
<br />
==="intrinsic no shields"===<br />
{{Table3611|<br />
*Defines that ship has no shields by default, to allow mixing and matching shielded and unshielded craft in loadout}}<br />
<br />
==="no primary linking"===<br />
{{Table3611|<br />
*Bypasses linked primaries while cycling. Does not block SEXPs/scripts that might be able to lock them, only the act of cycling for players and determing whether to link or not for AI.}}<br />
<br />
==="no pain flash"===<br />
{{Table3613|<br />
*Prevents pain flash from being shown when ship is hit}}<br />
<br />
==="dynamic primary linking"===<br />
{{Table37|<br />
*Allows this ship use the primary firepoint cycling code. With a key bind added in 3.6.13, you can toggle between various factorizations of primary firepoint groupings on a per-primary bank basis. So a 4-firepoint bank could cycle through all four firepoints firing together (1x4), each firepoint firing individually (4x1, all 4 firing over the timespan of the bank cooldown, so no change in damage over time, or DPS, occurs from retail behavior), or firing in pairs (2x2).}}<br />
<br />
==="no ets"===<br />
{{Table37|<br />
Sets ship class to have no ETS}}<br />
<br />
==="no lighting"===<br />
{{Table3613|<br />
Ship will not receive lighting calculations}}<br />
<br />
==Player Ship Precedence==<br />
*Syntax: ( '''''"String" "String"''''')<br />
===Example===<br />
<br />
<pre><br />
$Player Ship Precedence: (<br />
"GTF Ulysses"<br />
"GTF Hercules"<br />
"GTB Medusa"<br />
"GTB Ursa" )<br />
</pre><br />
<br />
<br />
==Sample==<br />
<br />
<pre><br />
#Default Player Ship<br />
<br />
$Name: GTF Ulysses<br />
<br />
#End<br />
<br />
<br />
#Engine Wash Info<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
#End<br />
<br />
<br />
#Ship Classes<br />
$Name: GTF Ulysses<br />
$Short name: TFight<br />
$Species: Terran<br />
+Type: XSTR("Space Superiority", -1)<br />
+Maneuverability: XSTR("Excellent", -1)<br />
+Armor: XSTR("Light", -1<br />
+Manufacturer: XSTR("Triton / Mekhu", -1)<br />
+Description: XSTR( " ", -1)<br />
$end_multi_text<br />
+Tech Description: XSTR("Descriptive text", -1)<br />
$end_multi_text<br />
+Length: 16 m<br />
+Gun Mounts: 4<br />
+Missile Banks: 1<br />
$POF File: fighter01.pof<br />
$Detail Distance: (0, 80, 300, 900)<br />
$ND: 42 42 244<br />
$Show Damage: YES<br />
$Density: 1<br />
$Damp: 0.1<br />
$Rotdamp: 0.35<br />
$Max Velocity: 0.0, 0.0, 70.0<br />
$Rotation Time: 3.0, 2.6, 5.0<br />
$Rear Velocity: 0.0<br />
$Forward Accel: 2.0<br />
$Forward Decel: 1.5<br />
$Slide Accel: 0.0<br />
$Slide Decel: 0.0<br />
$Expl Inner Rad: 25.0<br />
$Expl Outer Rad: 55.0<br />
$Expl Damage: 15.0<br />
$Expl Blast: 1000.0<br />
$Expl Propagates: NO<br />
$Shockwave Speed: 0.0<br />
$Allowed PBanks: ( "Subach HL-7" "Prometheus R")<br />
$Allowed Dogfight PBanks: ( "Subach HL-D" "Prometheus D" )<br />
$Default PBanks: ( "Subach HL-7" "Prometheus R" )<br />
$Allowed SBanks: ( "Rockeye" "Tempest" )<br />
$Allowed Dogfight SBanks: ( "Tempest D" "Hornet D" )<br />
$Default SBanks: ( "Harpoon" )<br />
$SBank Capacity: ( 40 )<br />
$Shields: 380<br />
$Shield Color: 100 100 255<br />
$Power Output: 2.0<br />
$Max Oclk Speed: 94.0<br />
$Max Weapon Eng: 80.0<br />
$Hitpoints: 180<br />
$Flags: ( "player_ship"<br />
"default_player_ship"<br />
"fighter"<br />
"in tech database")<br />
$AI Class: Captain<br />
$Afterburner: YES<br />
+Aburn Max Vel: 0.0, 0.0, 150.0<br />
+Aburn For accel: 0.7<br />
+Aburn Fuel: 300.0<br />
+Aburn Burn Rate: 50.0<br />
+Aburn Rec Rate: 25.0<br />
$Countermeasures: 25<br />
$Scan Time: 2000<br />
$EngineSnd: 128<br />
$Closeup_Pos: 0.0, 0.0, -22<br />
$Closeup_Zoom: 0.5<br />
$Shield_Icon: shield-f01<br />
$Ship_Icon: iconfighter01<br />
$Ship_Anim: ssfighter01<br />
$Ship_Overhead: loadfighter01<br />
$Score: 8<br />
$Trail:<br />
+Offset: -7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Trail:<br />
+Offset: 7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Subsystem: communication, 10, 0<br />
$Subsystem: navigation, 10, 0<br />
$Subsystem: weapons, 20, 0<br />
$Subsystem: sensors, 10, 0<br />
$Subsystem: engines, 35, 0<br />
<br />
#End<br />
<br />
$Player Ship Precedence: (<br />
"GTF Ulysses")<br />
</pre><br />
<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Ships.tbl&diff=38022
Ships.tbl
2012-03-19T04:20:33Z
<p>Cyborg17: /* $Rotation Time: */</p>
<hr />
<div>{{TableVersion|7923}}<br />
<br />
<!-- I'll leave these here - commented away - until we can be sure they are not needed<br />
Links to archived versions:<br />
*[[Ships.tbl/CVS_version|CVS version of ships.tbl]]<br />
*[[Ships.tbl/Retail_version|Retail version of ships.tbl]]<br />
--><br />
==General Format==<br />
*Ship.tbl is formed of several different sections.<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>End before the next section.<br />
**<nowiki>#</nowiki>'''Default Player Ship'''<br />
***Defines the default player ship in the game and also in the FRED. If in a mission appears a ship that has not been properly included to tables then game replaces the ship with the Default Player Ship.<br />
**<nowiki>#</nowiki>'''Engine Wash Info'''<br />
***Includes all the definitions of all engine washes used in the game.<br />
{{Table3610|<br />
:*<nowiki>#</nowiki>'''Ship Templates'''<br />
:**Includes entries for ship templates}}<br />
<br />
:*<nowiki>#</nowiki>'''Ship Classes'''<br />
:**Includes entries for every ship and also defines their attributes that are used in the game<br />
:**Is discussed in detail at [[Ships.tbl#Table_Options|Table Options]] section.<br />
:*'''$Player Ship Precedence'''<br />
:**Player Ship Precedence is used in ship selection when a ship specified by the mission designer is not available to the player. The next ship on the list is used in its place (assuming that ship is allowed for the player)<br />
<br />
==Default Player Ship==<br />
*Defines the default ship in the game.<br />
*Syntax: ''Name'', name of ship model as defined in [[Ships.tbl#Table_Options|Table Options]].<br />
<br />
<br />
==Engine Wash==<br />
*Defines the engines washes<br />
*First entry must be named 'default'<br />
<br />
<br />
===$Name:===<br />
*Defines the name of the engine wash.<br />
*Syntax: '''''String'''''<br />
<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===$Angle:===<br />
*Defines the angle from the engine where the engine wash exists<br />
*Syntax: '''''Float''''', degrees<br />
<br />
<br />
===$Radius Mult:===<br />
*Defines engine wash multiplier<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Length:===<br />
*Defines the length of the engine wash<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Intensity:===<br />
*Defines the strength of the engine wash<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
'''Example'''<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
<br />
==Ship Template Options==<br />
{{Table3610|<br />
*Example of template usage [[Ship_Templates]] in which both [[GTB Artemis]] variants have been defined using a single template}}<br />
<br />
<br />
===$Template:===<br />
{{Table3610|<br />
*Defines the name of template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Another template can be used as template for the current template<br />
*Syntax: '''''String''''', name}}<br />
<br />
<br />
==Ships Table Options==<br />
<br />
<br />
===$Name:===<br />
*Model name that is used also in game. It is also used as name for the whole ship entry.<br>There are two special characters can be used in the name: '''#''' and '''@'''<br />
**'''#'''. It's used in the middle of the name. It makes the right part of the name not being shown in the ship class info of the target window, (or beside the target brackets in FS_Open builds). It allows making different versions of a base ship while showing the same class name inside the game.<br>An example from FSPort FreeSpace 1: The '''SF Dragon#weakened''' ship, used in [[Enter the Dragon]], appears to the player just as any other '''SF Dragon'''.<br />
**'''@'''. It's used before the proper ship name. It is fully ignored by the game. Moreover, '''@WhateverShip''' and '''WhateverShip''' are exactly the same name and therefore they both appear as '''WhateverShip''' inside the game. It just allows the user marking ships in the table because of any modding reason.<br>In the retail FS2 ships there are several ships starting by '''@'''.<br />
*Syntax: '''''String''''', name<br />
<br />
===+nocreate===<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===+Use Template:===<br />
{{Table3610|<br />
*Sets the table entry to use template based on an existing table entry instead of creating totally new one<br />
*Syntax: '''''String''''', name of the template}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3613|<br />
*Alternative $Name: for the ship.<br />
*Syntax: '''''String''''', Alternate $Name:}}<br />
<br />
<br />
===$Short name:===<br />
*Shortened model name, for FRED, Usually more descriptive than the real name.<br />
*Syntax: '''''String''''''<br />
<br />
<br />
===$Species:===<br />
*Defines species (Terran, Vasudan or Shivan). Determines many things, including the color of the engine glow, the flyby sound effects, the briefing icon and the support ship.<br />
{{Table3610|<br />
*More species have been enabled, and all of these have to be defined in [[species_defs.tbl]].}}<br />
<br />
*Syntax: '''''String''''', name of the species<br />
**Example: ''Terran''<br />
<br />
<br />
===Technical Description===<br />
List of descriptive terms for techroom and ship selection screens. Number after the quotes refers to [[tstrings.tbl]]<br />
<br />
====+Type:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Maneuverability:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Armor:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Manufacturer:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Tech Title:====<br />
{{Table3613|<br />
*Defines name of the ship as displayed in the tech room<br />
*Syntax: '''''String'''''}}<br />
<br />
====+Tech Description:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Requires '''$end_multi_text''' after the entry<br />
*Example:<br />
::XSTR("", -1)<br />
::$end_multi_text<br />
<br />
====+Length:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Gun Mounts:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
====+Missile Banks:====<br />
*Syntax: XSTR("'''''String'''''", integer)<br />
*Example: XSTR("", -1)<br />
<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: String, either "FS1", or "Off". This defaults to the FS2 effect.}}<br />
<br />
===$Cockpit POF file:===<br />
{{Table3610|*Filename of the cockpit model file<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
===+Cockpit Offset:===<br />
{{Table3610|*Defines the offset of the cockpit model<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$POF File:===<br />
*Filename of the model file (.pof) at data/models folder<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$Texture Replace:===<br />
{{Table3610|<br />
*'''+old:'''<br />
*Defines the texture to be replaced<br />
**Syntax: '''''String''''', filename<br />
*'''+new:'''<br />
*Defines the new texture<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$POF Target File:===<br />
*Optional hud targeting model<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
===$POF Target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of target model used in the HUD targetbox<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Detail Distance:===<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''<br />
<br />
<br />
===$ND:===<br />
*No Dim field field was used in FreeSpace for ship lights. Use of glowmaps is preferred to the $ND entry. Only noticeable in Glide or Software mode.<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''42, 42, 224''<br />
<br />
<br />
===$Show Damage:===<br />
*No function at all. The engine will read values, but discard them. In 3.6.10 or later, this can be left out without adverse consequences.<br />
*Syntax: '''''Boolean''''', yes or no, usually yes<br />
<br />
<br />
===$Damage Lightning Type:===<br />
{{Table3613|<br />
*Changes the damage lightning effect shown on highly damaged ships. <br />
*Can be defined as:<br />
**''None''<br />
**''Default''}}<br />
<br />
<br />
===$Impact:===<br />
{{Table3610|<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the collision<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Impact Spew:===<br />
{{Table3610|<br />
*Used to define the impact particle spew<br />
*Note: You CANNOT define a different type of particle spew here; the only option possible is listed below<br />
*'''+Max particles:'''<br />
**Defines the maximum number of particles spewed<br />
**Setting to zero causes model to generate no particles at all<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 30}}{{Table3613|<br />
*'''+Min particles:'''<br />
**Defines the minimum number of particles spewed<br />
**Syntax: '''''Integer'''''<br />
**Default Value: 25<br />
*'''+Max Radius:'''<br />
**Defines the maximum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.5f<br />
*'''+Min Radius:'''<br />
**Defines the minimum radius of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.2f<br />
*'''+Max Lifetime:'''<br />
**Defines the maximum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.55f<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 0.05f<br />
*'''+Max Velocity:'''<br />
**Defines the maximum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 12.0f<br />
*'''+Min Velocity:'''<br />
**Defines the minimum velocity of particles<br />
**Syntax: '''''Float'''''<br />
**Default Value: 2.0f<br />
*'''+Normal Variance:'''<br />
**Defines the variance of particle direction from the normal<br />
**Syntax: '''''Float'''''<br />
**Default Value: 1.0f}}<br />
<br />
<br />
===$Damage Spew:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the 'smoke' released on weapon impact point<br />
*Certain default values (marked with '''X''') gain a specific multiplier based on ship radius<br />
::If the radius is less than 20 the multiplier is 1<br />
::If the radius is larger than 40 the multipler is 1.2<br />
::Otherwise it is between 1 and 1.2<br />
{{Table3610|<br />
*'''+Max Particles:'''<br />
**Default Value: 50 * '''X'''}}{{Table3613|<br />
*'''+Min Particles:'''<br />
**Default Value: 20 * '''X'''<br />
*'''+Max Radius:'''<br />
**Default Value: 1.3 <br />
*'''+Min Radius:'''<br />
**Default Value: 0.7<br />
*'''+Max Lifetime:'''<br />
**Default Value: 1.5 * '''X'''<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.7 * '''X'''<br />
*'''+Max Velocity:'''<br />
**Default Value: 12.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 3.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 0.2 * '''X'''}}<br />
<br />
<br />
===$Collision Physics:===<br />
{{Table3613|<br />
*Parameters affecting collision physics, including landings.<br />
*"Landing" means the ship will not take damage or shake when it touches down. Instead, the ship will reorient towards a neutral resting orientation. "Reorient" thresholds below mean that the ship will still take damage (counts as a crash) but will move towards the correct landing orientation. <br />
<br />
====+Bounce:====<br />
When this ship collides with a large ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Both Small Bounce:====<br />
When this ship collides with a small ship, how many meters to instantly move it away. Default is 5.0.<br />
====+Friction:====<br />
During collisions, how much friction to apply (slowing lateral movement). Default is 0.0.<br />
====+Rotation Factor:====<br />
Affects the rotational energy of collisions. Default is 0.2.<br />
====+Landing Max Forward Vel:====<br />
Maximum velocity for which landing physics are used. <br />
====+Landing Min Forward Vel:====<br />
Minimum velocity for which landing physics are used. <br />
====+Landing Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still be considered a landing. <br />
====+Landing Max Horizontal Vel:====<br />
Maximum sideways velocity the ship can land at.<br />
====+Landing Max Angle:====<br />
Maximum angle of attack the ship can land at (in degrees).<br />
====+Landing Min Angle:====<br />
Minimum angle of attack the ship can land at (in degrees).<br />
====+Landing Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to count as a landing. <br />
====+Reorient Max Forward Vel:====<br />
Maximum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Min Forward Vel:====<br />
Minimum velocity for which the ship will be adjusted to the correct landing orientation.<br />
====+Reorient Max Descent Vel:====<br />
Maximum velocity at which the ship can "hit the deck" and still reorient. <br />
====+Reorient Max Horizontal Vel:====<br />
Maximum sideways velocity for reorienting.<br />
====+Reorient Max Angle:====<br />
Maximum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Min Angle:====<br />
Minimum angle of attack for reorienting to kick in (in degrees).<br />
====+Reorient Max Rotate Angle:====<br />
How many degrees the ship can be rotated relative to the landing surface in order to be reoriented on impact.<br />
====+Reorient Speed Mult:====<br />
How quickly the reorientation takes place (when applicable)<br />
====+Landing Rest Angle:====<br />
Angle of the ship's nose relative to the plane of the landing surface when the ship is at rest. Reorient will move the ship towards this angle. <br />
====+Landing Sound:====<br />
Sound to play when landing (if it's not a landing, normal collision sound is used).<br />
}}<br />
<br />
<br />
===$Debris:===<br />
{{Table3610|<br />
*'''+Min Lifetime:'''<br />
**Defines the minimum lifetime of the debris (Default value is a random number)<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Max Lifetime:<br />
**Defines the maximum lifetime of the debris<br />
**Syntax: '''''Float,''' Seconds<br />
*'''+Min Speed:<br />
**Defines the minimum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Max Speed:<br />
**Defines the maximum speed of the debris<br />
**Syntax: '''''Float,''' Meters/second<br />
*'''+Min Rotation speed:<br />
**Defines the minimum rotational speed of the debris (Default is (6 to 10)/Ship-radius)<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Max Rotation speed:<br />
**Defines the maximum rotational speed of the debris<br />
**Syntax: '''''Float,''' Radians/second<br />
*'''+Damage Type:'''<br />
**Defines the damage type of the debris<br />
**Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
{{Table3611|<br />
*'''+Min Hitpoints:'''<br />
**Defines the minimum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Max Hitpoints:'''<br />
**Defines the maximum hitpoints assigned for the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Damage Multiplier:'''<br />
**Defines the collision damage multiplier for collisions against the generated debris pieces<br />
**Syntax: '''''Float'''''<br />
*'''+Lightning Arc Percent:'''<br />
**Controls what percent of debris pieces will have the damage lightning effect applied to them.<br />
**Defaults to 50%.<br />
**Syntax: '''''Float,''' 0-100}}<br />
<br />
<br />
===$Density:===<br />
*This defines how hard you hit something. If you set it very high, a collision will the lower density ship and not yours; the higher the numbers are, the harder they will hit and the farther they will be pushed. However, this doesn't apply to asteroids. When a high density fighter collides with an asteroid, the high-density fighter will receive damage, but it will also destroy the asteroid. Setting a density of 1000 on a fighter with 180 hitpoints will cause the fighter to immediately explode if it collides with, say, an asteroid. A low-density fighter will not have any effect on an asteroid, but if the fighter destroys the asteroid, the fighter will fly far away.<br />
*Syntax: '''''Float''''', usually 1<br />
<br />
<br />
===$Damp:===<br />
*Damp affects how quickly you will accel/decel to your target velocity. Higher damp means slow acceleration and deceleration. The lower this number, the faster the ship responds. For example, specifying a value of 0.0 means there is no damping, in other words, people would say, "this has no physics, like Wing Commander." The more damping, the harder to control, but the more smoothly it moves.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Rotdamp:===<br />
*Same thing, but for rotational movement.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Banking Constant:===<br />
{{Table3610|<br />
*Defines a factor for how much roll is added during a yaw. Set as 1 for full roll and 0 is no roll. Default is 0.5.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Max Velocity:===<br />
*Defines maximum velocities with standard energy settings on x (left/right), y (up/down), and z (forward) -axis (respectively). z -axis velocity defines the maximum forward velocity.<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
**Example: ''0.0, 0.0, 80.0''<br />
<br />
<br />
===$Rotation Time:===<br />
*Defines rotation times around the x, y, and z-axis. Number is seconds it takes to complete rotate a ship (360 degrees) around the given axis. X-axis is "pitch," y-axis is "yaw," and z-axis is "roll."<br />
*Syntax: '''''Vector''''', three '''floats''', seconds per 360 degree turn around x-axis, y-axis, z-axis, respectively<br />
**Example: ''3.0, 2.6, 5.0''<br />
<br />
Note: Setting to Zero will cause the model to disappear in mission.<br />
<br />
===$Rear Velocity:===<br />
*Defines rear velocity<br />
*Syntax: '''''Float''''', meters per second<br />
**Note: This value must be set for [[Ships.tbl#.2BAburn_Max_Reverse_Vel:|+Aburn_Max_Reverse_Vel:]] to work<br />
<br />
<br />
===$Forward Accel:===<br />
*Number of seconds needed from full stop to maximum velocity<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Forward Decel:===<br />
*Number of seconds needed from maximum velocity to full stop<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Accel:===<br />
*Same for sliding as the $Forward accel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Slide Decel:===<br />
*Same for sliding as the $Forward decel: is for for normal movement.<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Glide:===<br />
{{Table3610|<br />
*Allows gliding in game, i.e. turning the ship's facing without changing its direction.<br />
*Syntax: '''''Boolean''''', yes or no}}<br />
<br />
<br />
====+Dynamic Glide Cap:====<br />
{{Table3611|<br />
*If set, game uses dynamic glide cap. The dynamic glide cap means that the maximum glide speed will follow the same rules as normal flight, including the effects of afterburner and power to engines. If set to YES, the value in +Max Glide Speed is ignored.<br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
====+Max Glide Speed:====<br />
{{Table3610|<br />
*Defines the maximum glide speed if glide has been enabled. If 0, this is set to the fastest speed the ship can go. If negative, there is no glide cap (allowing practically infinite maximum gliding speed). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
====+Glide Accel Mult:====<br />
{{Table3611|<br />
*Defines the acceleration multiplier for the gliding mode. If > 0, sets a fixed acceleration rate in glide mode depending on value. If set to 0, impossible to accelerate while in glide mode. If negative, enables glide speed ramping (acceleration in glide mode ramps in the same way as in normal flight). Defaults to 0.<br />
*Syntax: '''''Float'''''}}<br />
{{Table3610|<br />
*Entry exists as a dummy entry which doesnt do anything to prevent compatibility issues}}<br />
<br />
<br />
===$Use Newtonian Dampening:===<br />
{{Table3611|<br />
*If set, forces the ship to use (or not use) newtonian dampening. Basically, allows overriding the AI Profiles flag on a per-ship basis. <br />
*Syntax: '''''Boolean'''''}}<br />
<br />
<br />
===$Autoaim FOV:===<br />
{{Table3610|<br />
*Defines the field of view for autoaim<br />
*Syntax: '''''Integer'''''}}<br />
<br />
====+Converging Autoaim====<br />
{{Table3611|<br />
*Defines that the autoaim uses convergence}}<br />
<br />
====+Minimum Distance:====<br />
{{Table3611|<br />
*Defines the minimum distance for the convergence}}<br />
<br />
<br />
===$Convergence:===<br />
{{Table3611|<br />
*Defines the weapons use convergence}}<br />
<br />
====+Automatic====<br />
{{Table3611|<br />
*Defines that the ship uses automatic convergence - converging distance calculated from estimated hit position (lead) of the current target.<br />
*'''+Minimum Distance:'''<br />
**Defines the minimum distance for the convergence. Overrides the setting for $Autoaim FOV's minimum distance.}}<br />
<br />
====+Standard====<br />
{{Table3611|<br />
*Defines that ship uses fixed convergence.<br />
*'''+Distance:'''<br />
**Defines the converging distance from the ship}}<br />
<br />
====+Offset:====<br />
{{Table3611|<br />
*Defines the offset from the ship centerpoint for the convergence<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively}}<br />
<br />
<br />
===$Warpin Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpin effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpin Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp in effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpin Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps in for '''default''' warpin effect<br />
*Sets the time that the ships warp in (not the animation itself) takes for '''BTRL''' type warpin effects<br />
*Syntax: '''''Float''''', meters per second or miiliseconds}}<br />
<br />
<br />
===$Warpin Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpin Decel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the deceleration curve at the end of the warpin. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual deceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpin Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpin Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpin effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Type:===<br />
{{Table3610|<br />
*Allow an animation to be defined as a warpout effect.<br />
*Can be defined as:<br />
:*''Default''<br />
:*''BTRL'' or ''Galactica''<br />
:*''Homeworld''<br />
:*''Hyperspace''}}<br />
{{Table3613|<br />
:*''Knossos''<br />
:*''Babylon5''}}<br />
{{Table3611|<br />
::*''BTRL'' was replaced with ''Galactica'' after 3.6.10}}<br />
{{Table3610|<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Warpout Start Sound:===<br />
{{Table3610|<br />
*File for playing at start of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout End Sound:===<br />
{{Table3610|<br />
*File for playing at end of warp out effect<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Warpout Engage Time:===<br />
{{Table3615|<br />
*Defines the delay the it takes for the warp drive of the ship to engage, during which the player may still abort the warpout. Affects both the player as well as AI ships. If not defined, defaults to 3 seconds for the player and none for the AI.<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the ship warps out for '''default''' warpout effect<br />
*Sets the time that the ships warp out (not the animation itself) takes for '''BTRL''' type warpout effects}}<br />
{{Table3613|<br />
*Sets the minimum speed required for the ship to warp out for '''hyperspace''' type warpout effects}}<br />
{{Table3610|<br />
*Syntax: '''''Float''''', meters per second or milliseconds}}<br />
<br />
<br />
===$Warpout Time:===<br />
{{Table3610|<br />
*Defines the effect duration<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Warpout Accel Exp:===<br />
{{Table3613|<br />
*Only for the '''hyperspace''' warpin effect.<br />
*Defines an exponent for the acceleration curve at the start of the warpout. Must be higher than 0; a value of 1 produces a constant velocity throughout the effect and higher values produce gradual acceleration.<br />
*Syntax: '''''Float'''''<br />
**Default: 1.0}}<br />
<br />
<br />
===$Warpout Radius:===<br />
{{Table3610|<br />
*Defines the effect radius<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Warpout Animation:===<br />
{{Table3610|<br />
*Defines the animation used as the warpout effect.<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Player Warpout Speed:===<br />
{{Table3610|<br />
*Sets the speed at which the player warps out from the game<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Expl Inner Rad:===<br />
*Radius at which the full explosion damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Outer Rad:===<br />
*Maximum radius at which any damage is done<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Expl Damage:===<br />
*Amount of damage done inside the inner radius<br />
*Syntax: '''''Float''''', damage<br />
<br />
<br />
===$Expl Blast:===<br />
*The intensity of the blast effect when you're within the outer radius<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Expl Propagates:===<br />
*This decides whether the ship explodes into debris immediately, or whether it has the many small explosions before breaking apart slowly<br />
*Syntax: '''''Boolean''''', yes or no<br />
<br />
<br />
===$Propagating Expl Radius Multiplier:===<br />
{{Table3613|<br />
*This sets the multiplier for the ship splitting propagating explosions<br />
*Syntax: '''''Float''''', defaults to 1}}<br />
<br />
<br />
===$Expl Visual Rad:===<br />
{{Table3611|<br />
*This determines the visual size of the main fireball for an exploding ship. Does not affect ships with propagating explosions. <br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Base Death-Roll Time:===<br />
{{Table3613|<br />
*Defines the base death-roll time<br />
*Values is modified depending on conditions when the ship died<br />
*Syntax: '''''Integer''''', milliseconds<br />
**Default: 3000}}<br />
<br />
<br />
===$Death-Roll Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the radius of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death-Roll Explosion Intensity Mult:===<br />
{{Table3613|<br />
*Defines the multiplier for the amount of the ship surface explosions during death roll<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Radius Mult:===<br />
{{Table3613|<br />
*Defines the multiplier applied to the ship death explosions<br />
*Syntax: '''''Float'''''<br />
**Default: 1}}<br />
<br />
<br />
===$Death FX Explosion Count:===<br />
{{Table3613|<br />
*Defines the number of explosion effect game uses when a large ship dies<br />
*Syntax: '''''Integer'''''<br />
**Default: 6}}<br />
<br />
<br />
===$Ship Splitting Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on every explosion event which happens when ship is splitting apart<br />
*The old 'popcorn' effect<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 80<br />
*'''+Min Particles:'''<br />
**Default Value: 40<br />
*'''+Max Radius:'''<br />
**Default Value: Ship radius * 0.015<br />
*'''+Min Radius:'''<br />
**Default Value: Ship radius * 0.005<br />
*'''+Max Lifetime:'''<br />
**Default Value: 6.0 * (1 + 0.002 * Ship radius)<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5 * (1 + 0.002 * Ship radius) <br />
*'''+Max Velocity:'''<br />
**Default Value: Speed of the propagating explosion<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Ship Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released on the moment 'non-knossos' type object dies<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 100<br />
*'''+Min Particles:'''<br />
**Default Value: 50<br />
*'''+Max Radius:'''<br />
**Default Value: 1.5<br />
*'''+Min Radius:'''<br />
**Default Value: 0.1<br />
*'''+Max Lifetime:'''<br />
**Default Value: 4.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 0.5<br />
*'''+Max Velocity:'''<br />
**Default Value: 20.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 0.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Alternate Death Particles:===<br />
See [[Ship.tbl#$Impact Spew:|Impact Spew entry]]<br />
*Controls the particles released when 'knossos' type object is dying<br />
{{Table3613|<br />
*'''+Max Particles:'''<br />
**Default Value: 30<br />
*'''+Min Particles:'''<br />
**Default Value: 15<br />
*'''+Max Radius:'''<br />
**Default Value: 100.0<br />
*'''+Min Radius:'''<br />
**Default Value: 30.0<br />
*'''+Max Lifetime:'''<br />
**Default Value: 12.0<br />
*'''+Min Lifetime:'''<br />
**Default Value: 2.0<br />
*'''+Max Velocity:'''<br />
**Default Value: 350.0<br />
*'''+Min Velocity:'''<br />
**Default Value: 50.0<br />
*'''+Normal Variance:'''<br />
**Default Value: 2.0}}<br />
<br />
<br />
===$Vaporize Percent Chance:===<br />
{{Table3611|<br />
*Allows ships to sometimes explode instantly (vaporize) instead of going through a death roll first. Overrides the same flag in [[objecttypes.tbl]]. <br />
*Syntax: '''''Float''''', percent chance of vaporization}}<br />
<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the ship explosions<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at, 0 means no shockwave<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave Count:===<br />
*Defines the number of shockwaves to spawned<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Shockwave Model:===<br />
{{Table3610|<br />
*Defines the textured model used as the ship's 3D shockwave<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave Name:===<br />
{{Table3610|<br />
*Defines the name of the animation to used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Explosion Animations:===<br />
{{Table3610|<br />
*Defines the explosion animations used for the ship<br />
*Syntax: '''''Integer list'''''}}<br />
<br />
<br />
===$Weapon Model Draw Distance:===<br />
{{Table3610|<br />
*Distance that external weapons are shown, ie. missiles and such.<br />
*Syntax: '''''Float''''', meters<br />
**Default: ''200''}}<br />
<br />
<br />
===Primary Weapons===<br />
====$Allowed PBanks:====<br />
*List of allowed primary weapons in brackets (weapon name marked with quotes).<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has its own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight PBanks:====<br />
*Primary weapons for multiplayer dogfights.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the primary weapon dogfight banks '''can optionally''' be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default PBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$PBank Capacity:====<br />
{{Table3610|<br />
*Defines ammunition capacity of primary weapon banks. In brackets, different weapon banks separated by commas.<br />
*NOTE: In order for this to work, at least one of the primary weapons in the list of default primaries must be a ballistic weapon.<br />
*Syntax: '''''( Integer, Integer )'''''}}<br />
<br />
<br />
====$Show Primary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for primary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )''''', yes or no<br />
**Example: ''( YES YES )'' - Note the spaces on the insides of the brackets.}}<br />
<br />
<br />
===Secondary Weapons===<br />
====$Allowed SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Allowed Dogfight SBanks:====<br />
*Same for secondary weapons.<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
{{Table3610|<br />
*Each of the secondary weapon dogfight banks can be given their own list of allowed weapons, in which case each bank has it's own bracketed entry.<br />
*Syntax: '''''( "String" "String" ) ( "String" "String" )'''''}}<br />
<br />
<br />
====$Default SBanks:====<br />
*Defines default primary weapons for each of the primary weapon banks<br />
*Syntax: '''''( "String" "String" )''''', names of the weapons<br />
<br />
<br />
====$SBank Capacity:====<br />
*Defines ammunition capacity of secondary weapon banks. In brackets, different weapon banks separated by commas.<br />
*Syntax: '''''( Integer, Integer )'''''<br />
<br />
<br />
====$Show Secondary Models:====<br />
{{Table3610|<br />
*Defines the use of weapon models for secondary weapons. In brackets, different weapon banks may have different definitions<br />
*Syntax: '''''( Boolean Boolean )'''''<br />
**Example: ''(YES YES)''}}<br />
<br />
<br />
===$Shields:===<br />
*Determines the shield strength<br />
*Syntax: '''''Float''''', total shield strength<br />
<br />
<br />
===$Shield Color:===<br />
*RGB value for shield color<br />
*Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
**Example: ''100, 100, 255''<br />
<br />
<br />
===$Power Output:===<br />
*The amount of energy available. The higher the output, the faster your weapons and shields recharge.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Shield Regeneration Rate:===<br />
{{Table3610|<br />
*Repair rates for shields at percent per second<br />
*Syntax: '''''Float''''', multiplier of total shield hitpoints recharged each second. ('''NOT A PERCENTAGE''', 0.02 equals 2% recharged per second)<br />
**Default: ''0.02''}}<br />
<br />
<br />
===$Support Shield Repair Rate:===<br />
{{Table3611|<br />
*Shield repair rate when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Regeneration Rate:===<br />
{{Table3610|<br />
*Regeneration rates for primary guns at percent per second<br />
*Syntax: '''''Float''''', multiplier of total gun energy recharged each second ('''NOT A PERCENTAGE''', 0.04 equals 4% recharged per second)<br />
**Default: ''0.04''}}<br />
<br />
<br />
===$Max Oclk Speed:===<br />
*Can also be '''$Max Overclock Speed:'''<br />
*Maximum velocity with all energy diverted to engines<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Max Weapon Eng:===<br />
*Can also be '''$Max Weapon Energy:'''<br />
*The maximum amount of energy you can store in your primary weapons bank.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Hitpoints:===<br />
*How much damage the ship can take<br />
*Syntax: '''''Float''''', hitpoints<br />
**Default: ''100''<br />
<br />
<br />
===$Hull Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for hull at percent per second<br />
*Syntax: '''''Float''''', multiplier of hitpoints repaired per second, '''NOT A PERCENTAGE''', 0.01 equals 1% recharged per second}}<br />
<br />
<br />
===$Support Hull Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for hull when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Subsystem Repair Rate:===<br />
{{Table3610|<br />
*Repair rates for sybsystems percent per second<br />
*Syntax: ''Value'', multiplier of total subsystem hitpoints repaired per second, 0.01 equals 1% of total hitpoints recharged per second}}<br />
<br />
<br />
===$Support Subsystem Repair Rate:===<br />
{{Table3611|<br />
*Repair rate for subsystems when docked to a support ship<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Armor Type===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines armor type used for the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Shield Armor Type:===<br />
{{Table3611|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the armor type used for shield of the ship<br />
*Syntax: '''''String''''', name of the armor as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Ships.tbl#Ships.tbl_flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the ship<br />
**Example: ( "fighter" "in tech database" )<br />
{{Table3610|<br />
*'''+noreplace'''<br />
**Can be used to force game to retain existing flags instead of reseting the ship flags before parsing in the new flags.}}<br />
<br />
<br />
===$AI Class:===<br />
*Default AI class<br />
*Syntax: '''''String''''', name of the AI class as defined in [[ai.tbl]]<br />
<br />
<br />
===$Afterburner:===<br />
*Defines if the ships has afterburner<br />
*Syntax: '''''Boolean''''', yes or no<br />
====+Aburn Max Vel:====<br />
*Syntax: '''''Vector''''', three '''floats''', x-axis, y-axis, z-axis, respectively, meters per second<br />
====+Aburn For accel:====<br />
*Defined only for the forward acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds<br />
{{Table3611|<br />
====+Aburn Max Reverse Vel:====<br />
*Defined only for the reverse acceleration, Set the top speed for Reverse Afterburner.<br />
*Syntax: '''''Float''''', seconds<br />
**NOTE: Requires [[Ships.tbl#.24Rear_Velocity:|$Rear Velocity:]] to be set in order to work.<br />
====+Aburn Rev accel:====<br />
*Defined only for the reverse acceleration. In same format as $Forward accel:<br />
*Syntax: '''''Float''''', seconds'''''}}<br />
====+Aburn Fuel:====<br />
*Amount of afterburner fuel the ship has<br />
*Syntax: '''''Float''''', fuel<br />
====+Aburn Burn Rate:====<br />
*Rate the fuel is consumed when afterburner is engaged (in units per seconds)<br />
*Syntax: '''''Float''''', fuel units per second<br />
====+Aburn Rec Rate:====<br />
*Rate the fuel is restored.<br />
*Syntax: '''''Float''''', fuel units per second<br />
{{Table3610|<br />
====$Trails:====<br />
*Allows afterburner trails to be used<br />
=====+Bitmap:=====<br />
*Texture used to draw the afterburner trail<br />
*Syntax: '''''String''''', filename<br />
=====+Width:=====<br />
*Width of afterburner trail at the beginning of it (ie. the thruster end)<br />
*Syntax: '''''Float''''', meters<br />
=====+Alpha:=====<br />
*Transparancy of the trail, value from 1 (non-transparent) to 0 (totally transparent)<br />
*Syntax: '''''Float'''''<br />
=====+Life:=====<br />
*How long the trail will last<br />
*Syntax: '''''Float''''', seconds}}<br />
{{Table3611|<br />
=====+Faded Out Sections:=====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Countermeasure Type:===<br />
{{Table3610|<br />
*Defines the weapon used as a countermeasure. Weapon does not have to be included in the countermeasure section of the weapons.tbl, but it has to have "countermeasure" flag in that case.<br />
*Syntax: '''''String''''', name of the weapon as defined in [[weapons.tbl]]}}<br />
<br />
<br />
===$Countermeasures:===<br />
*Number of countermeasures that can be loaded to the ship<br />
*Syntax: '''''Integer'''''<br />
<br />
<br />
===$Scan Time:===<br />
*Time it takes to scan the ship<br />
*Syntax: '''''Integer''''', milliseconds<br />
<br />
<br />
===$EngineSnd:===<br />
*Engine sound used for the ship with number referring to sounds.tbl<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
===$GlideStartSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when entering glide mode, instead of the default throttle down sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$GlideEndSnd:===<br />
{{Table3613|<br />
*Optional sound to be used when exiting glide mode, instead of the default throttle up sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CockpitEngineSnd===<br />
{{Table3613|<br />
*Optional sound to be used for looping engine sound heard in the cockpit.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$FullThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to full power.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ZeroThrottleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when setting throttle to zero power<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleUpSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when increasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$ThrottleDownSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when decreasing throttle power by 1/3<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the looping sound heard when the afterburner is active<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerEngageSnd===<br />
{{Table3613|<br />
*Optional optional sound to be used for the sound heard when the afterburner is engaged<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AfterburnerFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the activation of the afterburner failed<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileTrackingSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player tries to acquire a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a aspect seeking missile of the player has acquired a lock<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his primary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryCycleSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player cycles his secondary weapon<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$TargetAcquiredSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the player acquires a new target<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$PrimaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the primary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$SecondaryFireFailedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the secondary weapon fails to fire<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerLaunchWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is fired at the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileLockWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is locked onto the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$HeatSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a heat-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$AspectSeekerProximityWarningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when an aspect-seeker is in close proximity to the player<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$MissileEvadedSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when a missile has been evaded<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$CargoScanningSnd===<br />
{{Table3613|<br />
*Optional sound to be used for the sound heard when the cargo of an object is being scanned<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
}}<br />
<br />
===$Closeup_Pos:===<br />
*How the model will show at techroom. The position of the camera relative to the model in the tech room and the target box view<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively<br />
<br />
<br />
===$Closeup_Zoom:===<br />
*How the model will show at techroom. How far the camera's zoomed in, defines camera's FOV.<br />
*Syntax: '''''Float''''', radians<br />
<br />
<br />
===$Topdown Offset:===<br />
{{Table3610|<br />
*Specifies how high the camera is above the center point of a ship in topdown camera views, or 2D missions.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shield_Icon:===<br />
*This .ani file must be at data/hud and included to the hud.tbl.<br />
{{Table3610|<br />
*Reference to the hud.tbl is no longer needed.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Icon:===<br />
*The icon used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: ''Filename''<br />
<br />
<br />
===$Ship_Anim:===<br />
*The glowing green grid animation used in ship selection.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Ship_Overhead:===<br />
*The overhead view used in the weapons loadout.<br />
{{Table3610|<br />
*Ship model is used by default to generate the image.}}<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===$Score:===<br />
*Points awarded for destroying the ship<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===Customized Thruster Effects===<br />
{{Table3611|<br />
*Defines the texture of the modeled thruster effect cone<br />
*'''$Thruster Normal Flame:'''<br />
**Syntax: '''''String''''', filename<br />
*Defines the texture of the modeled thruster effect cone with afterburners lit<br />
*'''$Thruster Afterburner Flame:'''<br />
**Syntax: '''''String''''', filename}}<br />
{{Table3610|<br />
*'''Defines the primary thruster glow - the one visible only from behind'''<br />
**'''$Thruster Bitmap 1:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Normal:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 1a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Afterburner:''' under the '''$Thrustglows:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster01 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
*'''Defines the secondary glow type-effect for thrusters - the feathery trail like haze behind the main glow'''<br />
**'''$Thruster Bitmap 2:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Sec_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 2a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Sec_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster02 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster02 Length factor:'''<br />
***Defines the length multiplier for the trail type (secondary) glowpoint thrusters<br />
***Replaces the older '''$Thruster01 Length factor:'''<br />
***Syntax: '''''Float'''''<br />
*'''Defines the tertiary glow type-effect for thrusters - the one visible from all directions'''<br />
**NOTE: The rotation of this effect is jittered, which can look quite bad with certain types of effects.<br />
**'''$Thruster Bitmap 3:'''<br />
***Defines the effect for the standard drives. Overrides [[Species_defs.tbl]] line '''+Ter_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap 3a:'''<br />
***Defines the effect for the afterburner. Overrides [[Species_defs.tbl]] line '''+Ter_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster03 Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''}}<br />
{{Table3613|<br />
*'''Defines the distortion effect for thrusters'''<br />
**'''$Thruster Bitmap Distortion:'''<br />
***Defines name of normal thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Normal:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Bitmap Distortion a:'''<br />
***Defines name of afterburner thruster distortion envelope animation. Overrides [[Species_defs.tbl]] line '''+Dist_Afterburn:''' under the '''$ThrustAnims:''' entry.<br />
***Syntax: '''''String''''', filename<br />
**'''$Thruster Distortion Radius factor:'''<br />
***Defines the radius multiplier<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion Length factor:'''<br />
***Defines the length multiplier for the thruster distortion<br />
***Syntax: '''''Float'''''<br />
**'''$Thruster Distortion:'''<br />
***Defines whether the distortion effect is rendered for this ship.<br />
***Syntax: '''''Bool'''''}}<br />
<br />
===$Thruster Particles:===<br />
{{Table3610|<br />
*Defines the alternative particle thruster<br />
*'''$Thruster Particle Bitmap:''' OR '''$Afterburner Particle Bitmap:'''<br />
**Name of the animation used for particle thrusters, up to '''three''' can be defined for both '''standard''' thrusters and '''afterburners''' (6 in total). Afterburner particles require at least 1 existing particle thruster entry.<br />
**Syntax: '''''String''''', filename<br />
*'''$Min Radius:'''<br />
**Defines the minimum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Max Radius:'''<br />
**Defines the maximum radius of new particles<br />
**Syntax: '''''Float''''', meters<br />
*'''$Min Created:'''<br />
**Defines the minimum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Max Created:'''<br />
**Defines the maximum amount of particles created<br />
**Syntax: '''''Float'''''<br />
*'''$Variance:'''<br />
**Value that describes the randomness of particle generation, values close to 0 will cause particles to spew very close to the thrusters normal while values close 1 will cause some particles to be spewed even to opposite direction<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Stealth:===<br />
*Defines: Ship behaves as a stealth-ship: non-targettable, and not on radar.<br />
{{Table3610|<br />
This field is [[deprecated]], and mods using 3.6.8 and above should use the "stealth" flag.}}<br />
<br />
<br />
===$Max Decals:===<br />
{{Table3610|<br />
*Defines: Maximum number of weapon decals on a ship<br />
*Syntax: '''''Integer''''', maximum number of decals on ship<br />
**Default: 50 for anything below cruiser size, 100 for anything below superdestroyer/installation size, 300 for anything above destroyer size, 10 for everything else.}}<br />
{{Table3613|<br />
*Feature disabled. Parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Trail:===<br />
*These are the origins of the white contrails that appear in the nebula missions. Ship may have multiple trails.<br />
{{Table3611|<br />
*'''+ClearAll'''<br />
**Clears all existing trail data from the ship}}<br />
====+Offset:====<br />
*The position of the contrail's head<br />
*Syntax: '''''Vector''''', three '''floats''', x, y and z values respectively, relative to the center point of the model<br />
====+Start Width:====<br />
*The width of the contrail's head<br />
*Syntax: '''''Float''''', meters<br />
====+End Width:====<br />
*The width of the contrail's tail<br />
*Syntax: '''''Float''''', meters<br />
====+Start Alpha:====<br />
*The opacity of the contrail's head<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+End Alpha:====<br />
*The opacity of the contrail's tail<br />
*Syntax: '''''Float''''', value between 0 and 1<br />
====+Max Life:====<br />
*How long the contrail remains<br />
*Syntax: '''''Float'''''', seconds<br />
====+Spew Time:====<br />
*Syntax: '''''Integer'''''<br />
====+Bitmap:====<br />
*The image to use for the contrail.<br />
*Syntax: '''''String''''', filename<br />
{{Table3611|<br />
====+Faded Out Sections:====<br />
*Defines the number of the trail sections from the leading edge that are gradually faded away.}}<br />
<br />
<br />
===$Thruster:===<br />
{{Table3610|<br />
*Defines maneuvering thrusters. Ship may have multiple $Thrusters defined.<br />
*'''+Index:'''<br />
**Defines the index number of the manoeuvring thruster defined in this entry<br />
**Syntax: '''''Integer'''''<br />
*'''+Used For:'''<br />
**Defines the maneuver that triggers the maneuvering thruster<br />
**List of maneuvers: Bank right, Bank left, Pitch up, Pitch down, Roll right, Roll left, Slide right, Slide left, Slide up, Slide down, Forward, Reverse<br />
**Syntax: '''''String, String'''''<br />
*'''+Position:'''<br />
**Defines thruster location<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), position from the ships center point, x, y, z axis respectively<br />
*'''+Normal:'''<br />
**Defines the direction where the thruster points to<br />
**Syntax: ( '''''Float''''' '''''Float''''' '''''Float''''' ), direction of the thrusters normal, x, y, z axis respectively<br />
*'''+Texture:'''<br />
**Defines the graphic that will be used for trail, rendered like beams<br />
**Syntax: '''''String''''', filename<br />
*'''+Radius:'''<br />
**Defines the radius of cylinder<br />
**Syntax: '''''Float''''', meters<br />
*'''+Length:'''<br />
**Defines the length of thruster trail<br />
**Syntax: '''''Float''''', meters<br />
*'''+StartSnd:'''<br />
**Defines the sound played when the thruster is started<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+LoopSnd:'''<br />
**Defines the sound played when the thruster is continuously used<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+StopSnd:'''<br />
**Defines the sound played when the thruster is shutting down<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$Radar Image 2D:===<br />
{{Table3611|<br />
*Defines the bitmap used to represent the ship on the radar screen.<br />
*Syntax: '''''Filename'''''<br />
*'''$Radar Image Size:'''<br />
**Defines the size of the bitmap on the radar screen (length of the longer dimension)<br />
**Syntax: '''''Integer'''''<br />
*'''$3D Radar Blip Size Multiplier:'''<br />
**Defines the multiplier used for blip size on the 3D radar.<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Ship IFF Colors:===<br />
{{Table3611|<br />
*Defines the alternate color for the ship. Affects both the targeting brackets as well as the radar screen.<br />
*'''+Seen By:'''<br />
**Defines the IFF actually viewing the object (most often 'Friendly')<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+When IFF Is:'''<br />
**Defines the IFF which the ship has to have for its color to be altered.<br />
**Syntax: '''''String''''', name of an IFF class.<br />
*'''+As Color:'''<br />
**Defines the new color of the ship's targeting brackets and radar blip<br />
**Syntax: '''''Integer list''''', red, blue and green respectively}}<br />
<br />
<br />
===$Target Priority Groups:===<br />
{{Table3611|<br />
*Defines into which target priority groups the ship belongs to<br />
*Syntax: '''''String list''''', names of the targeting groups<br />
*'''+Override'''<br />
**Overrides the ships existing groupings}}<br />
<br />
<br />
===$EMP Resistance Modifier:===<br />
{{Table3611|<br />
*Defines the ships EMP resistance modifier:<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Damage Draw Limit:===<br />
{{Table3611|<br />
*Defines the maximum percentage of hitpoints ship has before piercing effects are enabled<br />
*Syntax: '''''Float'''''<br />
**Example: '''10''', sets the limit to 10%}}<br />
<br />
===$Path Metadata:===<br />
{{Table3613|<br />
*Allows definition of extra metadata<br />
*Syntax: '''''String''''', name of the path as defined in the ship POF file.<br />
**Example: '''$Path Metadata: $Bay01'''<br />
====+departure rvec:====<br />
When using this path to depart via fighterbay, the departing ship will rotate to align itself with this rvec (so the right side of the ship is pointing in this direction). Only affects paths used to depart via fighterbay.<br />
}}<br />
<br />
===[[Subsystem]]<nowiki>:</nowiki>===<br />
:''Main article: [[Subsystem]]''<br />
<br />
==Ships.tbl flags==<br />
<br />
<br />
==="no_collide"===<br />
*Defines ship as non-collideable, ie. everything will go through it<br />
<br />
<br />
==="player_ship"===<br />
*Makes it possible for the player to fly the ship<br />
<br />
==="default_player_ship"===<br />
*Makes this ship as a default part of the loadout options in FRED<br />
<br />
<br />
----<br />
<br />
===Ship Type===<br />
*Flags in this section are used to define the type of the ship<br />
*Use only one '''ship type''' flag per table entry<br />
{{Table3610|<br />
*New ship types can be defined in [[objecttypes.tbl]]}}<br />
<br />
<br />
===="repair_rearm"====<br />
*Alternate name for "support"<br />
<br />
<br />
===="support"====<br />
*Defines the ship as repair and rearm vessel and sets AI behaviour accordingly<br />
*Only one such vessel can be defined per species<br />
<br />
<br />
===="cargo"====<br />
*Defines ship as a cargo crate and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="fighter"====<br />
*Defines ship as a fighter and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="bomber"====<br />
*Defines ship as a bomber and also sets the AI behaviour<br />
*In FS1/FS2 only ships flagged as fighters or bombers can accept the full set of player orders<br />
<br />
<br />
===="transport"====<br />
*Defines ship as a transport and also sets the AI behaviour<br />
<br />
<br />
===="freighter"====<br />
*Defines ship as a freighter and also sets the AI behaviour<br />
<br />
<br />
===="capital"====<br />
*Defines ship as a capital ship and also sets the AI behaviour<br />
<br />
<br />
===="supercap"====<br />
*Alternate name for "super cap"<br />
<br />
<br />
===="super cap"====<br />
*Defines ship as a super capital ship and also sets the AI behaviour<br />
<br />
<br />
===="drydock"====<br />
*Defines ship as a drydock and also sets the AI behaviour<br />
<br />
<br />
===="cruiser"====<br />
*Defines ship as a cruiser and also sets the AI behaviour<br />
<br />
<br />
===="navbuoy"====<br />
*Defines ship as a navbuoy and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="sentrygun"====<br />
*Alternate name for "sentry gun"<br />
<br />
<br />
===="sentry gun"====<br />
*Defines ship as a sentrygun and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="escapepod"====<br />
*Alternate name for "escape pod"<br />
<br />
<br />
===="escape pod"====<br />
*Defines ship as a escapepod and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="corvette"====<br />
*Defines ship as a corvette and also sets the AI behaviour<br />
<br />
<br />
===="gas miner"====<br />
*Defines ship as a gas miner and also sets the AI behaviour<br />
<br />
<br />
===="awacs"====<br />
*Defines ship as a AWACS and also sets the AI behaviour<br />
<br />
<br />
===="knossos"====<br />
*Alternate name for the "Knossos device"<br />
<br />
<br />
===="knossos device"====<br />
*Defines ship as a Knossos and also sets the AI behaviour<br />
*In FS1/FS2 ships that are marked with this flag cannot accept any player orders<br />
<br />
<br />
===="stealth"====<br />
{{Table3610|<br />
*Defines ship as a stealth-ship: non-targettable, and not on radar.}}<br />
<br />
<br />
===="no type"====<br />
*Does ???<br />
<br />
----<br />
<br />
<br />
==="ship copy"===<br />
*Defines the ship as a copy of another model<br />
<br />
<br />
==="in tech database"===<br />
*Includes ships description to the tech database from the beginning of the campaign<br />
<br />
<br />
==="in tech database multi"===<br />
*Includes the ship to multiplayer tech database<br />
<br />
<br />
==="dont collide invisible"===<br />
*Defines invisible textures as non-collideable (For example, a hangar entrace)<br />
<br />
<br />
==="big damage"===<br />
*Limits the damage made to the ship by non-huge weapons.<br />
<br />
<br />
==="no_fred"===<br />
*Ship will not appear in FRED.<br />
<br />
<br />
==="ballistic primaries"===<br />
{{Table3610|<br />
*Enables the ship to use ballistic primaries<br />
*No longer needed, game handles it automatically}}<br />
<br />
<br />
==="flash"===<br />
{{Table3610|<br />
*Makes a flash when a ship dies}}<br />
<br />
<br />
==="surface shields"===<br />
{{Table3610|<br />
*Shots that impact the hull are applied to shields, regardless of if the ship has a shield mesh.}}<br />
<br />
<br />
==="show ship"===<br />
{{Table3610|<br />
*Enable rendering the ship even when the ship is a player ship<br />
*Will result in the player's ship model being rendered, when in cockpit mode}}<br />
<br />
<br />
==="generate icon"===<br />
{{Table3610|<br />
*Creates a HUD icon from the model itself}}<br />
<br />
<br />
==="gun convergence"===<br />
{{Table3610|<br />
*Enables ship to use the firing points' normals in defining the direction where the weapon fire}}<br />
<br />
<br />
==="no thruster geometry noise"===<br />
{{Table3611|<br />
*Prevents noise from being added to the thruster effects geometry}}<br />
<br />
==="intrinsic no shields"===<br />
{{Table3611|<br />
*Defines that ship has no shields by default, to allow mixing and matching shielded and unshielded craft in loadout}}<br />
<br />
==="no primary linking"===<br />
{{Table3611|<br />
*Bypasses linked primaries while cycling. Does not block SEXPs/scripts that might be able to lock them, only the act of cycling for players and determing whether to link or not for AI.}}<br />
<br />
==="no pain flash"===<br />
{{Table3613|<br />
*Prevents pain flash from being shown when ship is hit}}<br />
<br />
==="dynamic primary linking"===<br />
{{Table37|<br />
*Allows this ship use the primary firepoint cycling code. With a key bind added in 3.6.13, you can toggle between various factorizations of primary firepoint groupings on a per-primary bank basis. So a 4-firepoint bank could cycle through all four firepoints firing together (1x4), each firepoint firing individually (4x1, all 4 firing over the timespan of the bank cooldown, so no change in damage over time, or DPS, occurs from retail behavior), or firing in pairs (2x2).}}<br />
<br />
==="no ets"===<br />
{{Table37|<br />
Sets ship class to have no ETS}}<br />
<br />
==="no lighting"===<br />
{{Table3613|<br />
Ship will not receive lighting calculations}}<br />
<br />
==Player Ship Precedence==<br />
*Syntax: ( '''''"String" "String"''''')<br />
===Example===<br />
<br />
<pre><br />
$Player Ship Precedence: (<br />
"GTF Ulysses"<br />
"GTF Hercules"<br />
"GTB Medusa"<br />
"GTB Ursa" )<br />
</pre><br />
<br />
<br />
==Sample==<br />
<br />
<pre><br />
#Default Player Ship<br />
<br />
$Name: GTF Ulysses<br />
<br />
#End<br />
<br />
<br />
#Engine Wash Info<br />
<br />
$Name: Default<br />
$Angle: 10.0<br />
$Radius Mult: 1.2<br />
$Length: 400<br />
$Intensity: 1.0<br />
<br />
#End<br />
<br />
<br />
#Ship Classes<br />
$Name: GTF Ulysses<br />
$Short name: TFight<br />
$Species: Terran<br />
+Type: XSTR("Space Superiority", -1)<br />
+Maneuverability: XSTR("Excellent", -1)<br />
+Armor: XSTR("Light", -1<br />
+Manufacturer: XSTR("Triton / Mekhu", -1)<br />
+Description: XSTR( " ", -1)<br />
$end_multi_text<br />
+Tech Description: XSTR("Descriptive text", -1)<br />
$end_multi_text<br />
+Length: 16 m<br />
+Gun Mounts: 4<br />
+Missile Banks: 1<br />
$POF File: fighter01.pof<br />
$Detail Distance: (0, 80, 300, 900)<br />
$ND: 42 42 244<br />
$Show Damage: YES<br />
$Density: 1<br />
$Damp: 0.1<br />
$Rotdamp: 0.35<br />
$Max Velocity: 0.0, 0.0, 70.0<br />
$Rotation Time: 3.0, 2.6, 5.0<br />
$Rear Velocity: 0.0<br />
$Forward Accel: 2.0<br />
$Forward Decel: 1.5<br />
$Slide Accel: 0.0<br />
$Slide Decel: 0.0<br />
$Expl Inner Rad: 25.0<br />
$Expl Outer Rad: 55.0<br />
$Expl Damage: 15.0<br />
$Expl Blast: 1000.0<br />
$Expl Propagates: NO<br />
$Shockwave Speed: 0.0<br />
$Allowed PBanks: ( "Subach HL-7" "Prometheus R")<br />
$Allowed Dogfight PBanks: ( "Subach HL-D" "Prometheus D" )<br />
$Default PBanks: ( "Subach HL-7" "Prometheus R" )<br />
$Allowed SBanks: ( "Rockeye" "Tempest" )<br />
$Allowed Dogfight SBanks: ( "Tempest D" "Hornet D" )<br />
$Default SBanks: ( "Harpoon" )<br />
$SBank Capacity: ( 40 )<br />
$Shields: 380<br />
$Shield Color: 100 100 255<br />
$Power Output: 2.0<br />
$Max Oclk Speed: 94.0<br />
$Max Weapon Eng: 80.0<br />
$Hitpoints: 180<br />
$Flags: ( "player_ship"<br />
"default_player_ship"<br />
"fighter"<br />
"in tech database")<br />
$AI Class: Captain<br />
$Afterburner: YES<br />
+Aburn Max Vel: 0.0, 0.0, 150.0<br />
+Aburn For accel: 0.7<br />
+Aburn Fuel: 300.0<br />
+Aburn Burn Rate: 50.0<br />
+Aburn Rec Rate: 25.0<br />
$Countermeasures: 25<br />
$Scan Time: 2000<br />
$EngineSnd: 128<br />
$Closeup_Pos: 0.0, 0.0, -22<br />
$Closeup_Zoom: 0.5<br />
$Shield_Icon: shield-f01<br />
$Ship_Icon: iconfighter01<br />
$Ship_Anim: ssfighter01<br />
$Ship_Overhead: loadfighter01<br />
$Score: 8<br />
$Trail:<br />
+Offset: -7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Trail:<br />
+Offset: 7.75 -2.8 0.75<br />
+Start Width: 0.25<br />
+End Width: 0.05<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.0<br />
+Spew Time: 60<br />
+Bitmap: Contrail01<br />
$Subsystem: communication, 10, 0<br />
$Subsystem: navigation, 10, 0<br />
$Subsystem: weapons, 20, 0<br />
$Subsystem: sensors, 10, 0<br />
$Subsystem: engines, 35, 0<br />
<br />
#End<br />
<br />
$Player Ship Precedence: (<br />
"GTF Ulysses")<br />
</pre><br />
<br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Weapons.tbl&diff=36650
Weapons.tbl
2011-09-01T05:38:30Z
<p>Cyborg17: /* $BeamInfo: */</p>
<hr />
<div>{{Fileversion|7237}}<br />
<br />
<br />
==Special Case Weapons==<br />
===Beam Cannons===<br />
*'''REQUIRES: "beam" flag'''<br />
*'''REQUIRES: [[weapons.tbl#$BeamInfo:|$BeamInfo:]]'''<br />
===Flak Guns===<br />
*'''REQUIRE: "flak" and "particle spew" flags'''<br />
*Must have inner and outer radius defined to have any effect.<br />
*Does not use any model or weapon effect though model must be defined, usually Hornet.pof. Instead it uses [[Weapons.tbl#$Pspew:|particle spew]]. Trails can also be added.<br />
<br />
==Weapons Table==<br />
<br />
==General Format==<br />
*The weapons table consist of several sections<br />
*All sections beginning with <nowiki>#</nowiki> need <nowiki>#</nowiki>'''End''' before the next section.<br />
**<nowiki>#</nowiki>'''Primary Weapons'''<br />
***Defines all '''standard primaries weapons''' as well as '''beam cannons''' and '''flak cannons'''.<br />
**<nowiki>#</nowiki>'''Secondary Weapons'''<br />
***Defines all '''secondary weapons'''.<br />
**<nowiki>#</nowiki>'''Beam Weapons'''<br />
***I haven't got any ideas for this one.<br />
**<nowiki>#</nowiki>'''[[Weapons.tbl#Countermeasures|Countermeasures]]'''<br />
***Defines the used countermeasure.<br />
**'''$Player Weapon Precedence'''<br />
***Player Weapon Precedence is used in weapon selection when a default specified by the mission designer is not available to the player. The next weapon on the list is used in its place (assuming that weapon is allowed for the player).<br />
<br />
==Core Table==<br />
<br />
<br />
===$Name:===<br />
*This is the name of the weapon. If it's going to be used by the player, keep it under 12 characters so it doesn't spill over the HUD box.<br>Two special characters can be used in the name: '''#''' and '''@'''. Their usage details are the very same than inside the [[Ships.tbl#.24Name:_2|$Name field from Ships.tbl]].<br />
*Syntax: '''''String'''''<br />
<br />
<br />
====+nocreate====<br />
{{Table3610|<br />
*In [[Modular Tables]] name can be followed by line '''+nocreate''' that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.}}<br />
<br />
<br />
===$Alt Name:===<br />
{{Table3611|<br />
*An alternative name that can be referenced instead of $Name:<br />
*Syntax: '''''String'''''}}<br />
<br />
<br />
===$Subtype:===<br />
{{Table3610| }}<br />
<br />
<br />
===+Title:===<br />
*This is the title of the weapon in the Weapons loadout screen. Only needed for player allowed weapons. Title may be anything. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Description:===<br />
*This is the description you see in the weapons loadout screen. Again, these aren't based on any hard numbers, just approximations. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''Standard Issue<br />
''Level 3 Hull Damage<br />
''Level 2 Shield Damage''", -1)<br />
$end_multi_text<br />
</pre><br />
<br />
<br />
===+Tech Title:===<br />
*Title of the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: XSTR('''''"String"''''', -1)<br />
<br />
<br />
===+Tech Anim:===<br />
*Animation used for the weapon in the Tech room. Only needed for player allowed weapons.<br />
*Syntax: '''''String''''', animation filename<br />
**Example: ''Tech_Subach_HL-7''<br />
<br />
<br />
===+Tech Description:===<br />
*Descriptive text you see in the tech room. Only needed for player allowed weapons. Numerical value is a reference to translations in [[Tstrings.tbl]]<br />
<br />
'''Example'''<br />
<br />
<pre><br />
XSTR(<br />
"''The Subach-Innes HL-7...''", 3245)<br />
$end_multi_text<br />
</pre><br />
<br />
<br />
===$Tech Model:===<br />
{{Table3610|<br />
*Defines model used in wing loadout screen and in Tech Room for the weapon.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
===$Selection Effect:===<br />
{{Table3613|<br />
*Defines which selection effect to use when the -weapon_choice_3d commandline flag is enabled or no ani can be found for the selected weapon.<br />
*Syntax: '''''String''''', either "FS1", or "Off". This defaults to the FS2 effect.<br />
}}<br />
<br />
===$HUD Image:===<br />
{{Table3610|<br />
*Defines the picture used to represent the weapon in HUD loadout list<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Model File:===<br />
*Filename of the model file (.pof) at data/models folder. Additional fields beginning from '''''@Laser Bitmap:''''' and ending to '''''@Laser Tail Radius:''''' are not needed if a model has been defined for the weapon.<br />
*Standard primaries and beam cannons do not use specific models so for those the name is 'none'.<br />
*Flak weapons and secondaries use models, though the exact model is not important with the flak weapons.<br />
*Syntax: '''''String.pof''''' or ''none'', model filename<br />
**Example: ''none''<br />
<br />
<br />
===$POF target LOD:===<br />
{{Table3610|<br />
*Defines the LOD (Level-Of-Detail) of the model used in HUD targeting view<br />
*Syntax: '''''Integer'''''}}<br />
<br />
===$Detail Distance:===<br />
{{Table3613|<br />
*Defines the distance where the change between different Levels-Of-Details (LODs) occurs<br />
*Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers are (from left to right): 1/8, 1/4, 1, 4, 8<br />
*Optional. If not defined the game uses the formula ((radius * 20.0 + 20.0) * LOD)<br />
*Syntax: '''''(Detail Distances)''''' , list of '''integers''' (same amount as LODs), distances from the model in meters<br />
**Example: ''(0, 80, 300, 900)''}}<br />
<br />
===$External Model File:===<br />
{{Table3610|<br />
*Defines the models shown on the gunpoint, used with Bobb's external-visible-weapon code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Submodel Rotation Speed:===<br />
{{Table3610|<br />
*Defines the rotation speed of the external weapon model<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Submodel Rotation Acceleration:===<br />
{{Table3610|<br />
*Defines the rotation acceleration of the external weapon model<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===@Laser Bitmap:===<br />
**The graphic file to be used as the weapon effect if no model is defined.<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===@Laser Glow:===<br />
**The graphic file that determines the glow of the weapon effect if no model is defined. The color in which this gets drawn is determined by @Laser Color and @Laser Color2.<br />
**Syntax: '''''String''''', filename<br />
<br />
<br />
===@Laser Color:===<br />
**The color of the glow effect when you fire the weapon.<br />
**Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
***Example: ''250, 0, 0''<br />
<br />
<br />
===@Laser Color2:===<br />
**The color of the glow effect at the weapon's maximum range.<br />
**Syntax: '''''Color''''', red, green, blue respectively, value from 0 to 255<br />
***Example: ''0, 0, 250''<br />
<br />
<br />
===@Laser Length:===<br />
**Length of the weapon effect.<br />
**Syntax: '''''Float''''', meters<br />
<br />
<br />
===@Laser Head Radius:===<br />
**Width of the head of the weapon effect.<br />
**Syntax: '''''Float''''', meters<br />
<br />
<br />
===@Laser Tail Radius:===<br />
**Width of the tail of the weapon effect.<br />
**Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Mass:===<br />
*How much of a kinetic effect this weapon has on its target. 3+ gives you the Flail effect. Set it to 10 and you can knock cruisers around.<br />
*This is somehow multiplied by the speed. ie ''$Mass: 3'' and ''$Velocity: 200'' has much weaker kinetic effect than ''$Mass: 3'' and ''$Velocity: 1000''. Also $Mass is used to calculate intensity of "shudder" effect if flagged.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
<br />
===$Velocity:===<br />
*How fast the weapon travels. Is also used to define the weapon range, '''''$Velocity x $Lifetime = range'''''.<br />
*Beams travel instantly so this field has effect only on weapon range and AI beam targeting with certain beam types. $Velocity of beam also applies to its kinetic effect along with $Mass.<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Fire Wait:===<br />
*Time in seconds between firings<br />
*Note that Fire wait will be reset to 1 if it is set over 5 for non turreted primary weapons <br />
*Syntax: '''''Float''''', seconds<br />
<br />
===$Damage:===<br />
*Base damage this weapon does. The actual damage is this number multiplied by the factors below.<br />
*Base damage this beam does is continuous damage, damage is 5.5 times the damage value per second. The actual damage is this number multiplied by one of the factors below.<br />
*Syntax: '''''Float''''', damage<br />
<br />
<br />
===$Damage Type:===<br />
{{Table3610|<br />
*Defines the damage type that this weapon uses. All armor effects are applied after shield and have no function against shockwave or subsystem damage. '''REQUIRES ADDITIONAL TABLE'''.<br />
*Syntax: '''''String''''', name of the damage type as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Arm time:===<br />
{{Table3610|<br />
*Defines the time after the launch that is required before the weapon comes hot<br />
*If the time has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Arm distance:===<br />
{{Table3610|<br />
*Defines the distance from the firing ships that is required before the weapon comes hot<br />
*If the distance has not been reached when the weapon detonates the Dinky explosion is used<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Arm radius:===<br />
{{Table3610|<br />
*Defines the distance from the target where the weapon will arm itself<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Range:===<br />
{{Table3610|<br />
*Defines the distance from the point in space that the weapon was launched where the weapon will detonate<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Detonation Radius:===<br />
{{Table3610|<br />
*Defines the distance between the target center point point and the weapon which detonates the weapon.<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Shockwave damage:===<br />
{{Table3610|<br />
*Override for the damage caused by shockwaves<br />
*Syntax: '''''Float''''', damage}}<br />
<br />
<br />
===$Shockwave Damage Type:===<br />
{{Table3610|<br />
*'''REQUIRES ADDITIONAL TABLE'''. Defines the damage type used for the weapon explosions<br />
*Syntax: '''''String''''', name as defined in [[armor.tbl]]}}<br />
<br />
<br />
===$Blast Force:===<br />
*The intensity of the kinetic blast effect when ship is within the outer radius of the explosion. Comes in effect only if inner and outer radius are defined.<br />
*Syntax: '''''Float''''', blast effect<br />
<br />
===$Inner Radius:===<br />
*Radius at which the full explosion damage is done. Marks the line where damage attenuation begins.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Outer Radius:===<br />
*Maximum radius at which any damage is done<br />
*Also defines the size of the shockwave (if shockwave speed is > 0)<br />
*Syntax: '''''Float''''', meters<br />
<br />
===$Shockwave Speed:===<br />
*Speed shockwave expands at. Zero means no shockwave and that damage is applied immediately<br />
*Syntax: '''''Float''''', meters per second<br />
<br />
<br />
===$Shockwave rotation:===<br />
{{Table3610|<br />
*Defines how the 3D shockwave is rotated.<br />
*Syntax: '''''Angle''''', three values, pitch, bank, heading respectively, in degrees}}<br />
<br />
<br />
===$Shockwave model:===<br />
{{Table3610|<br />
*Defines the model file (.pof) used as a shockwave for the 3D shockwaves.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Shockwave name:===<br />
{{Table3610|<br />
*Defines the name of the animation used for the 2D shockwave<br />
*Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Dinky shockwave:===<br />
{{Table3610|<br />
*Dinky shockwave are used if the weapon is shot down before arming or if the conditions marked at '''Arm time''' and '''Arm distance''' are not reached before impact<br />
*It uses exactly same entries as the standard shockwaves<br />
*'''''+Shockwave damage:'''''<br />
*'''''+Shockwave damage type:'''''<br />
*'''''+Blast Force:'''''<br />
*'''''+Inner Radius:'''''<br />
*'''''+Outer Radius:'''''<br />
*'''''+Shockwave Speed:'''''<br />
*'''''+Shockwave Rotation:'''''<br />
*'''''+Shockwave Model:'''''<br />
*'''''+Shockwave Name:'''''}}<br />
<br />
<br />
===$Armor Factor:===<br />
*Multiplier for the damage done to armor<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Shield Factor:===<br />
*Multiplier for the damage done to shields<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Subsystem Factor:===<br />
*Multiplier for the damage done to subsystems<br />
*Syntax: '''''Float''''', damage multiplier<br />
<br />
<br />
===$Lifetime Min:===<br />
{{Table3610|<br />
*Defines the minimum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime Max:===<br />
{{Table3610|<br />
*Defines the maximum lifetime of the weapon<br />
*Syntax: '''''Float''''', seconds}}<br />
<br />
<br />
===$Lifetime:===<br />
*Time before the standard primaries fizzle out and secondaries self destruct. Multiply this by the speed to get the range. If values are too low (below framerate) then the collision detection and graphic effects may suffer.<br />
*This field has no effect for the beams apart from weapon range and AI beam targeting with certain beam types<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Energy Consumed:===<br />
*The amount of energy each bolt drains firing ship. Has no effect on turretted weapons.<br />
*Syntax: '''''Float'''''<br />
<br />
<br />
===$Cargo Size:===<br />
*Cargo size, is not used with non-ballistic primaries.<br />
*Amount of missiles available = Bank capacity / Cargo Size.<br />
*Syntax: '''''Float'''''<br />
<br />
===$Homing:===<br />
*Only for secondaries. You can't have homing primaries. If this is set to YES with primaries, then the bolts turn to face their target but keep moving in the same direction. If the field is set to NO then following fields are not required in the table.<br />
*Defines if the missiles in question is homing<br />
*Syntax: '''''Boolean''''', yes or no<br />
*'''+Type:'''<br />
**Defines the homing method<br />
**Syntax: '''''String''''', ''ASPECT'' or ''HEAT''<br />
{{Table3610| An additional option, ''JAVELIN'', has been added. This behaves like an aspect missile but automatically only locks onto the engines of a target, and only if the engines are in sight.}}<br />
*'''+Turn Time:'''<br />
**Defines how well missile maneuvers. Number of seconds it takes the missile to do a 360 degree circle<br />
**Syntax: '''''Float''''', seconds<br />
*'''+View Cone:'''<br />
**'''Heat-seeking missiles only''', this is then number of degrees the missile sees. Value / 2 gives the angle from the missile's centerline.<br />
**Syntax: '''''Float''''', degrees<br />
{{Table3610| Has been enabled also to aspect seekers as an option.}}<br />
<br />
*'''+Min Lock Time:'''<br />
**'''For aspect/javelin missiles only''', the minimum number of seconds to gain target lock<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Lock Pixels/Sec:'''<br />
**'''For aspect/javelin missiles only''', pixels the aspect triangle moves per second while attempting lock-on<br />
**Syntax: '''''Integer''''', pixels per second<br />
*'''+Catch-up Pixels/Sec:'''<br />
**'''For aspect/javelin missiles only''', pixels moved per second while attempting to catch up to the target<br />
**Syntax: '''''Integer''''', pixels per second<br />
*'''+Catch-up Penalty:'''<br />
**'''For aspect/javelin missiles only''', extra pixels to move after catching up ????<br />
**Syntax: '''''Integer''''', pixels<br />
{{Table3610|<br />
*'''+Seeker Strength:'''<br />
**Defines the seeking ability of the homing system. Default of heat seekers is 3 and for aspect seekers 2. Spoofing change is defined as '''cm type effectiveness'''/'''seeker strength'''.<br />
**Syntax: '''''Float''''', seeker strength}}<br />
{{Table3611|<br />
*'''+Target Lead Scaler:'''<br />
**Defines the type of pursuit course the missile tries to obtain.<br />
**Values < 0 give lag pursuit, values ~ 0 give pure pursuit, values > 0 give lead pursuit.<br />
**Syntax: '''''Float''''', default for heat seekers: 0, default for aspect or javelin seekers: 1.}}<br />
<br />
<br />
===$Swarm:===<br />
*The number of missiles to fire per volley if it's a swarm missile<br />
*Can be issued to Standard primaries also. Causes single part turrets to malfunction but causes multi part turrets to fire only on their barrel line. Can be used for 'burst fire weapons'. Does not work with player weapons.<br />
*Is incompatible with "Corkscrew" option.<br />
*Syntax: '''''Integer''''', number of shots in a swarm<br />
{{Table3610|<br />
*'''+SwarmWait:'''<br />
**Defines the time between weapons fired in a swarm<br />
**Syntax: '''''Float''''', seconds<br />
***Default: 0.150}}<br />
<br />
<br />
===$Free Flight Time:===<br />
{{Table3610|<br />
*Defines the free flight time of homing weapons. During this time weapon flies at 1/4 of its velocity + firing ships velocity in a straight line.<br />
*Syntax: '''''Float''''', seconds<br />
**Default: 0.25}}<br />
<br />
===$Free Flight Speed:===<br />
{{Table3613|<br />
*Defines the speed that the weapon will be travelling at during the free flight segment (see above).<br />
*Syntax: '''''Float''''', Multiplier for the actual speed, minimum 0.01.<br />
**Default: 0.25}}<br />
<br />
===$PreLaunchSnd:===<br />
{{Table3613|<br />
*Defines the one-shot sound effect to play at the beginning of a firing stream. Currently only has an effect on primary weapons.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
**Default: No Sound}}<br />
<br />
===+PreLaunchSnd Min Interval:===<br />
{{Table3613|<br />
*Defines Minimum interval between when the player stops firing and the next time the pre-launch sound can play, as a limiter in case the player is pumping the trigger.<br />
*Syntax: '''''Integer''''', Minimum delay in milliseconds between the end of the previous firing sequence and the next time the pre-launch sound effect will be played.<br />
**Default: 0 (play pre-launch sound at the beginning of every firing sequence, if present)}}<br />
<br />
===$LaunchSnd:===<br />
*Corresponding sound effect when the weapon is launched.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$ImpactSnd:===<br />
*Sound the weapon makes when it hits a hull.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Disarmed ImpactSnd:===<br />
{{Table3610|<br />
*Sound the weapon makes when it hits a hull before being armed.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]}}<br />
<br />
<br />
===$FlyBySnd:===<br />
*The sound this weapon makes if it narrowly misses you. -1 is no sound.<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]], usually -1<br />
<br />
<br />
===$Model:===<br />
{{Table3610|<br />
*Defines used model file. Included for compatibility with countermeasures as they have been merged with weapons in the code.<br />
*Syntax: '''''String.pof''''', model filename}}<br />
<br />
<br />
===$Rearm Rate:===<br />
*Defines the rate the weapons are loaded to the ship<br />
*Syntax: '''''Float''''', missiles loaded per second<br />
<br />
<br />
===+Weapon Range:===<br />
*Defines the range to the target where the weapons under AI will start firing.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===+Weapon Min Range:===<br />
{{Table3610|<br />
*Defines the minimum range to the target where the weapons under AI will still fire.<br />
*Implemented before FS_Open 3.6.5<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Flags:===<br />
*See [[Weapons.tbl#Weapons.tbl_Flags|below]]<br />
*Syntax: '''''( "String" "String" )''''', names of the flags assigned to the weapon<br />
**Example: ( "Player allowed" "in tech database" )<br />
<br />
{{Table3610|<br />
*Can be followed by '''+override''' option in order to reset the weapon flags before parsing in the new ones<br />
*Using this option will erase all '''homing'''-related flags as well as '''swarm''', '''variable lead''', '''trail''', '''TAG''', and '''transparent''' settings in addition to the listed flags. All these should be set again - if they are required - when this option is used.<br />
<br />
**Syntax: '''''+override'''''}}<br />
<br />
<br />
===$Trail:===<br />
*This is used if you want your weapon to have a trail. Trail is often used only with secondaries though it works with standard primaries as well.<br />
*'''+Start Width:'''<br />
**How wide the head of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+End Width:'''<br />
**How wide the tail of the trail is.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Start Alpha:'''<br />
**The opacity of the trail head.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+End Alpha:'''<br />
**The opacity of the trail tail.<br />
**Syntax: '''''Float''''', value between 0 and 1<br />
*'''+Max Life:'''<br />
**How long the trail lasts.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Bitmap:'''<br />
**The graphic file to use for the trail.<br />
**Syntax: '''''String''''', filename<br />
{{Table3611|<br />
*'''+Faded Out Sections:'''<br />
**Defines the number of the trail sections (counting from the leading edge) which are gradually faded out.<br />
**Syntax: '''''Integer''''', number of trail sections}}<br />
<br />
<br />
===$Icon:===<br />
*Loadout icon used in the weapons selection screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Anim:===<br />
*Green grid animation used on the weapons screen.<br />
*Syntax: '''''String''''', filename<br />
<br />
<br />
===$Collide Ship:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Collide Weapon:===<br />
{{Table3610|<br />
*Has been replaced with '''#Conditional Hooks''', see [[Scripting.tbl]]}}<br />
<br />
<br />
===$Impact Explosion:===<br />
*Impact explosion used. Must be defined in weapon_expl.tbl,<br />
*Syntax: '''''String''''', filename or ''none''<br />
<br />
<br />
===$Impact Explosion Radius:===<br />
*Radius of the defined impact explosion.<br />
*Syntax: '''''Float''''', meters<br />
<br />
<br />
===$Dinky impact explosion:===<br />
{{Table3610|<br />
*Same as Impact explosion but for Dinky (not armed) explosions<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Dinky impact explosion radius:===<br />
{{Table3610|<br />
*Same as Impact explosion radius but for Dinky explosions<br />
*Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Piercing Impact Explosion:===<br />
{{Table3611|<br />
*Defines the effect used for events when weapon pierces the target<br />
*Syntax: '''''String''''', filename or ''none''}}<br />
<br />
<br />
===$Piercing Impact Radius:===<br />
{{Table3611|<br />
*Defines the base radius of the effect used for piercing weapon impacts<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles piercing the target<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Splash Velocity:===<br />
{{Table3611|<br />
*Defines the base velocity for the particles splashing from the target (secondary piercing effects<br />
*Negative value causes the second batch or particles to splash to opposite direction<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Variance:===<br />
{{Table3611|<br />
*Defines the variance added to the particles<br />
*Values near 0 cause very little variance and values close to 1 cause extreme dispersal.<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the lifetime of the effect for single frame effects<br />
*For multiple frame effects the lifetime is the lifetime of the animation used<br />
*Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Piercing Impact Life:===<br />
{{Table3611|<br />
*Defines the number of particles released per impact<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Piercing Impact Draw Modifier:===<br />
{{Table3611|<br />
*Defines the multiplier applied to the ships piercing effect limit percentage<br />
*Syntax: '''''Float'''''}}<br />
*Option removed in 3.6.12. Use [[armor.tbl]] to finetune piercing effects.<br />
<br />
===$Muzzleflash:===<br />
*Normally only with flak cannons.<br />
*Defines the muzzle flash the weapon uses<br />
*Syntax: '''''String''''', muzzleflash name, as defined in [[mflash.tbl]]<br />
<br />
<br />
===$EMP Intensity:===<br />
**If it has an EMP effect, how deeply it scrambles your electronics<br />
**Syntax: '''''Float'''''<br />
<br />
<br />
===$EMP Time:===<br />
**Duration of the EMP effect<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$Leech Weapon:===<br />
**The amount of weapon energy to drain with each hit<br />
**Syntax: '''''Float'''''<br />
<br />
<br />
===$Leech Afterburner:===<br />
**The amount of afterburner fuel to drain with each hit<br />
**Syntax: '''''Float'''''<br />
<br />
<br />
===$Corkscrew:===<br />
{{Table3610|<br />
*Allow corkscrew parameters to be defined<br />
*'''+Num Fired:'''<br />
**Defines the number of weapons fired in sequence. Same as the standard swarm entry but for corkscrew missiles<br />
**Syntax: '''''Integer''''', number of missiles<br />
*'''+Radius:'''<br />
**Defines the radius used in the corkscrew motion<br />
**Syntax: '''''Float''''', meters<br />
*'''+Fire Delay:'''<br />
**Defines the delay between missile firings<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Counter rotate:'''<br />
**Defines if every other missile rotates to a different direction (clockwise / anticlockwise)<br />
**Syntax: '''''Boolean''''', ''0'' or ''1'', no or yes<br />
*'''+Twist:'''<br />
**Defines the speed of rotation movement on the radius of corkscrew motion.<br />
**Syntax: '''''Float''''', radians per second}}<br />
<br />
<br />
===$Electronics:===<br />
{{Table3610|<br />
*Defines the weapons effect against electronics. Requires [[weapons.tbl#"Electronics"|"electronics"]] flag. '''+New Style:''' and '''+Old Style:''' options are mutually exclusive.<br />
*'''+New Style:'''<br />
**Defines that the electronics use the new style which enables more options.<br />
*'''+Old Style:'''<br />
**Defines that the electronics use the old style. The old style was the way the D-Missile worked in Descent: FreeSpace.<br />
*'''+Intensity:'''<br />
**May only be used with '''+New Style:''' electronics. '''''Has been deprecated'''''.<br />
**Syntax: '''''Float'''''<br />
*'''+Lifetime:'''<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Engine Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for engine subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Weapon Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for non-beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Turret Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for beam turrets.<br />
**Syntax: '''''Float'''''<br />
*'''+Sensors Multiplier:'''<br />
**May only be used with '''+New Style:''' electronics. Defines how much longer the disruption effect lasts for sensor subsystems.<br />
**Syntax: '''''Float'''''<br />
*'''+Randomness Time:'''<br />
**Defines the randomness of duration target suffers from the electronics hit. A random number between 0 and this time will be added or subtracted from the disruption time.<br />
**Syntax: '''''Integer''''', milliseconds<br />
<br />
* Without any electronics parameters, a weapon with the "electronics" flag will default to the ''Old Style'' mode with a lifetime of 6000 milliseconds and a randomness of 4000 milliseconds. Thus any ship that gets hit can get disrupted for anywhere between 2 to 10 seconds.<br />
<br />
<br />
*''WARNING: Putting +Old Style doesn't seem to work either.<br />
To have a working electronics weapon just put the electronics flag in the weapon and make sure it has a big shockwave radius and a shockwave speed of 0.''<br />
}}<br />
<br />
===$Spawn Angle:===<br />
{{Table3610|<br />
*Defines the cone (with an angle) where the spawned weapons appear. ''Value'' gives the angle from the missiles centerline. The maximum possible angle between any two child weapons would be ''Value*2''.<br />
*Spawn angle can be defined as many times as the carrier missile has child weapons defined for it (up to 5).<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Local SSM:===<br />
{{Table3610|<br />
*Defines the local SSM (Subspace Missile). In effect missile moves via subspace to a position close to the target and starts homing.<br />
*Weapon must be '''''aspect seeking missile''''' and must have '''''[[Weapons.tbl#"local ssm"|local ssm]]''''' flag.<br />
*'''+Warpout Delay:'''<br />
**Defines the time between the missile launch and the subspace jump.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warpin Delay:'''<br />
**Defines the time missile stays in subspace before exiting.<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Stage 5 Velocity:'''<br />
**Defines the velocity of the missile after the subspace jump.<br />
**Syntax: '''''Float''''', meters per second<br />
*'''+Warpin Radius:'''<br />
**Defines how far from the SSM will appear from the outer radius of the target.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Lock Range:'''<br />
**Defines the maximum range where SSM can achieve target lock<br />
**Syntax: '''''Float''''', meters}}<br />
<br />
<br />
===$Countermeasure:===<br />
{{Table3610|<br />
*Defines the countermeasure effectiveness and radius<br />
*'''+Heat Effectiveness:'''<br />
**Defines the countermeasures effectiveness against heat seeking missiles<br />
**Syntax: '''''Float''''', cm effectiveness<br />
***Default: 1<br />
*'''+Aspect Effectiveness:'''<br />
**Defines the countermeasures effectiveness against aspect seeking missiles<br />
**Syntax: '''''Float''''', cm effectiveness<br />
***Default: 1<br />
*'''+Effective Radius:'''<br />
**Defines the countermeasures effective radius<br />
**Syntax: '''''Float''''', meters<br />
***Default: 300}}<br />
<br />
<br />
===$BeamInfo:===<br />
*'''+Type:'''<br />
**Defines the type of beam in question. Beam types: 0 is a standard non-slashing type beam. 1 is a slashing type beam. 2 is a targeting beam that is used to trigger SSMs. 3 is a beam type that fires pulses in anti-fighter role and acts like type 0 beam in other roles. 4 is a beam that is restricted to what is directly in front of it, along turrets firepoints normal.<br />
**Syntax: '''''Integer''''',, only values from 0 to 4 are legal<br />
*'''+Life:'''<br />
**How long it lasts once the beam is actually firing.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Warmup:'''<br />
**Warmup time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Warmdown:'''<br />
**Warmdown time<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Radius:'''<br />
**Muzzle glow radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PCount:'''<br />
**Particles spewed every interval. ??<br />
**Syntax: '''''Integer'''''<br />
*'''+PRadius:'''<br />
**Particle radius<br />
**Syntax: '''''Float''''', meters<br />
*'''+PAngle:'''<br />
**Defines the random "cone" where the particles are generated<br />
**Syntax: '''''Float''''', angle of the cone<br />
*'''+PAni:'''<br />
**Animation used to represent the particles<br />
**Syntax: '''''String''''', filename<br />
*'''+Miss Factor:'''<br />
**The higher the numbers, the more likely that this beam will miss. One value for every difficulty level<br />
**Syntax: '''''Miss Factor''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5<br />
{{Table3613|<br />
*'''IFF specific miss factors'''<br />
**Identical to the preceding entry but IFF specific. Replace the <IFF> with the name of the IFF from [[iff_defs.tbl]]<br />
**Syntax: '''''+<IFF> Miss Factor:''''', five '''floats''', very easy, easy, moderate, hard, insane, respectively.<br />
***Example: 0.5 0.975 1.35 1.875 2.5}}<br />
*'''+BeamSound:'''<br />
**Corresponding looping sound effect when the beam is firing.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmupSound:'''<br />
**Corresponding sound effect when the beam is beam warmed up.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+WarmdownSound:'''<br />
**Corresponding sound effect when the beam is warming down.<br />
**Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
*'''+Muzzleglow:'''<br />
**Defines the bitmap used to create the muzzle glow<br />
**Syntax: '''''String''''', filename<br />
*'''+Shots:'''<br />
**Defines into how may invidual shots the type 3 (AAA) beams are divided. Note total firing is the same as the +Life:<br />
**Syntax: '''''Integer'''''<br />
*'''+ShrinkFactor:'''<br />
**What percentage of lifetime where beam starts shrinking (0.1 == 10% life left)<br />
**Syntax: '''''Float'''''<br />
*'''+ShrinkPct:'''<br />
**What percentage of max width we subtract per second<br />
**Syntax: '''''Float'''''<br />
{{Table3610|<br />
*'''+Range:'''<br />
**Defines the maximum range where the beam still has any effect.<br />
**Syntax: '''''Float''''', meters<br />
*'''+Attenuation:'''<br />
**Defines the point where the damage caused by the beam starts to attenuate. At maximum range damage is zero.<br />
**Syntax: '''''Float''''', from 0 - firing point to 1 - no effect<br />
***Default: 1}}<br />
{{Table3611|<br />
*'''+BeamWidth:'''<br />
**Defines the width of the beam for collision test purposes instead of using widest beam section.<br />
**Syntax: '''''Float''''<br />
*'''+Beam Flash Effect:'''<br />
**Defines the additional impact flash effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Flash Radius:'''<br />
**Defines the radius for the additional impact flash effect.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect:'''<br />
**Defines the beam piercing (bursting flames) effect for the beam.<br />
**Syntax: '''''String''''', filename<br />
*'''+Beam Piercing Radius:'''<br />
**Defines the average radius used for the beam piercing effects.<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Velocity:'''<br />
**Defines the base velocity for the piercing effects<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Splash Effect Velocity:'''<br />
**Defines the base velocity for the secondary piercing effects<br />
**Negative velocity causes the particles to move to opposite direction<br />
**Syntax: '''''Float'''''<br />
*'''+Beam Piercing Effect Variance:'''<br />
**Defines the variances of the particles from the main path<br />
**Values close to 0 cause minimum variance, higher values cause higher variances<br />
**Syntax: '''''Float'''''}}<br />
<br />
*'''$Section:'''<br />
**Beams are made up of up to five sections layered atop one another to create the effect. Each section has its own parameters.<br />
{{Table3610|<br />
:*'''+Index:'''<br />
:**Field used to define with [[Modular Tables]] the beam section which is edited.<br />
:**Only needed when editing beams that already exist in other tables.<br />
:**Syntax: '''''Integer''''', index number legal values are from 0 to 5<br />
:*'''+remove'''<br />
:**Removes the set beam section.<br />
:*'''+nocreate'''<br />
:**Does not create new section for the beam}}<br />
<br />
:*'''+Width:'''<br />
:**Width of the section<br />
:**Syntax: '''''Float''''', meters<br />
:*'''+Texture:'''<br />
:**Texture for the section<br />
:**Syntax: '''''String''''', filename<br />
:*'''+RGBA Inner:'''<br />
:**Defines the color and transparency of the center of the section<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 255 255 255 255<br />
:*'''+RGBA Outer:'''<br />
:**Defines the color and transparency of the edges of the section<br />
:**Syntax: '''''Color''''', red, green, blue, alpha, respectively, value from 0 to 255<br />
:***Example: 150 150 150 10<br />
:*'''+Flicker:'''<br />
:**Defines how much the section flickers<br />
:**Syntax: '''''Float''''', value from 0 to 1<br />
:*'''+Zadd:'''<br />
:**Defines the 'thickness' of the section. The higher the Zadd, the closer the section appears to be.<br />
:**Syntax: '''''Float'''''<br />
{{Table3610|<br />
:*'''+Tile Factor:'''<br />
:**Defines the beam texture tiling factor. Second number defines the tiling type. Type 0 tiles the graphic in the beam as many times as defined by the 1st number. Type 1 uses the 1st value as the lenght of the tile.<br />
:**Syntax: '''''Float''''', '''''Integer'''''<br />
:*'''+Translation:'''<br />
:**Defines the speed of translation of the beam, a positive value moves from the impact point to the firing point, while a negative value moves away from the firing point towards the impact point. Measured in tiles per second, where the tile count is defined in the "+Tile Factor:" field above.<br />
:**Syntax: '''''Float'''''}}<br />
<br />
===$Pspew:===<br />
{{Table3610|<br />
*Defines a particle spew effect for the given weapon<br />
}}{{Table3613|<br />
*'''+Index:'''<br />
**indicates which spewer to add/edit/delete. may be 0-3. used for xmt compatibility.<br />
**Syntax: '''''Integer'''''<br />
*'''+Remove'''<br />
**removes spewer at +Index: (requires +index:)<br />
*'''+Type:'''<br />
**type of particle spew<br />
**Syntax: '''''String'', Default, Helix, Sparkler, Ring, or Plume '''<br />
}}{{Table3610|<br />
*'''+Count:'''<br />
**Defines how many particles are spawn when they are ready to be created (at each +Time: interval)<br />
**Syntax: '''''Integer'''''<br />
*'''+Time:'''<br />
**Defines the time in milliseconds between next particle(s) spewed<br />
**Syntax: '''''Integer''''', milliseconds<br />
*'''+Vel:'''<br />
**Defines the created particles velocity as percentage of the weapons velocity<br />
**Syntax: '''''Float'''''<br />
*'''+Radius:'''<br />
**Defines the size of the created particles<br />
**Syntax: '''''Float''''', meters<br />
*'''+Life:'''<br />
**Defines how long the particles last.<br />
**Syntax: '''''Float''''', seconds<br />
*'''+Scale:'''<br />
**Defines the particle spread. Small value will make particles group together<br />
**typically controls how big the effect is or how fast it moves away from the weapon path on a perpendicular (or sometimes arbitrary) axis. <br />
**helical spews and rings use this value to control how fast the particle helix moves away from the central axis.<br />
**sparklers use this to control how fast particles move away from the spawn point, in any direction<br />
**plumes use this to set the diameter of the disk across which particles are spawned<br />
**Syntax: '''''Float'''''<br />
}}{{Table3613|<br />
*'''+Z Scale:'''<br />
**for sparklers, allows you to elongate the effect to surround other effects, like lasers. essentially a length multiplier<br />
**for plume, it multiplies against +scale to set the plume to spread or converge, zero would be full convergence, 1 would be straight flight, and bigger numbers would cause particles to diverge from the disk.<br />
**Syntax: '''''Float'''''<br />
*'''+Rotation Rate:'''<br />
**used only by helical spews, controls how many rotations per second the helix makes<br />
**Syntax: '''''Float'', may be negative, useful for setting up 2 spews that spin in opposite directions'''<br />
*'''+Offset:'''<br />
**position of effect with regards to the weapon center<br />
**Syntax: '''''Vector'''''<br />
*'''+Initial Velocity:'''<br />
**to indicate both direction and speed of particle effects regards to the weapon velocity and +scale:<br />
**Syntax: '''''Vector'''''<br />
}}{{Table3610|<br />
*'''+Bitmap:<br />
**Defines the animation used to create the particle spew effect<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Tag:===<br />
*Allowed for secondary weapons<br />
{{Table3610|<br />
*Allowed for primary weapons and secondary weapons}}<br />
<br />
*Sets this weapon as a TAG missile, level 1, 2, or 3. The second number is the duration in seconds.<br />
*TAG Level 1 will illuminate hidden targets such as stealth fighters or ships normally obscured by nebula conditions.<br />
*TAG Level 2 illiminates targets much like TAG Level 1, but turrets will prefer to shoot at them over other ships.<br />
*TAG Level 3 has no effect in retail.<br />
{{Table3610|<br />
*TAG Level 3 allows the weapon to trigger [[Weapon.tbl#$SSM:|SSMs]]}}<br />
<br />
*Syntax: '''''Integer''''' '''''Float''''', TAG level and seconds respectively<br />
<br />
===$SSM:===<br />
{{Table3610|<br />
*Defines the weapons SSM index number.<br />
*Requires [[Weapons.tbl#$Tag:|TAG level 3]] or a targeting beam.<br />
*Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$FOF:===<br />
{{Table3610|<br />
*Defines the field of fire for the weapon. Causes weapon to fire into a firing cone instead of direct firing line thus causing light inaccuracy<br />
*Syntax: '''''Float''''', degrees}}<br />
<br />
<br />
===$Shots:===<br />
{{Table3610|<br />
*Defines the number of shots every time the weapon is fired.<br />
*Works only for primary weapons<br />
*Syntax: '''''Integer''''', number of shots}}<br />
<br />
<br />
===$decal:===<br />
{{Table3610|<br />
*Defines impact decals if they are in use<br />
*'''+texture:'''<br />
**Defines the texture used for impact decals (can use '''''-burn''''' and '''''-glow''''' textures)<br />
**Syntax: '''''String''''', filename<br />
*'''+backface texture:'''<br />
**Defines ???<br />
**Syntax: '''''String''''', filename<br />
*'''+radius:'''<br />
**Defines the size of the impact decals on target<br />
**Syntax: '''''Float''''', meters<br />
*'''+burn time:'''<br />
**Defines the time the '''''-burn''''' texture appears on the target<br />
**Syntax: '''''Integer''''', milliseconds}}<br />
{{Table3613|<br />
*Feature removed - table parsing retained to maintain compatibility}}<br />
<br />
<br />
===$Transparent:===<br />
{{Table3610|<br />
*Defines weapon effect as transparent. Enables optional fields for 'alpha animations'<br />
*'''+Alpha:'''<br />
**Defines the strenght of the alpha (transparency). And also the maximum value for the alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Min:'''<br />
**Defines the minimum alpha value for alpha cycle option<br />
**Syntax: '''''Float''''', from 0 to 1<br />
*'''+Alpha Cycle:'''<br />
**Defines the change in alpha per frame, between '''Alpha''' and '''Alpha Min''' values<br />
**Syntax: '''''Float'''''}}<br />
<br />
<br />
===$Weapon Hitpoints:===<br />
{{Table3611|<br />
*Defines the amount of hitpoints a weapon has.<br />
*Weapons with '''"bomb"''' flag have 50 hitpoints by default<br />
*Giving weapon hitpoints makes it possible for the weapon to be shot down or be destroyed by EMP.<br />
**Syntax: '''''Integer'''''<br />
}}<br />
<br />
<br />
===$Burst Shots:===<br />
{{Table3611|<br />
*Defines the number of shots in a burst<br />
*Shots in a burst use shorter ( '''$Burst Delay:''' ) delay than usually<br />
**Syntax: '''''Integer'''''}}<br />
<br />
===$Burst Delay:===<br />
{{Table3611|<br />
*Defines the time in milliseconds between the shots in a burst<br />
**Syntax: '''''Integer'''''}}<br />
<br />
<br />
===$Burst Flags:===<br />
{{Table3611|<br />
*Defines the flags used to define the burst firing behaviour<br />
**Syntax: ( '''''String''''' '''''String''''' ), list of flags<br />
**Available burst flags:<br />
***'''"fast firing"''', acts as if '''same turret cooldown''' flag would be used between the shots in the burst.<br />
***'''"random length"''', makes AI to fire burst of random length (from 1 to burst shots).}}<br />
<br />
<br />
===$Thruster Flame Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the modeled thruster of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Effect:===<br />
{{Table3611|<br />
*Defines the filename of the effect used on the glow type effect of the missile<br />
**Syntax: '''''String''''', filename}}<br />
<br />
<br />
===$Thruster Glow Radius Factor:===<br />
{{Table3611|<br />
*Defines the radius multiplier for the thruster's glow type effect<br />
**Syntax: '''''Float'''''}}<br />
<br />
===$Substitute:===<br />
{{Table3613|<br />
*Defines a pattern of ammo to substitute for primary or secondary weapons. '''$substitute:''' can be repeated any number of times. ''+frequency'' and ''+index'' will grow the pattern array anytime something does not fit so any whole number will be accepted.<br />
**Syntax: '''''Weapon Name'''''<br />
*'''+frequency:'''<br />
*Substitute '''Weapon Name''' every ''frequency'' shots. '''Mutually exclusive with ''+index'''''<br />
**Syntax: '''''Positive Integer'''''<br />
*'''+offset:'''<br />
*Shift frequency pattern ''offset'' shots. '''Must be used with ''+frequency'''''<br />
**Syntax: '''''Positive Integer'''''<br />
*'''+index:'''<br />
*Substitute the '''Weapon Name''' at ''index'' in the shot pattern. '''Mutually exclusive with ''+frequency'''''<br />
**Syntax: '''''Positive Integer'''''<br />
}}<br />
<br />
==Weapons.tbl Flags==<br />
<br />
<br />
==="Electronics"===<br />
*Will seize up the weapons and engines systems of any ship for a short period of time.<br />
<br />
<br />
==="Spawn ''Name'',''Value''"===<br />
*Will spawn the specified number of defined missiles upon detonation.<br />
{{Table3610|<br />
*Multiple spawn types can be defined for a single 'carrier' weapon up to maximum of 5 different weapons}}<br />
<br />
==="Remote Detonate"===<br />
*Can be triggered remotely via a second press on the trigger<br />
<br />
<br />
==="Big Ship"===<br />
*These weapons cannot be mounted on small ships like fighters, bombers, sentry guns etc.<br />
<br />
<br />
==="Huge"===<br />
*Allows this weapon to do the final 10% damage to a ship with the "Big Damage" flag. Also the AI will not try to hit fighters with it.<br />
<br />
==="Supercap"===<br />
*Allows this weapon to do the final 75% damage to a ship with the "supercap" flag.<br />
<br />
<br />
==="Bomber+"===<br />
*The AI will prefer to use this weapon against bombers<br />
<br />
<br />
==="child"===<br />
*Cannot be set as a weapon on any ship, but is instead a child of a weapon. Usually defined with "Spawn ''Name'',''Value''"<br />
<br />
<br />
==="Bomb"===<br />
*Makes this weapon targetable with the B key, and the AI prefers to use it against large ships<br />
<br />
<br />
==="No Dumbfire"===<br />
*Missile will not fire without a lock<br />
<br />
<br />
==="in tech database"===<br />
*Has the weapon in the tech database at the start of the campaign<br />
<br />
<br />
==="Player allowed"===<br />
*Allows this weapon as a player weapon.<br />
{{Table3610|<br />
*'''EXTREMELY IMPORTANT NOTE:'''<br />
**Whenever you plan to use a weapon as a player one in your campaign or missions, '''USE THIS FLAG'''.<br />
**Not using it can cause problems within fs_open and it's a BAD MOD DESIGN.<br />
**In the future, fs_open will maybe be able to avoid these problems but, nevertheless, it's still a BAD DESIGN.<br />
**As another possible example: be careful to update "retail" tables if you plan to use Shivan weapons in player fighters.}}<br />
<br />
==="Particle Spew"===<br />
*Makes the weapon projectile spew out particles<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Pspew:|Particle Spew parameters]]}}<br />
<br />
<br />
==="EMP"===<br />
*This weapon will have an EMP effect on any ship within the blast radius<br />
*Can be defined with [[Weapons.tbl#$EMP_Intensity:|EMP Intensity]] and [[Weapons.tbl#$EMP_Time:|EMP Time]]<br />
<br />
<br />
==="Esuck"===<br />
*Drains the target's energy banks<br />
*Can be defined with [[Weapons.tbl#$Leech_Weapon:|Leech Weapon]] and [[Weapons.tbl#$Leech_Afterburner:|Leech Afterburner]]<br />
<br />
<br />
==="Flak"===<br />
*Makes this weapon a [[weapons.tbl#Flak_Guns|flak gun]]<br />
<br />
<br />
==="Corkscrew"===<br />
*Makes this weapon spiral AND swarm 4.<br />
{{Table3610|<br />
*Can be defined with [[Weapons.tbl#$Corkscrew:|Corkscrew parameters]]}}<br />
<br />
<br />
==="Shudder"===<br />
*Makes your ship shudder while you're firing the weapon<br />
<br />
<br />
==="lockarm"===<br />
*Requires a target lock in order to arm its warhead. In other words weapon causes less damage if it hits the target without target lock.<br />
<br />
<br />
==="beam"===<br />
*Makes this weapon a [[weapons.tbl#Beam Cannons|beam cannon]]<br />
<br />
<br />
==="stream"===<br />
* Does nothing<br />
<br />
==="puncture"===<br />
*Reduces hull damage by 75%<br />
The AI will prefer these weapons for anti-subsystem use<br />
<br />
==="countermeasure"===<br />
{{Table3610|<br />
*Defines the weapon as a countermeasure}}<br />
<br />
<br />
==="Ballistic"===<br />
{{Table3610|<br />
*Defines the weapon as a ballistic weapon that needs ammunition.<br />
*Make sure you define the size and reload rate for ballistic weapons}}<br />
<br />
<br />
==="pierce shields"===<br />
{{Table3610|<br />
*Causes weapons to penetrate shield without causing damage to it.}}<br />
<br />
<br />
==="no pierce shields"===<br />
{{Table3610|<br />
*Prevents weapons (beams) from piercing shields causing shields to be damaged by weapons first.}}<br />
<br />
<br />
==="local ssm"===<br />
{{Table3610| }}<br />
<br />
<br />
==="tagged only"===<br />
{{Table3610|<br />
*Weapon can only be fired at tagged targets}}<br />
<br />
<br />
==="beam no whack"===<br />
{{Table3610|<br />
*Disables beam whacking (push). Practically same as setting beam mass to zero.}}<br />
<br />
<br />
==="cycle"===<br />
{{Table3610|<br />
*Causes weapon to alternate between firing points}}<br />
<br />
<br />
==="small only"===<br />
{{Table3610|<br />
*Causes AI to use the weapon only on small targets (fighters, bombers etc.)}}<br />
<br />
<br />
==="same turret cooldown"===<br />
{{Table3610|<br />
*Forces the turrets to fire on the designated rate of fire on all difficulty levels and all AI levels}}<br />
<br />
<br />
==="apply no light"===<br />
{{Table3610|<br />
*Prevents light from being applied to the weapon model.}}<br />
<br />
==="training"===<br />
{{Table3610|<br />
*Sets weapon to be of training weapon type. ?}}<br />
<br />
==="smart spawn"===<br />
{{Table3611|<br />
*Forces turret fired spawn weapon of this type to be fired like normal weapons.}}<br />
<br />
==="inherit parent target"===<br />
{{Table3611|<br />
*Sets spawned 'child' weapons to use parent weapon's target.}}<br />
<br />
==="no emp kill"===<br />
{{Table3611|<br />
*Defines the weapon (with hitpoints) to be immune to automatic EMP destruction.}}<br />
<br />
==="untargeted heat seeker"===<br />
{{Table3611|<br />
*Defines the weapon as a heatseeker type missile which acquires its target by itself.}}<br />
<br />
==="no radius doubling"===<br />
{{Table3611|<br />
*Prevents weapon radius from being doubled when doing collision test. Makes bombs harder to intercept.}}<br />
<br />
==="no subsystem homing"===<br />
{{Table3611|<br />
*Prevents weapon from acquiring a subsystem as its target. Missile homing points are spread over the target ship.}}<br />
<br />
==="no lifeleft penalty"===<br />
{{Table3611|<br />
*Prevents weapon lifetime from being penalized if the angle to the target is too big.}}<br />
<br />
==="can be targeted"===<br />
{{Table3611|<br />
*Allows weapon to be targeted by player. Does not influence AI}}<br />
<br />
==="show on radar"===<br />
{{Table3611|<br />
*Allows weapon to be visible on the radar}}<br />
<br />
==="show friendly on radar"===<br />
{{Table3611|<br />
*Allows friendly, otherwise visible to radar weapon, to be visible on player radar}}<br />
<br />
==="capital+"===<br />
{{Table3613|<br />
*Tells AI to use this weapon only on capital ships}}<br />
<br />
==="chain external model fps"===<br />
{{Table3613|<br />
*Tells game to keep switching external model firingpoints when firing}}<br />
<br />
==="external model launcher"===<br />
{{Table3613|<br />
*Tells game that the external model is a launcher so that it would be kept static without loading motion}}<br />
<br />
==="takes blast damage"===<br />
{{Table3613|<br />
*Weapon takes damage from weapon blasts}}<br />
<br />
==="takes shockwave damage"===<br />
{{Table3613|<br />
*Weapon takes damage from shockwaves}}<br />
<br />
==Countermeasures==<br />
*Usually not altered. Only one can exist<br />
{{Table3610|<br />
*More than one can exist}}<br />
<br />
<br />
===$Name:===<br />
*Name of the countermeasure<br />
*Syntax: '''''String''''', name<br />
<br />
<br />
===$Velocity:===<br />
*Defines the speed of the countermeasure, relative to the ship.<br />
*Syntax: '''''Float''''', meter per second<br />
<br />
===$Fire Wait:===<br />
*Definies the minumum time between the countermeasure launches<br />
*Syntax: '''''Float''''', seconds<br />
<br />
<br />
===Lifetime===<br />
*Countermeasure's life time is defined between with minimum and maximum lifetime<br />
*'''$Lifetime Min:'''<br />
**Syntax: '''''Float''''', seconds<br />
*'''$Lifetime Max:'''<br />
**Syntax: '''''Float''''', seconds<br />
<br />
<br />
===$LaunchSnd:===<br />
*Defines the sound for the countermeasure launch<br />
*Syntax: '''''Integer''''' or '''''String''''', name or identification number of the sound as defined in [[sounds.tbl]]<br />
<br />
<br />
===$Model:===<br />
*Defines the used model file (.pof)<br />
*Syntax: '''''String.pof''''', model filename<br />
<br />
<br />
==Player Weapon Precedence==<br />
*First the primary weapons are defined, from most powerful to least powerful, and then the same for secondaries<br />
*Syntax: ( '''''"String" "String"'''''), names of the weapons<br />
*Example:<br />
<br />
<pre><br />
$Player Weapon Precedence: (<br />
"UD-8 Kayser"<br />
"Prometheus R"<br />
"Subach HL-7"<br />
"Harpoon"<br />
"Tempest"<br />
"Rockeye" )<br />
</pre><br />
<br />
==Sample==<br />
<br />
<pre><br />
#Primary Weapons<br />
<br />
$Name: @Subach HL-7<br />
+Title: XSTR("GTW Subach HL-7", 3243)<br />
+Description:<br />
XSTR( "Standard Issue<br />
Level 3 Hull Damage<br />
Level 2 Shield Damage", 3244)<br />
$end_multi_text<br />
+Tech Title: XSTR("Subach HL-7", 146)<br />
+Tech Anim: Tech_Subach_HL-7<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: none<br />
@Laser Bitmap: newglo9<br />
@Laser Glow: 2_laserglow03<br />
@Laser Color: 250, 0, 0<br />
@Laser Color2: 0, 0, 250<br />
@Laser Length: 10.0<br />
@Laser Head Radius: 0.90<br />
@Laser Tail Radius: 0.90<br />
$Mass: 0.2<br />
$Velocity: 450.0<br />
$Fire Wait: 0.2<br />
$Damage: 15<br />
$Armor Factor: 0.9<br />
$Shield Factor: 0.7<br />
$Subsystem Factor: 0.3<br />
$Lifetime: 2.0<br />
$Energy Consumed: 0.20<br />
$Cargo Size: 0.0<br />
$Homing: NO<br />
$LaunchSnd: 76<br />
$ImpactSnd: 85<br />
$Flags: ( "in tech database"<br />
"player allowed"<br />
"stream")<br />
$Icon: iconSD4<br />
$Anim: SD4<br />
$Impact Explosion: none<br />
<br />
#End<br />
<br />
<br />
#Secondary Weapons<br />
<br />
$Name: EMP Adv.<br />
+Title: XSTR("GTM-14 EMP Adv.", 3396)<br />
+Description:<br />
XSTR( "Advanced Missile<br />
Electromagnetic Pulse Weapon<br />
General Purpose Suppression", 3397)<br />
$end_multi_text<br />
+Tech Title: XSTR("GTM-14 EM Pulse Adv.", 3398)<br />
+Tech Anim: Tech_EMP<br />
+Tech Description:<br />
XSTR(<br />
"Descriptive text...", -1)<br />
$end_multi_text<br />
$Model File: EMPulse2.pof<br />
$Mass: 15.0<br />
$Velocity: 275.0<br />
$Fire Wait: 2.0<br />
$Damage: 45<br />
$Blast Force: 20.0<br />
$Inner Radius: 80.0<br />
$Outer Radius: 300.0<br />
$Shockwave Speed: 120.0<br />
$Armor Factor: 1.0<br />
$Shield Factor: 0.8<br />
$Subsystem Factor: 0.5<br />
$Lifetime: 5.0<br />
$Energy Consumed: 0.0<br />
$Cargo Size: 4.0<br />
$Homing: YES<br />
+Type: ASPECT<br />
+Turn Time: 1.0<br />
+Min Lock Time: 2.0<br />
+Lock Pixels/Sec: 70<br />
+Catch-up Pixels/Sec: 100<br />
+Catch-up Penalty: 30<br />
$LaunchSnd: 118<br />
$ImpactSnd: 88<br />
$FlyBySnd: -1<br />
$Rearm Rate: 2.0<br />
$Flags: ( "player allowed"<br />
"EMP")<br />
$Trail:<br />
+Start Width: 0.25<br />
+End Width: 0.75<br />
+Start Alpha: 1.0<br />
+End Alpha: 0.0<br />
+Max Life: 1.5<br />
+Bitmap: MissileTrail04<br />
$Icon: iconEMPulse<br />
$Anim: ecm<br />
$Impact Explosion: ExpMissileHit1<br />
$Impact Explosion Radius: 10.0<br />
$EMP Intensity: 375.0<br />
$EMP Time: 20.0<br />
<br />
#End<br />
<br />
$Player Weapon Precedence: (<br />
"Subach HL-7"<br />
"EMP Adv." )<br />
</pre><br />
<br />
[[Category:Tables]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Messages&diff=36263
Messages
2011-08-12T21:19:42Z
<p>Cyborg17: /* send-message-list */</p>
<hr />
<div>This article provides an insight into how '''mission messages''' are handled by the FreeSpace engine.<br />
<br />
==Prerequisites==<br />
*A rudimentary insight into the SEXP system.<br />
<br />
==Inputting your messages==<br />
Use the right-hand side of the Events Editor (SHIFT-E) to input your messages.<br />
<br />
===New Msg===<br />
Creates a new message entry with the default parameters.<br />
<br />
===Delete Msg===<br />
Deletes the currently selected message. If the message is already used, FRED will ask for confirmation. <br />
<br />
==Message parameters==<br />
===Name===<br />
This is a shorthand description of what the message is about. Messages will be referenced in FRED through their names. Typical message names are like: "Beta says hello", "Bastion hull critical","Transport panics", "Beta 2 hates Hercs". Optimally, your message names are succinct and descriptive: if you end up with 50-60 messages in a mission, it is imporant to be able to tell what the messages are about by looking at their names. Obscure names like "YEEEEAAAHH" (where the message reads "Good work, pilots. The NTC Abominable has been destroyed. Reinforcements will arrive in 2 minutes.") are not recommended. Transparent message names are all the more important if you cooperate with someone else on the mission. If you do need to change the name of the message, make sure it is not referenced anywhere. You can see which events use the selected message by double-clicking the name of the message in the upper-right message list.<br />
<br />
===Message Text===<br />
The message itself that is sent in-game. Make sure to keep each message at a reasonable length. While the game allows very long messages, the in-game message system cannot display so many characters. A rule of thumb is to stay within a six-line length. If you want a long monolog, simply split it into several messages.<br />
<br />
Semicolons and double quotation marks must be avoided, as these characters break the mission file. To insert a semicolon, type in $semicolon. To insert a double quotation mark, type $quote.<br />
<br />
===ANI file===<br />
This is the "talking head" animation on the HUD. See [[head ani]] for a list of head animations and corresponding wingmen persona.<br />
<br />
===Wave file===<br />
The sound file that is played while the message is being sent. These sounds are usually intelligible voice-acted lines, but it can also be anything, including untranslated Vasudan gibberish, an engine hum, or something scary, a la [[Return to Babel]].<br />
<br />
For unvoice-acted lines, use emptymsg.wav, which is a single beep. According to a [http://www.hard-light.net/forums/index.php?topic=75558.0 2011 poll], players overwhelmingly prefer the emptymsg.wav over no sound.<br />
<br />
===Persona===<br />
The wingmen persona that is eligible to send the message. If the originally intended sender is dead, but there is another friendly fighter with the same persona, it will send the message instead.<br />
<br />
Technically, any ANI file can go with any persona, but for pure esthetics, they must match. See [[head ani]] for a list of head animations and corresponding wingmen persona.<br />
<br />
===Team===<br />
Multiplayer only. The message could be sent to all players (like in single player or coop), or sent to either of the TvT teams.<br />
<br />
[[Image:msg1.jpg]]<br />
<br />
==SEXPs to know==<br />
Now that you have at least one message in your mission, it is time to instruct FRED to send it in-mission. Create a new event and set the conditions.<br />
<br />
There are three SEXPs that send messages.<br />
<br />
===[[send-message]]===<br />
The "standard" way of sending messages. Send-message sends a single message.<br />
<br />
You need to input the sender (by default: #Command). Any ship, regardless of IFF, that is present in the mission can send messages. You can use right-click --> Replace Data to find your intended sender, or type it in manually. If your sender is not a physically present ship, add a # before the sender, <br />
<br />
You also need to set the message's [[Messages#Priorities|priority]]. See the dedicated subsection for details<br />
<br />
And lastly, you need the message to be sent. You can use right-click --> Replace Data to browse your messages.<br />
<br />
[[Image:msg2.jpg]]<br />
<br />
===[[send-message-list]]===<br />
Send-message-list is somewhat similar to send-message, but this SEXP allows you to send a whole list of messages. A fourth parameter is added to the SEXP: message delay, which is the delay (in milliseconds) the game will wait before sending the message.<br />
<br />
The way this SEXP is input is a bit tricky, however. You need to keep adding the extra parameters manually, using right-click (on the SEXP) --> Add Data. FRED is smart, so if you need to add the priority, it will not give you a list of messages in Add Data.<br />
<br />
Tip: Because of how the SEXP works, send-message-list is true when its first message is played, and it checks the ships listed in the event when it becomes true. If a ship that is on the list arrives after the event comes true (e.g. the messages start playing), the event does not recognize that the ship has arrived, and so either does not play the message that corresponds to that ship or tells command to play the message. In this situation, to make sure that the message is played by the ship you want, edit the name of the ship and add a "#" character before the name, as if you were typing "#Command".<br />
<br />
[[Image:msg3.jpg]]<br />
<br />
===[[training-msg]]===<br />
They are called "training messages," because this method is used in training missions in the Volition campaigns. Training messages are displayed above your lead indicator, centered, in blue text. Training messages have no senders or priorities&mdash;the sender is always universal and each new training message will override the previously displayed one.<br />
<br />
In retail FreeSpace, a ship called "Instructor" had to be present for training messages to be sent. The Source Code Project, however, removed this restriction.<br />
<br />
Training-msg mandates only one parameter: the message. Optionally, you can add three more if you want/need to: a secondary message that is sent if, for whatever reason, the first message cannot be sent; the delay in seconds to wait before sending the message; and the duration of the message. The latter is specially useful if you believe the message will disappear sooner than your players can read it.<br />
<br />
==Priorities==<br />
There are three priorities: High, Normal, Low. Higher-priority messages always interrupt lower-priority messages. Messages of the same priority do not interrupt each other, except for high-priority messages, which always interrupt any message. By interruption, we mean that the next message does not wait until the previous message finishes playing its assigned wave file. If you have no wave file for a message, message priority has no effect as far as interruption is concerned.<br />
<br />
Also, high-priority messages are always sent, regardless of the status of its sender (not arrive/arrived/destroyed). If the sender is not readily present, Command will send the message, but the message's head-ani won't be Command's! More often than not, you can see Command with a wingman head-ani, talking like a wingman, because all messages in the given mission are set to high priority. To prevent this, use normal or low priorities, which simply will not be sent if the sender is not present.<br />
<br />
A rule of thumb is to assess the importance of the message using common sense. The player must know when the return to base order is issued, or the primary target's hull is going critical so he could respond as quickly as possible. Beta 2 complaining about the Herc II is not nearly as important.<br />
<br />
==Send-message vs. send-message-list==<br />
These SEXPs have their own advantages and disadvantages.<br />
<br />
Send-message sends a single message, while send-message-list can send a whole list of them. While this would imply that if you want to script a dialog, send-message-list is flat-out better. When it is in the beginning of the mission&mdash;before the action begins$mdash;it is.<br />
<br />
Problems arise when you have a dialog in the middle of the mission, and you cannot make sure that all participants of the dialog are present to deliver their lines. Beta 2, who complained about his Herc II in the beginning of the mission, may have died in the action, and if he has a line in the middle of a mission, then (depending on his message's priority) level, it will be sent as either Command or not sent at all. This presents a problem if there's a message that responds to Beta 2, because the game will not break the list of messages just because one if its senders is dead. Depending on the messages, this may end up as a weird, confusing, or even nonsensical dialog. Logically, you can work around this by granting Beta 2 invulnerability, but that affects gameplay, and if players notice it, they can exploit it. <any wingman> is less risky, because it needs only one wingman to be alive. When there's only a wingman-warship dialog, then any wingman can converse with the warship, but if you have a wingman-wingman dialog, then it's a bit harder, because <any wingman> does not randomize which wingman sends the message, but picks the one closest in designation to the player. Chances are, you end up with Alpha 2 conversing with himself.<br />
<br />
Using several events with send-message to script conversations allows you to customize the dialog as much as you like, but it requires effort, awareness, and some expertise to pull off flawlessly. If Beta 2 is dead, then Command may something along the lines in the aforementioned example that lets the dialog flow uninterrupted. Or, if you script it so, Beta 2's death could end the dialog after the 5th message. If the dialog is such that the remaining messages are in response to Beta 2's remarks in the 6th message, all you need to do is to restrict the last 3 messages to be sent if Beta 2 is present, using ( not ( destroyed-or-departed-delay "Beta 2" 0 ) ).<br />
<br />
[[Category:FRED]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Portal:FreeSpace_Universe&diff=36091
Portal:FreeSpace Universe
2011-08-05T07:44:27Z
<p>Cyborg17: </p>
<hr />
<div>{| border=0 align=center cellpadding=4 cellspacing=0 width=95% style="margin: 0 0 1em 1em; background: #202020; border: 1px #AA2020 solid; border-collapse: collapse; font-size: 95%;"<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''The FreeSpace Universe Portal'''<br />
|}<br />
<br />
{| border=0 align=right cellpadding=4 cellspacing=1 width=30% style="margin: 0 0 1em 1em; background: #202020; border: 1px #AA2020 solid; border-collapse: collapse; font-size: 95%;"<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''[[Species]]'''''<br />
|-<br />
! style="color: white; height: 30px;"|[[Terrans]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Vasudans]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Shivans]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Ancients]]<br />
|-<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Groups'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Galactic Terran Alliance]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Parliamentary Vasudan Empire]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Galactic Terran-Vasudan Alliance]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Neo-Terran Front]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Galactic Terran Intelligence]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Hammer of Light]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Special Operations Command]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Pirates]]<br />
|-<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Ships'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Great War-era craft|FreeSpace 1]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[FreeSpace 2-era craft|FreeSpace 2]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[FreeSpace_2_Ship_Database|Named ships of FreeSpace 2]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Fighter squadrons]]<br />
|-<br />
! style="color: white; height: 30px; background: #512020; 70%;"|'''''Other'''''<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Corporations]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Ground combat]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Famous persons]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Politics]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[List of historic events|History]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Ranks in FreeSpace|Ranks]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Stars and Planets]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Technologies]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Timeline]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[FreeSpace Trivia]]<br />
|-<br />
! style="color: white; height: 30px; 70%;"|[[Fleets of FreeSpace]]<br />
|-<br />
|}<br />
<br />
Welcome to the FreeSpace Universe Portal. Though presently unfinished, the FS Universe Portal will come to be the central hub of all information related to the in-game universe on the FS Wiki. Please help expand this portal by editing and adding to pages linked from it.<br />
<br />
This page will give you a general overview of the FreeSpace universe. For details, browse the [[:Category:FreeSpace Universe|FreeSpace Universe category]] or pick a topic from the right-side window.<br />
<br />
The '''FreeSpace universe''' is a fictional continuation of human history as they spread their [[Galactic Terran Alliance|globalized culture]] and interact with two alien species. Canon events range from 2335 until 2367, with heavy emphasis on these two dates.<br />
<br />
In 2335, the [[Terrans]] (as humans are called in ''FreeSpace'') and the [[Vasudans]] had been at war for fourteen years when a third species, the [[Shivans]], entered with their superior technologies. The two species put aside their differences to combat this new threat. This conflict is known as the [[Great War]]. The antagonistic Shivans were defeated; however, not only was the [[Vasuda Prime|Vasudan homeworld]] obliterated, contact with Earth was also severed.<br />
<br />
Shortly after the events of the first game, a rebellion known as the [[Hades Rebellion]] takes place. A rogue element of [[Galactic Terran Intelligence]] constructed a massive warship, the [[GTD Hades|GTD ''Hades'']], with Shivan weaponry. The rebellion ultimately ends with the destruction of the ''Hades''. The official expansion of ''Conflict: FreeSpace'', ''[[Silent Threat]]'', catalogues this rebellion.<br />
<br />
The period between 2335 and 2367 is called the [[Reconstruction]]. In this period, the Terrans and Vasudans rebuild their ravaged worlds and form an alliance called the [[Galactic Terran-Vasudan Alliance]] (or GTVA). Eighteen months before the events of [[Portal:FreeSpace 2|''FreeSpace 2'']], a [[Neo-Terran Front|military coup]] led by Admiral [[Aken Bosch]] takes place and threatens the integrity of the GTVA.<br />
<br />
''FreeSpace 2'' deals with the last weeks of the rebellion (called the [[Neo-Terran Front]] or NTF) and tells the story of the [[Second Shivan Incursion|Shivans' return]]. This event is not canonically named. It's usually referred to as the Second Shivan Incursion or the Second Great War. The NTF is ultimately defeated but the Shivans muster a seemingly invincible fleet in the [[Capella]] system. The GTVA fleets do not stand a chance, and they destroy the two subspace nodes that lead out of the Capella system and severe the Shivan armada from the rest of the known galaxy.<br />
<br />
There is no canon information about the events happened after that. The FreeSpace community refers to this era as the Post-Capella Era.<br />
<br />
==The galaxy==<br />
The FreeSpace galaxy consists of numerous star systems, most of them are based on real-life astronomical observations. The FreeSpace galaxy is best observed through the [[Official Volition Node Map|official galaxy map]] released by [[Volition]]. Travel between these star systems is realized through the use of [[subspace]]. Ships can enter subspace through fixed-position [[jump node]]s. It is not clear how much time it takes to travel from one system to another through subspace; the only ambiguous source is the [[Good Luck|last mission]] of ''Conflict:FreeSpace'', where the player has 10 minutes to complete the mission before the [[SD Lucifer|SD ''Lucifer'']] would enter [[Sol]] through the [[Delta Serpentis]]-Sol jump node.<br />
<br />
==FreeSpace canon==<br />
FreeSpace continuity consists of four sources: the two games, the [[FreeSpace Reference Bible]], and ''Silent Threat''. There are a few inconsistencies in the official continuity, the most famous ones are [[Node Inconsistencies|jump node inconsistencies]].<br />
<br />
[[Category:FreeSpace Universe|*]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Campaign_List&diff=35793
Campaign List
2011-07-29T07:13:08Z
<p>Cyborg17: /* Capella */</p>
<hr />
<div>User-made campaigns are continuations of the FreeSpace saga, whether as sequels, prequels, or occurring simultaneously with one of the games. The following is an (''incomplete'') list of user-made campaigns, both completed and in-progress.<br />
<br />
'''''Note: Some campaigns featured here are part of a Total Conversion. More details on these major mods can be found on the [[Total conversions|Total Conversions]] page.'''''<br />
<br />
== FreeSpace Universe ==<br />
<br />
=== Pre-Capella ===<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Requirement !! Author(s) !! Special content !! Number of missions!! Story !! Link<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan=9 style="text-align: center; background: #108;"| <font size=4>'''Pre-Great War Era'''</font><br><font size=1>''Campaigns set before the events of [[FreeSpace 1]]''</font><br />
|-<br />
|''[[Ancient-Shivan War (campaign)|Ancient-Shivan War]]|| Work-in-Progress || No || FSO || Various || Complete mod || 7 for first release|| The demise of the Ancients, but not without a fight || [http://www.sectorgame.com/ASW/ Website]<br />
|-<br />
|''[[Akhom's Raiders]]|| Work-in-Progress || No || FSO || Solatar|| Unknown || Unknown|| During the last monthes of the T-V Wars, the 191st Elite Vasudan Squadron is tasked with hitting Terrans communication deep in their lines|| [http://www.hard-light.net/forums/index.php?topic=66873.0 Thread]<br />
|-<br />
|''[[Cardinal Spear]]|| Released || Yes || FSP or FS1 || Adam "Ace" Rorabaugh || New weapons, new installations, new planet/sun textures || 2x4 || In 2331, a Vasudan fleet jump in Sol. This campaign cover the defense of Sol and the GTA counter-attack || [http://www.hard-light.net/forums/index.php/topic,47337.0.html Thread]<br />
|-<br />
|''[[Into The Night]]|| Partial || No || FSO || 158th Banshee Squadron Team|| Complete mod || Unknown|| Before the Human Race united, the Earth Alliance and the Colonial Federation are at war || [http://www.hard-light.net/forums/index.php?topic=65671.0 Thread]<br />
|-<br />
|''[[Points of View]]|| Released || No || FSO & FSP || Three Niner || Vasudan side || 3||Unknown || [http://www.hard-light.net/forums/index.php/topic,62699.0.html Thread]<br />
|-<br />
|''[[Syrk: The Unification Wars]]|| Work-in-progress || Unknown || FSO || Various || Complete mod || Unknown|| Humanity has risen. Originated on the third planet of the Sol system and having greater dreams about their future, they’ve colonized Sol. But their fragile peace had shattered in no time and a civil war started|| [http://www.game-warden.com/forum/forumdisplay.php?f=89 Thread]<br />
|-<br />
|''[[Terran-Vasudan War Project]]|| No || No || FSO || Various || Complete mod || Unknown|| The TVWP covers the history of the Sol and the GTA from 2313 to the arrival of the Shivans || [http://tvwp.hard-light.net/website/ Website]<br />
|-<br />
|''[[The Unification War]]|| Released || No || FSO || Various || Complete mod || 9 released|| The year is 2313. Thanks to the development of intrasystem subspace jump drives and communications relays, Terrans have extended their reach throughout the solar system as never before || [http://tvwp.hard-light.net/website/ Website]<br />
|-<br />
<br />
|''[[Vasudan Imperium]]||Partial||No||FSO & FSP||Red Streblo|| Art, music, background|| 13 released|| Unknown|| [http://www.hard-light.net/forums/index.php?topic=71795.msg1418887#msg1418887 Thread]<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #108;"| <font size=4>'''Great War Era'''</font><br><font size=1>''Campaigns set around the events of [[FreeSpace 1]]''</font><br />
|-<br />
|''[[Portal:FreeSpace 1|The Main FreeSpace Campaign]]|| Released|| Yes || FSP or FS1 || [[Volition]] || Official campaign || 29 || While Terrans and Vasudans has been fighting for 14 years, a new alien race confronts them ||[http://fsport.hard-light.net/website/ Website]<br />
|-<br />
|''[[Operation Templar]]|| Released|| Yes || FSP or FS1 || [[Volition]] || Official campaign || 4 || Operation Templar, a joint GTA-Vasudan endeavor, hunts down the last remnants of Hammer of Light. The rebels stage a desperate last stand, hijacking a Vasudan destroyer and taking hostages. ||[http://www.freespacemods.net/download.php?view.202 FreeSpaceMods]<br />
|-<br />
|''[[Silent Threat]]|| Released|| Yes || FSP or FS1 || [[Volition]] || Offical Campaign|| 12|| As the Great War goes on, the GTI tries to preserve the fragile alliance. || [http://fsport.hard-light.net/website/ Website]<br />
|-<br />
|''[[Silent Threat: Reborn]]|| Released|| Yes || FSP || Various || Several things which are included as part of the Port v3.1 || 18 || ''New version of Silent Threat official campaign || [http://fsport.hard-light.net/website/str/ Website]<br />
|-<br />
|''[[All Hands to War]]||Work-in-progress||No||FS1||Hippo||None||5 released|| 3 months after the destruction of the Lucifer the Hammer of Light attemps to drive a wedge between the GTA and the PVE, while the Shivans are still relentless || [http://www.sectorgame.com/ahtw/index.htm Website]<br />
|-<br />
|''[[Alliance Fights Back]]||Released||No||FSO & FSP||[mailto:Mage14@hotmail.com Travis Brainard], macfie||None||8|| To break Shivan resistance after the Lucifer destruction, General Albert Ulysses comes up with a daring - and risky - plan. || [http://www.freespacemods.net/download.php?view.377 FreeSpaceMods]<br />
|-<br />
|''[[Awakenings]]|| Released|| Yes || FSP or FS1 || [[FreeSpace Campaign Restoration Project|FSCRP]]||None || 13|| Three years after the collapse of the Sol node, the Shivans are pushing back into reclaimed systems || [http://www.hard-light.net/forums/index.php/topic,42579.0.html Thread]<br />
|-<br />
|'' [[Battle for Altair]]||Released||No||FSP||[mailto:adamant@pacifier.com Adam N. Rorabaugh]||None||9||After the narrow destruction of the dreaded Lucifer, the alliance dwindles as the Hammer of light and rebel factions arise and fight amongst themselves. || [http://www.freespacemods.net/download.php?view.51 FreeSpaceMods]<br />
|-<br />
|''[[The Counterstrike]]||Released|| No||FS1||Derek McBurney|| None || 4|| Your a different pilot, doing a different mission, in the same war. This campaign takes place from 36 hours before the death of the Lucifer, to 8 hours after.||<br />
|-<br />
|''[[Crucible]]|| Released|| No || FSP or FS1 || [mailto:mguenthe@netcom.ca Matthew Guenther]|| Fully-branching || 7|| On the 29th of May 2335, the GTD Intrepid is ordered to penetrate enemy lines to buy time for the Alliance to regroup || [http://www.freespacemods.net/download.php?view.14 FreeSpaceMods]<br />
|-<br />
|''[[Dark Raji]]|| Released|| No || FSP or FS1 || Unknown|| None || 7|| After the Lucifer cut us from our home... and before the GTI's corruption was known the real threat to humanity was seen||<br />
|-<br />
|''[[The Destiny of Peace|Destiny of Peace]]|| Released|| Yes || FSP or FS1 || [mailto:justinm@thegrid.net Justin Mills]|| None || 7|| By October 2335, a rebel GTA faction of mercenaries emerges, and its aims are a mystery. ||[http://www.hard-light.net/forums/index.php/topic,37935.msg766982.html#msg766982 Thread]<br />
|-<br />
|''[[Duke Squad]]|| Released|| No || FSP or FS1 || Unknown|| None || 9|| You have been transfered to the GTD Delacroix, the secondary flagship of the Duke Squad, elite of the elite. As you begin your Tour of Duty with the elite of the elite, you are drawn into something far more complex than a normal Tour of Duty...||<br />
|-<br />
|''[[Fortunes of War]]||Postponed||No||FS1||Goober5000||New ships, maybe other||25|| While part of the GTA are chasing the Ancient records, the front line is facing a second Lucifer || [http://www.sectorgame.com/goober/fow.html Website]<br />
|-<br />
|''[[Hellwolf]]||Released||No||FSP||Unknown||None||5|| Chronicles of the Hellwolf clan of pirates. ||<br />
|-<br />
|''[[Infinite Dimension]]|| Released|| No || FSP or FS1 || Laser Ray|| None || 8|| None||<br />
|-<br />
|''[[Internal Conflicts]]|| Released|| No || FSP or FS1 || Unknown|| None || 12|| The Shivans are destroying the galaxy... but now we've got some new friends... or so we thought...||<br />
|-<br />
|''[[New Beginnings]]|| Released|| Yes || FSO & FSP || [mailto:Bussaca1@aol.com Bussaca1]|| None ||7|| After the destruction of the Lucifer, only a handful of jump nodes were left active. They are guarded fiercely by GTI and PVC forces - for instance the outpost Atlas. ||[http://www.freespacemods.net/download.php?view.23 FreeSpaceMods]<br />
|-<br />
|''[[Nubian Conflict]]|| Released|| Yes || FSP or FS1 || All American Flight Test Center || None || 4|| Pushed to the edge of destruction the Terrans, Vasudans & Shivans face new challenges in rebuilding their respective empires.||<br />
|-<br />
|''[[Prophecy Engagement]]|| Work-in-progress || No || FSP & FSO ||Sifle|| None || 8 || After the destruction of the Sol jump node and the Lucifer, the Bastion is engaged to track down the PVD Prophecy as the HOL develops a plan that might still give the Shivans an advantage over the GTA and the PVN || None<br />
|-<br />
|''[[Second Vasudan War]]||Released||No||FS1||Unknown|| None|| 5|| The Vasudans can't be trusted as war breaks out again. ||<br />
|-<br />
|''[[Special Ops]]||Released||No||FS1||Unknown|| None|| 3|| Special Ops takes a superior pilot. Are you up to the Challenge? ||<br />
|-<br />
|''[[Start of the Terran-Vasudan War]]||Released||No||FS1||Unknown|| None|| 4||The start of the 14 year Terran & Vaudsan War. ||<br />
|-<br />
|''[[Tango]]||Released||Yes||FSO||Julian Egelstaff, [[FreeSpace Campaign Restoration Project|FSCRP]] || Minor mods||3||As Terran forces continue to fall back in the face of Shivan might, Lieutenant Rhygar, on a front line patrol discovers something there could turn the tide of the war, or seal his doom. ||[http://www.hard-light.net/forums/index.php/topic,49267.0.html Thread]<br />
|-<br />
|''[[The McCarthy Campaign]]||Released||No||FSO||???|| None||20||As the 14-year war rages on, you have been asked by Lt. Alexander McCarthy to aid him in his rebellion. Is he defecting out of selfishness, or is there truly a dark threat, ready to destroy both the Terran and Vasudan races? ||<br />
|-<br />
|''[[The Road to Victory]]||Released||No||FS1||[mailto:borg4@hotmail.com Michael Cook]|| None|| 19|| The GTD Saratoga is trying to destroy once and for all the Hammer of Light ||[http://www.freespacemods.net/download.php?view.48 FreeSpaceMods]<br />
|-<br />
|''[[Vasudan Academy]]||Released||No||FS1||Laser Ray-IDS Productions|| None|| 3|| The Vasudan training missions || [http://freespacemods.net/download.php?view.430 FreeSpaceMods]<br />
|-<br />
|''[[War]]||Released||No||FS1||MadMax|| None|| 5|| More battles for FreeSpace...By MadMax||<br />
|-<br />
|''[[Wolfpack Legacy]]||Released||No||FS1||Alex Harris|| None|| 11|| The Wolf Pack Squadron is stationed on the aging GTD Omega and sent on low impact missions. Or so they thought. They are quickly drawn into a heated post-war conflict fueled by a dark conspiracy. If they survive, they will leave a legacy to be emulated by fighter squadrons for years to come.||<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Shivans'''</font><br><font size=1>''Campaigns set in the user-made Shivans continuity''</font><br />
|-<br />
|''[[Phantoms]]|| Released|| Yes || FSO & FSP || [[User:Blaise Russel|Blaise Russel]] ||None || 3|| In early 2335, the GTD Amadeus moves to block the PVD Temperance from entering Antares, unaware of the imminent arrival of 'Phantom ships' ||[http://www.freespacemods.net/download.php?view.18 FreeSpaceMods]<br />
|-<br />
|''[[Echo Gate]]|| Released|| Yes || FSO & FSP || [[User:Blaise Russel|Blaise Russel]] || Music files || 3|| Shortly after the destruction of the Lucifer, the GTD Minnow is dispatched to Beta Cygni to clear up a lingering Shivan presence || [http://www.freespacemods.net/download.php?view.18 FreeSpaceMods]<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Memories of the Great War'''</font><br><font size=1>''Campaigns set in the user-made [[Memories of the Great War]] continuity''</font><br />
|-<br />
|''[[Hellgate Ikeya]]|| Released|| No|| FSO & FSP|| [http://wo.proxima-fleet.com/ Orph3u5] ||None||4|| On the 2nd of February 2335, the GTD Galatea is ordered to locate the Shivan entry node in Ikeya.|| [http://www.freespacemods.net/download.php?view.21 FreeSpaceMods]<br />
|-<br />
|''[[Light of Antares]]|| Released|| No || FSO & FSP || [http://wo.proxima-fleet.com/ Orph3u5] || None || 5|| On the 3rd of February 2335, the GTA Myrmidon is ordered to reinforce Ribos system, but the Hammer of Light tries to hamper it ||[http://www.freespacemods.net/download.php?view.8 FreeSpaceMods]<br />
|-<br />
|''[[Rain on Ribos 4]]|| Released|| No || FSO & FSP || [http://wo.proxima-fleet.com/ Orph3u5] || None|| 18|| The Tombaugh station is overseeing the capturing of the SC Taranis || [http://www.freespacemods.net/download.php?view.22 FreeSpaceMods]<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #108;"| <font size=4>'''Reconstruction Era'''</font><br><font size=1>''Campaigns set between the events of [[FreeSpace 1]] and [[FreeSpace 2]]''</font><br />
|-<br />
|''[[25th Year]]||Released||No||FS1||KolChak||None||3|| 25 years after the Great War, the Hammer of Light is a major power, at war with the Terran Vasudan Alliance. Now, it seeks to acquire a new Shivan weapon || [http://www.freespacemods.net/download.php?view.49 FreeSpaceMods]<br />
|-<br />
|''[[Black Horizon]]||Released||No||FS1||Jason 'Rizbre' Wollenberg||New ships||2x10||100 years after the Great War, the Sol node is reopened (campaign was made before FS2 was published) || None<br />
|-<br />
|''[[Eagle Takes Flight]]||Released||No||FSO & FSP||Robert Carol, macfie||Several table hacks, retextures||4||Alpha 1 and his best buddy start their own security company|| [http://www.freespacemods.net/download.php?view.201 FreeSpaceMods]<br />
|-<br />
|''[[Earth Defense]]||Cancelled||No||FSO||Various||Complete mod||10 released|| First version of Earth Defense, released as a demo. The story and the FREDding has been changed, so this version is obsolete|| [http://www.game-warden.com/earthdefence/ Website]<br />
|-<br />
|''[[Enemies United]]||Released||No||FS2||Aki malinen||None||Unknown|| Terran-Vasudan Alliance tries to eliminate a new thread before it gets larger... or, has it already got large enough?|| [http://www.freespacemods.net/download.php?view.445 FreeSpaceMods]<br />
|-<br />
|''[[GTI Rebellion (campaign)|GTI Rebellion]]|| Cancelled || Unknown|| FSO || Various ||Music, maybe other || 6 || Unknown || [http://www.game-warden.com/forum/showthread.php?s=eedf06f0563adab40c05645382600660&t=639 Website]<br />
|-<br />
|''[[Homesick]] || Released || No|| FSO || [[User:Blaise Russel|Blaise Russel]] ||None||37||In 2355, during the Reconstruction era, a mercenary must protect trader from the ever-growing threat of piracy || [http://www.hard-light.net/forums/index.php/topic,19306.0.html Thread]<br />
|-<br />
|''[[Marduk's Shroud]]||Released||No||FS1 & FSP||Unknown||None||4||A new Shivan technology must be destroyed by the GTVA || [http://www.freespacemods.net/download.php?view.344 FreeSpaceMods]<br />
|-<br />
|''[[MindGames]]||Work-in-progress||Unknown||FSO || Various||Complete mod||20+ || Thirty years ago Sol's only jump node collapsed and mankind turned frightened eyes to the unknown skies. As time passed with no new Shivan assault, the fear turned inward. The face of the Alien Enemy slowly changed from Shivan to Vasudan. || [http://mindgames.hard-light.net/ Website]<br />
|-<br />
|''[[Rogues!]]||Released||No||FreeSpace Open||[[User:TopAce|TopAce]]||Insubstantial||8||A story of three criminals that undertook a business that they should have avoided.|| [http://www.hard-light.net/forums/index.php?topic=74936.0;topicseen Thread]<br />
|-<br />
|''[[Shrouding The Light]]||Released||Yes||FSO & FSP||[[User:Blaise Russel|Blaise Russel]]||None||32||In the year 2336, as dissidents and splinter groups jeopardise the hopes of peace, you are transferred, from the safety of the 1st Battlegroup of Vasuda to the the troubled hotspot of Deneb... || [http://www.hard-light.net/forums/index.php/topic,26961.0.html Thread]<br />
|-<br />
|''[[Sol: A History]] || Being reworked || No || FSO, Inferno Release 1 || Blaise Russel, [[FreeSpace Campaign Restoration Project|FSCRP]] || Campaign using the Inferno mod|| 40+|| After the Sol node collapses, conflicts span from 2355 to 2372 in the Sol system || [http://www.freespacemods.net/download.php?view.108 FreeSpaceMods]<br />
|-<br />
|''[[Sync]] ||Released || No || FSO || Ransom Arceihn ||None|| Unknown || Two years after escaping death in an uncharted nebula, three mercenaries are hired to escort freighters to the Betelgeuse system. It quickly becomes clear that this is no ordinary mission || [http://www.hard-light.net/forums/index.php/topic,28610.0.html Thread]<br />
|-<br />
|}<br />
<br />
=== Capella ===<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Requirement !! Author(s) !! Special content !! Number of missions!! Story !! Link<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #108;"| <font size=4>'''Capella Era'''</font><br><font size=1>''Campaigns set around the events of [[FreeSpace 2]]''</font><br />
<br />
|-<br />
|''[[Portal:Freespace 2|FreeSpace 2 campaign]] || Released || Yes ||FSO or FS2|| [[Volition]] || Official Campaign|| 35|| In 2367, the GTVA is facing the NTF rebellion, but an older enemy is lurking<br />
|-<br />
|''[[Alcibiades' Gamble]]|| Demo released || Unknown ||FSO || Various || None|| Unknown|| The combats of a GTVA pilot against the growing NTF rebellion||[http://ag.hard-light.net/FAQ.html Website]<br />
|-<br />
|''[[Chasing Demons]] ||Work-in-progress|| No || FSO ||[[Phoenova]]||None||Unknown||Follow the GTD Phoenicia in its actions against the Shivans.|| [http://www.hard-light.net/forums/index.php?topic=54907.0 Thread]<br />
|-<br />
|''[[Crossing the Styx]] || Released || No || FSO ||[[User:SpaceFreak|FSF]]||New interface||11||Take part in an operation that will change the future of mankind.|| [http://freespacemods.net/download.php?view.564 FreeSpaceMods]<br />
|-<br />
|''[[Darkness Rising]] || Work-in-progress||No||FSO|| Gai Daigoji|| Unknown || Unknown|| The Second Great War as seen by the Shivans ||[http://www.freewebs.com/darkness_rising_camp/index.htm Website]<br />
|- <br />
|''[[Desperation|Desperation - Lost in the Fog ]]|| Released|| No|| FSO|| Singh|| None|| 7|| While the alliance is pulling out of Capella, a small GTVA Battle Group is stranded behind enemy lines || [http://www.freespacemods.net/download.php?view.61 FreeSpaceMods]<br />
|- <br />
|''[[Desperation|Desperation - Chapter 2]]|| Released|| No|| FSO|| Singh|| None|| 7|| While the alliance is pulling out of Capella, a distress call is send from the Nebula by isolated GTVA forces || [http://www.freespacemods.net/download.php?view.62 FreeSpaceMods]<br />
|-<br />
|''[[Fall of Epsilon Pegasi]]|| Released ||No || FSO || [[User:Blaise Russel|Blaise Russel]]|| None|| 10||While the Aquitane battles Shivans in the nebula beyond Gamma Draconis, the Epsilon Pegasi 6th Fleet must defend against the attacks of the Neo-Terran Front<br />
|- <br />
|''[[Flames of War - Chapter 1]] || Released || No || FSO || TrashMan, ET-1087, kv1at3485 ||New ships, new music|| 24|| In 2367, the GTD Delacroix is participating in the war effort against the NTF. After its destruction,a Fast Response Task Force is created and include its former pilots.||<br />
|- <br />
|''[[The Journey to Epsilon Pegasi|Journey to Epsilon Pegasi]]|| Released|| No ||FSO || [[User:TopAce|TopAce]]||None||10|| There are some rumors that some Shivan forces have entered Epsilon Pegasi. You're part of the task force that is about to find it out.<br />
|- style= "border: 1px #22D solid;"<br />
|-<br />
|''[[The Knights of Alrukabi]] || Work-in-progress||Unknown ||FSO ||eliex, Commander Zane, Dilmah G|| None|| Unknown|| The Special Operations Command devise a daring operation against NTF : Strike Alrukabi to shatter their command structure|| [http://www.hard-light.net/forums/index.php/topic,62753.0.html Thread]<br />
|-<br />
|''[[The Lightning Marshal|Lightning Marshal]] || Released ||Yes ||FS2 - FSO not wholly tested ||Various, updated by [[FreeSpace Campaign Restoration Project|FSCRP]]|| Music, maybe other || Unknown|| In 2366, the GTCv Actium is fighting the NTF<br />
|-<br />
|''[[Their Finest Hour]]||Released||No||FSO||Thadeus||None||Unknown|| A diversionary force is sent to buy time for the Bastion to close the Epsilon Pegasi ||[http://www.hard-light.net/forums/index.php/topic,61153.0.html Thread]<br />
|-<br />
|''[[Neo Terra]]||Partial, postponed||No||FSO||Gai Daigoji||None||19 released|| A new Terran pilot who defected to the NTF must ensure the rebellion succeeds - Alternative plotline||[http://www.freewebs.com/neo-terra/downloads.htm Website]<br />
|-<br />
|''[[Neo-Terra Victorious]] || Cancelled|| No||FSO|| Alikchi, Blackwolf, maybe other || New ships, new weapons || 5 released<br />
|| As a pilot of the NTF, the player must fight against the GTVA traitors.<br />
|-<br />
|''[[Operation Savior]]|| Released || No||FSO || [[User:Ngtm1r|Ngtm1r]] ||None|| 5|| At the beginning of the NTF rebellion, the GTVA attemps a rescue mission deep into the NTF-controlled Polaris system || [http://www.hard-light.net/forums/index.php/topic,42023.0.html Thread]<br />
|-<br />
|''[[Pandora's Box (campaign)|Pandora's Box]]|| Released || No||FSO ||Unknown, [[FreeSpace Campaign Restoration Project|FSCRP]] ||Branching||25||One year prior to the return of the Shivans, the NTF Civil War is at its peak. But the Vasuda system is secure... until the NTF makes a bold raid|| [http://www.hard-light.net/forums/index.php/topic,58352.0.html Thread]<br />
|-<br />
|''[[Rogue Intentions]]|| Part I Released || No ||FS2 || Nuclear1 || None||11 released|| In order to prevent the NTF from acquiring control of the Knossos portal and the nebula beyond,the GTCv Spinnaker, and her sister ship, the GTCv Methodus are called up to reinforce the jump node defenses || [http://www.hard-light.net/forums/index.php?topic=36062.0 Thread]<br />
|-<br />
|''[[Second Front]]|| Released || No ||FS2|| [[User:BlueFlames|BlueFlames]] ||New ships||7|| During the Second Great War, in Altair, an exploration convoy has returned after decades away. Oblivious to events elsewhere in the GTVA, the explorers do not understand why they must face continuous delays to be readmitted to alliance space and become evermore beligerant.<br />
|-<br />
|''[[The Aeos Affair]] || Released || No || FS2 || Derek "PickelHead" Pickering , [[FreeSpace Campaign Restoration Project|FSCRP]] ||Mines, new jump gates, reworked IA|| 10|| The isolated Aeos base has been set up to study an ancient outpost. But the Shivans are ready to throw everything they have to destroy it|| [http://www.hard-light.net/forums/index.php/topic,58354.0.html Thread]<br />
|-<br />
|''[[The Sagitta Project]] || Work-in-progress || Yes ||FSO|| Bob-san, Moebius ||Fully branching, maybe other || Unknown|| Admiral Bosch prepared to counter every GTVA measure and make contact with potentially-hostile Shivans. However, unbeknown to the GTVA, Admiral Bosch's rebellion stemmed much deeper then suspected<br />
|-<br />
|''[[Troubles at Home]]||Released||No||FSO||Petrarch of the VBB||Unknown||Unknown|| In Beta Aquilae, the GTVA is trying to weakenth support for the NTF|| [http://www.hard-light.net/forums/index.php/topic,39019.0.html Thread]<br />
|-<br />
|''[[Uncharted Territory]]||Released||No||FSO||ReeNoiP||Unknown||9|| You have recently been transferred to the GTtca Reuil and must now join the 33rd blackbirds in defending a science group from attack.|| [http://www.hard-light.net/forums/index.php?topic=67327.0 Thread]<br />
|-<br />
|''[[Vassago's Dirge]]||Released||No||FSO||[[User:Axem|Axem]]||New Ships, New Music||9|| Shortly after the Sathanas is destroyed, the GTVA begins an operation to take down a Ravana-class destroyer, the SD Vassago and its fleet. Meanwhile the Vassago begins an operation of its own.|| [http://www.hard-light.net/forums/index.php?topic=70568.0 Thread]<br />
|}<br />
<br />
=== Post-Capella ===<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Requirement !! Author(s) !! Special content !! Number of missions!! Story !! Link<br />
|-<br />
| colspan="9" style="text-align: center; background: #108;"| <font size=4>'''Post-Capella Era'''</font><br><font size=1>''Campaigns set after the Capella supernova''</font><br />
|-<br />
|''[[9th Fleet]]||Unknown||No||FSO||[[User:Eolis|Eolis]]||New weapons, new ships, new textures||Unknown|| The GTVA discovers a new Knossos<br />
|-<br />
||''[[All is Fair in Love and War - Chapter 1]]'' ||Relased || No ||FSO|| adwight||None|| 5|| A mining operation by GTVA trggers a full-fledged rebellion || [http://www.hard-light.net/forums/index.php/topic,16058.0.html Thread] ''<br />
|-<br />
||''[[Apocalypse : Vega]]'' ||Released || No ||FSO (3.6.11 build)|| Shiv ||Polish version available|| Unknown||After Capella has been cut from GTVA, a new front open on Vega || [http://www.hard-light.net/forums/index.php/topic,64384.0.html Thread] ''<br />
|-<br />
||''[[Artifice]]'' ||Released || No ||FS2|| [[User:BlueFlames|BlueFlames]] ||New ships || 11|| Sequel to ''Second Front''<br />
|-<br />
||''[[A New Era]]'' ||Work-in-progress || No ||FSO|| Hiigara ||None || Unknown|| By 2370, the Vasudan race has disappeared and mankind is limited to an handful of ships|| None yet<br />
|-<br />
<br />
|''[[Back From the Grave]] ||Work-in-progress||No||FSO||[[User:Ngtm1r|Ngtm1r]] ||New ships, new weapons, new race||Unknown|| By 2372, through a node in Vega thought collapsed, new ships emerge...<br />
|-<br />
|''[[Boomerang]] || Released||Yes||FSO ||Peter Drake, [[FreeSpace Campaign Restoration Project|FSCRP]] || None || 3|| Unknown|| [http://www.hard-light.net/forums/index.php/topic,58351.0.html Thread] <br />
|-<br />
|''[[Casualties of War]]||Released (v2)||Partial||FSO||Various||New ships, weapons, backgrounds||9 (v2)+10||The SOC is sent to thwart a planetary coup d'etat || [http://www.hard-light.net/forums/index.php?topic=74695.new#new Thread]<br />
|-<br />
|''[[Children of Shiva]]||Work-in-progress||No||FSO||[[User:Axem|Axem]]||New ships, new textures||20|| In the year 2372, Rane Gribek, a self proclaimed prophet of the Shivans embarks on a quest to spread the philosophy of death<br />
|-<br />
|''[[Cleaning Crew]] || Released || No || FSO || [[User:Ngtm1r|Ngtm1r]]||New ship, new weapons, new race||10|| Post-Capella mop-up with the 33rd Heavy Fighter Squadron.<br />
|-<br />
|''[[Deep Blood]]||Released||No||Unknown||Gai Daigoji||None||11|| The GTVA decides to give what lies beyond a ew jump node in Altair to the Capella refugees ||[http://www.freewebs.com/neo-terra/downloads.htm Website]<br />
|-<br />
|''[[Dissident Theory]]||Work-in-progress||No||FSO||freespacegundam||Unknown||Unknown||In the seven years since Capella, the GTVA has set about the task of relocating the millions of Capella refugees. Then was discovered the Acacia system. Lush, vibrant, teaming with life and resources, its worlds have become the hope for the destitute masses - and also for castoffs, pirates and other opportunists || [http://www.freewebs.com/gundamvsff/index.html Website]<br />
|-<br />
|''[[Earth Defense]]||Work-in-progress||Unknown||None||Various||Complete mod||30+||The aftermath of Capella, 20 years ago, has manifested in widespread unhappiness throughout the Terran and Vasudan populace. Political strife and scheming have begun to decay the established government from the inside out. As a new Vasudan leadership emerges, a breakaway faction forms.||[http://www.game-warden.com/earthdefence/ Website]<br />
|-<br />
|''[[Flames of War - Coming of the Storm]]||Released||NO||FSO||TrashMan||Various||26||Unknown|| [http://www.hard-light.net/forums/index.php/topic,58162.0.html Thread]<br />
|-<br />
|''[[Ghost Revenants]]||Released||No||FSO||griffon67||New ships, new weapons||40||The life of merchant is sometimes more boring that we could imagine. You found a way to live your life as you wanted, but the strange artifact you got recently is gonna put you in the worse situations.|| [http://www.hard-light.net/forums/index.php/topic,54854.0.html Thread]<br />
|-<br />
|''[[Into the Depths of Hell]]|| Partial || Unknown || || Unknown ||New ships, new weapons ||Unknown|| After the Capella supernova, the remnants of the Terran troops and refugees in Capella destruction of the Sathanas have no other choice but jumping into Shivan space, hopefully back to the GTVA space.<br />
|-<br />
|''[[Luyten Civil War]]||Work-in-progress||No||FSO||[[User:TopAce|TopAce]]||Some||12||A pure, [[Silent Threat: Reborn]]-inspired military campaign with most emphasis on gameplay and quality mission design.''<br />
|-<br />
|''[[Machina Terra]]||Work-in-progress||Yes||FSO||Various||Complete mod||40||Unknown<br />
|-<br />
|''[[Olympus Burning]]||Work-in-progress||Yes||FSO||sigtau||New ships, weapon, sounds||Unknown||The hunt for an extremely enhanced Orion goes awry||[http://www.hard-light.net/forums/index.php/topic,63657.0.html Thread]<br />
|-<br />
<br />
|''[[Pathways]] ||Work-in-progress||Unknown||FSO||Various||Unknown||Unknown||Shortly after the Capella accident, pirates raid civilian and military assets, compelling the GTVA to get into police actions<br />
|-<br />
|''[[Pirates of Yore]] ||Work-in-progress ||No ||FSO || [CommanderDJ]||||2 released ||When Lieutenant Graham Helix hears about a slightly unusual group of pirates operating in Vega, his interest is sparked. || [http://www.hard-light.net/forums/index.php?topic=72989.0 Thread]<br />
|-<br />
|''[[Police Action]] ||Work-in-progress ||No ||FSO || [[User:Ngtm1r|Ngtm1r]]||New ships, new installations||30 || Five months after the last of the Shivan forces were mopped up the GTVA's naval presence vastly reduced, allowing pirates to operate more freely. Meanwhile, the last NTF battlegroup is raising hell in Deneb ; and there are discontent voices amongst the Vasudans, there are discontent voices -- Sequel to Cleaning Crew<br />
|-<br />
|''[[Race for Altair XI]]||Work-in-progress || No||FSO||[[User:Nubbles|Nubbles]]||None||Unknown||As the 75th Blue Lions are travelling back home after the Capella supernova, they are ambushed by Vasudan forces<br />
|-<br />
|''[[Relentless]]||Released || No||FSO||[[User:Nubbles|Nubbles]]||None||Unknown||As the 75th Blue Lions are travelling back home after the Capella supernova, they are ambushed by Vasudan forces||[http://www.hard-light.net/forums/index.php?topic=68750.0 Thread]<br />
|-<br />
|''[[Renegade Resurgence]]||Released||No||FSO||[[User:TopAce|TopAce]]||New ships|||About 30||The GTVA initiates a very ambitious project to learn more about Ancient civilization. Ships keep disappearing, however.||[http://www.hard-light.net/forums/index.php/topic,55043.0.html Thread]<br />
|-<br />
|''[[Revenge: Final Conflict]]||Released|| No||FSO||Florian Meyer||None||88||Eleven years after the seond Great War, in the year 2378. the shivan threat again reaches a dangerous magnitude. But the Events take a dramatic turn for more than 30.000 people, revealing revolutionary events hidden way back in the past.|| [http://www.freespacemods.net/download.php?view.399 FreeSpaceMods]<br />
|-<br />
|''[[Rise of the Corporate]] ||Released||No||FSO|| wistler ||None||6|| In order to stave of a new depression, the GTVA sells off its aging and mothballed ships to various trusted Corporate interests. || [http://www.hard-light.net/forums/index.php/topic,63451.0.html Thread]<br />
|-<br />
|''[[The Scroll of Atankharzim|Scroll of Atankharzim]] ||Work-in-progress||To be determined||FSO|| Sesquipedalian||New ships, new weapons||40ish || In this Vasudan campaign, set in 2378, a new subspace node is discovered in Beta Cygni, leading to hope and peril. || [http://scroll.hard-light.net Website]<br />
|-<br />
|''[[Second Great War Part II]]||Released||No||FS2||C. "Sunil" Reddy||None||30||In 2379, Shivans launch a third assault on Terran and Vasudan systems<br />
|-<br />
|''[[Stand Against the Night]]||Demo||No||FSO|| mr WHO ||new faction and sounds||3 released|| GTVA is performing military exercices simulating a SHivan attack on Sol || [http://www.hard-light.net/forums/index.php/topic,61304.0.html Thread]<br />
|-<br />
|''[[Shadows of Kraken]]||Released||No||Unknown|| [User:Axem|Axem ||None||5|| A week after the Capella incident, GTVA attemps to salvage debris in the Adhara system<br />
|-<br />
|''[[Teeth of the Tiger]] ||Work-in-progress||Unknown||FSO||Various||Complete mod||3 released|| In the weeks after the Capella accident, the GTVA decides to explore new systems || [http://www.hard-light.net/forums/index.php/topic,61004.0.html Thread]<br />
|-<br />
|''[[The Enemies Return]]||Released||No||FSO||KappaWing||None||26|| 12 years after the Capella accident, there are still Shivan entry point to the T-V systems || [http://www.hard-light.net/forums/index.php/topic,38491.0.html Thread]<br />
|-<br />
|''[[The Omicron Incident]]||Work-in-progress||No||FSO||macfie||Unknown||6 released|| The Omicron system is open to colonisation. But piracy must be wiped out before || [http://www.freespacemods.net/download.php?view.213 FreeSpaceMods]<br />
|-<br />
|''[[The Procyon Insurgency]]||Released ||No||FSO||CP5670||Various||17|| A young Vasudian pilot assist the GTVA in crushing the Procyon Insurgency<br />
|-<br />
|''[[Tides of Darkness]]||Released||No||FSO||Droid803||Shivan ships played||Unknown||The Sathanas fleet has been trapped in Gamma Draconis and Capella for years by the sudden collapse of the nebula node. As a anti-terran cult make its move, the exiled Terrans that joined the Shivans after fleeing to Gamma Draconis are pulled along into the conflict.|| [http://www.hard-light.net/forums/index.php/topic,60136.0.html Thread]<br />
|-<br />
|''[[Transcend]]||Released||No||FSO||Ransom Arceihn||Minor mods||44||Everyone has a limit...<br />
|-<br />
|''[[Twisted Infinities]]||Work-in-progress||Unknown||FSO|| Various||Complete mod, atmospheric combat||35|| By 2378, some pirate groupes in <br />
|-<br />
|-|''[[Unification Prequel]] ||Released||No||FS2||Gai Dagoji||Unknown||9||The GTD Avenger has been assigned to the Hydra system, to protect the Capella refugees || [http://www.hard-light.net/forums/index.php/topic,28371.0.html Thread]<br />
|-<br />
|''[[Utopia - Return to Neo Terra]]||Partial, postponed||No||Unknown||Gai Daigoji||None||11 released|| Three years after Capella, the small Vasudan garrison of Solaris is unable to maintain control as Terrans begin to turn on each other. Stuck in the middle, a former NTF pilot must choose his path ||[http://www.freewebs.com/neo-terra/downloads.htm Website]<br />
|-<br />
|''[[Windmills]] ||Released||No||FSO||Ransom Arceihn||Proof-of-concept||4||A proof-of-concept aiming at showing that FS2 can be turned into a (somewhat) RTS || [http://www.hard-light.net/forums/index.php/topic,62062.0.html Thread]<br />
|-<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Blue Planet'''</font><br><font size=1>''Campaigns set in the user-made [[Blue Planet]] continuity''</font><br />
|-<br />
|''[[Blue Planet: Age of Aquarius|Age of Aquarius]]||Released||Yes||FSO||Darius||Complete mod||22||While trying to travel back to Sol for the first time, a GTVA fleet faces peculiar events<br />
|-<br />
|''[[Blue Planet: War in Heaven|War in Heaven]]||Partial||Not Planned||FSO||Darius||Complete mod||33 (Planned)||The war between Sol and the rest of its colonies in its final stage<br />
|-<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Cold Element'''</font><br><font size=1>''Campaigns set in the user-made [[Cold Element]] continuity''</font><br />
|-<br />
|''[[Derelict]] ||Released||Yes||FS2||Various||New ships, new jump node||45 + 1 Credits Mission|| 5 years after the collapse of Capella, a derelict Lucifer is found hovering in space<br />
|-<br />
|''[[Aftermath_(CE)|Aftermath]]||Released||No||FS1/FSO/FSPort||Cold Element Team,[[FreeSpace Campaign Restoration Project|FSCRP]]||Music Files||4 Episodes 19 missions total||A plague errupts in Epsilon Pegasi, which the GTVA tries to quarantine ||[http://www.hard-light.net/forums/index.php?topic=66833.0 Thread]<br />
|-<br />
|''[[Blackwater Operations]]|| Demo||Yes||FSO||Various||Complete mod, branching campaign||Unknown||Unknown<br />
|-<br />
|''[[Twilight]]||Released||No ||FS2||Ace||Unknown ||6 || In 2372, the GTD Morgain is sent in Ikeya system to investigate the disappearance of several GTVA ships<br />
|-<br />
|''[[Warzone]] ||Released|| No ||FS2|| IceFire,[[FreeSpace Campaign Restoration Project|FSCRP]]||New ship ||19|| In the midst of another Shivan invasion of the GTVA home systems, a mystery begins to unravel itself|| [http://www.hard-light.net/forums/index.php/topic,58356.0.html Thread]<br />
|-<br />
| colspan="9" style="text-align: center; background: #112;"| <font size=3>'''Into the Halls of Valhalla'''</font><br><font size=1>''Campaigns set in the [[Into the Halls of Valhalla]] sub-continuity of the user-made [[Cold Element]] continuity''</font><br />
|-<br />
|''[[Into the Halls of Valhalla|Police Action(ITHOV)]]||Released||No||FSO||[User:TopAce|TopAce, Thor ||None||4||The 70th Blue Lions must escort the Representative Men'Su<br />
|-<br />
|''[[Into the Halls of Valhalla]]||Released||No||FSO||Various||New ship, new installation||Unknown||After being caught spying, Commander McCrae is reassigned in a border world<br />
|-<br />
| colspan="9" style="text-align: center; background: #112;"| <font size=3>'''Independent'''</font><br><font size=1>''Campaigns set independently in the user-made [[Cold Element]] continuity''</font><br />
|-<br />
|''[[Meditations on the Abyss]]||Partial||No||FS2||Akalabeth Angel || None||6 released||Miranda Doué yearns for asignment of low prestige, but sometimes fate is lacking of heroes ||[http://www.hard-light.net/forums/index.php?topic=52267.0 Thread]<br />
|-<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Incursion'''</font><br><font size=1>''Campaigns set in the user-made [[Incursion]] continuity''</font><br />
|-<br />
|''[[Incursion]] ||Released||No||FS2||MAW||Unknown||26|| In 2676, the Shivans appear in greater forces than ever<br />
|- style= "border: 1px #22D solid;"<br />
|-<br />
|''[[Return to Sol]]||Released||No||FS2||MAW||New ships, maybe other||20|| In 2680, after the final defeat of the Shivan, the GTVA is about to travel back to Sol -- Sequel to Incursion<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''End War'''</font><br><font size=1>''Campaigns set in the user-made End War continuity''</font><br />
|-<br />
|''[[Dawn of Sol]]||Released||No||FSO||ShadowGorrath, EW team||Complete mod||Unknown|| Cold war simmers in the Sol system. Little do they know that they are on the threshold of revolution. The Dawn of Sol is coming.|| [http://www.hard-light.net/forums/index.php?topic=66994.0 Thread]<br />
|-<br />
|''[[End War]]||Work-in-progress||No||FSO||ShadowGorrath, EW team||Complete mod||Unknown|| 32 years has passed since the second Shivans incursion, but now at last, mankind will be able to connect back with their homeworld ||[http://www.hard-light.net/forums/index.php/topic,57037.0.html Thread]<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Inferno'''</font><br><font size=1>''Campaigns set in the user-made [[Inferno]] continuity''</font><br />
|-<br />
|''[[Inferno|Inferno: Alliance]]||Released||No||FSO||INFA Team||||20||15 years after the destruction of the Sol node, Sol is at war.<br />
|-<br />
|''[[Inferno|Inferno: Alliance 1]]||Work-in-progress||No||INFA SA||INFA Team||||34||New version of the Inferno Alliance campaign<br />
|-<br />
|''[[Inferno|Inferno: Alliance 2]]||Work-in-progress||No||INFA SA||INFA Team||||30+||The newly born Earth Alliance faces the Jovian Coalition and its allies<br />
|-<br />
|''[[Inferno|Inferno: Release 1]]||Released||No||INFR1, FS2||Inferno R1 Team||||14||The GTVA and the Earth Alliance are at war, while the Shivans are back<br />
|-<br />
|''[[Inferno|Inferno SCP: Chapter One]]||Work-in-progress||No||INF SCP||INF SCP Team||||30+||New version of Inferno Release 1, with major plot changes.<br />
|-<br />
|''[[Inferno|Inferno SCP: Chapter Two]]||Work-in-progress||No||INF SCP||INF SCP Team||||20+||Continuation of Chapter One.<br />
|-<br />
|''[[Solar Wars]]||Part 1 released||No||INFR1, FSO||Gai Daigoji||||13|| 48 hours after the surrender of the Earth Alliance, an EA is called into action again||[http://www.freewebs.com/neo-terra/downloads.htm Website]<br />
|-<br />
|''[[Steadfast|Steadfast Episode One]]||Work-in-progress||No||FSO, Inferno R1, INFA||Steadfast Team||||25||The GTCa Steadfast is sent to deal with Altair Phoenixes forces in Alpha Centauri<br />
|-<br />
|''[[Steadfast|Steadfast Episode Two]]||Postponed||No||FSO, Inferno R1, INFA||Steadfast Team||||20(?)||The AP Rebellion continues and the integrity of the Alliance is threatened<br />
|-<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Seeds of Rebellion'''</font><br><font size=1>''Campaigns set in the user-made [[Seeds of Rebellion]] continuity''</font><br />
|-<br />
|''[[Seeds of Rebellion]]||Postponed||No||FSO||Karajorma||Unknown||5||By 2368, on a shakedown cruise to test its new systems, the GTAC Aethalides ends up in the middle of a war zone<br />
|-<br />
|''[[The Centaur Project]]||Partial||Yes||FS2 or FSO||Grunt, Laibon, stepanshuk||New ships, new installation, branching||18 released||In 2377, the Centaur Project aims at clearing definitly attacking the Shivans in their very systems||[http://w3.enternet.hu/fscult/TCP.htm Website]<br />
|-<br />
|''[[The Mercury Affair|Mercury Affair]]||Postponed||No||FSO||Karajorma||Unknown||20+||In 2376, secret cargos of the GTVA are mysterioulsy received in the Ross 128 system -- Sequel to Seeds of Rebellion<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Workings of the Warp'''</font><br><font size=1>''Campaigns set in the user-made [[Working of the Warp]] continuity''</font><br />
|-<br />
|''[[Faces of Treason]]||Released||No||FSO||[http://wo.proxima-fleet.com/ Orph3u5]||Branching campaign||Unknown||Unknown|| [http://wo.proxima-fleet.com/wotw/index.html Website]<br />
|-<br />
|''[[Workings of the Warp]]||Released||No||FSO||[http://wo.proxima-fleet.com/ Orph3u5]|| Various||Unknown||Commander Alexander Couter, Squadron Leader of 41st Squadron of the GTVA will take part in an epic struggle in a divided galaxy, once again battle against the Shivans and will uncover a mystery which even the powerful Shivans have to fear. || [http://wo.proxima-fleet.com/wotw/index.html Website]<br />
|-<br />
|''[[Omens]]||Work-in-progress||No||FSO||[http://wo.proxima-fleet.com/ Orph3u5] || Various ||Unknown||Unknown || [http://wo.proxima-fleet.com/wotw/index.html Website]<br />
|}<br />
<br />
== Non-FreeSpace continuity ==<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Requirement !! Author(s) !! Special content !! Number of missions!! Story !! Link<br />
|-<br />
|''[[Allied Worlds]]||Released||No||FSO||Alex Harris || New Textures, new weapons||6||The Allied Worlds are sending a last ressort attack against the Leedran || [http://www.freespacemods.net/download.php?view.59 FreeSpaceMods]<br />
|-<br />
|''[[The Great War - Independence]]||Demo||No||FSO||Alex Navarro|| New textures, music, sounds||5 dogfight missions||In year 2630, human colonies in a future distopia want their independence || [http://www.hard-light.net/forums/index.php?topic=66284.0 Thread]<br />
|-<br />
|''[[Civil War]]||Teaser Released||No||FSO & FSP||Tane Zezo Piper, macfie || None||7 for the teaser||In an alternate FreeSpace universe, Vasudans are traders and Shivans a mysterious warrior race|| [http://www.freespacemods.net/download.php?view.81 FreeSpaceMods]<br />
|-<br />
|''[[Merkar]]||Demo||No||FSO & FSP||Mustang19|| None||4(demo)|| The Merkar Campaign|| [http://www.hard-light.net/forums/index.php?topic=72885.0 Release Thread]<br />
|-<br />
|''[[Twist of Fate]]||Partial||No||FSO $ FSP||Woolie Wool and Various ||New ships, weapons, backgrounds, and music||4 (demo), 15 (Chapter 1), 48 (all chapters)||An alternate continuity where the Shivans died out and the Terna-Vasudan War rages on || [http://www.freespacemods.net/download.php?view.15 FreeSpaceMods]<br />
|-<br />
|- style= "border: 1px #22D solid;"<br />
| colspan="9" style="text-align: center; background: #114;"| <font size=4>'''Storm Front'''</font><br><font size=1>''Campaigns set in the user-made [[Stormfront]] continuity''</font><br />
|-<br />
|''[[What if - Another Great War]]||Released||No||FSO||SF-Junky||New ships, new weapons||30|| A reimagination of the Great War as it happened in the Storm Front Universe<br />
||[http://www.hard-light.net/forums/index.php/topic,56156.0.html Thread]<br />
|-<br />
|''[[StormFront I - Prophecy|Prophecy]] ||Released||No||FSO||SF-Junky||New ships||22||The GTVA confronts a newly flamed Hammer of Light rebellion in Laramis one year after the Capella incident<br />
||[http://www.hard-light.net/forums/index.php?topic=67097.0 Thread]<br />
|-<br />
|''[[StormFront II - Cthulhu|Cthulhu]] ||Released||No||FSO||SF-Junky||New ships||22|| Sequel to Stormfront I - Prophecy<br />
||[http://www.hard-light.net/forums/index.php?topic=67097.0 Thread]<br />
|-<br />
|''[[The Storm Chasers]] ||Released||No||FSO||SF-Junky|| || 4-6 each|| A series of minicampaigns that tell the stories of some pilots during and after the NTF war.<br />
||[http://www.hard-light.net/forums/index.php?topic=68872.0 Thread]<br />
|}<br />
<br />
== Parodies == <br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Requirement !! Author(s) !! Special content !! Number of missions!! Story !! Link<br />
|-<br />
|''[[Deus Ex Machina]] ||Released||No||FS2 ||Goober5000||None||5||As a member of the NTF 47th Red Shirts, you must protect Bosch Beer shipping lines<br />
|-<br />
|''[[Deus Ex Machina|Deus Ex Machina: Interlude]] ||Released||No||FS2 ||Goober5000||None||5||Mysterious things have been happening on the edge of NTF space. Unexplained appearances, strange plot holes...<br />
|-<br />
|''[[DW]] ||Released||Yes||FSPort ||TheAiler (Joacim Holst) and Zhapod (Robert Nilsson) ||None||2||A slow patrol becomes a fight for your life.<br />
|-<br />
|''[[Freespace 3 the search For bosch]] ||Released||No||FSO ||xX_LORD_ULTRA_DEATH_Xx||Music||5||A character-driven post-Capella epic that at last gives us answers about Bosch, the Shivans, and the nature of the universe.<br />
|-<br />
|''[[Just Another Day]] ||Released||No||FSO ||[user:Axem|Axem ||Music||6|| You are Alpha One, the greatest pilot ever, facing your worst enemies : the FREDder and plotholes This campaign has one more level than Deus Ex Machina<br />
|-<br />
|''[[Just Another Day 2: Electric Boogaloo]] ||Released||No||FSO ||[user:Axem|Axem ||Music||6|| You are still Alpha One, and being the best pilot and all, you must uncover what are the Shivans<br />
|-<br />
|''[[Just Another Day 3: Shivans on a Plane]]||Released||No|| FSO||[user:Axem|Axem ||Shivans on a Plane (supposedly), Music||8|| You are still Alpha One, and Shivans are trying to take over former human aero-transport.<br />
|-<br />
|''[[Just Another Day : Christmas Special]]||Released||No|| FSO||[user:Axem|Axem ||Music||1|| You are still Alpha One, and it is Christmas somewhere<br />
|-<br />
|''[[Ridiculous]]||Released||No|| FSO||[user:IronBeer|IronBeer ||Music, New Effects||1|| This mod is Ridiculous, and you should feel ridiculous while playing it.||[http://www.hard-light.net/forums/index.php?topic=72554.0 Thread]<br />
|} <br />
<br />
[[Category:User-made Campaigns|*]]<br />
<br />
== [[The Babylon Project]] ==<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Author(s) !! Number of missions!! Features !! Story and notes !! Link<br />
|-<br />
|''[[Earth Minbari War]]||Partial||Yes|| The TBP team||Unknown|||| The demo campaign for the Babylon Project<br />
|-<br />
|''[[Emearon Incident]]||Released||No|| Ker.soth ||8||Multi possible|| Unknown || [http://www.hard-light.net/forums/index.php?topic=67320.0 Thread]<br />
|-<br />
|''[[Drums of War]]||Released||No||0rph3u5||5|| ||The year is 2262 and the Interstellar Alliance faces its first major crisis. And the NRS Vol'Toth uncovers a dark truth... <br />
|-<br />
|''[[Drums of War 2]]||Released||No||0rph3u5||5|| ||The drums are being played again. The song of war rises and you have the chance to join the pilots of the Narn Destroyer Vol'toth again...<br />
|-<br />
|''[[In the Name of the Emperor]]||Released||No||Skullar||3|| ||A training from the Centauri point of view || [http://www.hard-light.net/forums/index.php?topic=60914.0 Thread]<br />
|-<br />
|''[[Raider Wars]]||Released||Yes||Unknown||Unknown||||Unknown<br />
|-<br />
|''[[Relic]]||Released||Unknown||Slasher||4||||Background from the 4th season<br />
|-<br />
|''[[Dark Children]]||Released||Yes ||Vidmaster|| 5 || Bullet-time, in system-jumping || Campaign made to test new features<br />
|-<br />
|''[[Achen Schooling Flight]]||Released||Yes||Vidmaster|| 1|| ||TBP Tutorial Mission<br />
|-<br />
|''[[Operations]]||Released||Yes||Vidmaster||6||Multiplayer campaign||<br />
|-<br />
|''[[Fortune Hunters - 2259]]||Released||No (planned)||Vidmaster|| 9|| ||Raiding defenseless convoys to make a living, the Fortune Hunters get pulled into events between powers that are destined to change the face of the galaxy forever. Alien races go to war with each other, trade routes are disrupted and terrors yet unseen lurk somewhere in the void. It is the year 2259, the year the Great War started. - REQUIRES [http://www.hard-light.net/forums/index.php?topic=72093.0 ZATHRAS].<br />
|-<br />
|''[[Fortune Hunters - 2260]]||Released||No (planned)||Vidmaster||13 || ||Alliances and balances are shifting. The Great War is upon the galaxy and the Hunters have to decide what their place will be in this new world - REQUIRES [http://www.hard-light.net/forums/index.php?topic=72093.0 ZATHRAS].<br />
|-<br />
|''[[Fortune Hunters - 2261]]||Released||No (planned)||Vidmaster||12 || ||The saga concludes, the Great War is in its final stage. Gods clash, worlds vanish and all hope is lost. This is it, your final moment, victory is impossible and survival doubtful. And even if you would make it through, what would you do afterwards? - REQUIRES [http://www.hard-light.net/forums/index.php?topic=72093.0 ZATHRAS].<br />
|}<br />
<br />
== [[Beyond the Red Line|BattleStar Galactica: Beyond the Red Line]] ==<br />
<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Campaign !!Release status !! Voiced !! Author(s) !! Number of missions!! Features !! Story and notes !! Link<br />
|-<br />
|''[[Beyond the Red Line|BattleStar Galactica: Beyond the Red Line]]||[http://www.game-warden.com/bsg/ Link]||Work-in-progress||Demo released||Beyond the Red Line is a standalone total conversion based on the popular new tv-show Battlestar Galactica (Re-imagined) - Main campaign<br />
|-<br />
|''[[Battlecruiser Archangel]]||Demo released||No ||Shiv||Unknown || || The untold story of Geminion survivors || [http://www.hard-light.net/forums/index.php?topic=49205.0 Thread]<br />
|}<br />
<br />
== Other universes ==<br />
{| cellpadding = 5 style="margin: 0 0 1em 1em; background: #002; border: 2px #11A solid; border-collapse: collapse;" class=sortable<br />
!Project !!Website !!Mod status !!Main campaign release status!! Description !!<br />
<br />
|-<br />
|''[[Diaspora]]||[http://www.diaspora-game.com/ Link]||Work-in-progress|||| Another total conversion based on the Battlestar Galactica universe.<br />
|-<br />
|''[[Fate of the Galaxy]]|| [http://swc.hard-light.net/ Link] ||Work-in-progress|||| An attempt to bring Star Wars to FreeSpace, also known as the Star Wars Conversion.<br />
|-<br />
|''[[FreeSpace: Reunited]]|| None ||Work-in-progress|||| This mod aims at merging the universe of FreeSpace with the one of BattleStar Galactica<br />
|-<br />
|''[[Fringespace]]||[http://fringespace.org Link]||Work-in-progress||||This project is designed to duplicate, as closely as possible, the "feel" of Tachyon: The Fringe, within the Freespace2_Open game engine as well as an attempt to update the visuals and the playing experience for Tachyon fans. <br />
|-<br />
|''[[Star Fleet Academy]]||None||Work-in-progress|||| This project aims at entailling events from multi-eras of the Trek Continuum<br />
|-<br />
|''[[The Starforce Mod|Starforce]]||None||Work-in-progress||||The Starforce Mod is a continuation of the FS universe into the 41st century.The project is intended to be more of a starting point for other projects rather than a full campaign in itself. <br />
|-<br />
|''[[Starfox: Shadows of Lylat|Star Fox: Shadows of Lylat]]||[http://www.game-warden.com/starfox Link]||Work-in-progress||||Starfox: Shadows of Lylat is a standalone mod for FreeSpace 2 Open based on the Star Fox games, with many new features such as rail missions and planet-side missions.<br />
|-<br />
|''[[The Apocalypse Project]]||[http://tap.hard-light.net/ Link]||Work-in-progress|||| A project to create a space combat simulator set in the Homeworld universe.<br />
|-<br />
|''[[Robotech 2.0]]||None||Unknown|||| This project plan to expand the original Robotech mod<br />
|-<br />
|''[[Wing Commander Saga]]||[http://www.wcsaga.com/ Link]||Work-in-progress||Partial||Wing Commander Saga (WCS) is a standalone total conversion based on the universe familiar from the Wing Commander games<br />
|-<br />
|''[[Wings of Dawn]]||None||Released||Released||WoD is a freespace mod with a strong anime vibe, filled with custom content [http://www.hard-light.net/forums/index.php?topic=72093.0 Nordera Day extension]<br />
|}</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=Second_Shivan_Incursion&diff=35672
Second Shivan Incursion
2011-07-22T22:06:55Z
<p>Cyborg17: /* 2367 */</p>
<hr />
<div>:''This event has never been named in FreeSpace canon. The name "Second Shivan Incursion" is conjectural.''<br />
<br />
The '''Second Shivan Incursion''' was the second invasion by the [[Shivans]] on Galactic Terran-Vasudan space.<br />
<br />
Shortly after the discovery of the [[Knossos]] subspace portal, a [[SC Rakshasa|''Rakshasa''-class Shivan cruiser]] emerged. A short-lived offensive against the Shivans in the nebula beyond the portal also saw the end of the [[NTF Rebellion]] with the deployment of the [[GTVA Colossus|GTVA ''Colossus'']]. Bosch, however, made contact with the Shivans and vanished into the nebula. Meanwhile, dozens of six-kilometer long Shivan Sathanas juggernauts began pouring from the portal, and started converging on the [[Capella]] star. A plan to collapse the jump nodes to Capella using [[TC-Meson Bomb|Meson Bomb]]s was hatched and technically successful, but during the final stages of evacuation, the Sathanas juggernauts triggered a supernova in Capella. This timeline will give a battle-by-battle account of the offensive and defensive action against the Shivans.<br />
<br />
'''Because FS2 command briefings provide no dates, all events are simply listed in sequential order.'''<br />
<br />
==2367==<br />
<br />
*''Rakshasa''-class Shivan cruiser and several wings of [[SF Mara|Mara]]s appear through the Knossos portal, destroying the GTC ''Vigilant''. GTVA command deploys the GTD ''Carthage'' and the GVCv ''Dashor'' to neutralize the immediate threat.<br />
<br />
*[[NTC Trinity|NTC ''Trinity'']] discovered adrift in the nebula.<br />
<br />
*GTCv ''Lysander'' destroyed by [[SD Ravana|SD ''Ravana'']].<br />
<br />
*The [[SD Ravana|SD ''Ravana'']] takes down the [[FreeSpace_2_Terran_Ship_Database#GTD_Delacroix|GTD ''Delacroix'']] and damages the rest of the task force sent to neutralize it.<br />
<br />
*[[SD Ravana|SD ''Ravana'']] destroyed by bombers in the nebula.<br />
<br />
*NTF launches a major offensive in [[Epsilon Pegasi]]. Rear Admiral Koth and the NTF 6th Fleet inflict 75% causalties to the GTVA forces. First nebular retreat.<br />
<br />
*First combat deployment of the [[GTVA Colossus|GTVA ''Colossus'']] at the [[The Sixth Wonder|Battle of Enif Station]].<br />
<br />
*The [[NTD Repulse|NTD ''Repulse'']], Koth's flagship, is lured into a trap by GTVA forces. Koth refuses to surrender, and perishes in a futile attempt to ram his destroyer into the ''Colossus''. [[Liberation of Epsilon Pegasi|Epsilon Pegasi is liberated]].<br />
<br />
*With Epsion Pegasi secured, the [[GTD Aquitaine|GTD ''Aquitaine'']] spearheads the exploration of the nebula.<br />
<br />
*Sirius falls to the GTVA. Bosch orders the rest of the NTF fleet to Gamma Draconis and the nebula to make contact with the Shivans. End of the NTF Rebellion.<br />
<br />
*First appearance of the [[SJ Sathanas|SJ ''Sathanas'']]. Second nebular retreat.<br />
<br />
*The Knossos portal is destroyed by Meson Bombs, but the SJ ''Sathanas'' emerges in Gamma Draconis through the now-stabilized node.<br />
<br />
*Sathanas main beams and the SD ''Beleth'' destroyed by [[GVB Bakha|Bakha]] bombers near the Gamma Draconis-Capella node. Destruction of the SJ ''Sathanas'' by the GTVA ''Colossus'' in Capella.<br />
<br />
*Admiral Bosch and his immediate subordinates captured by the Shivans. GTVA recovers the schematics for the [[ETAK]] device. [[NTF Iceni|NTF ''Iceni'']] self-destructs.<br />
<br />
*Discovery of the second Knossos portal by the [[GVD Psamtik|GVD ''Psamtik'']]. Multiple Sathanas juggernauts encountered in the nebula. GVD ''Psamtik'' destroyed by the second Sathanas. Third nebular retreat.<br />
<br />
*Terran SOC pilots, flying [[SF Mara (Terrans)|captured Mara fighters]], scout the system beyond the second Knossos, and encounter a third Knossos as well as several additional juggernauts.<br />
<br />
*Massive evacuations of the densely-populated Capella system begin. Millions of refugees flood into Epsilon Pegasi and Vega.<br />
<br />
*80 Sathanas juggernauts surround the Capella sun and begin emitting quantum subspace pulses of increasing intensity. GTVA ''Colossus'' destroyed by Sathanas 17 while defending the Capella-Gamma Draconis node.<br />
<br />
*[[GTD Nereid|GTD ''Nereid'']] and [[GTD Bastion|GTD ''Bastion'']], packed with Meson Bombs, detonate inside the Vega-Capella and Epsilon Pegasi-Capella nodes. Sathanas juggernauts destabilize the Capella star. Capella goes supernova.<br />
<br />
[[NTF Rebellion]]''' :PREVIOUS | NEXT: '''[[Post-Capella]]<br />
<br />
[[Category:History|Second Shivan Incursion]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=SC_Cain&diff=35645
SC Cain
2011-07-22T20:35:39Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{FS12_Ships}}<br />
The '''SC ''Cain''''' was a Shivan class of cruiser. Cains were the mainstay cruisers used during the [[Great War]] and were still popular during the era of the [[Second Shivan Incursion]].<br />
<br />
The Cain had an advanced variant, the [[SC Lilith|SC ''Lilith'']].<br />
{{shipimage|image=[[Image:Sccain_Sclilith-old.jpg]]|caption=The SC Cain}}<br />
<br />
<br />
==Description:==<br />
===FS1 Tech Room Description===<br />
The Cain is by far the most common cruiser in the Shivan fleet. It is also the weakest. However, the Cain should not be underestimated. It has many turrets, as well as a cluster bomb defensive mechanism. As a strike cruiser, the Cain mostly appears in attacks against GTA or PVN capital ships and cruisers. In these cases, it should be destroyed immediately. The primary weakness of the Cain appears to be its unshielded turrets. Most of the turrets on the Cain can be destroyed with minimal damage.<br><br><br />
The Cain is a Class B threat.<br />
<br />
===FS2 Tech Room Description===<br />
The weakest of the Shivan cruiser classes is designated SC Cain. These vessels were commonly encountered during Great War battles. Cains are considered to be slightly stronger than the GTC Fenris cruiser class.<br />
<br />
===Developer Notes===<br />
{{shipimage|image=[[Image:Sccain.jpg|500px]]|caption=The SC Cain in FS2_Open 3.6.12}}<br />
None<br />
<br />
===Name Origin===<br />
According to the Bible, Cain was the first son of Adam and Eve. Cain commits the very first murder, killing his brother Abel.<br />
<br />
==Performance:==<br />
===Statistics===<br />
{|<br />
|-<br />
| style="width:200px" | '''[[Technical_Terms_and_Definitions#Type|Type]]'''<br />
| style="width:200px" | Cruiser<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Manufacturer|Manufacturer]]'''<br />
| Unknown<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Maneuverability|Maneuverability]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Velocity|Max Velocity]]'''<br />
| 30.0 mps<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Afterburner Velocity|Max Afterburner Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Armor|Armor]]'''<br />
| N/A<br />
|-<br />
| [[Technical_Terms_and_Definitions#Hitpoints|Hitpoints]]<br />
| 20 000<br />
|-<br />
| [[Technical_Terms_and_Definitions#Shields|Shields]]<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Length|Length]]'''<br />
| 190 m<br />
|}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''FreeSpace 1'''<br />
| colspan=2 style="background:#300505;"| '''FreeSpace 2'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| [[Shivan Light Laser]]<br />
| 4<br />
| [[Shivan Light Laser]]<br />
| 3<br />
|- align="center"<br />
| [[Shivan Heavy Laser]]<br />
| 3<br />
| [[Shivan Heavy Laser]]<br />
| 2<br />
|- align="center"<br />
| [[FighterKiller]]<br />
| 2<br />
| [[FighterKiller]]<br />
| 2<br />
|- align="center"<br />
| <br />
| <br />
| [[SAAA|Anti-Fighter Beam]]<br />
| 1<br />
|- align="center"<br />
| <br />
| <br />
| [[SRed|Small Red Beam]]<br />
| 1<br />
|}<br />
<br />
===Veteran Comments===<br />
{{comment|''The Cain is considerably stronger than a Fenris, but has an even worse anti-fighter point defense: with only one AAA turret on the bottom rear of the ship and a couple of weak missile launchers, it leaves the top of the vessel virtually undefended. As far as anti-capital work goes in cruisers, the Cain is pretty good, with a single SRed it will most likely take some skin of the nose of whatever capital ship it attacks it before going down, which it will with only 20,000 hitpoints. A wing of Herc IIs or Myrmidons should have no trouble taking down the Cain, nor should a Deimos, and a wing of bombers will take this ship down very quickly, it takes five Cyclops torpedoes to take this beast down.''<br />
<br />
<br />
''No need to bomb the Cain. Just use your primaries on the hull or turrets. Or sit behind it and shoot its backside off. About 2 minutes should do it if you're on your own, half to 1/3 with a Kayser or Maxim loadout.''<br />
<br />
<br />
''Here's a little note for those who are interested: in retail, both the Cain and Lilith look exactly the same, having the same hull theme much akin to the SD Ravana (grey-red instead of black-red), but in versions of FS2_Open before 3.6.10, the Cain gets a new, black-themed hull while the Lilith retains the old Ravana-esque hull. In 3.6.10, the hull textures are swapped, so a Cain in 3.6.10 now looks like the retail Cain version again.''<br />
<br />
<br />
''Be careful when performing a trebuchet attack against its beam cannons that you select the correct cannon. From the front both its anti-fighter and main beam are lined up in your target view, and it's almost impossible to tell which one you are attacking, for sure. Fly a little bit below the cruiser, so you can tell which turret you're firing at. Also, double check you're attacking the beam from the correct side. If you attack from the top of the ship instead of the bottom, there may be some damage to the turret, but it won't go down.''}}<br />
<br />
[[Category:Ship]]</div>
Cyborg17
https://wiki.hard-light.net/index.php?title=SC_Cain&diff=35644
SC Cain
2011-07-22T20:32:22Z
<p>Cyborg17: /* Veteran Comments */</p>
<hr />
<div>{{FS12_Ships}}<br />
The '''SC ''Cain''''' was a Shivan class of cruiser. Cains were the mainstay cruisers used during the [[Great War]] and were still popular during the era of the [[Second Shivan Incursion]].<br />
<br />
The Cain had an advanced variant, the [[SC Lilith|SC ''Lilith'']].<br />
{{shipimage|image=[[Image:Sccain_Sclilith-old.jpg]]|caption=The SC Cain}}<br />
<br />
<br />
==Description:==<br />
===FS1 Tech Room Description===<br />
The Cain is by far the most common cruiser in the Shivan fleet. It is also the weakest. However, the Cain should not be underestimated. It has many turrets, as well as a cluster bomb defensive mechanism. As a strike cruiser, the Cain mostly appears in attacks against GTA or PVN capital ships and cruisers. In these cases, it should be destroyed immediately. The primary weakness of the Cain appears to be its unshielded turrets. Most of the turrets on the Cain can be destroyed with minimal damage.<br><br><br />
The Cain is a Class B threat.<br />
<br />
===FS2 Tech Room Description===<br />
The weakest of the Shivan cruiser classes is designated SC Cain. These vessels were commonly encountered during Great War battles. Cains are considered to be slightly stronger than the GTC Fenris cruiser class.<br />
<br />
===Developer Notes===<br />
{{shipimage|image=[[Image:Sccain.jpg|500px]]|caption=The SC Cain in FS2_Open 3.6.12}}<br />
None<br />
<br />
===Name Origin===<br />
According to the Bible, Cain was the first son of Adam and Eve. Cain commits the very first murder, killing his brother Abel.<br />
<br />
==Performance:==<br />
===Statistics===<br />
{|<br />
|-<br />
| style="width:200px" | '''[[Technical_Terms_and_Definitions#Type|Type]]'''<br />
| style="width:200px" | Cruiser<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Manufacturer|Manufacturer]]'''<br />
| Unknown<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Maneuverability|Maneuverability]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Velocity|Max Velocity]]'''<br />
| 30.0 mps<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Max Afterburner Velocity|Max Afterburner Velocity]]'''<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Armor|Armor]]'''<br />
| N/A<br />
|-<br />
| [[Technical_Terms_and_Definitions#Hitpoints|Hitpoints]]<br />
| 20 000<br />
|-<br />
| [[Technical_Terms_and_Definitions#Shields|Shields]]<br />
| N/A<br />
|-<br />
| '''[[Technical_Terms_and_Definitions#Length|Length]]'''<br />
| 190 m<br />
|}<br />
<br />
===Armaments===<br />
<br />
*'''[[Technical_Terms_and_Definitions#Turrets|Turrets]]'''<br />
{| border=1 cellpadding=4 style="border-collapse: collapse"<br />
|- align="center"<br />
| colspan=2 style="background:#351515;"| '''FreeSpace 1'''<br />
| colspan=2 style="background:#300505;"| '''FreeSpace 2'''<br />
|- align="center"<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
| style="width:120px" |Turret Type<br />
| style="width:60px" |Amount<br />
|- align="center"<br />
| [[Shivan Light Laser]]<br />
| 4<br />
| [[Shivan Light Laser]]<br />
| 3<br />
|- align="center"<br />
| [[Shivan Heavy Laser]]<br />
| 3<br />
| [[Shivan Heavy Laser]]<br />
| 2<br />
|- align="center"<br />
| [[FighterKiller]]<br />
| 2<br />
| [[FighterKiller]]<br />
| 2<br />
|- align="center"<br />
| <br />
| <br />
| [[SAAA|Anti-Fighter Beam]]<br />
| 1<br />
|- align="center"<br />
| <br />
| <br />
| [[SRed|Small Red Beam]]<br />
| 1<br />
|}<br />
<br />
===Veteran Comments===<br />
{{comment|''The Cain is considerably stronger than a Fenris, but has an even worse anti-fighter point defense: with only one AAA turret on the bottom rear of the ship and a couple of weak missile launchers, it leaves the top of the vessel virtually undefended. As far as anti-capital work goes in cruisers, the Cain is pretty good, with a single SRed it will most likely take some skin of the nose of whatever capital ship it attacks it before going down, which it will with only 20,000 hitpoints. A wing of Herc IIs or Myrmidons should have no trouble taking down the Cain, nor should a Deimos, and a wing of bombers will take this ship down very quickly, it takes five Cyclops torpedoes to take this beast down.''<br />
<br />
<br />
''No need to bomb the Cain. Just use your primaries on the hull or turrets. Or sit behind it and shoot its backside off. About 2 minutes should do it if you're on your own, half to 1/3 with a Kayser or Maxim loadout.''<br />
<br />
<br />
''Here's a little note for those who are interested: in retail, both the Cain and Lilith look exactly the same, having the same hull theme much akin to the SD Ravana (grey-red instead of black-red), but in versions of FS2_Open before 3.6.10, the Cain gets a new, black-themed hull while the Lilith retains the old Ravana-esque hull. In 3.6.10, the hull textures are swapped, so a Cain in 3.6.10 now looks like the retail Cain version again.''<br />
<br />
<br />
''Be careful when performing a trebuchet attack against its beam cannons that you select the correct cannon. From the front both its anti-fighter and main beam are lined up in your target view, and it's almost impossible to tell which one you are attacking, for sure. Fly a little bit below the cruiser, so you can tell which turret you're firing at.''}}<br />
<br />
[[Category:Ship]]</div>
Cyborg17