The Pioneer Thread

I've had a play around with this and it looks very good, but the hyperspace doesn't seem to work properly. I've got the fuel, selected a target within range and headed out into space, but the hyperspace icon (and F7) don't do anything :(
It seems early days Steve. The guys who are working on it are requesting help from the community.
True. It takes time to squash all the bugs.

Strangely, the hyperspace worked when I launched from the Epsilon Eridani start point but not from the Sol start. Ah well... :confused:


Volunteer Moderator
Looks very nice indeed, cant wait to see a Flowerfairy Heavy Trader out the window.

Good find Geraldine ;)
Last edited:

hi geraldine, interesting we discovered the same in the same time range, it was yesterday i was stumbling over this thread on ssc, downloadet it and took a taste, allready wanted to tell about it, but i wasn't shure if....;)
so you was faster.
i found a lot of other stuff while i was browsing the web for frontier related things, i stumbled also over a post of a guy who claims to know how to replay the videos in ffed3d correctly but i can't make it proof, cause i got no source code of ffed3d so that i would be able to reassemble (would cost me some time too, to get into it).
further the russians are trying to use "enb" to enhance the graphical output of ffed3d (they don't tell us all, i swear), but i didn't get behind so far (other things i'm up to do).

pioneers models are in "lura"? format, i have no idea if i can export models in this format, or if you have to handcode them (looks like, if you read his instructions the're build from draw commands and arrays), this would make it difficult for the "not programming interested" modelers to build custom models. it's hard enough, i think even with a cad program, imagine a complex model (not a simple cobra) and you have to write it by hand... no, thanks.
further i think you can't texture the models so far (could be changed?), apart from that a good (dangerous) try. he promised to spice it up with some missions, let's see. this guy needs and deserves our support, i think.
some might know that i allways wanted to know how to change the pos. lights and engines setup?, i found out now, very simple, you have to change the original model, cause commands for the lights and engines are bound to specific vertices or polys of the model, i.e. to change "sidewinders" posl. you have to move the 2nd vertice in the model witch is in the front left (or right?) corner (vertice 3 is mirrored over x axis) of the model. i checked the output of theonis's mesh viewer and searched for corresponding data in ffed3d. color and size of the processed objects can of course be altered too, it will destroy perhaps the original ffe model, but will help to set up nice new models, i think (still we have to respect the original size more or less). there is a value theonis stated as radius or maybe a collision level, collision level yes, of camera, set to 0 and you can zoom into your ship and sit right behind the controls

now i know why vader never hits a ****.:D

it's a typical george lucas creation, looks pretty good, but absolute useless in reality (i didn't thought it's that extreme, but i was aware the "solar panels" will hinder any sight to l or r, and this is a bad concept for a fighter, but it seems that didn't matters anyway, cause this "patchwork" window will let you fly almost blind, but of course vader don't needs to see anything, he feels it).:D

in the story, this is the most widely spread fighter in sw universe, but he wouldn't stand one fight! but that does'nt matter too, because they have no live supply abord and pilots usually do not return from their missions. lol
Last edited:
Looks very nice indeed, cant wait to see a Flowerfairy Heavy Trader out the window.

Good find Geraldine ;)
Wonder if they will add sequins to the Flowerfairy Heavy Trader?:rolleyes:

hi geraldine, interesting we discovered the same in the same time range, it was yesterday i was stumbling over this thread on ssc, downloadet it and took a taste, allready wanted to tell about it, but i wasn't shure if....;)
If you find something potsmoke always pass it on. Good or bad it's nice to know what's happening in the Elite community. If this re-make fizzles out then it would be a shame, but lets face it; it's happened before. However, if it gets some backing from the community, who knows what we could end up with? After all, even FFE3D had to start somewhere.

As for importing models using Lua, this is a quote from "tomm", the original poster on the Pioneer thread on the SSC forum,

"The game uses a Lua-based modelling language to build models from basic 3d primitives [and (not done yet) external .obj files]. Using Lua means it is easy to animate bits of models like the wheels and the various animations during docking."

Is there any applications for modelling using this programming language?
Just doing a quick search I came up with this demo program, seems quite feature packed.

Admittedly, I know very little about modelling and even less about programming. :eek: So you may be right potsmoke, perhaps it will be difficult for the average model maker to contribute to the project. Perhaps the game's developers can help out in explaining what they are actually using to create the models. I will keep tabs on this thread on the SSC anyhow.
Last edited:
Earlier today, I was wondering why there are so many FFE-related projects but nobody had tried to remake Frontier Elite II. The planet rendering looks awesome and the gameplay feels suitably FE2-ish. This has incredible potential, it will be very interesting to see what happens over the next year or so.
advertising pioneer

Pioneer Space Sim

get Pioneer WIP updates here,

new releases & completed models will be listed now in front of the thread sporadically

- new release alpha3 (08/19/2010) and a fix to the new release for the scrambled up planetary info screen and a LOD issue with the modelviewer.

- Interplanetary Shuttle (allready included)

- Imperial Courier, Imperial Trader rev2 (allready includet in alpha3)

- Uncle Bob's Lanner (allready includet in alpha3)

- Eagle Long Range Fighter and Fellows (allready includet in alpha3)

- Cobra MKI pre release

- Sidewinder

- small Single Laser Bugfix, script is now updated in alpha3 to all ships use two gunmountings

- model fix2 2010/08/23
Last edited:
geraldine you're a speed circuit :D

yes, get envolved, it's a community project and everybody's invited to lend a hand, a claw, or any other outrigging extremity

i believe if we all pull together, it's going to be far better then FFED3D

things like the typical FFE "hand codet" missions can allready be written, of course it's yet finished but start to get involved

still also 3D modelers are needet, 2D arts designers and mission writers, there can't be enough that are willing and able to help.

if you need info how to make models or write plots, refer to the pioneer developers wiki:

and feel free to ask, suggest, proclaim, here and on SSC ;)
how to do a scripted conversion of FFE models

ok, more a hint than a real guide
you might know theunis meshviewer and showmesh prog.
showmesh spits out a long list of all FFE models as readable text including theunis' investigations to it. and i put some explanations on it to
it will look like this:
just to show how that will look FE models in plain text and how similar they are to a scripted pioneer model a rather simple one:
Object [B]#15:Interplanetary Shuttle[/B]
Vertex count 32; Vertices:
#0/00h: 1, 50, 25, 31 - type z, y, x vectors for vertices first is type of vertice, there are diiferent ones, some are common (1) for creating a polygon, other are just to control a bezier line e.g.. vertices are all mirrored along x axis thats why they are listed only once and numbered here only as even numbers, this is 1:1 in pioneer to use except you will need most odd to, three of them you will need for a triangle (of course) and so on you can have this way special bezier curve sufaces which have many sides
#2/02h: 1, -68, 25, 31
#4/04h: 1, 75, 0, 37
#6/06h: 1, -75, 0, 37
#8/08h: 1, 68, -12, 31
#10/0Ah: 1, -68, -12, 31
#12/0Ch: 1, 51, 23, 28
#14/0Eh: 1, 66, 8, 32
#16/10h: 1, -65, 12, 34
#18/12h: 1, 52, 12, -34
#20/14h: 1, 25, -12, 18
#22/16h: 1, 25, -25, 31
#24/18h: 1, -25, -12, 18
#26/1Ah: 1, -25, -25, 31
#28/1Ch: 1, 50, -25, 31
#30/1Eh: 1, -50, -25, 31
Normal count 22
# 2: ( 0 127 0), type 0 - they mark the visibility direction for planes
# 4: ( 89 89 0), type 0
# 6: ( 0 30 123), type 2
# 8: (-123 30 0), type 2
# 10: ( 113 -56 0), type 4
# 12: ( 0 -56 113), type 4
# 14: (-113 -56 0), type 6
# 16: ( 0 -127 0), type 8
# 18: ( 127 0 0), type 20
# 20: ( 0 -123 30), type 20
Scale 6 - logically this scales the object, strangewisely vertex spacing is in whole feet allready i guess
Scale2 0 - this is the zoom factor, 0 that's why you can zoom into the shuttle
Radius 75 - another scaling factor, could be for collision check?
Primitives 17 - number of polys you can say, dunno why?
Dot color: 060606h = RGB(6,6,6) - this is just the color that represents the object when it's to far to see, medium grey
Unknown_1 8 - now some even theunis wasn't to shure about
Unknown_2 19200
Unknown_3 7680
Collision data at 49F384h - it's somekind of a pointer, some points i guess to the text that comments the model
Main thrust: 2725 (5.00g) - self explanatory
Reverse thrust: -1635 (-3.00g)
Gun mountings: 0
Scoop mounting: 0
Mass (fully laden): 8
Capacity (no drive): 4
Price: ¢14
Scale: 40 - similar to bounding radius in pioneer used to limit the size for the equipment window
Description: 400Bh "Interplanetary Shuttle" - this points to the objects name in the names table
Crew: 1
Missiles: 0
Drive fitted: Interplanetary Drive (integral)
Destruction bonus: 256 - the elite points you get for a kill 256 = 1 point don't ask me why not simply 1, ok you could give part points this way, guess i haven't seen any
Gun 1/x: 400 [0190h] - the gun vectors
Gun 1/y: 100 [0064h]
Gun 1/z: 480 [01E0h]
Gun 2/x: 100 [0064h]
Gun 2/y: 60 [003Ch]
Gun 2/z: 30 [001Eh]
Gun 3/x: 320 [0140h]
Gun 3/y: 50 [0032h]
Gun 3/z: 12 [000Ch]
Gun 4/x: 3 [0003h]
Gun 4/y: 0 [0000h]
Gun 4/z: 75 [004Bh]
Mesh written out (147 commands):
FFE6 ; Cmd 6 [7]: 2047 - this is somekind of a "blind" command you wont need for a pioneer model
001A 2444 8200 2401 2440 2420 2042 2103 2242 2123 ; SetColor(GLOBAL[2], - this is the color definition table similar to pioneers set_color command
UNLIT | COLOR_GRAY, - a prefixed one
UNLIT | RGB(4,0,1), - colors in frontier have only a max val of 6 i guess 7 & 8 are reserved
UNLIT | RGB(4,4,0),
UNLIT | RGB(4,2,0),
UNLIT | RGB(0,4,2),
UNLIT | RGB(1,0,3),
UNLIT | RGB(2,4,2),
UNLIT | RGB(1,2,3))
0004 5009 090A 0B08 0010 ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 10,11,9,8, Normal(16)) - now the first poly gets drawn, a square for the bottom, corners of the square are v10 v11 v9 v8 from the top table, plus the visibility dir from normals table it's not needet to do it this way in pioneer visibilty is given by winding order to know which side is the transparent (culled) one of a single sidet poly
080B 03E8 ; if (DISTANCE > 1000) goto L82 - frontier works with linefeeds this is somewhat the level of detail in fe
054B 01F4 ; if (DISTANCE > 500) goto L62 - you can see farer as -> go to line
0011 5009 1614 0214 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(20), Vertex(22), Radius(20), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK) - another draw command called cone but draws a cylinder here, one vertical from the landing sledge of the shuttle.
0011 5009 1A18 0214 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(24), Vertex(26), Radius(20), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK) - four such cylinders for all 4 "legs"
0011 5009 1E1C 0212 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(28), Vertex(30), Radius(18), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK) - the first horizontal cylinder of the sledge
0011 5009 1715 0215 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(21), Vertex(23), Radius(21), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK)
0011 5009 1B19 0215 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(25), Vertex(27), Radius(21), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK)
0011 5009 1F1D 0213 0200 0000 0000 ; Cone(LOCALCOLOUR | Texture_Metal_Black_0, Vertex(29), Vertex(31), Radius(19), Normal(2), COLOR_BLACK, Radius(0), Normal(2), COLOR_BLACK) - second horizontal

