Subobject and subsystem properties
From FreeSpace Wiki
Revision as of 19:25, 14 July 2021 by Goober5000 (talk | contribs) (→$rotate: add other rotate definitions)
This page documents the properties that can be applied to subobjects and to subsystems in their respective properties data in the model file.
Contents
- 1 Important notes
- 2 Subsystem Properties
- 3 Subobject Properties
Important notes
- Subobject/subsystem properties data is not parsed in order.
- Occasionally an option may lack a trailing 'terminating character' like ':' or '=' from its description. In these cases any character can be used as the trailing 'terminating character'.
- Buffer size of 256 is reserved for the characters in properties data.
Subsystem Properties
- These can be applied to subsystems both with and without separate subobject.
Key strings and their order for setting subsystems | |
---|---|
engine | Engine subsystem |
radar | Radar dish subsystem |
turret | Turret subsystem |
navigation | Navigation subsystem |
communication | Communication subsystem |
weapon | Weapon control subsystem |
sensor | Sensor subsystem |
solar | Solar panel subsystem |
gas | Gas collector subsystem |
activator | unused |
$name
- Defines the alternate name for the subsystem (string)
- Alternate subsystem names offer an alternative option for setting this via ships.tbl file or via mission data.
$fov
- Valid only if the true subobject name (not the alternate defined above) contains string "turret" but not strings "radar" or "engine"
- Defines the firing arc of the turret in degrees (integer)
- Defaults to 180 degrees if omitted.
$crewspot
- Valid only if the true subobject name (not the alternate defined above) contains string "turret" but not strings "radar" or "engine"
- Marks the turret as 'crewspot'
- Defines the name of the crewspot (string)
- No actual function
$triggered:
- Defines the subsystem as a rotating subsystem which can be triggered (animated) via Animation Code
$rotate
- Marks the subsystem as a rotating subsystem
- Defines the rotation time for the subsystem: the number of seconds to make a complete rotation (float)
$rotate_time
- Marks the subsystem as a rotating subsystem - alternative to $rotate
- Defines the rotation time for the subsystem: the number of seconds to make a complete rotation (float)
$rotate_rate
- Marks the subsystem as a rotating subsystem - alternative to $rotate, with different units
- Defines the rotation rate for the subsystem: the rotational velocity in radians per second (float)
$pbank
- Marks the rotation as primary weapon rotation
- Defines the associated weapon bank (integer)
$stepped
- Defines the rotation as an stepped instead of continuous rotation
$steps
- Defines the number of steps in the animation (integer)
- Defaults to 8
$t_paused
- Defines the pause time between steps (float)
- Defaults to 2
$t_transit
- Defines the movement time between pauses (float)
- Defaults to 2
$fraction_accel
- Defines the fraction of the stepped rotation time used for acceleration (float)
- Is between 0 .. 0.5
- Defaults to 0.3
Subobject Properties
- These can be applied only to subsystem with their own separate subobject.
$dumb_rotate:
- Marks the subobject as 'dumb rotating object'
- Defines the rotation time (float)
$special
- Defines special attributes for the subobject
- String, either "subsystem", "no_rotate" or "shieldpoint"
"subsystem"
- subsystem marks the subobject as an subsystem
"no_rotate"
- Valid option if subsystem string was not used
- Marks subobject as an object that should not rotate
"shieldpoint"
FS2 Open, 3.7.2:
- Only usable on special points (not on submodels).
- Marks the special point as a shield point, see Model Point Shields.
$no_collisions
- Prevents collision detection from occurring on this subobject and all of its children (recursively).
$nocollide_this_only
- Prevents collision detection from occurring on this subobject only (children collide normally).
$collide_invisible
- Allows full collision detection for things painted with the special "invisible" texture (normally ships collide but weapons do not)
$gun_rotation:
- Marks the submodel as using gun rotation
$detail_box:
- Marks the subsystem as one with detail box
$box_min:
$box_max:
$box_offset:
FS2 Open, 3.7.4:
- Optional offset of the detail box from the model center. Without this, the detail box is centered on the submodel.
- Example: $offset: 0,0,-100.5 to make the detail box be positioned 100.5m behind the ship's center.
$detail_sphere:
FS2 Open, 3.6.16:
- Marks the subsystem as one with detail sphere. Detail spheres work exactly like detail boxes (see above), except that they only define a radius instead of a box.
$radius:
FS2 Open, 3.6.16:
- Defines the radius of the detail sphere (float). If not provided, defaults to the submodel radius.
$offset:
FS2 Open, 3.6.16:
- Optional offset of the detail sphere from the model center. Without this, the detail sphere is centered on the submodel.
- Example: $offset: 0,0,-100.5 to make the detail sphere be positioned 100.5m behind the ship's center.
$rotation_axis:
FS2 Open, 21.0:
- Defines the custom rotation axis of a submodel. The point represents an axis vector in a particular direction, just like the X axis is the {1,0,0} vector.
- Reads three comma separated floats enclosed in square or curly brackets. It does not need to be a normalized vector.
- $rotation_axis can be followed by whitespace, a colon, or an equals sign.
$uvec:
FS2 Open 3.6.10:
- Defines the "up" direction (vector) of a multipart turret. Usually it stands perpendicular to the ship surface. Doesn't need to be specified for multiparts with a vertical rotation axis.
- Reads three comma separated floats. It does not need to be a normalized vector.
- Forces turret normal into the same as the $uvec.
- As of 20.2, $uvec can be followed by whitespace, a colon, or an equals sign.
$fvec:
FS2 Open 3.6.10:
- Defines the direction of the front a multipart turret will be facing. Doesn't need to be specified for multiparts with a vertical rotation axis.
- Reads three comma separated floats. It does not need to be a normalized vector.
- As of 20.2, $fvec can be followed by whitespace, a colon, or an equals sign.
$lod0_name
- Allows adding LODs to older models and changing from special points to modeled subsystems.
- Example $lod0_name=enginea used on a subobject named engine would allow engineb, engienc, and engined to be used while preserving backward compatibility.
$attach_thrusters
FS2 Open, 3.6.16:
- Allows thrusters associated with this submodel to follow its rotations.