CEX ship configuration files reference
Comments can be written using a // or ; before the text. If a line does not have // or ; in front then it will not be seen as a comment and will cause undesired behavior. Examples:
//I am a single-line comment
//I am a comment that continues
//to the next line
//I look like a multiline comment
but I am not and I will cause you vexation and premature gray hairs
- All XYZ offsets are in meters relative to the SimObject model origin, which should correspond to the center of gravity of the ship.
- Axis naming follows the FSX convention - meaning that the Y axis is vertical and the Z axis is fore-and-aft. Note that in some modeling tools Y is fore-and-aft and Z is vertical.
- Offsets to the right, up, or forward are positive. Offsets to the left, down, or backward are negative.
- All offsets are listed in the order X,Y,Z
Use TITLE_X sections to add ships to this class. You can have multiple [TITLE_X] entries in the CEX configuration file, generally corresponding to the "sim" entries in the SimObject's "sim.cfg" or "aircraft.cfg". All ships added will share the properties described in this file.
|[TITLE_0]||Numbered header. Starts with number 0|
|title=CVA-43 USS Coral Sea 1965||Title as referenced in the sim.cfg or aircraft.cfg file|
|LvarPrefix=cv43_||The prefix of the variables used for custom animations. In this case, all the animations that will be triggered by CEX start with cv43_. This includes the OLS variables, the wire variables, and all variables declared in the [VISIBILITIES] section.|
|UIshortName=CV-43 65||A short name for the carrier, displayed in-sim to the user.|
This section should be present in all ship configuration files, and presents basic data for use by the ship placement and control tool. All parameters in this section are optional, but encouraged in order to provide full functionality.
|[GENERAL]||Header. Cannot exist twice in the file.|
|hardDeck=1||Enables the user to warp-to-deck and save parking spaces|
|maxSpeed=31||Max speed that the vessel is able to make, used by the ship AI.|
|length=250||Approximate length in meters, used in ship motion algorithm|
|beam=31||Approximate width in meters, used in the ship motion algorithm|
|displacement=100000||Approximate weight of vessel in tonnes, used in ship motion algorithm|
Denotes that the simobject is an aircraft carrier. This section should only exist once. All of the features listed here are shared by the [TITLE_X] simobjects.
|[CARRIER]||Header. Cannot exist twice in the file.|
|numWires=4||Number of arrestor cables available on the deck.|
|numCats=3||Number of catapults available on the deck.|
|numTractors=1||Number of drivable tow tractor types available to the user. See [[#[TRACTOR_X]| [TRACTOR_X] section]]|
|deckAngle= 13.051||Landing deck angle from ship centerline, in degrees.|
The OLS section is used to position the "meatball" and is only used when a [CARRIER] section is present. This is used by CEX to adjust the glideslope light's position based on distance and hook-to-eye distance.
|[OLS]||Header. Cannot exist twice in the file.|
|type=1||Type of "meatball". 1=FLOLS mk.6|
|offset= -39.057,13.418,-30.937||Coordinates of meatball centre light from the model's origin in meters. Positive values are for Right, Up, Forward.|
|aimpoint=0.8,14.164,-98.0||Offset of the optimum hook touchdown point used by the OLS and LSO. This is on the runway centerline, generally between the 2 and 3 wires|
These sections describe each arrestor cable's properties. There can be any number of arrestor cables you wish on a carrier. For example, you can do a WWII carrier with 15 independently working cables.
|[WIRE_X]||Header. Numbering starts at 1.|
|offset=1.673,14.253,-103.058||The arrestor cable's center point. Offset in meters from the carrier origin. Positive values indicate Right, Up Forward.|
|runout= 152.88378,100||The first number indicates the distance from the cable's center pulled all the way to the deck's edge, in meters. The second value indicates the number of keyframes used in the animation.|
|left= 18.755,-100||The first number is the distance from the center of the cable to the left spool, in meters. The second number (-100) is the minimum value used by the Lvar that animates the cable's side-to-side pull.|
|right= 17.054,100||The first number is the distance from the center of the cable to the right spool, in meters. The second number (100) is the maximum value used by the Lvar that animates the cable's side-to-side pull.|
|height=5.0,5.0||The first number is distance from the cable's center to the maximum height it can be pulled above the deck, in meters. The second number is the maximumvalue,used by the Lvar that animates the cable's vertical pull.|
This section contains each catapult's start and end point, the type of catapult and how many JBD doors it has.
|[CATAPULT_X]||Header. Numbering starts at 1.|
|Type=1||1=Steam catapult. Other types to be added.|
|startOffset= 10.959, 14.164, 64.487||Coordinates of the shuttle run starting position in meters. Positive values indicate Right, Up, Forward.|
|endOffset= 7.521, 14.164, 130.106||Coordinates of the shuttle run end position in meters. Positive values indicate Right, Up, Forward.|
|numJBDs=||Number of JBD shields available on this catapult. Unused.|
The [TRACTOR_X] sections must be as many as the numTractors line denotes in the [[#[CARRIER]|[CARRIER]]] section. Each section references a vehicle used to maneuver the aircraft on the flight or hangar decks.
The deck tractors can either be default FSX/P3D vehicles, SWS vehicles, or custom-built by you. Hint: don't let the word tractor limit you. You may want to create a drivable forklift or pickup truck to tow your aircraft. Its interpretation is up to you.
|[TRACTOR_1]||Numbered header. Starts with number 0|
|deckTractorName=MD3_pushback_tug_cv43||Title as referenced in the sim.cfg or aircraft.cfg file of the tractor, as well as the tractor's CEX cfg file.|
|ExcludeNums=15,16,13,10,9,5,12,18||Used if your towbar uses a decal system to display random numbers on the vehicle. Numbers in this list will be excluded from the random number generator.|
Contains the list of animation and visibility variables that can be triggered through CEX. These variables are of the format prefic_variablename. The prefix_ has been declared in the [[#[TITLE_X]| [TITLE_x]]] sections above, so you should only declare the variable names here. This list can grow for as many animations/visibilities you want to control through CEX. These can be visibility conditions or animations. You do not have to declare the animation length (keyframes) in CEX.
|[VISIBILITIES]||Header. Should not be repeated in the file.|
|var_1=genvis1||Variable listing. Variable 2 is cv43_genvis1. Only the genvis1 part is declared here, because the 'cv43_prefix has been registered in the [[#[TITLE_X]| [TITLE_X]]] section.|
|var_2=genvis2||Variable listing. Variable 2 is cv43_genvis2. Only the genvis1,part is declared here, because the 'cv43_prefix has been registered,in the [[#[TITLE_X]| [TITLE_X]]] section.|
This section allows you to script conditions that will render the deck foul, thus unsuitable for landing. An example is having aircraft parked on the landing area of a carrier. Another example would be the existence of people on a cruise ship's helipad. If you have built-in static models in these areas which are controlled through visibility or animations, you can script the conditions here.
Scripts are listed as Script_X="SCRIPT EXPRESSION". X numbering starts at 1 and the script_expression is in XML.
Variable names used in the script_expression must be used without a prefix and be declared in the [VISIBILITIES] section in order to work.
|[FOUL_DECK_SCRIPTS]||Header. Should not be repeated in the file.|
|script_1="(L:park8,bool)"||If cv43_park8 evaluates to true, the deck will be considered foul and all approaching planes will be waved off.|
|script_2="(L:park10,bool)"||If cv43_park10 evaluates to true, the deck will be considered foul and all approaching planes will be waved off.|
|script_3="(L:park8, bool) (L:park10,bool) or (L:park11, bool) or"||If one of the three variables evaluates to true, the deck will be considered foul and all approaching planes will be waved off.|