L62: 024C 01F4 ; if (DISTANCE < 500) goto L82 - again the lod if sequence far away object won't have e.g. a sledge remember one was pointing to line 62 above if true landing gear is not drawn full therefore it becomes this simple lines
0002 5009 1416 ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 22,20)
0002 5009 181A ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 26,24)
0002 5009 1C1E ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 30,28)
0002 5009 1517 ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 23,21)
0002 5009 191B ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 27,25)
0002 5009 1D1F ; Line(LOCALCOLOUR | Texture_Metal_Black_0, 31,29)
when very far away all landing gear drawing is left away >1000 was pointing to line 82 one line in the hex data is just a word long, 0x0000 the following commands drawing the body
L82: 0004 5009 0102 0300 0002 ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 2,3,1,0, Normal(2)) - top
0004 5009 0104 0500 0004 ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 4,5,1,0, Normal(4)) - front
00AB 05DC ; if (DISTANCE > 1500) goto L99- this means draw no window above distance 1500
0004 0000 0D0E 0F0C 0004 ; Square(COLOR_BLACK, 14,15,13,12, Normal(4)) - window

L99: 0008 5009 0402 0600 0006 ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 4,2,6,0, Normal(6)); - the upper right side
; Square(LOCALCOLOUR | Texture_Metal_Black_0, 5,3,7,1, Normal(7))-the upper left side, i guess the data is gone lost while transcribe
024B 036A ; if (DISTANCE > 874) goto L124 - a if sequence to make text only visible above lod
191C 0000 ; Rotate -- default 0000 - rotation of text, flow to
833C FD44 ; Rotate -- default FD44- rotation of text, facing to
000A 0000 0606 4610 3016 ; Text(COLOR_BLACK, Normal(6), Vertex(16), Scale(6), VECTOR_FONT, 3016h)- text command, 000A means is text is reg#
191C 0040 ; Rotate -- default 0040
833C FD44 ; Rotate -- default FD44
000A 0000 0607 4612 3016 ; Text(COLOR_BLACK, Normal(7), Vertex(18), Scale(6), VECTOR_FONT, 3016h)
the left four polys for lower right / left side and lower front / back
L124: 0004 5009 0306 0702 0008 ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 6,7,3,2, Normal(8))
0004 5009 0508 0904 000A ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 8,9,5,4, Normal(10))
0008 5009 0806 0A04 000C ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 8,6,10,4, Normal(12));
; Square(LOCALCOLOUR | Texture_Metal_Black_0, 9,7,11,5, Normal(13))
0004 5009 070A 0B06 000E ; Square(LOCALCOLOUR | Texture_Metal_Black_0, 10,11,7,6, Normal(14))
0000 ; End
End of mesh - that's it
Extra data words: 0C84 3E80

