Software Documentation

Exporting a firing system scriptDocumentation

Integration IntermediateLast updated: October 20, 2021

9 Fire Pioneer

To create and export a script for the Fire Pioneer firing system, please follow these three steps:

  1. Design the show.
  2. Address the show (“Addressing > Address show”).
  3. Export the script (“File > Export > Export firing scripts“).

Step 3 creates the script file, which is a CSV file that you can import into the Fire Pioneer software.

Figure 1 – Fire Pioneer control panel


The CSV header row defines the fields, and the terminology is similar to the column headers in Finale 3D. A few differences to note are:

  1. Track in Finale 3D means “Segment” in Fire Pioneer, no difference.
  2. Hazard in Finale 3D means “Priority” in Fire Pioneer.
  3. Part Number in Finale 3D doesn’t have a corresponding field in the Fire Pioneer script format, so it is stored in the “EffectComment1” field in the exported Fire Pioneer script.

The other minor variations in terminology and adaptations are explained in Table 3, below.


Table 1 – File format and encoding

File formatExtensionText encodingField delimiterEnd-of-line
Text.CSVUTF-8 with BOM (0xef 0xbb 0xbf); (semi-colon)CRLF

The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table:


Table 2 – Special characteristics

Special characteristicsDescription
Sort order of rowsRows sorted ascending by effect time.
What rows representEach row represents a unique firing event, a module/pin/event-time combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row.

Events at different times are necessarily different rows, even if their addresses are the same. For example, two flame projector shots at different times, triggered by the same module-pin address, will be two rows because they are at different times.

HeaderThe file contains a single header row with the column names, in the same format as the CSV data rows themselves.
Multi-hit pinsNon-pyro effects like flames and relays can be triggered multiple times on the same module-pin address. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them.
Special charactersThe characters ‘ and “ and , and ; and \ and tab and newline will be filtered out of any text fields.
Minimum separation between cuesNone required; millisecond resolution supported.
Module specificationsSupports 99 modules (numbered 1-99), each module with 32 pins (numbered 0-31).

After the header, each row in the script has a number of fields separated by the semi-colon character. The names of these fields and their descriptions are the following:


Table 3 – Specifications of script fields

Field nameDescription
EidThe row number in the script, beginning with 1.
EventDescriptionThe word “Event” immediately followed by the row number in the script, beginning with 1.
EffectDescriptionA description of the effect, preceded by a count in parentheses if the row represents more than one device, such as for a chain or a pair of effects ignited together.
ScriptTimeTextThe effect time, formatted as HH:MM:SS,DDD.
PositionThe position name.
AngleASCII-art characters (\ | /) indicating the angles of the shots; multiple characters if multiple devices are ignited by this firing row, e.g., \/ for an angled pair.
QtyNumber of devices ignited by this firing row if more than 1, or 1 as the minimum value.
AddressThe firing system address of the shot: a four digit number, the first two digits being the module number (1-99), and the second two digits being the pin number (0-31).
PriorityThe Hazard class, from 0-8, with 0 being the default value (the Hazard field in Finale 3D).
SegmentThe track number, 0-9999, with 0 being the default value (the Track field in Finale 3D).
CommentThe script notes for the row (the Notes field in Finale 3D).
ScriptTimeMSThe effect time, in milliseconds.
FireTimeMSThe event time, in milliseconds.
TypeThe type of the effect, which in Finale 3D is restricted to one of these enumerated values: cake, candle, single_shot, shell, ground, rocket, mine, comet, flame, other_effect, not_an_effect, rack.
CalThe size of the effect, including units (e.g., 75mm); since double quote characters are filtered out of the exported Fire Pioneer script file, they will be missing from effect sizes in inches (e.g., 2.5 instead of 2.5″) (the Size field in Finale 3D).
BreaktimeThe prefire time of the effect, formatted as a floating point number (the Prefire field in Finale 3D).
DurationThe duration of the effect, formatted as a floating point number.
VendorNumberThe manufacturer part number of the effect (the Manufacturer Part Number field in Finale 3D).
LocationThe standard storage location for the effect (the Storage Location field in Finale 3D).
PRICE1The standard price for the effect (the Price field in Finale 3D).
PRICE2The standard cost for the effect (the Cost field in Finale 3D).
PRICE3Finale 3D writes 0 to this field.
EffectComment1Finale 3D writes the part number in this field (the Part Number field in Finale 3D).
EffectComment2Finale 3D leaves this field blank.
FireoneSlatFinale 3D writes 0 to this field.
FireoneCueFinale 3D writes 0 to this field.
PyroAddrFinale 3D writes 0 to this field.


An example script is shown below. Notice the last two rows are at the same event time but have different modules and therefore cannot be combined into a single row.

1;Event1;Green Chrysanthemum;00:00:05,000;00:00:02,760;Pos-01;|;1;0100;0;0;;5000;2760;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
2;Event2;Green Chrysanthemum;00:00:05,100;00:00:02,860;Pos-02;|;1;0200;0;0;;5100;2860;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
3;Event3;Green Chrysanthemum;00:00:05,200;00:00:02,960;Pos-03;|;1;0300;0;0;;5200;2960;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
4;Event4;Green Chrysanthemum;00:00:05,300;00:00:03,060;Pos-04;|;1;0400;0;0;;5300;3060;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
5;Event5;Green Chrysanthemum;00:00:05,400;00:00:03,160;Pos-05;|;1;0500;0;0;;5400;3160;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
6;Event6;Green Chrysanthemum;00:00:05,500;00:00:03,260;Pos-06;|;1;0600;0;0;;5500;3260;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
7;Event7;Green Chrysanthemum;00:00:05,600;00:00:03,360;Pos-07;|;1;0700;0;0;;5600;3360;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
8;Event8;Green Chrysanthemum;00:00:05,700;00:00:03,460;Pos-08;|;1;0800;0;0;;5700;3460;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
9;Event9;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-08;|;1;0801;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
10;Event10;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-09;|;1;0900;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0

Figure 1 – Example Fire Pioneer script


Table 4 – Example files

Download linkExplanation
firepioneer.csvExample exported file (CSV)
test_firepioneer.finExample show file