Thanks!
I have made some progress. I’ve been experimenting with boarding_beam_combo.lua. This is the full file:
fx = {
style = "STYLE_COMBO",
properties = {
property_06 = {name = "FX7",type = "VARTYPE_STRING",value = "BOARDING_BEAM_LIGHT",},
property_05 = {name = "FX6",type = "VARTYPE_STRING",value = "BOARDING_BEAM_SPRAY",},
property_07 = {name = "FX8",type = "VARTYPE_STRING",value = "BOARDING_BEAM_TUBE_SPRAY",},
property_02 = {name = "FX3",type = "VARTYPE_STRING",value = "boarding_beam_beam",},
property_01 = {name = "Fx2",type = "VARTYPE_STRING",value = "",},
property_04 = {name = "FX5",type = "VARTYPE_STRING",value = "boarding_beam_burn_ring",},
property_03 = {name = "FX4",type = "VARTYPE_STRING",value = "boarding_beam_burn_ring02",},
property_00 = {name = "Fx1",type = "VARTYPE_STRING",value = "",},
},
}
The “combo” part means that it is made up of multiple sub-fx. So I isolated each one by commenting out all the other lines:
property_06 = {name = "FX7",type = "VARTYPE_STRING",value = "BOARDING_BEAM_LIGHT",},
(No discernable effect):
property_05 = {name = "FX6",type = "VARTYPE_STRING",value = "BOARDING_BEAM_SPRAY",},
A sort of animated flame:

property_07 = {name = "FX8",type = "VARTYPE_STRING",value = "BOARDING_BEAM_TUBE_SPRAY",},`
A stream of particles moving out:

property_02 = {name = "FX3",type = "VARTYPE_STRING",value = "boarding_beam_beam",},
A beam of light (a sprite that is always facing the camera):

property_04 = {name = "FX5",type = "VARTYPE_STRING",value = "boarding_beam_burn_ring",},
A blob at the base of the beam (a sprite that is orthogonal to the beam):

property_03 = {name = "FX4",type = "VARTYPE_STRING",value = "boarding_beam_burn_ring02",},
A blob (sprite always facing the camera):

And this is what it looks like with no lines commented out, all the sub-fx combine to produce the boarding beam fx: