You've finished your lovingly crafted Dark Flame class Imperial star destroyer, and you want to load her up in a mission and see how she performs. Well, you are in luck. Creating a custom mission for Starshatter is actually even easier than creating your new ship design was in the first place.

As with most other things, missions are defined in text files called "Mission Definition Files". These use the same basic syntax as the ship definition files that describe the properties of starships. Missions are composed of two kinds of data: the pre-mission briefing, and a list of mission elements. Briefing data includes the general type of mission, and summary information for the player such as a situation report and objectives list. Mission elements define the specific ships and space stations that are loaded into the simulation environment when you play the mission.


Briefing Data
name The name of the mission. This is the name that will appear in the custom mission list, and at the top of the mission briefing screen.
system The star system in which the mission will occur. Valid choices in the current demo are Solus and Janus.
region The starting region of the mission. Valid choices are shown below.
sitrep A text description that explains the overall situation that has led up to this mission. Use this attribute to "set the scene" for the player and explain why the mission is important. The situation report is displayed at the top of the briefing screen.
objective A text description of the player's key objectives. This wil be displayed on the mission briefing screen.
start The start day and time of the mission. This is a string containing the day (relative to the start of the campaign) followed by a slash, followed by the time using 24 hour notation. To create a mission that starts at 5:15 PM on the third day of the campaign, use "03/17:15:00".

VALID REGIONS

Janus System:
  • Ilon
  • Dante
  • Janek
  • Janek Station
  • Alystra
  • Navara
Solus System:
  • Meridian
  • Solus
  • Telmera
  • Kalon
  • Jalah
  • Trellis
Note: Janek Station and Telmera are planetary terrain regions.

EXAMPLES:

MISSION

name:    "Fighter Combat"
system:  Solus
region:  Solus

sitrep:  "Tensions are rising in the neutral system of Solus. "
         "Enemy Vipers and Cobras have been detected "
         "patrolling Omane Sector and may begin harassing "
         "legal shipping bound for Harmony Station. "
         "Your element has been assigned to sweep the "
         "Omane Sector and clear out the hostiles."

objective:
         "Fighter Sweep - destroy enemy units in Omane Sector, "
         "and protect Harmony Station."

start:   "01/08:00:00"

Mission Elements

Element structures are used to define all the starships, buildings, space-stations, and fighters that will be active during the mission. Element structures are also used to create fighter squadrons aboard carriers.

name The callsign of a fighter element, or the name of the starship or squadron being defined.
design The ship design to be used in creating the element. This can be a standard built-in ship design, or a custom ship design in the Mods\Ships directory.
region The region in which to create the element. Optional, if omitted, the default region for the mission is used.
loc The vector location (in meters) of where to create this element. In the nav map, X is east-west, Y is north-south, and Z is altitude.
head A number representing the heading or direction this unit is facing, in radians. Optional. The default heading is 0 (north) for all units.
count The number of ships in the element. Optional, default is 1.
iff The team number for this element. Valid choices are 0 (neutral), 1 (alliance), and 2 (hegemony).
player A number indicating which ship in the element will be controlled by the player. Optional, default is 0. Valid choices are 0 (not a player element) or 1 (lead) through the number of ships in the count attribute for the element. Exactly one element should have a non-zero player attribute.
mission The mission role that this element is tasked with. Valid mission roles are shown below.
commander The name of the element that is immediately above this one in the chain of command. NPC ships will only take orders from their commander, or their commander's commander (etc.).
instr * A line of text to be displayed in the Instructions window of the player's HUD during the mission. Can be repeated as often as necessary to complete the text instructions for the mission. Most commonly used in training exercises to provide walkthrough info for the player.
Fighter Squadron Attributes:
carrier The name of the carrier or starbase that hosts this squadron. If you include this attribute, you are defining a squadron, not an active element. The number of ships in the squadron is defined by the count attribute.
dead_count The number of ships in this squadron that have been killed in action. These ships are not available during the mission.
maint_count The number of ships in this squadron that are currently undergoing maintenance. These ships are not immediately available during the mission, but will become available when the repairs are complete.
Fighter Element Attributes:
alert Boolean indicating whether this element should start on alert (on the flight deck or runway) or in flight. Optional, default is false (meaning the element will start in flight).
squadron The name of the squadron that this element is derived from. This indirectly indicates the carrier or starbase that this element will launch from if the alert attribute is set.
loadout * A structure identifying the loadouts to use for each fighter in the element. Can be repeated up to count times, or a single loadout can be used for all fighters in the element.
Direction Attributes:
objective A structure providing specific mission objectives for this element.
navpt * A structure defining one step in the scripted flight plan for this element.

