Revision: 06.06.19 / 15:00 Compiled by Kt’Hyla
Animations And Scene
File Definitions
Level Of Detail Range
Definitions (LoD)
Texture Location
& Debris Folder
Welcome to the SHP File Tutorial for Klingon Academy. This tutorial is based on BSM Amram’s original tutorial, however I felt that some clarification and expansion was needed in certain areas of the text. I will be drawing on his original text, and intermixing it with some of my own.
The SHP file is a simple text based file that is used to specify a ship’s parameters for Klingon Academy. Things such as speed, shield strength, weapon outputs and others are controlled from this file. Its setup is in English, and a standard convention is followed to make locating the individual entries easier. This is the simplest component to mod for Klingon Academy, although there never seems to be any end to the discoveries of what this file can do.
Be forewarned that weapons cannot be added to or subtracted solely from this file. If the entries in the shp file do not match the weapon points in the ship’s lwo, it will crash the game. These points can only be altered using one of two 3D programs: Lightwave or Anim8tor (in conjunction with J. Korber’s Converter Utility).
I have chosen the shp file of the stock Constitution (FCA) to use as an example for this tutorial, due to its familiarity. Remember to read the notes in each section of the shp, made by the KA development team. These are very useful as guides and reminders to the various entries in the file. I may omit some of these notes as we go, for clarity and brevity.
A caveat to using the shp files found in the ka.dat and patch.dat files: Klingon Academy apparently does not refer to these files when loading them ingame, as I’ve found plenty of typos in them that would cause many ships to be non functional. Use them as a guide for specs, but be wary of mistakes or omissions in the entries.
Anything with a ‘#’ in front of it will be ignored by the game, and can be used to make notes if necessary. It is also useful for removing a line without actually deleting it, if you want to restore the value later.
Tutorial Format: In this tutorial, text in Blue will denote entries from the shp file itself. Text in Black will be my own notes. Text in [Square Brackets] will denote shp file entries within my notes.
This section deals with the name and class name of the ship.
[Name] is used by the
QBShips file to load the ship, and is used as the latter half of the QBShip
line itself. This will also be what is displayed in the HUD at close range.
There is a limit of 27 characters in this entry, and will load a second ship of
the same type in QB if exceeded.
[Class] is what is displayed in the HUD at long range.
[Race] determines what interface and HUD style are loaded. The 6 stock races are: [Klingon], [Federation], [Romulan], [Tholian], [Gorn], [Shakurian].
#########################
SHIP NAME AND CLASS ################################
#
# Name of the
ship. The name is used to load the
ship, Class is displayed in the
# radar section
until scanned at close enough range to fully identify the ship.
#
Name: FCA USS
Enterprise
Class:
Constitution CA
Race: Federation
#
This section deals with the maneuverability of the ship:
[maxVelocity] defines how high the impulse bar will read, but bear in mind that it does not regulate the actual maximum speed of the ship. That is covered later in the # Custom System Parameters # section. It’s unclear as to why there are 3 entries for this value, although convention is to keep them all the same.
[MaxAcceleration] determines how quickly the ship accelerates. The higher the value, the faster the acceleration.
[maxAngularVelocity] determines the turn rate of the ship. Once again, the higher the value, the faster the turn.
[maxAngularAcceleration] determines the acceleration of the turn rate: that is, this determines how fast the ship can reach its [maxAngularVelocity] once the player starts turning the ship. Once again, the higher the value, the faster the turn.
##########################
MOVEMENT STATISTICS ###############################
#
# Acceleration
and Velocity are currently in meters per frame
#
AngularAcceleration and AngularVelocity are currently in radians per frame
#
maxVelocity: 1500
maxAcceleration:
150.000 150.000 150.000
maxAngularVelocity:
0.314 0.314 0.314
maxAngularAcceleration:
0.178 0.178 0.178
#
This section deals with scaling and size issues:
[Scale] determines how large the ship is visually rendered in the game, in relation to the size of the model within the lwo object. A value of [4] will give you a 1:1 size, meaning that 1 meter in the model equals 1 meter in the game.
[Diameter] is used to determine when the collision detection warning goes off in the game. Usually this is simply left equal to the ship’s length, although it can be changed if the alarm needs to be triggered further away.
[Mass] is used to determine how ships are effected when tractoring one another. The ship with the heavier mass will have more effect over the lighter one, and will be more effective in moving the targeted craft. It also appears to be used in determining the how long the loss of control is following a collision.
[CollisionDamageScale] affects the amount of damage the ship takes in a collision. The bigger the number, the more damage the ship will take.
[HullClass] determines how damaging the final explosion is after the ship is destroyed and hulked. This value is used in conjunction with the ship’s total power output (see # Power Generation # in the next section), and one again, the higher the number, the more damaging the explosion.
###########################
SIZE AND SCALE ####################################
#
Scale:
5
Diameter:
305.0
Mass:
500
#
CollisionDamageScale:
0.072
HullClass:
5.030
#
These values determine the output of the
ship’s generators. The only value that can be changed is the output itself,
changing the [40] values doesn’t do anything. Stock KA ships will always have the
ship’s total power distributed amongst the generators the same:
Warp = 45%
Impulse = 35%
Auxiliary = 20%
###########################
POWER GENERATION ##################################
#
#
# Generators have changed somewhat for
KA. For now, you are permitted
# to specify up
to 3 power generators. The warp and
impulse power generators
# are tied to the
warp and impulse engines. You will soon
be required to
# specify
efficiency factors for each resource, that is, how efficiently
# each resource
is able to use power from each generator.
If these figures
# are not
specified, then it is assumed that they are able to use power with
# a 1:1
conversion factor for all power types.
# Connections are not used in KA and will
probably become obsolete
# soon.
#
# Format is: Generator:
Name:MaxPower:MaxConnections:damagefunc
#
Generator: Warp:
86:40:damageGenerator
Generator:
Impulse: 67:40:damageGenerator
Generator:
Auxiliary: 38:40:damageGenerator
#
This section sets up and defines the individual resources for your ship. Each resource, whether an individual Hull surface, Warp generator, Life Support, etc., will have a line defining it here. The format is laid out in the Developer’s notes at the start of the section, although aside from including or excluding lines (depending on your ship), the only real value to change in the line is it’s [on] or [off] status, of which determines whether the system is on when you first load it ingame.
The #RESOURCE DEFINITIONS# section is also where subtargeting for the ship is defined, so that individual systems can be singled out as targets ingame. Individual surfaces are tied to the ships’ systems through these lines:
Resource:
D05(Impulse):actImpulse:useImpulse:damResImpulse:repairImpulse:5000:0:off:1.0:1.0:1.0
In this case, the surface on the lwo model designated [D05] is tied into the [Impulse] resource. (See my ‘Texturing Tutorial’ for surfacing details.) Each defined surface on the model should be tied through a resource here, with non-specific resources (i.e. surfaces not tied into warp, sensors, weapons, etc.) being tied through the [Hull] resource. Once these are defined, that area of the model will now display the Subtargeting Brackets when targeted in the game, and weapons fire will automatically track those surfaces.
Adding the following line will give the ship the ability to cloak:
Resource:
Cloak:actCloak:useCloak:damResCloak:repairCloak:5000:54:off:1.0:1.0:1.0
And adding the following line will allow the ship to fire while cloaked, like General Chang’s Bird of Prey in ST VI. A bit of a cheat, but it can be fun:
CanShootWhileCloaked:
1
#######################
RESOURCE DEFINITIONS ##################################
#
# all of the
power consumers on the ship. Systems
use these.
# the number in
()'s the the amount of energy needed at 100% efficiency
# to run at
100%. All resources are enabled
(meaning they can be turned
# on, and that
they are currently consuming power) by default. the {on,off}
# at the end
tells if this resources is on or off by default.
#
# Activation
function is called when this resource is turned on or off,
# with a flag
indicating which (0 off, 1 on);
#
# Use function is
called when this resource is "used" (phasers fired,
# warp engaged,
etc). both activation functions and use
functions are
# user supplied.
#
# Format is:
#
Resource:Name:ActivateFunc:UseFunc:DamFunc:RepairFunc:RepairRateMS:PwrNeeded:On/Off
#
# NEW FOR KA:
I've had to add a couple of fields to the resource structure,
# and more fields
will probably be forthcoming. The following
fields should
# be added to the
end of the resource structure:
# WarpDraw:ImpulseDraw:AuxDraw:Power:Off/On
# These fields represent, respectively,
# WarpDraw - How efficiently this resource
draws power from warp power.
# ImpulseDraw - How efficiently this
resource draws power from impulse power.
# AuxDraw - How efficiently this resource
draws power from aux power.
# Power - The power needed to run the
secondary function of this resource
# (eg, ecm for sensors, jamming for
communications). If there is
# a plus ('+') sign preceding this
number, then that much power
# will be allocated to the resource
when it's loaded.
# Off/On - Whether the second function should
be activated or not.
#
# the animation is the animation to use to
"zoom in" onto this resource, used
# in the damage control and energy management
screens. No animation will be
# played if it is omitted here
#
# ------- Power
Systems --------
Resource:
Warp:actWarp:useWarp:damResWarp:repairWarp:5000:45:off:1.0:1.0:1.0
Resource:
D14(Warp):actWarp:useWarp:damResWarp:repairWarp:5000:0:off:1.0:1.0:1.0
Resource:
D15(D14):actWarp:useWarp:damResWarp:repairWarp:5000:0:off:1.0:1.0:1.0
Resource:
D16(Warp):actWarp:useWarp:damResWarp:repairWarp:5000:0:off:1.0:1.0:1.0
Resource: D17(D16):actWarp:useWarp:damResWarp:repairWarp:5000:0:off:1.0:1.0:1.0
#
Resource:
Impulse:actImpulse:useImpulse:damResImpulse:repairImpulse:5000:0:on:1.0:1.0:1.0
Resource:
D05(Impulse):actImpulse:useImpulse:damResImpulse:repairImpulse:5000:0:off:1.0:1.0:1.0
#
Resource:
Auxiliary:actAux:useAux:damResAux:repairAux:5000:0:on:1.0:1.0:1.0
#
------------------------------
#
# ------ General
Systems -------
Resource:
Sensors:actSensors:useSensors:damResSensors:repairSensors:5000:0:on:1.0:1.0:1.0:2:off
Resource: Scanners(Sensors):actSensors:useSensors:damResSensors:repairSensors:5000:2:on:1.0:1.0:1.0:0:off
Resource:
ECM(Sensors):actECM:useECM:damResECM:repairECM:5000:0:off:1.0:1.0:1.0:0:off
Resource:
D11(Sensors):actSensors:useSensors:damResSensors:repairSensors:5000:0:off:1.0:1.0:1.0:2:off
#
Resource:
Communications:actComm:useComm:damResComm:repairComm:5000:0:on:1.0:1.0:1.0:0:off
Resource:
Comm(Communications):actComm:useComm:damResComm:repairComm:5000:1:on:1.0:1.0:1.0:0:off
Resource:
Jamming(Communications):actJamming:useJamming:damResJamming:repairJamming:5000:0:off:1.0:1.0:1.0:0:off
Resource:
DamageControl:actDamage:useDamage:damResDamage:repairDamage:5000:5:off:1.0:1.0:1.0
Resource: Life
Support:actLife:useLife:damResLife:repairLife:5000:6:on:1.0:1.0:1.0
Resource: Medical:actMedical:useMedical:damResMedical:repairMedical:0:0:off:1.0:1.0:1.0
Resource:
Probe:actProbe:useProbe:damResProbe:repairProbe:5000:0:on:1.0:1.0:1.0
Resource:
Security:actMarines:useMarines:damResMarines:repairMarines:500:1:off:1.0:1.0:1.0
Resource:
Transporter:actTrans:useTrans:damResTrans:repairTrans:5000:2:off:1.0:1.0:1.0
Resource: Tractor
Beam:actTractor:useTractor:damResTractor:repairTractor:5000:3:off:1.0:1.0:1.0
#
------------------------------
#
# ------- Shield
Systems -------
Resource: Shields:actShields:useShields:damResShields:repairShields:500:0:on:1.0:1.0:1.0
Resource:
ShieldFore(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
Resource:
ShieldAft(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
Resource: ShieldPort(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
Resource:
ShieldStarboard(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
Resource:
ShieldTop(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
Resource:
ShieldBottom(Shields):actShields:useShields:damResShields::0:2:on:1.0:1.0:1.0
#
------------------------------
#
# ------- Weapon
Systems -------
#
# +Primary
Weapons+
Resource:
Phasers:actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource: Fwd
Bank(Phasers):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource: Fwd
Phaser 1(Fwd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Fwd
Phaser 2(Fwd Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Fwd
Phaser 3(Fwd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Fwd
Phaser 4(Fwd Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Aft
Bank(Phasers):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Aft
Phaser 1(Aft
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Aft
Phaser 2(Aft Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Port
Bank(Phasers):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Port
Phaser 1(Port Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Port
Phaser 2(Port
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Stbd
Bank(Phasers):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Stbd
Phaser 1(Stbd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource: Stbd
Phaser 2(Stbd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
#
#
# + All Secondary
Parent Resource + [DO NOT EDIT, CHANGE, OR REMOVE ON PAIN OF DEATH]
Resource:
Photons:actPhotons:usePhotons:damResPhotons:repairPhotons:5000:0:on:1.0:1.0:1.0
#
#
# +Secondary
Weapons+
Resource: Photon
Torps(Photons):actPhotons:usePhotons:damResPhotons:repairPhotons:5000:0:on:1.0:1.0:1.0
Resource: Fwd Photon
Bay(Photon
Torps):actPhotons:usePhotons:damResPhotons:repairPhotons:5000:0:on:1.0:1.0:1.0
Resource: Fwd
Tube 1(Fwd Photon
Bay):actPhotons:usePhotons:damResPhotons:repairPhotons:5000:20:on:1.0:1.0:1.0
Resource: Fwd
Tube 2(Fwd Photon Bay):actPhotons:usePhotons:damResPhotons:repairPhotons:5000:20:on:1.0:1.0:1.0
#
# +Heavy Weapons+
# Definitions of
alternate type secondary weapons go here
#
# +Special
Weapons+ (Advanced for Brent :)
#
------------------------------
#
# ------------
Hull ------------
Resource:
Hull:::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D01(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D02(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D03(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D04(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D06(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D07(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D08(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D09(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D10(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D12(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D13(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
D18(Hull):::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
Resource:
Disabler:actDisabler:useDisabler:damResDisabler:repairDisabler:5000:0:on:1.0:1.0:1.0
Resource:
Bridge:actDisabler:useDisabler:damResDisabler:repairDisabler:5000:0:on:1.0:1.0:1.0
Resource:
Nacelles:::damResHull:repairHull:5000:0:on:1.0:1.0:1.0
#
------------------------------
#
This section defines the ‘Hit Points’ of the defined resources, or how much damage the resource will take before breaking. The number here correlate directly to the damage output defined in the #Offensive Systems# section, so for every 1 point of damaged dished out by a weapon, one point of damage is caused here, provided the resource is hit by the weapon.
Note that the [ResourceHitPoints: Shields] entry here has nothing to do with the strength of the shields.
Rather, these entries determine the damage the actual generators can take
before failing. Actual shield outputs are defined in the #Defensive Systems# section.
The [Bridge] entry appears to apply when Marines are attempting to take over the ship. Making the number bigger keeps the intruders at bay longer.
################################
HIT POINTS AND DAMAGE #################################
#
# This represents
how much damage a particular resource can take.
# In KA, this
will be used instead of the damage modifer field.
# Note: A
resource will be set to 100 hit points if it is not specified.
#
ResourceHitPoints:
Shields: 87
ResourceHitPoints:
ShieldTop: 87
ResourceHitPoints:
ShieldFore: 87
ResourceHitPoints:
ShieldStarboard: 87
ResourceHitPoints:
ShieldAft: 87
ResourceHitPoints:
ShieldPort: 87
ResourceHitPoints:
ShieldBottom: 87
#
ResourceHitPoints:
Hull: 248
ResourceHitPoints:
D01:15
ResourceHitPoints:
D02:5
ResourceHitPoints:
D03:5
ResourceHitPoints:
D04:10
ResourceHitPoints:
D06:15
ResourceHitPoints:
D07:15
ResourceHitPoints:
D08:5
ResourceHitPoints:
D09:5
ResourceHitPoints:
D10:15
ResourceHitPoints:
D12:5
ResourceHitPoints:
D13:15
ResourceHitPoints:
D18:15
#
ResourceHitPoints:
Warp: 174
ResourceHitPoints:
D14:70
ResourceHitPoints:
D15:35
ResourceHitPoints:
D16:70
ResourceHitPoints:
D17:35
#
ResourceHitPoints:
Impulse: 174
ResourceHitPoints:
D05:174
#
ResourceHitPoints:
Communications: 87
ResourceHitPoints:
Comm: 87
ResourceHitPoints:
Jamming: 87
#
ResourceHitPoints:
Sensors: 87
ResourceHitPoints:
Scanners: 87
ResourceHitPoints:
ECM: 87
ResourceHitPoints:
D11:87
#
ResourceHitPoints:
Fwd Bank: 87
ResourceHitPoints:
Fwd Phaser 1: 87
ResourceHitPoints:
Fwd Phaser 2: 87
ResourceHitPoints:
Fwd Phaser 3: 87
ResourceHitPoints:
Fwd Phaser 4: 87
ResourceHitPoints:
Aft Bank: 50
ResourceHitPoints:
Aft Phaser 1: 50
ResourceHitPoints:
Aft Phaser 2: 50
ResourceHitPoints:
Port Bank: 25
ResourceHitPoints:
Port Phaser 1: 25
ResourceHitPoints:
Port Phaser 2: 25
ResourceHitPoints:
Stbd Bank: 25
ResourceHitPoints:
Stbd Phaser 1: 25
ResourceHitPoints:
Stbd Phaser 2: 25
#
ResourceHitPoints:
Fwd Photon Bay: 87
ResourceHitPoints:
Fwd Tube 1: 87
ResourceHitPoints:
Fwd Tube 2: 87
#
ResourceHitPoints:
Auxiliary: 87
ResourceHitPoints:
Medical: 87
ResourceHitPoints:
Life Support: 248
ResourceHitPoints:
Security: 87
ResourceHitPoints:
Transporter: 87
ResourceHitPoints:
Tractor Beam: 87
ResourceHitPoints:
Bridge:124
ResourceHitPoints:
Nacelles: 3
#
This section is used to define what systems affect what when they’re destroyed. The format is:
MurderSuicide:[system
destroyed]:[system affected]:[damage points]
For example, in the line
[MurderSuicide:D01:Hull:6], once the surface
[D01] loses all of its hit points and is
destroyed, it causes 6 points of damage to the
[Hull] resource. As in the above examples, you
can string a number of affected systems to be damaged, listing first the
resource, then the points of damage, separating each entry with a ‘:’.
Murder/Suicide Definitions also place a cap on how far an affected resource can be repaired. For instance, in the line [MurderSuicide:D01:Hull:6], once surface [D01] has been ginsued, the hull will not only lose an additional 6 points, but it will also be unable to repair those 6 points, resulting in a slightly lower percentage in it’s hull reading after repairs are complete.
############################
MURDER SUICIDE DEFINITIONS ################################
#
#The
Murder/Suicide definitions are used to associate a hull damage area with
resources
#that they should
affect when destroyed. Also, they can
set a cap to the repair levels
#by permanently
removing some of the hitpoints from the resource associated with the
#activated damage
area.
#
MurderSuicide:Sensors:Scanners:1000:ECM:1000
MurderSuicide:D01:Hull:6
MurderSuicide:D02:Hull:2
MurderSuicide:D03:Hull:2
MurderSuicide:D04:Hull:4
MurderSuicide:D06:Hull:6
MurderSuicide:D07:Hull:6
MurderSuicide:D08:Hull:2
MurderSuicide:D09:Hull:2
MurderSuicide:D10:Hull:6
MurderSuicide:D12:Hull:2
MurderSuicide:D12:Hull:6
MurderSuicide:D18:Hull:6
#
MurderSuicide:D05:Impulse:174
MurderSuicide:Impulse:D05:174
#
MurderSuicide:D11:Sensors:87
MurderSuicide:Sensors:D11:87
#
MurderSuicide:D14:Warp:12:Nacelles:2
MurderSuicide:D15:Warp:5
MurderSuicide:D16:Warp:12
MurderSuicide:D17:Warp:5:Nacelles:2
#
MurderSuicide:Warp:Nacelles:4
MurderSuicide:Nacelles:Warp:174
#
MurderSuicide:D13:Fwd
Tube 1:87:Fwd Photon Bay:7:Hull:15
#
1 nacelle = 1.00
2 nacelles = 0.25
3 nacelles =
0.22222222222
4 nacelles =
0.1875
This section defines what systems take damage when a weapon strikes the hull, or when a collision occurs. This is to allow systems that don’t have a surface on the model tied into them to take random damage on weapons hits, using the [ReceivesHullDamage] entry. Conversely, systems that are tied into a surface resource on the model use [ImmunePhoton] to keep them from taking random damage, since hitting the surface they’re attached to will cause them direct damage to begin with.
###############################
RANDOM INTERNALS AND ###################################
###########################
COLLISION DAMAGE DEFINITIONS ###############################
#
#The Random
Internals definitions are used to determine which resources can receive
#damage through
the random damage rules for hull hits.
#
#Format:
ReceivesHullDamage:Resource
#
#
ReceivesHullDamage:Shields
ReceivesHullDamage:Auxiliary
ReceivesHullDamage:Medical
ReceivesHullDamage:Life
Support
ReceivesHullDamage:Security
ReceivesHullDamage:Transporter
ReceivesHullDamage:Tractor
Beam
#
ImmunePhoton:DamageControl
ImmunePhoton:Comm
ImmunePhoton:Jamming
ImmunePhoton:ECM
ImmunePhoton:Scanners
ImmunePhoton:Phasers
ImmunePhoton:Fwd
Phaser 1
ImmunePhoton:Fwd
Phaser 2
ImmunePhoton:Fwd
Phaser 3
ImmunePhoton:Fwd
Phaser 4
ImmunePhoton:Aft
Phaser 1
ImmunePhoton:Aft
Phaser 2
ImmunePhoton:Port
Phaser 1
ImmunePhoton:Port
Phaser 2
ImmunePhoton:Stbd
Phaser 1
ImmunePhoton:Stbd
Phaser 2
ImmunePhoton:Photons
ImmunePhoton:Photon
Torps
ImmunePhoton:Fwd
Tube 1
ImmunePhoton:Fwd
Tube 2
ImmunePhoton:Disabler
ImmunePhoton:Bridge
#
This section defines how much damage is passed between resources and the hull, and how much damage control affects the surfaces as well.
[Proportion
of my damage that hurts my parent]: in this, when the listed surface is attacked, the damage received by a
surface will transfer the same amount of damage to it’s associated resource. [1] gives a 1:1 ratio,
[2] gives a 2:1 ratio, [0.5] gives a 1:2 ratio, etc.
[Proportion
of my parents damage that hurts me]: in this,
when the parent resource, for example, the hull, is hurt, this defines how much
damage is passed on to the associated surfaces as well. In this case, none of
it is passed on, if all of them were to receive all the damage the hull
received (if they were all set to 1), then hitting any spot on the hull would
damage all of the surfaces tied into it at once just as hard as if you'd hit
each one of them one at a time. Usually this is just set to [0], but the
value can be used to create certain effects.
[Proportion
of my parents damage control that heals me]: this defines the amount of Damage Control
points from the parent resource that is transferred to the damaged surface.
Once again, using
[1] will fix an equal
proportion of both the parent resource and the associated surface. Using
different vales can make a surface more robust or weaker, depending on the
effect you need.
The parent (say... [Warp]) will
repair the surfaces to which its linked, (in this case, the nacelles if warp is
the parent), thus, the nacelle might need one more phaser hit to blow it off,
but, if he gets the chance, some damage control can put more life back into the
nacelles, making them harder to blow off.
################################
DAMAGE PARAMETERS #####################################
#
#
Proportion of Proportion of
# Proportion
of my parent's my parent's
# my damage
that damage that damage control
# Resource name hurts my parent hurts me that
heals me
#--------------------------------------------------------------------------------------------
DamageParameters:
D01: 1: 0: 1
DamageParameters:
D02: 0.8: 0: 1.25
DamageParameters:
D03: 0.8: 0: 1.25
DamageParameters:
D04: 0.8: 0: 1.25
DamageParameters:
D06: 0.8: 0: 1.25
DamageParameters:
D07: 1: 0: 1
DamageParameters:
D08: 1: 0: 1
DamageParameters:
D09: 1: 0: 1
DamageParameters:
D10: 1: 0: 1
DamageParameters:
D12: 0.8: 0: 1.25
DamageParameters:
D13: 0.8: 0: 1.25
DamageParameters:
D18: 1: 0: 1
#
DamageParameters:
D05: 1: 0: 1
#
DamageParameters:
D11: 1: 0: 1
#
DamageParameters:
D14: 1: 0: 1
DamageParameters:
D15: 1: 0: 1
DamageParameters:
D16: 1: 0:
1
DamageParameters:
D17: 1: 0: 1
#
This section defines the actual output of the ships various systems, including engines, internal, shields and weapons. The formats for all of the lines are the same, so once you know what number is which, it’s easy to look at any line and determine what it’s doing. The format is:
[Resource]:[minimum
power]:[minimum output]:[maximum power]:[maximum output]:[legendary officer
multiplier]:[crew quality multiplier]:[damage high]:[multiplier at damage
high]:[output when off]
[Resource] is whatever system is
being defined.
[Minimum
power] defines
the minimum power the system needs in order to be turned on.
[Minimum
output] defines
the output of the system at its lowest level. When defining a weapon, this
value defines its normal damage output.
[Maximum
power] defines
the power the system needs to draw for its maximum setting.
[Maximum
output] defines
the output of the system at its maximum power setting. When defining a weapon,
this value defines its damage output when set to 200% overload.
[Legendary
officer multiplier] defines how well the system operates with a legendary officer defined for
the system (see
#Crew, Marines# in the next section). Increasing the value will improve performance with
a Legendary Officer included.
[Crew
experience multiplier] defines
how crew experience affects the system, similar in effect to [Legendary officer multiplier]. Once again, see
#Crew, Marines# for more information.
[Damage
high] defines
how much damage the system can take before it stops working. In most cases,
this is 75%, meaning when the system damage is down to 25% it stops working.
Likewise, if this number is made to 99, the system will work all the way down
to 1%, etc.
[Multiplier
at damage high] defines
how effective the system is when damaged to its cut off point. In the case of
impulse, this is [0.75], so, when the system
hits damage high (25%), impulse is only putting out 75% of its max speed.
[Output
when off] defines how the system reacts when off. This is only applied to
certain systems, such as Shields, which recharge at their minimum rate when
off, or Medical, of which actually works in negative numbers to hurt injured
crew when it’s switched off. If this value is omitted on some systems, such as
shields, turning the system off then on will result in that system being reset
to zero, and it will have to begin recharging again.
[HullHitsHurtsCrewFactor]: this value
determines how rapidly the crew is injured as the ship takes hits. The value is
determined from the formula:
Optimum crew ÷ Hull HP = HHHCF.
Shields are dealt with slightly differently. The values are defined:
[ResourceOutputFunctionParams]: determines how the shield reacts when overloaded. As with other resource output lines, the 1st and 3rd numbers are for min/max power. The output values determine how much damage the shields ignore: Minimum output is usually set at [0], and maximum output is usually set to [0.200]. This means that when the shields are overloaded to 200%, 20% of the incoming damage is outright discarded, so the weapon can only cause a potential of 80% of it’s value.
One odd quirk for this line is if the
minimum power value is left at
[0], the shields will stay
raised if the ship is cloaked, rather than dropping as they normally would.
[ResourceChargeRateFunctionParams] determines the recharge rate for the shield. The value is calculated to recharge 1% every 3.5 seconds at minimum power, and 1% every 1.75 seconds at 200% overload. Note that I’ve found the majority of stock entries included in the ka.dat files to be inaccurate. For an accurate number, simply use the formula:
Shield Output ÷
350 = Recharge Rate
(multiply Recharge Rate by 2 for 200% overload value)
This applies to all ships up to and including the Command Cruiser (CC) asset class. For heavier classes the recharge time increases, and varies from race to race:
|
KBB |
8.0s |
|
KDN |
5.0s |
|
KBCH |
4.5s |
|
KCC |
3.5s |
|
FBB2 |
10.0s |
|
FBB1 |
10.0s |
|
FDN |
6.5s |
|
FBCH |
4.5s |
|
FCC |
3.5s |
|
RBB |
6.0s |
|
RDN |
4.0s |
|
RBCH |
3.5s |
|
RCC |
3.5s |
|
TDN |
7.0s |
|
TBCH |
5.0s |
|
TCA |
3.5s |
|
GDN |
6.0s |
|
GCA |
3.5s |
|
SCVB |
3.5s |
|
SCVA |
3.5s |
i.e., for a KDN: Shield Output ÷ 500 = Recharge Rate)
[ResourceMaxChargeFunctionParams] determines the actual hit point strength of the shields’ output. Power input values are always left at [0], and the output values are usually identical.
###############################
Custom System Parameters ###############################
#
#+-----------------------------------
Power Systems -----------------------------------+
#
ResourceOutputFunctionParams:Warp:
0: 0: 95: 8.000: 1.000: 1.0:
0.75: 1.000
ResourceChargeRateFunctionParams:Warp: 0:
1000: 0: 1000:
1.0: 1.0: 1.0: 1.0
#
ResourceOutputFunctionParams:Impulse:
0: 0: 95: 1500: 1.080: 1.0:
0.75: 0.750
ResourceChargeRateFunctionParams:Impulse: 0:
1000: 0: 1000:
1.0: 1.0: 1.0: 1.0
#
#+-------------------------------------------------------------------------------------+
#
#
#+--------------------------------
Operations Systems ---------------------------------+
#
ResourceOutputFunctionParams:Tractor
Beam: 20: 100000.000: 95: 200000.000: 1.000: 0.500: 0.75: 0.25: 1.000
#
#
ResourceOutputFunctionParams:Scanners:
2: 1.000: 95: 3.000: 1.250: 0.500:
0.75: 0.25
#
ResourceOutputFunctionParams:ECM:
10: 0.100: 95: 0.750: 1.500: 0.500:
0.75: 0.25
#
ResourceOutputFunctionParams:DamageControl:
5: 0.180: 100: 0.830: 1.350: 0.000:
0.75: 0.25: 0.090
#
ResourceOutputFunctionParams:Security:
4: 1.000: 99: 2.000: 1.500: 0.500: 1.000: 1.000: 0.750
#
ResourceOutputFunctionParams:Transporter:
4: 1.000: 95: 4.000: 1.500: 0.500:
0.75: 0.25: 0.000
#
#
ResourceChargeRateFunctionParams:Bridge:
0: 0.002: 0: 0.002: 1.0: 1.0: 1.0: 1.0: .01
ResourceMaxChargeFunctionParams:Bridge:
0: 520.800: 0: 520.800: 1.500:
1.0: 1.0: 1.0:
10000
#
ResourceOutputFunctionParams:Life
Support: 6: 100: 6: 100:
1.0: 1.0: 0.75:
0.25
ResourceChargeRateFunctionParams:Life
Support: 0: 1000: 0: 1000:
1.0: 1.0: 1.0: 1.0
ResourceMaxChargeFunctionParams:Life
Support: 0: 1000: 0: 1000:
1.0: 1.0: 1.0: 1.0
#
ResourceOutputFunctionParams:Medical:
6: 0.100: 60: 0.501: 1.500: 1.0:
1.000: 1.000: -0.200
ResourceChargeRateFunctionParams:Medical: 0:
1000: 0: 1000:
1.0: 1.0: 1.0: 1.0
ResourceMaxChargeFunctionParams:Medical:
6: 0.500: 60: 0.500: 1.0: 1.0:
1.0: 1.0: 0.300
#
HullHitsHurtsCrewFactor:
1.810
#
#+-------------------------------------------------------------------------------------+
#
#
#+---------------------------------
Defensive Systems ---------------------------------+
#
ResourceOutputFunctionParams:ShieldFore:
2: 0.000: 17: 0.200: 1.000: 1.0:
0.750: 1.000
ResourceChargeRateFunctionParams:ShieldFore:
2: 0.206: 17: 0.412: 1.0: 0.600:
0.750: 1.000: 0.206
ResourceMaxChargeFunctionParams:ShieldFore: 0: 74: 0: 74: 1.200: 1.0:
0.750: 1.000: 74
#
ResourceOutputFunctionParams:ShieldAft:
2: 0.000: 17: 0.200: 1.000: 1.0:
0.750: 1.000
ResourceChargeRateFunctionParams:ShieldAft:
2: 0.165: 17: 0.330: 1.0: 0.600:
0.750: 1.000: 0.165
ResourceMaxChargeFunctionParams:ShieldAft: 0: 60: 0: 60: 1.200: 1.0:
0.750: 1.000: 60
#
ResourceOutputFunctionParams:ShieldPort:
2: 0.000: 17: 0.200: 1.000: 1.0: 0.750:
1.000
ResourceChargeRateFunctionParams:ShieldPort:
2: 0.124: 17: 0.248: 1.0: 0.600:
0.750: 1.000: 0.124
ResourceMaxChargeFunctionParams:ShieldPort: 0: 45: 0: 45: 1.200: 1.0:
0.750: 1.000: 45
#
ResourceOutputFunctionParams:ShieldStarboard:
2: 0.000: 17: 0.200: 1.000: 1.0:
0.750: 1.000
ResourceChargeRateFunctionParams:ShieldStarboard:
2: 0.124: 17: 0.248: 1.0: 0.600:
0.750: 1.000: 0.124
ResourceMaxChargeFunctionParams:ShieldStarboard: 0: 45:
0: 45: 1.200: 1.0: 0.750: 1.000:
45
#
ResourceOutputFunctionParams:ShieldTop:
2: 0.000: 17: 0.200: 1.000: 1.0:
0.750: 1.000
ResourceChargeRateFunctionParams:ShieldTop:
2: 0.124: 17: 0.248: 1.0: 0.600:
0.750: 1.000: 0.124
ResourceMaxChargeFunctionParams:ShieldTop: 0: 45: 0: 45: 1.200: 1.0:
0.750: 1.000: 45
#
ResourceOutputFunctionParams:ShieldBottom:
2: 0.000: 17: 0.200: 1.000: 1.0:
0.750: 1.000
ResourceChargeRateFunctionParams:ShieldBottom:
2: 0.124: 17: 0.248: 1.0: 0.600:
0.750: 1.000: 0.124
ResourceMaxChargeFunctionParams:ShieldBottom: 0: 45: 0: 45: 1.200: 1.0:
0.750: 1.000: 45
#
#+-------------------------------------------------------------------------------------+
#
#
#+---------------------------------
Offensive Systems ---------------------------------+
#
ResourceOutputFunctionParams:Fwd
Bank:NODEONLY: 8: 1.440: 16: 2.880: 1.200:
1.0: 0.75: 0.25
#
ResourceOutputFunctionParams:Aft
Bank:NODEONLY: 4: 1.440: 8: 2.880: 1.200:
1.0: 0.75: 0.25
#
ResourceOutputFunctionParams:Port
Bank:NODEONLY: 4: 1.440: 8: 2.880: 1.200:
1.0: 0.75: 0.25
#
ResourceOutputFunctionParams:Stbd
Bank:NODEONLY: 4: 1.440: 8: 2.880: 1.200:
1.0: 0.75: 0.25
#
ResourceOutputFunctionParams:Fwd
Photon Bay:NODEONLY: 40: 19.200: 80: 38.400: 1.200: 1.0: 0.75: 0.25
#
#+-------------------------------------------------------------------------------------+
#
This section defines how many Crew and
Marines the ship has, and how effective they are. The format is:
[Maximum
Crew]:[Optimum Crew]:[Crew Quantity]:[Crew Experience]:[Racial Modifier]
[Maximum
Crew] is only used on the
[Crew] line, and only affects games in
Multiplayer. This value determines how many extra crewmembers can be added to
the ship beyond its default in the Multiplayer Setup Menu.
[Optimum Crew] defines how many active crewmembers the ship needs to be running at peak efficiency.
[Crew
Quantity] defines the default starting number of crew the ship has. This is
usually the same as [Optimum Crew].
[Crew
Experience] this number determines the ‘experience’ the crew has, of which
affects the efficiency of the ship’s systems (see #Custom System Parameters# for the
[Crew experience multiplier]). The crew’s efficiency is displayed ingame on
the Medical screen. The values for each level of experience is:
Green: = 1.000
Hardened: = 1.200
Elite: = 1.400
[Racial Modifier] modifies how effective the [Marines] are at combat. This will vary from species to species, with Federation and Romulan Marines having a value of [1.000], Klingons and Gorn with [1.100], Shakurians with [0.800], and no value for the Tholians, since they have no marines.
#####################################
CREW, MARINES ####################################
#
# The crew is as
follows:
# Crew:
<Maximum number of total crew (crew+marines)>, <optimum number of
crew>,
# <Default number of crew>,
<exp>, <racial>
#
Crew: 550: 450:
450: 1.000: 1.000: max:optimum:qty:exp:racial
Marines: 50: 50: 1.000: 1.000: optimum:qty:exp:racial
#
This section defines various boarding properties of the ship.
[MaxEnemies] defines how many enemy marines can fit onto the ship. This number can’t be exceeded in the game.
[BonusToBoardingPartyDefense] doesn’t actually appear to have any effect on the game. Theoretically it should affect the survivability of a boarding party aboard the ship, but I haven’t been able to obtain a noticeable effect from changing it.
[MarineGroupSize] defines how many Marines are transported in each group. Basically, this is the maximum number of troops you can have on the transporter pad at once.
[BoardingPartyOffenseMultiplier] affects how easily a boarding party will accomplish their goal on the ship. The higher the number, the faster they cause damage to the targeted system.
[BoardingPartyResourceMultiplier] I’m afraid I haven’t quite determined what these values are actually for. They appear to modify a boarding party’s effectiveness when on board the ship.
[ActivateTime: Transporter] This should ensure that the transporter takes [0] milliseconds to activate, however I haven’t actually seen this value do anything. See the #RESOURCE ACTIVATION TIMES# section for more details.
MaxEnemies: 25
BonusToBoardingPartyDefense:
13
MarineGroupSize:
10
BoardingPartyOffenseMultiplier:
1.400
BoardingPartyResourceMultiplier:Warp:
0.500
BoardingPartyResourceMultiplier:Impulse:
0.500
BoardingPartyResourceMultiplier:Life
Support: 0.500
#
ActivateTime:
Transporter: 0
#
This section defines what [Elite Officers] are included on the ship, and what systems each officer affects. To
activate an officer, simply remove the ‘#’ from in front of the officer’s line. See #Custom System Parameters# for details
on the [Legendary
officer multiplier].
# The legendary
officers for this ship.
#Legendary:
Captain
#Legendary:
Engineering
#Legendary: Helm
#Legendary:
Weapons
#Legendary:
Science
#Legendary:
Security
#Legendary:
Communications
#Legendary:
Medical
#Legendary:
Library
#
LegendaryAssociation:Captain:Bridge
LegendaryAssociation:Captain:Security
LegendaryAssociation:Engineer:DamageControl
LegendaryAssociation:Engineer:ShieldFore
LegendaryAssociation:Engineer:ShieldAft
LegendaryAssociation:Engineer:ShieldPort
LegendaryAssociation:Engineer:ShieldStarboard
LegendaryAssociation:Engineer:ShieldTop
LegendaryAssociation:Engineer:ShieldBottom
LegendaryAssociation:Helm:Impulse
LegendaryAssociation:Security:Transporter
LegendaryAssociation:Medical:Medical
LegendaryAssociation:Science:Scanners
LegendaryAssociation:Science:ECM
LegendaryAssociation:Weapons:Fwd
Bank
LegendaryAssociation:Weapons:Fwd
Hvy Disruptors
LegendaryAssociation:Weapons:Fwd
Photon Bay
LegendaryAssociation:Weapons:Fwd
FMPA Cannons
LegendaryAssociation:Weapons:Fwd
Assault Bank
LegendaryAssociation:Weapons:Fwd
Lt Bay
LegendaryAssociation:Weapons:Fwd
Med Bay
LegendaryAssociation:Weapons:Fwd
Hvy Bay
LegendaryAssociation:Weapons:Fwd
GHRC System
LegendaryAssociation:Weapons:Fwd
Plasma Bay
LegendaryAssociation:Weapons:Fwd
GDDS System
LegendaryAssociation:Weapons:Fwd
QCB System
LegendaryAssociation:Weapons:Fwd
Ballistic Rail
LegendaryAssociation:Weapons:Fwd
ATGB Launcher
LegendaryAssociation:Weapons:Fwd
ATG Launcher
LegendaryAssociation:Weapons:Fwd
MW Silo
LegendaryAssociation:Weapons:Submunition
LegendaryAssociation:Weapons:Fwd
CFDIC
LegendaryAssociation:Weapons:Fwd
AMFP System
LegendaryAssociation:Weapons:Aft
Bank
LegendaryAssociation:Weapons:Aft
Hvy Disruptors
LegendaryAssociation:Weapons:Aft
Photon Bay
LegendaryAssociation:Weapons:Aft
FMPA Cannons
LegendaryAssociation:Weapons:Aft
Assault Bank
LegendaryAssociation:Weapons:Aft
Lt Bay
LegendaryAssociation:Weapons:Aft
Med Bay
LegendaryAssociation:Weapons:Aft
Hvy Bay
LegendaryAssociation:Weapons:Aft
Plasma Bay
LegendaryAssociation:Weapons:Aft
ATG Launcher
LegendaryAssociation:Weapons:Aft
MW Silo
LegendaryAssociation:Weapons:Aft
CFDIC
LegendaryAssociation:Weapons:Stbd
Bank
LegendaryAssociation:Weapons:Port
Bank
LegendaryAssociation:Weapons:Stbd
Hvy Disruptors
LegendaryAssociation:Weapons:Port
Hvy Disruptors
LegendaryAssociation:Weapons:Stbd
Photon Bay
LegendaryAssociation:Weapons:Port
Photon Bay
LegendaryAssociation:Weapons:Stbd
Assault Bank
LegendaryAssociation:Weapons:Port
Assault Bank
LegendaryAssociation:Weapons:Stbd
ATG Launcher
LegendaryAssociation:Weapons:Port
ATG Launcher
LegendaryAssociation:Weapons:Stbd
MW Silo
LegendaryAssociation:Weapons:Port
MW Silo
#
This section is used to define launchable and ejectable items that the ship may carry. [WarpCore] defines what race’s warpcore is ejected in the case of a core overload (rare in the game, but it’s cool when it does happen). [ProbeName] defines what model of probe is launched from the ship, and [ProbeCount] is the number of probes carried by the ship.
##############################
PROBES, SHUTTLES, AND MINES #############################
#
WarpCore: FWC
ProbeName: FPS
ProbeCount: 5
#
This section is usually where fighter definitions are found as well. A typical [Fighters] line will look like this:
Fighters:15:SA1
Format is: [Fighters]:[Fighter Number]:[Fighter Type]
[Fighters] simply defines the resource.
[Fighter Number] defines the number of fighters carried by the ship. Note that a ship will only launch 5 fighters at a time, regardless of how many are carried on board. After a fighter is destroyed ingame, a replacement can be sent out, and can be done over again until you reach the maximum number of fighters carried by the ship.
[Fighter Type] can be changed to be virtually anything that can be loaded into the game. Change this to [FBB2], and the ship will launch Yamato Battleships as its fighters. Bear in mind that a [Fighters] line can’t just be added to the shp file: The ship’s lwo also requires “FighterStart 1” and “FighterDir 1” points included in it, much the same way that weapons require weapons points in the lwo.
This section defines
ship death conditions, via a destroyed resource. In this case, once the [Hull] resource reaches zero, the ship is destroyed.
Other systems could be added here, such as [Impulse], so that if the impulse engines are destroyed,
the ship goes with it.
########################
DAMAGE IMMUNITIES & MODIFIERS #################################
#
ImmuneNormal:Disabler
DeathCondition:(Hull)
#
This section doesn’t appear to do anything.
########################
DISABLED RESOURCES ############################################
####################
Is this necessary for KA? #########################################
#
# This section
defines what resources need to be hurt in order to meet
# the definition
of DISABLED for the scripts.
Disable: Disabler
DisableWithShip:
Phasers
DisableWithShip:
Photons
DisableWithShip:
Impulse
DisableWithShip:
Warp
DisableWithShip:
Tractor Beam
#
This section defines many of the parameters for the ships’ weapons, such as range, velocity, and a slew of other factors. The format is:
WeaponInfo:[Weapon
Slot]:[Weapon Name]:[Weapon Graphic]:[Damage]:[Initial Velocity]:[Linear Velocity]:[Linear
Acceleration]:[Angular Velocity]:[Angular Acceleration]:[Range]:[Cone
Angle]:[Inaccuracy]:[Red]:[Green]:[Blue]:[Number Available]:[Sound]:[Weapon
Type]:[Extra Parameter]
[Weapon Slot] defines what slot ([Primary], [Secondary], [Heavy], [Special]) that the weapon is defined in. This will match the naming on the weapon points in the ship’s lwo.
[Weapon
Name] defines how the weapon is labeled in the ship’s Weapons and Damage
Control screens. Note that this must match the name in the ship’s #Resource Definitions# section.
[Weapon Graphic] defines what graphic or object is used as the beam or projectile that is rendered ingame.
[Damage] this value doesn’t do anything.
[Initial Velocity] is the starting velocity of the beam or projectile, as it leaves the weapon point.
[Linear Velocity] is the maximum velocity of the beam or projectile once it has finished accelerating.
[Linear Acceleration] is the rate that the weapon’s beam or projectile accelerates at.
[Angular Velocity] Like the ship’s [maxAngularVelocity], this value determines a projectile’s maximum turn rate, provided it has [Seeking] defined in the [Extra Parameters] section.
[Angular Acceleration] Like the ship’s [maxAngularAcceleration], this determines the acceleration of the turn rate: that is, this determines how fast the projectile can reach it’s [maxAngularVelocity] once the projectile starts begins maneuvering, provided it has [Seeking] defined in the [Extra Parameter] section.
[Range] defines the weapon’s maximum range, in kelicams (kilometers).
[Cone Angle] determines the firing angle of the weapon, measured in degrees. Note that the value is measured from the weapon’s centerline to its maximum extent, meaning that a value of [20] will actually cover a full 40° cone.
[Inaccuracy] this value doesn’t do anything.
[Red]:[Green]:[Blue] these values don’t do anything.
[Number Available] can be used to limit the number of shots available in the weapon. Using a value of [0] leaves the number of shots at infinite, and is the default for pretty much anything in the game. This is a holdover from Starfleet Academy, of which gave each ship a limited number of Torpedoes in the ship’s magazine. The same effect can be used in Klingon Academy; however, there is no counter to keep track of remaining shots included in the game’s HUD.
[Sound] defines the sound effect the weapon uses. Browse through the ‘sounds.dat’ file to see what sounds are available.
[Weapon Type] defines whether the weapon is Beam, Projectile, or Tractor based.
[Extra Parameters] is actually a set of parameters that can be added onto a weapon, with virtually any number and combination of the following parameters added:
[ShieldWeapon] Causes damage primarily to the target’s shields, rather than to the hull.
[BrownOut] Causes a temporary power brownout on the ship, to simulate a power overload, or a heavy energy drain from the weapon.
[Radiation] Causes damage
to the target’s crew.
[BreakdownStress] Each firing of the weapon gives the chance of causing a Warp breakdown, similar in effect to what may happen when executing an emergency turn.
[NotBolt] Is used on beam weapons, and tells the game to draw a phaser full from start to finish. Leaving it off of a phaser weapon causes it to fire like a disruptor, and putting it on a disruptor will make the bolt graphic fire in a steady beam.
[Seeking] is used to make projectile weapons track its target.
[Dissipating] Causes the weapon to lose its effectiveness the further it goes from its origin. This is used to simulate a weapon that looses power the further it goes, such as a phaser or plasma torpedo.
[Bleedthrough] allows the weapon to put 20% of its damage past the target’s shields, directly to the hull.
[AMFP] designates the weapon as using the ingame AMFP effect, used on the Antimatter Field Projector.
[GDDS] designates the weapon as using the ingame GDDS effect, used on the Graviton Density Distortion Sphere weapon.
[Submunitions] designates the weapon as using submunitions that will be launched from the projectile reaches its maximum range. This option is used on the Shakurian Multi-Warhead missiles.
[Tractor] designates the weapon as a tractor beam-based weapon, such as a QCB or GHRC. A tractor-based weapon must use either [Cage], [Pulses] or [Turbulence], for the weapon to be effective. A combination of any of the three will also work, to add different effects to the weapon:
[Cage] allows a [Tractor] weapon to use to ingame Tholian Web Spinner effect, immobilizing the target.
[Pulses] allows a [Tractor]
weapon to ‘pulse’ its damage to the target. As with normal weapons, damage is
done to the shields first. There appear to be 6 pulses used in each firing of
the weapon. Used on the QCB.
[Turbulence] allows a [Tractor] weapon to physically shake the target ship. This modifier bypasses target’s shields entirely, directly damaging the hull and systems on the ship. Used on the GHRC.
########################
WEAPONS DEFINITIONS ###########################################
#
#
set the primary and secondary weapons parameters.
#
The names are the names of the resources that are the primary or secondary
weapons
#
Damage is the amount of damage done by these.
#
# 23Mar99, 11:26: new weapons parameters format, old stuff commented out.
#
New format:
# WeaponInfo:Primary/Secondary/Heavy/Heavy2/Special:name:prefix:damage:initialVelocity:
# linearVelocity:linearAcceleration:angularVelocity:angularAcceleration:range:coneAngle:
#
inaccuracy:red:green:blue:numAvailable:soundName:Beam/Projectile/Tractor:Any
number
# of ShieldWeapon/BrownOut/Radiation/BreakdownStress/NotBolt/Seeking/Dissipating/Bleedthrough
#
Note: the damage done by a weapon is
actually the output of the bank, not the damage
#
specified here.
#
#
FEDERATION PHASER
WeaponInfo:Primary:Phasers:fphas:1.2:20000:20000:0:0:0:15000:
50:0.0:1.0:1.0:0.0:0:WEAPONS_PHASER_NORMAL_FEDERATION:Beam:NotBolt:Dissipating
#
#
PHOTON TORPEDOES
WeaponInfo:Secondary:Photon
Torps:photon:5:4300:15000:4300:0.045:0.013:10000:
20:0.0:1.0:0.0:0.0:0:WEAPONS_PHOTON_NORMAL:Projectile:Bleedthrough
#
Once again, this section appears to do nothing.
########################
GINSU RESOURCE DEFINITIONS ####################################
#
#
mark these resources as resources that will blow up parts of the ship
#
Hide:
Probe
#
This section defines what systems need to be activated to trigger an alert status level. While this doesn’t actually cause an alarm to go off ingame, the alert status is used to trigger animations, such as the Bird of Prey’s wings to move up or down. The alert level defined here will correspond with the animation (lws) files defined later in the #ANIMATIONS AND SCENE FILE (LWS) DEFINITIONS# section.
########################
ALERT STATUS RESOURCE LINKS ###################################
################
I believe these are becoming obsolete in KA ###########################
#
#
Alert Status: This section determines
what resources are available at
#
which Alert Level. If a resource is not
listed here, it is considered
#
to be on/off as determined by the resource definition.
RedAlert:
Fwd Photon Bay
RedAlert:
Fwd Bank
RedAlert:
Aft Bank
RedAlert:
Port Bank
RedAlert:
Stbd Bank
RedAlert:
ShieldTop
RedAlert:
ShieldFore
RedAlert:
ShieldStarboard
RedAlert:
ShieldAft
RedAlert:
ShieldPort
RedAlert:
ShieldBottom
YellowAlert:
ShieldTop
YellowAlert:
ShieldFore
YellowAlert:
ShieldStarboard
YellowAlert:
ShieldAft
YellowAlert:
ShieldPort
YellowAlert:
ShieldBottom
#
This section is used if a system requires a delay in its activation. Shields in KA always have a 2 second delay, hence the 2000 milliseconds listed in the above entries. Other systems can be added here to alter their activation time.
########################
RESOURCE ACTIVATION TIMES #####################################
#
#
Activation Time: How long does it take
for a resource to come "online"
#
once power has been allocated to it.
#
Format: ActivateTime: Resource: milliseconds
ActivateTime:
Tractor Beam: 0
ActivateTime:
ShieldFore: 2000
ActivateTime:
ShieldAft: 2000
ActivateTime:
ShieldPort: 2000
ActivateTime:
ShieldStarboard: 2000
ActivateTime:
ShieldTop: 2000
ActivateTime:
ShieldBottom: 2000
#
This section defines the Interface Screens in the game. There’s very little that can be changed here, since all races use the same entries, and are only differentiated by the earlier [Race] definition. Note that Tholian ships will lack a [Screen:SecurityScreen:simsecu.sdf] line, due to the fact that Tholian ships carry no marines.
###################
INTERFACE SCREEN DEFINITIONS ############################
#
#
All of the screens in this ship
#
The names of these cannot be the same names as any resource or system
#
Screen:Mainview:sim.sdf
Screen:FullView:fullscr.sdf
Screen:GuruScreen:guru.sdf
Screen:TurboLift:simlift.sdf
#
#
------ Bridge Station Interface Screens For This Ship ------
Screen:LibraryScreen:simlib.sdf
Screen:EngineeringScreen:simeng.sdf
Screen:CommunicationsScreen:simcom.sdf
Screen:ScienceScreen:simsci.sdf
Screen:HelmScreen:simhelm.sdf
Screen:NavigationScreen:simnav.sdf
Screen:MedicalScreen:simmed.sdf
Screen:SecurityScreen:simsecu.sdf
Screen:DamageScreen:simdam.sdf
#
#
------ Starting Screen For This Ship ------
SelectScreen:Mainview
#
This line defines the ship silhouette that appears in the HUD. The file itself is in the ship’s ‘Damage’ folder, and will be a grayscale pcx file.
#################
RADAR DAMAGE GRAPHICS DEFINITIONS #########################
#
radarBase:fca.rad
#
This section defines what animations are used for the ship’s model. Ships with no animation, or a cyclical one (such as flashing running lights) will only have a single file, referring to it’s matching lws file in the ship’s animation folders, labeled ‘High’, ‘Medium’, ‘Low’, etc.
############
ANIMATIONS AND SCENE FILE (LWS) DEFINITIONS ####################
#
Animation:default:fca_def
#
Animations that are triggered by turning a system on or off, such as the Bird of Prey, will have 2 files, one for each position of the part of the ship that is animated. The two files the stock Bird of Prey has are named ‘kecc_def.lws’ and ‘kecc_up.lws’. Each Alert Status that triggers the animation (see #ALERT STATUS RESOURCE LINKS#) is defined along with the animation file that holds the position required for the object’s position. As an example, the following are the lines for the stock KECC Bird of Prey:
Animation:default:K-22_def
Animation:up:-K-22_up
Animation:down:+K-22_up
Animation:Green:-K-22_up
Animation:Yellow:+K-22_up
Animation:Red:+K-22_up
This section allows you to adjust how far the game draws the various levels of detail for the ship, and at what distance the mipmapping levels change. The [Range] values define the distances for the LOD objects to be drawn, however if the ship you have is made from scratch, you’ll need to make successively simpler models and place them in their respective ‘High’, ‘Medium’, ‘Low’, etc. folders. [MipMapLevels] however, can be changed using the same texture, as the game can use that same texture at different levels of detail.
#################
LEVEL OF DETAIL RANGE DEFINITIONS #########################
#
#
The range command tells when to use a certain set of animations.
#
Format is:
#
#
Range:<dirname>:minimum distance
#
#
Where <dirname> is the name of the directory in the ship directory where
#
all of the animations are kept for that object, and minimum distance is
#
the minimum distance to start this animation
Range:high:0.0
Range:medium:8500
Range:low:16000
Range:Slow:40000
MipMapLevels:6000:15000:20000:25000:30000:32500:35000:37500
#
This section is used to define what size of debris is used, for when a damaged surface ginsus.
[Texture] isn’t actually used, as all of the games textures are stored in the same folder.
[DebrisFolder] determines the
size of the debris ejected when a surface is destroyed. The options are [large],
[medium], [small],
[crystal] (for Tholian
ships), and [Klingon], (slightly better
detailed than the regular debris).
[Shieldname] defines the name of the shield object. The file is stored in the ship’s main folder, and is always named ‘shld_1_0.lwb’. As only one shield object can be loaded per ship, there’s little point to change the name.
##########################
TEXTURE LOCATION #################################
##################
And Ginsu Debris Folder Name #############################
#
#
The name of the directory where the ships Textures may be found.
Texture:texture
DebrisFolder:medium
Shieldname:shld_1_0
#
This section defines basic parameters for how the ship’s AI reacts. Since KA’s AI is notoriously dumb to begin with, the values don’t appear to affect the ship’s reactions a great deal, but they supposedly influence its behavior somewhat.
######################
AI PERSONALITY DEFINITION ############################
#
#
Specify personality of the ship. Personality consists of 3 components: (1)
reward
#
seeking (i.e., hurting enemy), (2) harm avoidance, and (3) novelty seeking,
#
respectively. Each value must be between 0.0 and 1.0.
#
Example:
#
Personality:
0.8 0.7 0.6
#
Although you can’t add or subtract weapons solely through the shp file, one thing that you can do is rename them if needed. This is done in two parts of the shp file: #Resource Definitions#, and #Weapons Definitions#.
Ordinarily, a ship set up with two forward phasers would look like this:
#
+Primary Weapons+
Resource:
Phasers:actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource:
Fwd
Bank(Phasers):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource:
Fwd Phaser 1(Fwd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource:
Fwd Phaser 2(Fwd Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
The first line is the actual Resource Definition line for all phasers on the ship. The second line defines the phasers for the given arc, forward [Fwd] in this case. The 3rd and 4th lines define the individual phasers themselves.
Let’s change the weapon’s name to ‘Forcebeams’. To change the name of the weapon, the Resource Name in the 1st line must be changed, as well as the name in each Arc Resource (2nd) line. Both must match, and will look like this when completed:
#
+Primary Weapons+
Resource:
Forcebeams:actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource:
Fwd
Bank(Forcebeams):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:0:on:1.0:1.0:1.0
Resource:
Fwd Phaser 1(Fwd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
Resource:
Fwd Phaser 2(Fwd
Bank):actPhasers:usePhasers:damResPhasers:repairPhasers:5000:4:on:1.0:1.0:1.0
The name must also match the [Weapon Name] entry in the #Weapons Definitions# section:
#
WeaponInfo:Primary:Forcebeams:fbeamh:1.2:100000:100000:0:0:0:55000:
50:0.0:1.0:1.0:0.0:0:WEAPONS_PHASER_NORMAL_GORN:Beam:NotBolt:Dissipating
#
With stock weapons, the game has a certain set of default parameters to determine the recharge times and rate-of-fire that a given weapon has. If you change the name of a weapon, the game doesn’t have any values to determine the behavior of the weapon and simply fires like a machine gun. To define the Recharge Time for the weapon, include these [LeavesOnly] lines:
#+----------------------------------Weapon
Recharge Times----------------------------------+
#
ResourceOutputFunctionParams:Forcebeams:LEAVESONLY: 0:
0: 0: 0: 1.0: 1.0:
0.75: 0.25
ResourceChargeRateFunctionParams:Forcebeams:LEAVESONLY:
0: 1: 0: 1: 1.0:
0.6: 0.75: 0.25
ResourceMaxChargeFunctionParams:Forcebeams:LEAVESONLY: 0:
3: 0: 3: 1.0: 1.0:
1.0: 1.0
Note that the weapon name must match the naming included earlier in the #Resource Definitions# and #Weapons Definitions# sections. The values here work in a similar fashion to the values in the #Resource Definitions# section, however the 2nd and 4th numbers in the 2nd and 3rd lines are what determines how long the charging rate is. Dividing the numbers in the 3rd line into the numbers from the 2nd determines the recharge rate, in seconds. In this case, 3 ÷ 1 = 3, or a recharge rate of 3 seconds. As in other #Resource Definitions# lines, the numbers can differ, if you want the weapon to load either faster or slower when it’s overloaded.
To control the spacing between the firing of individual weapons, include these [NodeOnly] lines:
#+----------------------------------Weapon
Spacing----------------------------------+
#
ResourceOutputFunctionParams:Fwd
Bank:NODEONLY: 0: 0:
0: 0: 1.0: 1.0: 0.75:
0.25
ResourceChargeRateFunctionParams:Fwd
Bank:NODEONLY: 0: 20:
0: 20: 1.0: 0.6: 0.75:
0.25
ResourceMaxChargeFunctionParams:Fwd
Bank:NODEONLY: 0: 10:
0: 10: 1.0: 1.0: 1.0:
1.0
Note that rather than using the weapon’s name here, the arc [Fwd Bank] is used instead. Otherwise, the values work the same as in the [LeavesOnly] lines for the weapon recharge: 10 ÷ 20 = 0.5, or a fire rate of once every ½ second between each individual weapon.
Note that for weapon spacing, each arc on
the ship will require these definitions, so on a ship with all arcs armed you
will have 4 sets of these lines.
05/11/20: Added caveat on shp file inaccuracies; added formula for calculating shield recharge rates; added values to #Extra Parameters# under #Weapons Definitions#: AMFP, GDDS, Submunitions, Tractor, Cage, Pulses, Turbulence.
05/11/21: Added hyperlinking to the tutorial, and adjusted the format flow.
06/06/19: Corrected shield recharge time values for key combat ships, and added alternate shield recharge rates for ship classes CC and above.