you see a easy thing to port to pioneer, it's almost the same
next i post the shuttle as pioneer model
the script for Pioneer, rough version no thruster or position light only the naked shuttle.
define_model('shuttle', {  -- this is the ship def table, with this name the model get's called internally
   info = {
            scale = 1, -- the final scale
           lod_pixels = {20, 50, 100, 0}, -- level of detail, higher numbers let things vanish earlier (if)
         bounding_radius = 20,  -- the size of your ship in preview window
         materials = {'grey', 'black', 'alu', 'matvar0', 'text'}, -- materials list, all must be listed here
         tags = {'ship'}, -- what kind of object it is
         ship_defs = {
               'Interplanetary Shuttle', -- the name how it appears in the shipyard
               { 4*10^6,-2*10^6,1*10^6,-1*10^6,-1*10^6,1*10^6 }, -- acceleration table
               { v(0,0,-5), v(0,0,-1) }, -- gun positions and vector, only 2 supported, so far
               { v(0,0,5), v(0,0,1) },  -- no 2
               { 10, 1, 2, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1 }, -- commodities list
               10, 5, 1000000, -- capacity, hull mass, price
                1 -- fitted drive

   static = function(lod) -- static are all functions that don't request variables, except the lod

      set_material('grey', 0.4, 0.4, 0.4, 1, 0.5, 0.5, 0.5, 10) -- usually i put all used material settings in front
      set_material('black', 0,0,0.1, 1, 0.7, 0.7, 0.7, 100)
      set_material('alu',   .5, .51, .65,1, .5, .5, .7, 50)

      local v00 = v(-3.1,2.5,-5.0) -- localization of vectors, not a must but it's logic when you have that list in the original model
      local v01 = v(3.1,2.5,-5.0) -- you see read the vectors from back in FFE's models, divide by ten at least for pioneer (11.8 for real but you can scale down the model later with scale = 0.84)
      local v02 = v(-3.1,2.5,6.8) -- you will have to add the odd vertices to
      local v03 = v(3.1,2.5,6.8)
      local v04 =   v(-3.7,0,-7.5)
      local v05 = v(3.7,0,-7.5)
      local v06 = v(-3.7,0,7.5)
      local v07 = v(3.7,0,7.5)
      local v08 = v(-3.1,-1.2,-6.8)
      local v09 = v(3.1,-1.2,-6.8)
      local v10 = v(-3.1,-1.2,6.8)
      local v11 = v(3.1,-1.2,6.8)
      local v12 = v(-2.8,2.3,-5.3)
      local v13 = v(2.8,2.3,-5.3)
      local v14 = v(-3.2,0.8,-6.8)
      local v15 = v(3.2,0.8,-6.8)

      local v18 = v(3.4,1.2,-5.2)
      local v20 = v(-1.8,-1,-2.5)
      local v22 = v(-3.1,-2.5,-2.5)
      local v24 = v(-1.8,-1,2.5)
      local v26 = v(-3.1,-2.5,2.5)
      local v28 = v(-3.1,-2.5,-5.0)
      local v30 = v(-3.1,-2.5,5.0)

      use_material('grey') -- material we want to use for the bottom part
      quad(v08, v09, v11, v10) -- a simple rectangular plane
      xref_quad(v04, v08, v10, v06) -- mirror the plane

      use_material('matvar0')  -- colorvariable material for the top section

      if lod > 1 then -- the "landing sledge" don't draw this at lowest lod

      xref_ring(3*lod,v20,v22,v(0,1,0),0.09) -- a cylinder in fact, without taps
      xref_cylinder(3*lod,v28,v30,v(0,1,0),0.12) -- a real cylinder, with taps

      quad(v12,v13,v15,v14) -- the window


   dynamic = function(lod) -- the "moving" & alternating stuff

      set_material('matvar0', get_arg_material(0)) -- invoking of colorvariable material 0 (or 1)
      set_material('text', get_arg_material(2)) -- thats only for testing, it returns a matte white material allways, but it's a good one for text, imo.

      local v16 = v(-3.4,1.4,1.0)
      local v17 = v(3.4,1.4,1.0)

        if lod > 1 then

      geomflag(0x8000) -- disables collision check
      reg = get_arg_string(0) -- requests the registry #., that's why this text is here at dynamic
      text(reg, v16, v(-1,0.23,0), v(0,0,1), 2.5, {center = true})
      text(reg, v17, v(1,0.23,0), v(0,0,-1), 2.5, {center = true})


a explained model will follow but not now
edit: why not a short one? read pioneers wiki for more info to the commands

it will look like this in pioneer, (it's allready grown since then)

Last edited:
Top Bottom