VALID MISSION ROLES

Patrol Defensive combat patrol. Engage hostile fighters.
Sweep Offensive combat patrol. Engage hostile fighters.
Intercept Fighter mission. Destroy pre-planned fighter targets.
Strike Fighter mission. Destroy pre-planned ground targets.
Assault Fighter mission. Destroy pre-planned starship targets.
Escort General escort. Protect the named escorted element.
Escort_Freight Protect the escorted freighter.
Escort_Shuttle Protect the escorted shuttle.
Escort_Strike Protect the escorted strike package.
Intel Intelligence gathering.
Blockade Prevent ships from entering or leaving port.
Fleet Starship force-on-force engagement.
Bombardment Starship attack on space station.
Flight_Ops Carrier flight operations.
Transport General movement of starships.
Cargo Freight hauling.
Training An exercise in a training scenario.

EXAMPLES:

// FLEET CARRIER:

ship: {
   name:    Archon,
   design:  Orion,
   loc:     (0, 0, 0),
   count:   1,
   iff:     1
}

// FIGHTER SQUADRON ON CARRIER:

element: {
   name:    Stallions,
   design:  Stormhawk,
   count:   20,
   maint_count: 5,
   dead_count: 5,
   carrier: Archon, // <- this makes it a squadron!
   iff:     1,
   loadout: { ship: -1, stations: (0, 1, 1, 0) },
}

// PLAYER: TWO-SHIP FIGHTER SWEEP

element: {
   name:    Ranger,
   design:  Stormhawk,
   squadron: Stallions,

   loc:     (1e3, 2e3, 0),
   mission: sweep,

   objective: { cmd: intercept, tgt: Martak },
   objective: { cmd: intercept, tgt: Malik  },

   player:  1,
   alert:   true,
   count:   2,
   iff:     1,
   loadout: { ship: -1, name: "ACM Medium Range" },

   navpt:   { cmd: vector, loc: (80e3,-20e3, 0), speed: 750, rgn: Solus },
   navpt:   { cmd: vector, loc: (90e3,-70e3, 0), speed: 750, rgn: Omane },
   navpt:   { cmd: sweep,  loc: (40e3,-70e3, 0), speed: 500, rgn: Omane },
   navpt:   { cmd: sweep,  loc: (20e3,-30e3, 0), speed: 500, rgn: Omane },
   navpt:   { cmd: vector, loc: (90e3,-30e3, 0), speed: 500, rgn: Omane },
   navpt:   { cmd: vector, loc: ( 5e3, 30e3, 0), speed: 500, rgn: Solus },
}

What to Wear: Loadouts

The loadout structure is used to define specific pre-planned weapons packages for fighter elements.

ship A number identifying which ship in the element to apply this loadout to. Can be -1 (meaning all ships) or a number from 0 (lead) to count -1. Optional, default is -1.
name The name of a standard loadout for this ship design.
stations An array of numbers indicating which weapon type is to be loaded on each hardpoint. Each number in the array corresponds to a single hardpoint, in the order they are listed in the ship definition file. The value of the number indicates which weapon type should be loaded. A value of -1 means that the hardpoint should be left empty.

Directions: Objectives and Navpoints

Objectives and Navpoint structures tell the element (both player and AI) what to do during the mission.

cmd The command for this navpoint or objective. Valid commands are shown below.
rgn The name of the region where the navpoint is located.
loc The vector location (in meters) of where to create this navpoint. In the nav map, X is east-west, Y is north-south, and Z is altitude.
speed The speed (in meters per second) that the element should use enroute to this navpoint.
formation The number of the formation that the element should use enroute to this navpoint. Valid formations are 0 (diamond), 1 (spread), 2 (box), and 3 (trail).
tgt The name of the target element for this navpoint or objective.

VALID COMMANDS

Vector Move to the destination loc.
Launch Take off from a flight deck or runway.
Dock Land on a flight deck or runway.
Defend Protect the target element from hostiles.
Escort Protect the target element from hostiles.
Patrol Engage hostiles near the location.
Sweep Engage hostiles along the route to the location.
Intercept Engage the named target fighter element.
Strike Engage the named target ground unit.
Assault Engage the named target starship.

Samples

Here is a link to sample mission def file:

      M0.def

You can use this sample as the basis for your own missions. Be sure to rename it to match your own mission names. And remember to save the files using a .def extension.