hide results

    Editing FAQ by Ice Gecko

    Version: 1.54 | Updated: 02/20/04 | Printable Version | Search Guide | Bookmark Guide

    _______________________________________________________________________________
    \-----------------Logo by Osrevad. Contact Information Below.-----------------/
        _____   _____   ____   ____            _            ____   ____   _____
       |.----' |.---.\ |.---' |.---' ||       /.\   |\  || /,---' |.---' |.---.\
       ||___   |'---'| ||__   ||__   ||      // \\  |.\ || ||     ||__   |'---'|
       |.---'  |.--.(  |.--'  |.--'  ||     ||___|| ||\\|| ||     |.--'  |.--.(
       ||      ||   \\ ||___  ||___  ||___  |.---.| || \'| ||___  ||___  ||   \\
       `'      `'   `' '----' '----' '----' `'   `' `'  `' `----' '----' `'   `'
    _______________________________________________________________________________
    \-------Contact him on AIM: Nahuwe or Email: omohasiosrevad@hotmail.com-------/
    
                        Freelancer In-Depth Editing FAQ
                         Written by bartsimpsondude2000
                      Version 1.54 - Last Revised: 2-20-04:p
    
         This document is Copyright 2003-2004 by Landon Fowles aka
                              bartsimpsondude2000
    
           Latest revisions of this guide can be found at the following URL(s):
                           http://www.gamefaqs.com
    
    ===============================================================================
    
    Legal Disclaimer
    
      This document is Copyright 2003-2004 bartsimpsondude2000.  It may not be
      reproduced nor retransmitted in any form without prior consent from the
      authors.  It may not be altered, published, sold, given as an incentive to
      buy, etc. without advance permission from the authors.  All outside sources
      which have contributed to the making of this guide in some form have been
      cited in the last section of the guide.
    
      No one may put my Faq on their site except:
      www.GameFAQs.com
      www.NeoSeeker.com
    
      Banned Sites:
      www.cheatcc.com (for stealing everyone elses faq's it deserved an autoban)
    ===============================================================================
    
    Table of Contents
    
       I.  Introduction and Revision History
      II.  About the Author
     III.  Tutorials
        - Cargo Sizes by Owning_Joo
        - Creating New Hardpoints by CW
        - How to edit the .thn script files by BobTheDog
        - How to create new weapon effects by BobTheDog
        - Hardpoints V.2 by Jackel
        - Transparent Cockpit by Jackel
        - How to change factions so you can be good to all but 1 by Reynen
        - Making Energy Missiles  by Rolo2020
        - System Building from scratch by giskard
        - Texturing by harrier
        - How To Make A Black Hole By Dracon
        - How To Change The Starting Ship In Multiplayer by Captain Tylor
      IV.  The Testing Process
       V.  Tools and Programs
      VI.  Frequently Asked Questions
     VII.  Random Tips, Hints and Information
    VIII.  Reader Emails
      IX.  Contact Information
       X.  Revisions
      XI.  Document Information
    To find something quickly:
    1.Highlight the whole section name including roman numerals.
    2.Press Control and C or right click and select copy.
    3.Press Control and F.
    4.Press Control and V.
    5.Press Enter.
    ===============================================================================
    I.  About the Author
    
    	Hi my name on the forums is bartsimpsondude2000. I had the idea for this
    FAQ when I saw my favorite game had only 1 FAQ! I started to think about a
    subject to work on and then it came to me. I asked everyone on Lancer's Reactor
    if I could borrow some editing tutorials and they "stuck" my post on the board.
    From then on I started creating this FAQ.
    Ok My email is:  projecteclipsor (at) msn.com (anti-spam reasons)
    Please, no spam, flames, but criticism is accepted as long as it is
    constructive.
    ===============================================================================
    II.  Tutorials
    
    Here we are at the tutorials. I might need to tell you that Freelancer is one
    of the most editable modern games in existence. I mean they just spilled its
    guts into .ini files. They are compressed however, so you will need BiniQDU
    (check the Tools and Programs section).
    
    DO NOT USE THESE FOR AN ONLINE GAME!!! (Seriously, some might crash your
    game, and others WILL get you kicked or banned! They do have a new FL version
    of Punkbuster (not punkbuster but software with same purpose) that WILL detect
    your edited inis!
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Cargo Sizes  by owning_joo
    
    
    First you open up your shiparch.ini. It should be in freelancer folder like
    C:\program files\microsoft games\data\ships\shiparch.ini
    
    I recommend using something like BiniQDU because you can search for words in
    the .ini file.
    
    To edit the cargo size of what ship you have to find out who makes it and what
    class ship it is and the name.
    
    Here is the ship thing for the Sabre. You go down through the list and find the
    hold size part I put it in "s but dont put that in folder.
    When you find the hold size just change it to what you want. I dont know if
    there is any limit but highest cargo space I've edited to is 1 million.
    
    [Ship
    ids_name = 237012
    ids_info = 66515
    ids_info1 = 66516
    ids_info2 = 66608
    ids_info3 = 66517
    ship_class = 3
    nickname = bw_elite2
    LODranges = 0, 75, 125, 1000
    msg_id_prefix = gcs_refer_shiparch_borhf
    mission_property = can_use_berths
    type = FIGHTER
    DA_archetype = ships\border_world\bw_vheavy_fighter\bw_vheavy_fighter.cmp
    material_library = ships\border_world\bw_ships.mat
    material_library = fx\envmapbasic.mat
    envmap_material = envmapbasic
    cockpit = cockpits\corsair\bw_elite2.ini
    pilot_mesh = generic_pilot
    nanobot_limit = 63
    shield_battery_limit = 63
    
    
    
    
    mass = 75.000000
    "hold_size = 70"
    linear_drag = 1.000000
    fuse = intermed_damage_smallship01, 0.000000, 2700
    fuse = intermed_damage_smallship02, 0.000000, 1350
    fuse = intermed_damage_smallship03, 0.000000, 900
    max_bank_angle = 30
    camera_offset = 9, 33
    camera_angular_acceleration = 0.060000
    camera_horizontal_turn_angle = 20
    camera_vertical_turn_up_angle = 10
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Creating New Hardpoints by CW
    !!!Warning!!! If you arent a rocket scientist skip this section! j/k  but its
    confusing.
    
    This tutorial focuses on the rotatable weapon hardpoints but fixed ones like
    engines and thrusters aren't that much different, except that they are missing
    a few nodes.
    
    Recommended Utilities:
    HCl's UTF Editor
    Tyson Schoepflin's BiniQDU v1.1
    
    Preparation
    --------------
    
    The feedback I got is that a lot of people don't understand the coordinate
    frames, especially in the Orientation section. I must emphasise that it is VERY
    IMPORTANT for you to draw diagrams as you read along, otherwise you will have a
    hard time trying to understand what I'm talking about!
    
    To make a new weapon hardpoint, first find your ship's CMP file in
    ..\DATA\SHIPS\(your ship's fraction)\(your ship)\ . For example my Dromedary
    freighter uses a file called bw_freighter.cmp under C:\Program
    Files\Freelancer\DATA\SHIPS\BORDER_WORLD\BW_FREIGHTER\. Open the file with UTF
    Editor and selected "float array" under "interpret data as...".
    
    Using the same example again, if you explore the tree structure of the file
    you will notice that the first level 'tree trunks' are mainly consisted of body
    parts such as "bw_freighter_lod1030109103849.3db" (fuselage),
    "bw_port_eng_lod1030109103849.3db" (left wing) and
    "bw_star_wing_lod1030109103849.3db" (right wing). Under these trunks there are
    branches called "Hardpoints" and further under them are sub-branches labeled
    "Fixed" , where all the non-moving hardpoints are stored (ie thruster, mine
    launcher, shield, running lights etc.), and "Revolute" , where all the gun,
    missile, torpedo/cruise disrupter and turret hardpoints are stored. You can add
    hardpoints to any body parts, but I've heard that it is a really bad idea to
    add hardpoints to the bay doors due to a game stability issue.
    
    Find the right fuselage part tree trunk that you intend to mount your new
    hardpoint on, select the "Revolute" sub-branch under it and click "Add node".
    Rename the new node "HpWeaponXX" for gun/missile mounts; "HpTorpedoXX" for
    torpedo/cruise disrupter; or "HpTurretXX" for turrets, where XX is the next
    vacant mount number (if your ship has 4 guns originally, then the next gun slot
    would be "HpWeapon05". Same goes for torpedo and turret hardpoints). Create 5
    more nodes under this new node, and rename them "Axis" , "Max" , "Min" ,
    "Orientation" , and "Position" .
    
    Axis
    -----
    
    Select "Axis" and click Edit. I've done some experiments to find out what this
    node does, but I was not able to alter the behaviour of a weapon with it and
    strangely a hardpoint would work just fine with this node incomplete or even
    missing. For all practical purposes this node does nothing but for the sake of
    completeness just add it in and assign it the following values, which are
    standard for all rotatable hardpoints:
    
    0.000000
    1.000000
    0.000000
    
    
    Max & Min
    ------------
    
    These two nodes defines how much the weapon can rotate sideway ("sideway"
    refers to the weapon, not the fuselage). If you look at an existing hardpoint,
    you will notice that these two nodes have 2 elements each. The number at the
    top defines the rotation limit in radians, while the number at the bottom seems
    to be 0.000000 all the time. "Max" is used to define the limit to the left and
    has a positive value; while "Min" is used to define the limit to the right and
    takes a negative number. To make a weapon that doesn't have a rotation limit,
    enter 6.283185 (=2*pi) in "Max" , and -6.283185 in "Min" , remember to put in
    0.000000 for the second row.
    
    A quick summary:
    
    Max node = Left, Positive
    Min node = Right, Negative
    
    EXAMPLE 1: A gun with rotation limit of 30 degrees (0.523599 radians) to the
    LEFT, and 40 degrees (0.698132 radians) to the RIGHT.
    
    The Max node would be:
    0.523599
    0.000000
    
    And the Min node would be:
    -0.698132
    0.000000
    
    EXAMPLE 2: A turret that can rotate freely.
    
    The Max node would be:
    6.283185
    0.000000
    
    And the Min node would be:
    -6.283185
    0.000000
    
    There is a way to alter the weapons' firing cones without making them
    rotatable, or allow them to shoot over a wider arch than they can point their
    muzzles to. This may be useful for those of you who are planning to build your
    new ship around some fixed mammoth killer cannon. You can alter the following
    setting in Constants.ini , which is located directly under Freelancer's Data
    directory:
    
    MUZZLE_CONE_ANGLE = 10
    
    Note that the number is in degrees, also this setting will affect every weapon
    on everybody's ships in the game. The guns in Freelancer won't shoot unless
    your cursor is within their firing cone, so if you set the number too small
    your weapons may sometimes seemingly refuse to fire when you maneuver too much,
    especially for your fixed killer cannon.
    
    
    Position
    ----------
    
    Each part of the fuselage has its own coordinate frame with the same
    orientation. The orientation is as follow (DRAW A DIAGRAM NOW):
    
    Positive X: to the right
    Positive Y: up
    Positive Z: to the rear
    
    Depending on which fuselage part you assign a weapon to, the Position entry is
    referenced to that fuselage part's own coordinate frame. Look at the existing
    hardpoints and guess some values for now, we will come back to it at the end.
    
    
    Orientation - The Direct Approach
    -----------------------------------------
    
    This is the hard part that needs some vector mathematics. Each mountable
    weapon has its own coordinate frame and if they are to align with the Fuselage
    Coordinate Frame, ie, having their X,Y,Z axes facing the same directions, then
    the gun barrel has to be pointing FORWARD with the mounting point facing DOWN.
    DRAW A SEPERATED DIAGRAM OF THE WEAPON AND ITS COORDINATE FRAME NOW.
    
    And here is the complication, the 9 elements in "Orientation" map the
    Fuselage's Coordinate Frame to the Weapon's Coordinate Frame (ie, describe
    where each of the Fuselage Coordinate Frame's axes are pointing on the Weapon's
    Coordinate Frame). The first 3 numbers form the 3D vector for the Fuselage
    Coordinate Frame's X axis, the second 3 for Y, and the last 3 for Z.
    
    EXAMPLE 1: A gun mounted on the TOP of the fuselage facing FORWARD.
    
    * The fuselage's X axis is pointing to the same direction as the gun's X axis,
    so the first 3 elements are 1,0,0.
    * The fuselage's Y axis is pointing to the same direction as the gun's Y axis,
    so the next 3 elements are 0,1,0.
    * The fuselage's Z axis is pointing to the same direction as the gun's Z axis,
    so the last 3 elements are 0,0,1.
    
    Sum it all up, the entry for the gun's orientation would be:
    
    1.000000
    0.000000
    0.000000
    0.000000
    1.000000
    0.000000
    0.000000
    0.000000
    1.000000
    
    * This is the "aligned" orientation - the three axes of the Fuselage's
    Coordinate Frame are aligned with the Weapon's Coordinate Frame's three
    corresponding axes.
    
    EXAMPLE 2: A gun mounted on the RIGHT side of the fuselage facing FORWARD.
    
    * The fuselage's X axis is pointing to the same direction as the gun's Y axis,
    so the first 3 elements are 0,1,0.
    * The fuselage's Y axis is pointing to the exact opposite direction as the
    gun's X axis, so the next 3 elements are -1,0,0.
    * The fuselage's Z axis is pointing to the same direction as the gun's Z axis,
    so the last 3 elements are 0,0,1
    
    Sum it all up, the entry for the gun's Orientation would be:
    
    0.000000
    1.000000
    0.000000
    -1.000000
    0.000000
    0.000000
    0.000000
    0.000000
    1.000000
    
    EXAMPLE 3: A turret mounted UNDER the fuselage facing to the REAR.
    
    * The fuselage's X axis is pointing to the same direction as the turret's X
    axis, so the first 3 elements are 1,0,0.
    * The fuselage's Y axis is pointing to the exact opposite direction as the
    turret's Y axis, so the next 3 elements are 0,-1,0.
    * The fuselage's Z axis is pointing to the exact opposite direction as the
    turret's Z axis, so the last 3 elements are 0,0,-1
    
    Sum it all up, the entry for the turret's Orientation would be:
    
    1.000000
    0.000000
    0.000000
    0.000000
    -1.000000
    0.000000
    0.000000
    0.000000
    -1.000000
    
    EXAMPLE 4: A gun mounted on a 45 degrees slope (the slope faces the morning
    sun) on the RIGHT side of the fuselage facing FORWARD. I will stick to the unit
    vector principle (keeping the hypotenuse = 1) for less confusion.
    
    * The fuselage's X axis can be described as y=x on the gun's coordinate frame,
    so the first 3 elements are 0.707107,0.707107,0. (Remembering 0.707107^2 +
    0.707107^2=1^2 from trigonometry; alternatively you can forget about the unit
    vector principle and use 1,1,0 instead, but it might get confusing if you have
    any angles other than 45 degrees.)
    * The fuselage's Y axis can be described as y=-x on the gun's coordinate
    frame, so the next 3 elements are -0.707107,0.707107,0.
    * The fuselage's Z axis is pointing to the same direction as the gun's Z axis,
    so the last 3 elements are 0,0,1.
    
    Sum it all up, the entry for the gun's Orientation would be:
    
    0.707107
    0.707107
    0.000000
    -0.707107
    0.707107
    0.000000
    0.000000
    0.000000
    1.000000
    
    If you screw up the orientation matrix, the weapon you mount on the new
    hardpoint will appear somewhat transparent in the ship dealer, and will
    malfunction in flight.
    
    And if you really want it here you go:
    Orientation - The Smart Aerospace Engineer's Approach
    --------------------------------------------------------------------
    
    If you are trying to mount your hardpoints on some odd-facing surfaces, it
    will kill a lot of your brain cells trying to come up with the orientation
    matrix directly.  In this case we need to use a little bit more maths to save
    us the trouble. Make sure you know how to do matrix multiplication, else look
    up here for a quick (5 minutes) but sufficient primer.
    
    What we are going to do here is taking a different approach by breaking the
    problem down into 3 easier to manage questions:
    
    1) Starting from the "Aligned Orientation", how much in radians do I want to
    rotate the weapon around its X-axis?
    2) How much in radians do I want to rotate the weapon around its Y-axis?
    3) How much in radians do I want to rotate the weapon around its Z-axis?
    
    ("Aligned orientation": Recalling that if the Weapon's Coordinate Frame is to
    be aligned with the Fuselage's Coordinate Frame, then the gun barrel has to be
    pointing FORWARD with the mounting point facing DOWN.)
    
    We are going to use this ugly looking formula 3 times, each for the X,Y and Z
    axes respectively:
    
    
    
    Where,
    * {u1;v1;w1} is the Fuselage's Coordinate Frame axis you are trying to
    transform. The Freelancer game engine wants the transformation of all three
    axes (hence 9 elements), so in this case use the formula 3 times, once for
    {1;0;0} (ie. the X-axis), once for {0;1;0} (ie. the Y-axis), and once for
    {0;0;1} (ie. the Z-axis).
    * {u;v;w} is the resulting transformed axis that forms the elements in the
    orientation matrix.
    * Phi (that circle with a stroke through it) stands for the rotation you want
    around the X-axis (ie. pitch).
    * Theta stands for the rotation you want around the Y-axis (ie. yaw).
    * Psi (that trident-like symbol) is the rotation you want around the Z-axis
    (ie. roll).
    
    Whether the rotation is positive or negative is defined by the "Right Hand
    Rule". Hold up your right fist and stick up your thumb, if your thumb points
    towards the positive direction of the axis, then your other fingers signifies
    the positive direction of rotation around it.
    
    To get your orientation matrix, follow these steps:
    
    1) Figure out what Phi, Theta, Psi values you want, plug them into the formula.
    2) Replace {u1; v1; w1} with {1, 0, 0}.
    3) Solve the equation to get {u; v ;w}, that's the first 3 elements in the
    orientation matrix.
    4) Replace {u1; v1; w1} with {0, 1, 0}.
    5) Solve again, that's the middle 3 elements in the orientation matrix.
    4) Replace {u1; v1; w1} with {0, 0, 1}.
    5) Solve once more, that's the last 3 elements in the orientation matrix.
    6) Put your orientation matrix into UTF editor and try it out in the game, if
    you don't like the result, go back to step 1.
    
    It is definitely much less tedious if you get some computational maths package
    to do the calculations for you.
    
    Activating The Hardpoint
    -------------------------------
    
    That's it for orientation and the new hardpoint is now fully defined. The next
    step is to enable it in shiparch.ini which is located in ..\DATA\SHIPS\ . But
    before you do that, look up here for the unique ID number of your ship. Once
    you have the ID number, open shiparch.ini with BiniQDU and find your ship. If
    you created a gun hardpoint, find the lines starting with "hp_type =
    hp_gun_special_X, HpWeapon01, HpWeapon02, ..." and add your new hardpoint to
    the end of each line. Notice that X stands for the class of guns, so if you
    want your new hardpoint to take every gun in the game, add it to the back of
    all 10 lines. Unless you are modding the Eagle, Titan or Sabre, which take
    class 10 guns and missiles by default, you will need to add the missing lines
    for the higher classes. Just follow the pattern. Same goes for torpedos/cruise
    disrupters and turrets, under the lines "hp_type = hp_torpedo_special_X, ..."
    (there are 2 classes of torpedos/cruise disrupters) and "hp_type =
    hp_turret_special_X, ..." (10 classes) respectively.
    
    Remember to save your work. The last step would be to run the game, put a
    weapon on your new hardpoint and see where it goes, then come back to refine
    the hardpoint's position.
    
    That's it for adding hardpoints! Enjoy your overloaded super gunship!
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    How to edit the .thn script files by BobTheDog
    
    Part 1
    Ok, so ya want to edit a script, right? well, today we're gonna focus on the
    main menu background, the one with the station in front of a planet with the
    ships and transports flying across.
    
    First off, you need the .thn uncompiler, BiniQDU, and the UTF Editor
    
    Both of which can be found in the Tools and Programs Section
    
    Now, once you have those, go into DATA\SCRIPTS\INTRO and copy gasminer3.thn to
    wherever you unzipped the .thn decompiler to. decompile it and open it up with
    notepad.
    
    Now, you are probably going "What's this? this isn't Freelancer coding!" and
    you'd be right. It's scripted in LUA code. But it's fairly straightforward,
    especially if ya know C++ or something like it.
    
    I'm not entirely sure what time unit is used in these, so just leave them
    alone for now.
    
    Part 2
    Ok, now every FL script (to my knowledge) begins with a duration declaration,
    and then a scene entity, and ya can just copy those if ya make a new script.
    
    here's how things work in FL scripts:
    
    Everything has to be declared. You can only use things from solararch.ini,
    shiparch.ini, effects.ini, and the starspheres and nebulaspheres.
    
    so, here's how to declare a ship:
    
    {
    entity_name="Ships_li_dreadnought", <-- this is the name used to reference it
    in this script
    type=COMPOUND, <-- must be this for ships
    template_name="li_dreadnought", <-- what to use from shiparch.ini
    lt_grp=4,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC,
    spatialprops={
    pos={ <-- position to start at... only used is stationary
    7760.895996,
    612.4628300000001,
    -4181.624023
    },
    orient={ <-- rotational vectors
    {
    -0.955097,
    0,
    -0.296293
    },
    {
    0,
    1,
    0
    },
    {
    0.296293,
    0,
    -0.955097
    }
    }
    },
    userprops={ <-- I assume this tells it where to get the template from...
    category="Spaceship"
    }
    },
    
    
    now, you can mae the template anything from shiparch.ini
    
    we have a ship, now let's make it follow a path:
    
    This is a path from gasminer3.thn:
    
    {
    entity_name="Path_1_copy_1",
    type=MOTION_PATH,
    template_name="",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    spatialprops={
    pos={
    5,
    6.576355,
    55
    },
    orient={
    {
    
    1,
    
    0,
    0
    },
    {
    0,
    1,
    0
    },
    {
    0,
    0,
    1
    }
    }
    },
    pathprops={
    path_type="CV_CROrientationSplinePath",
    path_data="OPEN, {7760.895996,612.463013,-4181.623535},
    {1.000000,0.000000,0.000000,0.000000}, {7465.413574,612.463013,-3846.421143},
    {1.000000,0.000000,0.000000,0.000000}, {7569.932129,612.463013,-3511.218262},
    {1.000000,0.000000,0.000000,0.000000}, {7474.450684,612.463013,-3176.015137},
    {1.000000,0.000000,0.000000,0.000000}, {7358.968750,612.463013,-2840.812256},
    {1.000000,0.000000,0.000000,0.000000}, {7283.486816,612.463013,-2505.608887},
    {1.000000,0.000000,0.000000,0.000000}, {7188.005371,612.463013,-2170.406006},
    {1.000000,0.000000,0.000000,0.000000}, {7092.523438,612.463013,-1835.202759},
    {1.000000,0.000000,0.000000,0.000000}, {6997.041504,612.463013,-1500.000000},
    {1.000000,0.000000,0.000000,0.000000}, "
    }
    },
    
    
    all the numbers at the bottom are points for the path to follow, i'm not sure
    how to calculate them, tho. What you CAN do is edi the pos={ section:
    pos={
    5, <-- positive is right, negative is left
    6.576355, <-- positive is up, negative is down
    55 <-- positive is forward, negative is back
    },
    
    
    I'm assuming that these paths are calculated from the center of the scene.
    
    Now, you need to have the ship go down the path... under the events={ section,
    at the end of the declarations, you would put:
    
    {
    0, <--this tells it how many time units to delay the action (I think)
    START_PATH_ANIMATION,
    {
    "Ships_li_dreadnought", <-- which entity to put on the path
    "Path_1" <-- which path to use
    },
    {
    duration=60, <-- I'm not sure what the next three do...
    start_percent=0,
    stop_percent=1,
    offset={
    90,
    45,
    45
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    flags=POSITION + ORIENTATION + LOOK_AT <--this seems to tell the ship to face
    in the direction of the waypoint
    }
    },
    
    As you can see, there is a field called offset={
    
    this is exactly like the pos={ field discussed earlier. This time, it tells
    the offset by which the ship is placed on the path.
    
    ok, now you have a ship, on a path. assuming you simply edited the
    gasminer3.thn, you are almos good to go.
    
    to get it to allways show up when you start freelancer (there are three
    possible menu backgrounds, randomly chose when you start FL) you need to edit
    two files:
    
    intro2_vlocanoplanet.ini
    intro3_planetchunks.ini
    
    both in DATA\UNIVERS\SYSTEMS\INTRO\BASES\ROOMS
    
    you'll need to decompile them with bini and change this line in both:
    
    [Room_Info
    scene = ambient, Scripts\Intro\xxxxxx.thn
    
    to:
    
    [Room_Info
    scene = ambient, Scripts\Intro\gasminer3.thn
    
    save both files, and make sure you put the decompiled ini's back into the
    right folders, and made sure they still had the .ini extension, not .ini.txt as
    bini makes them. now, load freelancer, and you should see the intro with the
    ship going by eventually.
    
    Part 3
    Now, you say "Wait a second... there's no engine!"
    
    that's correct.
    
    Here's the complex part: This is a script, not a Freelancer system, and those
    aren't ships, just models stuck on a conveyor belt. they don't even have
    solidity. Yep, you can fly them right through each other, and anyhting else in
    the scene, planets, stations, etc.
    
    how to add an engine then?
    
    back at the declaration part of the gasminer3.thn file, add this:
    
    {
    entity_name="FX_ge_lbd_engine_01",
    type=PSYS,
    template_name="gf_li_largeengine03",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7784.271973,
    609.758606,
    -4256.971191
    },
    orient={
    {
    -0.993505,
    0,
    -0.113791
    },
    {
    0,
    1,
    0
    },
    {
    0.113791,
    0,
    -0.993505
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    
    this time, the template comes from effects.ini
    
    this is the engine effect used by the engine used by the liberty dreadnought
    in the game.
    
    Now that we've declared it, we mive on to attaching it to the ship:
    
    put this in the events={ section:
    
    {
    0,
    ATTACH_ENTITY,
    {
    "FX_ge_lbd_engine_01", <-- thing that's being attached
    "Ships_li_dreadnought" <-- thing it's being attached to
    },
    {
    duration=2400,
    offset={
    
    0,
    
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpengine01",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION
    }
    },
    
    note at the end it has sections for what to attach it to. If you are not
    familiar with the model you are attaching the effect to, you need the UTF
    editor to look at the hardoint names for specific models. The Liberty
    Dreadnought has only one engine flame, fortunately for us. and the hardpoint is
    labeled HpEngine01.
    
    I suppose you caould add offsets here, but that'd look odd...
    
    now it's attached to the ship, but we still need to turn it on:
    
    under the attachment event, add this:
    
    {
    0,
    START_PSYS,
    {
    "FX_ge_lbd_engine_01"
    },
    {
    duration=2400
    }
    },
    
    this turns on the named effect.
    
    now, save the file and go back into the game. You should see the Liberty
    Dreadnough has it's engine now.
    
    One last thing:
    
    THe engine is too small, you say. Yes, but it cannot be helped. I don't know
    of a way of changing it's size... you see the size it dynamically controlled in
    the game, relative to your speed, bu the ship in the scene has no speed, it's
    just sitting on the track. so the effect is at it's lowest "on" point.
    
    And another thing:
    
    You can't add weapons, or runninglights to anything. Believe me I've tried.
    
    Part 4
    Here's another thing to try:
    
    Add this to these declaration area:
    
    {
    entity_name="smoke1",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke2",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke3",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke4",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke5",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke6",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke7",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke8",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    {
    entity_name="smoke9",
    type=PSYS,
    template_name="gf_prisonattack_bigsmoke",
    lt_grp=0,
    srt_grp=0,
    usr_flg=0,
    flags=LIT_DYNAMIC + LIT_AMBIENT,
    spatialprops={
    pos={
    7322.942383,
    363.170685,
    -3207.746094
    },
    orient={
    {
    0.433044,
    -0.458753,
    0.775899
    },
    {
    0.223574,
    0.888564,
    0.400586
    },
    {
    -0.873205,
    0,
    0.487352
    }
    }
    },
    psysprops={
    sparam=0
    }
    },
    
    amd these to the event area:
    
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke1",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s2_01",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke2",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_01",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke3",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_02",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke4",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_03",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke5",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_04",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke6",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_05",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke7",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_06",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke8",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_07",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    ATTACH_ENTITY,
    {
    "smoke9",
    "smallstation1_1"
    },
    {
    duration=2400,
    offset={
    0,
    0,
    0
    },
    up=Y_AXIS,
    front=NEG_Z_AXIS,
    target_part="hpturret_s1_08",
    target_type=HARDPOINT,
    flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke1"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke2"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke3"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke4"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke5"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke6"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke7"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke8"
    },
    {
    duration=2400
    }
    },
    {
    0,
    START_PSYS,
    {
    "smoke9"
    },
    {
    duration=2400
    }
    },
    
    
    now the station is burning! Oh no!
    
    Part 5, The Final Part
    And one last thing to try:
    
    Open the following:
    
    intro1_cityscape.ini
    intro2_vlocanoplanet.ini
    intro3_planetchunks.ini
    
    and change the
    
    [Room_Info
    scene = ambient, Scripts\Intro\xxxxxxxx.thn
    
    
    to:
    
    [Room_Info
    scene = ambient, Scripts\Intro\intro_waterplanet.thn
    
    
    now you can see the unused intro!
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    How to create new weapon effects  by BobTheDog
    
    You will need BINI
    
    Look in the Tools and Programs Section
    
    effects are simple, yet complex:
    
    all weapons reference their effect in the ammo header in weapon_equip.ini....
    although missiles reference some thinf in their explosion header.
    
    lets say you wanted to create an effect called BEAM_O_DOOM, you'd need to do
    the following:
    
    in weapon_equip.ini:
    
    [Munition
    nickname = li_gun01_mark01_ammo
    hp_type = hp_gun
    requires_ammo = false
    hit_pts = 2
    hull_damage = 16.299999 <-- hull damage (lol)
    energy_damage = 0 <--shield damage (multiplied by something.. so this is not
    actually 0 shield damage)
    weapon_type = W_Laser01
    one_shot_sound = fire_laser1
    munition_hit_effect = li_laser_01_impact <-- the effect used when the
    projectile hits something
    const_effect = BEAM_O_DOOM <--the beam
    lifetime = 0.800000
    force_gun_ori = false
    mass = 1
    volume = 0.000100
    
    [Gun
    nickname = li_gun01_mark01
    ids_name = 263357
    ids_info = 264357
    DA_archetype = equipment\models\weapons\li_heavy_ion_blaster.cmp
    material_library = equipment\models\li_equip.mat
    HP_child = HPConnect
    hit_pts = 400
    explosion_resistance = 1.000000
    debris_type = debris_normal
    parent_impulse = 20
    child_impulse = 80
    volume = 0.000000
    mass = 10
    hp_gun_type = hp_gun_special_1
    damage_per_fire = 0
    power_usage = 5.090000 <-- how much power each shot uses
    refire_delay = 0.120000 <-- how long before you can shoot again... 1.0 is long
    and 0.01 is real short
    muzzle_velocity = 750 <-- how fast the projectile goes
    use_animation = Sc_fire
    toughness = 1.300000
    flash_particle_name = li_laser_01_flash
    flash_radius = 15
    light_anim = l_gun01_flash
    projectile_archetype = li_gun01_mark01_ammo <-- references above [munition
    section
    separation_explosion = sever_debris
    auto_turret = false
    turn_rate = 90
    lootable = true
    LODranges = 0, 20, 40, 80, 100
    
    
    ok, now edit those to whatever, these are the defaults for the Liberty Mark
    One cannon.
    
    all the effects are listed in effects.ini, so in there, you need to make a
    listing:
    
    [Effect
    nickname = BEAM_O_DOOM
    effect_type = EFT_WEAPON_PROJ
    vis_beam = BEAM_O_DOOM <-- This references the listing in beam_effects.ini
    
    
    now go to beam_effects.ini and make a new listing:
    
    
    [BeamSpear <--can be [BeamBolt or [BeamSpear
    nickname = BEAM_O_DOOM
    tip_length = 5
    tail_length = 60
    head_width = 3
    core_width = 2
    tip_color = 0, 64, 128
    core_color = 20, 85, 150
    outter_color = 0, 64, 128
    tail_color = 255, 255, 255
    head_brightness = 1
    trail_brightness = 1
    head_texture = ball <-- can be BALL or STAR
    trail_texture = thin <-- can be THIN or WIDE
    flash_size = 3
    
    all these things are pretty self-explanatory, but the colors are in RGB
    values: R, G, B
    
    to easily get an RGB value, use Microsoft Paint, and go to the custom color
    editor.
    
    
    anyhoo, for a beam weapon, you want low energy use, long beam, fast refire,
    low damage.
    
    just play around with the settings.
    
    also:
    
    for fun ya can use any effect listed in effects.ini for the following in
    weapon_equip.ini:
    
    flash_particle_name =
    const_effect =
    projectile_hit_effect =
    
    just be careful... some effects loop indefinitely, and if ya use one for a
    flash, it's stuck to your ship untill ya die, or dock with something.
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Hardpoints V.2 by Jackel
    
    I don't want to step on any toes here. I know there is a current hardpoint
    tutorial by CW that is really good, but I had trouble understanding it until I
    was a little more advanced at moding, so I thought I would make one even a nOOb
    would understand.
    
    First off, you have to open your ship's CMP file and to do that you use
    everyone's favorite program UTF Edit. Once you have that opened you need to
    expand the root "\" and then expand "Window2.3db", "Hardpoints" and "Revolute".
    This will show you a list of your rotatable hardpoints which are your Turrets,
    etc. It should be noted that these same procedures can be used for the "Fixed"
    hardpoints too but the only ones there you might want to edit are the CM/Mine
    launchers.
    
    Select the turret/etc. that you wish to adjust and then expand it. Here you
    see a list of 5 things.
    
    AXIS = Which axis' will be rotatable
    MAX = How far the gun can turn to it's LEFT (might be right)
    MIN = How far the gun can turn to it's RIGHT (might be left)
    Orientation = Which direction the gun faces
    
    
    
    
    Position = Where the gun is located on the ship
    
    In this tutorial we won't worry about the Position as most people add the
    hardports graphically using MilkShape which does all of this by itself. What we
    are concerned with is the rotation and orientation of the turrets because
    MilkShape sometimes has issues dealing with said things. It should be noted
    that if you modify the CMP file and then have to go back and make a change in
    MilkShape you will have to re-edit the CMP file again to ensure your Hardpoints
    are correct. So here we go.
    
    ~~~~~~~~~~~~~AXIS~~~~~~~~~~~~~~
    
    This is shown with a series of 3 numbers, which are either a 1 or 0 followed
    by a decimal and 6 more 0's... They're pretty easy to understand and here is an
    example.
    
    0.000000 = X axis, meaning this gun isn't turnable (overridden by Min/Max).
    1.000000 = Y axis, this gun has the ability of aiming up and down.
    0.000000 = Z axis, Always a 0 because a gun shouldn't move up and down.
    
    If you wanted a gun to only be able to swing left and right without the
    ability to move up and down simply change the second number to "0.000000 ",
    it's that easy.
    
    ~~~~~~~~~~~~~MIN/MAX~~~~~~~~~~~~~
    
    This is where it gets a little more confusing. These two commands, Min and
    Max, let the gun know how far it can turn to the left (Min) or the right (Max).
    This is based on the mathamatical PI (3.1415) formula. The easiest way to
    figure this out is simply by drawing the left half of a circle and marking the
    top as 0 and the bottom as 3.1415. Then it's a simple fact of determining,
    using division, exactly how far you want your gun to turn.
    
    Now, in the MAX and MIN entries I see two numbers. The first is the one you
    should be interested in. I believe the second (I may be wrong) is how much it
    can turn on the Y axis (meaning up or down). At any rate, here is an example of
    how you figure out what the first number should be;
    
    I want my gun to be able to shoot 45 degrees to the left and 45 degreese to
    the right. Therefore, 45 degreese is 1/4 of the half that we've drawn. That
    being the case, 3.1415 divided by 4 gives you 0.7854 which would allow the
    turret to turn 1/4 to the left. So in the Max you would put "0.7854" and in the
    min you would put "-0.7854". Always remember that MIN is the opposite half of
    the circle and must be negative.
    
    In the same respect, if you wanted to use 90' which is half of our little
    chart you would endup with 3.1415 divided by 2, because 90 is half of 180,
    which equals 1.5708. So you would put "1.5708" in MAX and "-1.5708" in MIN.
    This would give you 90' rotation to the left and 90' rotation to the right.
    Simple huh?
    
    ~~~~~~~~~~~Orientation~~~~~~~~~~~
    
    This has to be the one that kills everyone as it leveled me more than once.
    Orientation has to do with the gun facing forward/backward, upside right/upside
    down, and even on it's side. Now, I did alot of testing to make sure this was
    totally accurate but it might actually be determined by your model so don't
    bite my head off it it dosn't work out exactly the way you liked. There are
    three sets of three numbers as you'll soon see. Here is an example of an
    orientation entry...
    
    1.000000
    0.000000
    0.000000
    0.000000
    1.000000
    0.000000
    0.000000
    0.000000
    1.000000
    
    Now I'm going to break them up and give them names for this tutorial.
    
    1.000000
    0.000000 = FIRST SET
    0.000000
    
    0.000000
    1.000000 = SECOND SET
    0.000000
    
    0.000000
    0.000000 = THIRD SET
    1.000000
    
    
    Now, what I've learned is that the FIRST SET controls the gun's actual
    "figuring out" where it's orientation is. It actually calculates the Y access
    of the gun, that being, figuring out what is up and down. I'm going to break
    this down further and explain it here.
    
    First number of the FIRST SET
    
    1.000000 = If the gun is upside right (negative if upside down)
    0.000000 = Otherwise
    
    Second number of the FIRST SET
    
    1.000000 = If the gun is on the right side of the hull (negative if on left)
    0.000000 = Otherwise
    
    Third number of the FIRST SET
    
    1.000000 = If gun is on front of ship
    -1.000000 = If gun is on back of ship
    0.000000 = Otherwise
    
    Now, before I go any further I wanted to let you know that there can be some
    variations in these numbers. They don't always have to be a 1 or a 0. For
    instance if you wanted the gun to be on a 45' angle then you would devide the 1
    by 4 and get your number which is "0.250000". This takes a little more advanced
    thinking but it's easy once you get the hang of these hardpoints. Now, onto the
    SECOND SET of numbers.
    
    The SECOND SET of numbers tells the gun what it's rotation is, as far as being
    on the top of the hull, on the side of the hull, or even on the bottom of the
    hull. Here are some examples.
    
    -1.000000
    0.000000 = A Gun on the right side of the ship.
    0.000000
    
    1.000000
    0.000000 = A Gun on the left side of the ship.
    0.000000
    
    0.000000
    1.000000 = A Gun on the top of the ship.
    0.000000
    
    0.000000
    -1.000000 = A Gun on the belly of the ship.
    0.000000
    
    Please note that this orientation must be the same as the orientation for the
    Y axis. What I mean is that if you put the FIRST SET of numbers as having the
    gun upside right then you better have the SECOND SET with the gun being upside
    right. Otherwise, when you get in the game, your guns will do some VERY strange
    stuff.
    
    The THIRD SET of numbers, the final 3, dictate the orientation of the turret
    as far as it being facing forward or backward, left or right. This is what most
    people look for when they're adding hardpoints and here are some examples;
    
    0.000000
    0.000000 = The turret facing forward
    1.000000
    
    0.000000
    0.000000 = The turret facing backward
    -1.000000
    
    You can do the same with these as you do with the others, make them face 45'
    or 90' or whatever direction you wish. The only thing you have to remember is
    that if you change one of the three SETs you have to make sure the other two
    make sence. For instance, you wouldn't see this....
    
    
    0.000000
    1.000000 = FIRST SET
    0.000000
    0.000000
    1.000000 = SECOND SET
    0.000000
    0.000000
    0.000000 = THIRD SET
    1.000000
    
    
    This would symbolize a gun that's upside right with the Y axis being to the
    right of the ship facing forward. Now, the SECOND SET and the THIRD SET are
    perfectly fine. But you can't have a gun that's upside right with it's Y axis
    (meaning aiming up) as being to the right. It just isn't right, no pun
    intended. This gun would think that UP would be RIGHT (as in the direction)
    when it's supposed to be UP. And it could lead to the gun bouncing around the
    hull, or worse, a crash.
    
    Well, I hope this tutorial helps out a bit. If there is anything you want
    further elaboration on please let me know and I'll see what I can do.
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Transparent Cockpit by Jackel
    
    I was just reading through and I noticed someone commenting about not knowing
    how to do transparant cockpits, so I figured what better way to explain than
    make a small tutorial that's probably already been done.
    
    This is real easy to do. All you need to do is make a texture specifically for
    the window. To do this load up a program capable of making transparent images,
    for instance I use Photoshop 7.0 and follow this procedure. If you have
    Photoshop 7.0 you can follow along and it will basically make itself. If you
    don't have Photoshop then you should be able to modify this procedure for
    whatever program your using, it's really self-explanatory.
    
    First, make a new image that is a fare size, say 400X300. When you create it
    be sure you move the dot under the CONTENTS heading to "Transparent" from
    whatever it's on. Now, you should have a blank image that's transparent,
    
    It should be noted that Photoshop will automatically create a new layer when
    you do this next procedure. If your not sure if yours will I suguest making a
    new layer that we can paint on. Some programs call it a layer, some call it a
    Raster Layer, depending on what your using.
    
    Now, go to your paint and select a color that you want for the glass. If you
    want it to be black, choose something a little bit greyer than total black. If
    you want white choose something a little greyer than white. The off-black/off-
    white will give it a sence of texture when it's put on the glass. Now click the
    FILL tool and click anywhere on the picture.
    
    This next step is for Photoshop only. Other programs will be diferent.
    Basically all your doing is adjusting the new layer's opacity. Some programs
    have it under Layer Properties but any program that does layers will have a
    properties somewhere for that layer.
    
    Now, under the LAYER menu there is an option there for LAYER STYLE. Put your
    mouse on that and a side menu will appear. Select the BLENDING OPTIONS command
    and what we're now looking for is the slider in the GENERAL BLENDING box that's
    labeled OPACITY. Slide it back 1/4 of the bar, or to where the shading is to
    your liking, and then hit OK.
    
    Now all you have to do is go to FILE, SAVE, and save it as a TGA. It will
    "yell" at you saying it can only save a copy of the image, just ignore that.
    Now all you have to do is open your MAT file and add the texture there. Oh, and
    don't forget to add the texture in Milkshape as you normally do
    BTW, now that your cockpit is transparent, you might wanna add a pilot and a
    few more details.
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    How to change factions so you can be good to all but 1 by Reynen
    
    Ok I've had a terrible time trying to manually get neutral factions for almost
    everyone. Dang near impossible. So I made this to help people out. Yes some may
    view it as a cheat, but use it as you will. I tried doing it the normal way and
    falied.
    
    The process is simple.
    
    Uncompress and edit empathy.ini in the missions directory.
    
    Find fc_x_grp (xenos)
    
    Since everyone hates them anyways this will work out nicely.
    
    Simply change all their values to -1 and when you kill 1 thing you will be
    completely friendly to all but the xenos who will want to kill you everywhere.
    Change the stuff under the xenos group itself. Not everyone elses.
    
    Easies place to kill em is Ouray base int he Colorado system.
    
    Enjoy.
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Making Energy Missiles  by Rolo2020
    
    To do this just edit the "Stalker Missile" munition entry to read:
    
    The munition entry has been changed to remove the explosion_arch or something
    line (tells the game to use an /Explosion Entry. Also removed the DA_archetypes
    for the /Munition/ entry (removes the original projectile representation)
    
    [Munition
    nickname = missile02_mark01_ammo
    hp_type = hp_gun
    requires_ammo = false <<Changed so no ammo needed
    hit_pts = 2
    hull_damage = 750 <<Not present in original (was found in /explosion/ entry
    energy_damgage = 600 <<Same case as above
    one_shot_sound = fire_plasma2 <<sound file to use
    munition_hit_effect = li_missile01_impact
    lifetime = 5
    Motor = missile02_mark01_motor
    force_gun_ori = false
    const_effect = li_missile01_drive
    HP_trail_parent = HPExhaust
    seeker = LOCK
    time_to_lock = 0
    seeker_range = 2000 <<actual effective range for missile
    seeker_fov_deg = 35
    max_angular_velocity = 5.0 <<turn rate
    
    Last:
    rename the effects entry for "const_effect = li_missile01_drive"
    can be found in (data\Fx\effects.ini)
    
    nickname = li_missile01_drive
    effect_type = EFT_MISSILE_DRIVE
    vis_effect = pi_particle_02_proj
    vis_generic = min_missile01_drive
    
    vis_effect is the variable to change to make the projectile take on an energy
    ball appearance. When I changed the other values the effect didn't work
    properly (projectile invisible, or would not track the target)
    
    Screenshot:
    http://www.webspawner.com/users/rolo2020/screen18.jpg
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    System Building from scratch by giskard
    What follows is a huge tutorial all about system building, covering everything
    from jumpgates, to mbases, to encounters, to bar work and much more. I do not
    cover infocards at all.
    
    Part 1
    Freelancer: Making your own Systems Tutorial.
    
    Introduction:
    
    Making a new System is not a quick and easy job. It takes a lot of time and a
    lot of editing. You have to be able to see your system in a 60,000 x 60,0000
    grid and be able to pin point each object exactly. Then you need to tell the
    game where in the universe your system is and add bases to it. Next you have to
    add characters to your stations, setup patrols and bring your system to life.
    Through out this, your constantly searching and looking up names, factions,
    id's and other small bits of information your ini files need to be complete.
    Its a long drawn out and painful task that can crash the game and cause endless
    problems. So if your hoping to add a quick system or two and say your done,
    forget it, go and model a ship or something. However, if you have an eye for
    detail and the patience of a saint then your going to have some fun here.
    
    If you're still with me.
    
    Lets start by introducing you to the files you need to edit to add a new
    system and lay down some of the limitations of this tutorial.
    
    You need to be able to read the following files inside your freelancer folder.
    
    DATAUNIVERSEuniverse.ini
    DATAMISSIONSMbases.ini
    DATAEQUIPMENTmarket_commodities.ini
    DATAEQUIPMENTmarket_misc.ini
    DATAEQUIPMENTmarket_ships.ini
    
    You also need to create new files in the following folders for this tutorial.
    
    DATASOLAROne of many folders.
    DATAMISSIONSENCOUNTERS Edit or use the scripts found here.
    G:FreelancerDATAUNIVERSESYSTEMSYoursystem
    
    Limitations of this tutorial.
    
    Due to the scope of this tutorial and the similarity between info cards for
    ships and infocards for systems and bases, I won't be covering that part
    here. I
    advise you to check out any custom ship for the info. Better yet read zen's
    tutorial which can be found here. Also at the time of writing I have still not
    figured out how to make asteroids and nebula appear on the map once you find
    them. They work, but the mini map does not update and add their position to the
    map. New factions will not be covered here either, that's for a another
    tutorial which can be used to enhance new systems greatly.
    
    Creating your first system ini files.
    
    Make the following new folders in the directory stated below.
    
    Create my01 in DATAUNIVERSESYSTEMS
    
    Create BASES in DATAUNIVERSESYSTEMSMy01
    
    Create Rooms in DATAUNIVERSESYSTEMSYO01BASES
    
    Now you have your systems directory structure.
    
    Please note that you can change the tutorial system code my01 to anything you
    want during this tutorial. My01 is not actually shown to the player anyway, its
    just code the game uses and must be unique.
    
    In DATAUNIVERSESYSTEMSmy01 create a new text file called my01.ini. This file
    is the heart of your system, mess it up and you loose your entire system so be
    sure to make regular backups of this file. Now go into
    G:FreelancerDATAUNIVERSESYSTEMSLI01BASES and copy the following files into your
    own bases folder.
    
    li01_01_base.ini
    li01_11_base.ini
    
    Rename these to
    
    my01_01_base.ini
    my01_02_base.ini
    
    01 is Manhattan.
    02 is fortbush.
    
    Not this does not matter because we will be editing these too.
    
    Now go into DATAUNIVERSESYSTEMSLI01BASESROOMS and copy all the li01_01 and
    li01_11 files into your own rooms folders. Change the Li01 in the file names to
    my01 for all files in your own systems room folder. We will need to edit these
    later.
    
    You know have enough ini files for 1 system and 2 bases, one of which is
    planet. Though it will not work yet.
    
    Editing your system.
    
    Lets start by pasting in a bare ini into your own
    DATAUNIVERSESYSTEMSmy01my01.ini file. This will start you off and get the ball
    rolling. Cut and paste the following text into your my01.ini. Please note that
    localfaction is set to liberty police, you can change this later. You can
    simply edit an existing system file if you wish. My tutorial will talk you
    through the parts you need to edit one at time anyway.
    
    [SystemInfo]
    space_color = 0, 0, 0
    local_faction = li_p_grp
    
    
    
    [archetype]
    
    [EncounterParameters]
    
    [TexturePanels]
    file = universeheavensshapes.ini
    
    [Dust]
    spacedust = Dust
    
    [Nebula]
    
    [Asteroids]
    
    [Music]
    
    [Ambient]
    
    [Background]
    
    [LightSource]
    
    Now lets fill in the blanks and set our system up. I'll tell you where to find
    the info needed to customise the boxes above.
    
    [SystemInfo]
    
    This setups the colour of space in your system and the local faction. In this
    case its black and liberty police. We deal with colours further down so its
    safe to ignore these for now.
    
    [SystemInfo]
    space_color = 0, 0, 0
    local_faction = li_p_grp
    
    Lets move on to [archetype]. Here is an entry from another systems ini file.
    The ship line is the nickname of a ship from the shiparch.ini found in
    Data/ships. Simple is the [Simple] entries in that same file for the ship
    above.
    
    [archetype]
    ship = li_fighter
    simple = li_fighter_dmg_portfin_cap
    simple = li_fighter_dmg_starboardfin_cap
    simple = li_fighter_dmg_engine_cap
    
    A quick search of the shiparch.ini for li_fighter will reveal "nickname =
    li_fighter". If you scroll down you will eventually come to the
    [CollisionGroup] and [Simple]. We want the nickname used in the [Simple]
    entry.
    
    Eg
    
    nickname = li_fighter_dmg_portfin_cap
    nickname = li_fighter_dmg_starboardfin_cap
    nickname = li_fighter_dmg_engine_cap
    
    
    Amazing, they match the archtype entries :)
    
    I believe the archtype entries are used to determine which ship classes are
    from the system your creating. It allows game to use more of certain types of
    ships in your system than other kinds but I noticed it does not actually
    restrict what ships are found in your system. So for now, treat it as local
    pilots ships and use it to name the ships you want to inhabit your new system.
    EG if your making a pirate system, just add pirate ships here. This is a grey
    area and this interpretation may be wrong but my explanation on what the game
    uses as its source for the ship names is correct. Next we skip [encounters],
    this is will be edited last.
    
    Leave the following entries as it is. We don't need to edit this unless we
    create our or solar objects and space dust is pretty standard (note, there are
    different types of space dust available).
    
    [TexturePanels]
    file = universeheavensshapes.ini
    
    [Dust]
    spacedust = Dust
    
    The next two entries require zones and are thus edited later.
    
    [Nebula]
    
    [Asteroids]
    
    Music is interesting, the systems allow you to setup different music in
    different locations. A complete list of available music files can be found in
    DATAAUDIOmusic.ini. So knock your self out and try a few. The wave files are
    stored in DATAAUDIOMUSIC so you can check the nickname in the music.ini file,
    find the real filename and run it with media player and see if you like it. A
    typical music entry in the music.ini looks like this.
    
    [Sound]
    nickname = music_li_space
    type = music
    file = audiomusicmusic_li_space.wav << this is a real wave file.
    attenuation = -6
    streamer = true
    
    Our system in requires entries to look like this.
    
    [Music]
    space = music_li_space
    danger = music_li_danger
    battle = music_li_battle
    
    If you look carefully at the nicknames you will notice that the music_li_space
    nickname from [Sound] is actually the name the system ini uses too. Also you
    can see the game requires 3 music files. One for normal space, one for danger
    and one for battles. The game changes between these are the player gets in or
    out of trouble.
    
    [Ambient]
    
    A typical entry here looks like this "color = 35, 30, 40" you may be surprised
    to know these are standard RGB entries from any paintpackage. So you can load
    up Paintshop or Photoshop, choose a colour and note down the Red Green Blue
    numbers and enter them here. Asteroids and Nebula files both use the same
    system for setting up colour. So this is pretty common in Freelancer.
    
    [Background]
    
    A background entry looks like this.
    
    [Background]
    basic_stars = solarstarspherestarsphere_stars_caps.cmp
    complex_stars = solarstarspherestarsphere_bw08_stars.cmp
    nebulae = solarstarspherestarsphere_bw08.cmp
    
    As you can see, all files used are stored in solarstarsphere so you can check
    out what files are available and change your entries for other entries and see
    how you like it. There are 99 files to choose from so you have plenty of room
    to let your artist side loose here.
    
    [LightSource]
    
    Are we here already, well now the fun really begins Now its time to setup a
    sun and get the Lightsource set for the entire system. Will cover this entry
    next and place our first object in our new system.
    
    Adding a Sun to your System.
    
    Zones explained.
    
    Suns require zones as do a lot of other objects in any system so its good time
    to explain what the zone areas are and what they do. Zones are areas you setup
    where stuff happens. Unlike objects such as bases or planets, zones do not
    actually exist. They are invisible areas you name in advance and use for
    encounters, system nebulas and burn zones around stars, planets use them too
    for setting up atmosphere and crash zones. So zones are heavily used in
    Freelancer and as such tend to get complex very fast. However, you do not need
    to worry about zones because I will explain it to you the best I can.
    
    A word about system sizes and grid coordinates.
    
    Here is a chart I made that sums up how the system grid works. The 3 numbers
    make up a single point in space that is in this case a compass direction in my
    example. As you can see 0,0,0 is dead center.
    
    System Grid.
    North East Corner = -50000, 0, -50000
    North West Corner = -50000, 0, 50000
    South East Corner = 50000 0, -50000
    South West Corner = 50000, 0, 50000
    North = -50000, 0, 0
    South = 50000, 0, 0
    East = 0, 0, -50000
    West = 0, 0, 50000
    Center = 0, 0, 0
    
    10,000 = 9km
    
    Lets add our sun.
    
    Cut and past the following entry into your system file then edit it to suit
    your needs. I'll explain everything below.
    
    [Object]
    nickname = my01_Sun
    ids_name = 458763
    pos = 0, 0, 0
    ambient_color = 158, 166, 242
    archetype = sun_2000
    star = med_white_sun
    atmosphere_range = 9000
    burn_color = 195, 199, 237
    visit = 0
    ids_info = 66162
    
    Nickname is the code name of our sun, it is not seen by the player. Ours
    should be my01_sun but can be anything. The id_names is the infocard name and
    not covered in this tutorial. See zens tutorial linked at the top of this
    tutorial for how to create infocards. Ships and Systems both use the same
    system to make infocards so Zens ship tutorial will work for you too. It is
    complex and hense we skip it here. For now look up an id_name for a sun in
    another system ini. Do not use mine because mine points to a custom dll which
    you do not have.
    
    The POs line positions our sun at 0,0,0 which is the dead center of our
    system. You can use the grid system I mentioned above to move it but for now
    its best to leave it as it is.
    
    POs = 0, 0, 0
    
    The colour follows the same system as the system colour mentioned above
    
    ambient_color = 158, 166, 242
    
    
    Archtype tells the game what pre configured sun to use. A list is available in
    /Data/solar/solararch.ini. Any of the Sun entries should do.
    
    Archetype = sun_2000
    
    Here's the sun_2000 entry from the solararch.ini file.
    
    [Solar]
    nickname = sun_2000
    ids_name = 60201
    ids_info = 60202
    type = SUN
    DA_archetype = solarsunssun.sph
    mass = 1000000
    solar_radius = 2000
    shape_name = NNM_SM_SUN
    
    Star is the preconfigured colour of the star as listed in
    Data/solar/stararch.ini. You have several to choose from.
    
    star = med_white_sun
    
    
    Here's the med_white_sun entry from stararch.ini.
    
    [Star]
    nickname = med_white_sun
    star_glow = default_starglow
    star_center = default_starcenter
    lens_flare = circle_rainbow_lens_flare
    lens_glow = default_lens_glow
    spines = white12_spines
    intensity_fade_in = 0
    intensity_fade_out = 0
    zone_occlusion_fade_in = 1.000000
    zone_occlusion_fade_out = 1.000000
    radius = 3000.000000
    
    Atmosphere is important because it tells the game at what range we should
    start burning the players ship into small crispy bits. This number is usually
    larger than the suns real size for reasons IM sure you understand. Later we
    will set the suns surface to 8000 so the burn zone is 1000 wide, after that the
    player dives into the sun in a brilliant Pot Black style sun dive. Not a Hitch
    Hiker fan ? :)
    
    atmosphere_range = 9000
    
    Burn colour follows the same colour rules mentioned above, EG Red Green Blue
    numbers and dictates the colour of the sparks I believe as the player burns
    up.
    
    burn_color = 195, 199, 237
    
    Visit, well nobody has boldly gone here and lived so leave it at zero.
    visit = 0
    
    Id_info is another info card entry, this one tells the player what type of sun
    it is and gives other such details. Again, this is not covered in this
    tutorial.
    
    ids_info = 66162
    
    Sun Death time.
    
    This is the sun dive part I joked about earlier. To get it to work we must
    place the sun death zone at the same point in space as we did the the sun
    object above. EG POs = 0,0,0. Then we simply edit the size like so its slightly
    smaller than the sun object and the damage line so we can be sure the player
    burns up fast. Usually 1000 is enough. You can cut and paste this example into
    your system in below the sun object entry and we will have a fully working
    sun.
    
    [zone]
    nickname = Zone_my01_sun_death
    POs = 0, 0, 0
    shape = SPHERE
    size = 8000
    damage = 1000
    sort = 99.500000
    density = 0
    relief_time = 0
    
    Now we add the systems light source. Please note you can have more than one.
    
    Give the nickname a unique name and set the position to be at the same
    location as your sun. Change the colour to match your suns colour and set the
    range to it reaches every corning of the system. EG at least 70000 for a sun at
    the center of a system. Twice that if it is at the edge of a system
    
    [LightSource]
    nickname = yo01_system_light
    POs = 0, 0, 0
    color = 195, 199, 237
    range = 120000
    type = DIRECTIONAL
    atten_curve = DYNAMIC_DIRECTION
    
    Getting in and out of the system
    
    Before we can test the system and check our colours and stars work well
    together we have to link it to another system via a jumpgate or jumphole. But
    first we have to edit the Data/universe/universe.ini and add our system to it.
    Here's our system entry.
    
    [system]
    nickname = my01
    file = systemsmy01my01.ini
    POs = 13, 10
    visit = 128
    strid_name = 196657
    ids_info = 66115
    NavMapScale = 2
    
    
    ------------------------------------------------------------------------------
    sorry to bother you in the middle of a tutorial but... this is a copyrigh7
    notice, I will NOT allow cheatcc to host my FAQ
    ------------------------------------------------------------------------------
    
    The basic rules to follow here are the same as everywhere else Eg the nickname
    as to be unique.
    
    The file line points at the system ini file we called my01.ini that we are in
    the middling of editing and testing. The position listed here is north easy of
    frankfurt but we can link it to any system we choose. Position works out
    tofirst number is up or down, second left or right on the universe map. Check
    the position of RH04 to see where Frankfurt is in relation to our new system
    and you will see how this works.
    
    strid_name = is the info card that holds the system name.
    Ids_info = is the system background info the player sees when he clicks on the
    question mark.
    Navmap scale = is unknown but a good guess would be the size of nav map that's
    displayed.
    
    Once those entries are done we can move back to the my01.ini file. It is worth
    noting that all bases, be they planets or spacestations need to be entered into
    the universe.ini too. But we will cover this later.
    
    Jumpgates.
    
    I am not going to bore you with multiple versions for jumpholes and jumpgates
    because once you figure one out, you will figure the others out too. To get
    jumpgates working we need to place at least 2. Because we are testing the
    system we do not want to have to travel all the way to Frankfurt just to test
    the gate so IM going to place ours in orbit around Manhattan.
    
    Here's our NewYork jumgate entry. Please note that my ids_name will not work
    for you. You can copy another jumpgate id if you wish for now.
    
    [Object]
    nickname = li01_to_my01
    ids_name = 458754
    POs = -45267, 0, -32810
    rotate = 0, -135, 0
    Archetype = jumpgate
    
    msg_id_prefix = gcs_refer_system_li01
    ids_info = 66145
    jump_effect = jump_effect_bretonia
    reputation = li_p_grp
    behavior = NOTHING
    difficulty_level = 1
    goto = my01, myo01_to_li01, gate_tunnel_bretonia
    loadout = jumpgate_li_01
    pilot = pilot_solar_easiest
    
    This entry is more or less standard with a few exceptions. POs and rotation
    place and line up the jumpgate in the position we need it to be in. Archtype
    tells the game its a jumpgate not a jumphole. Jump_effect setting is the same
    setting the devs used all over the universe so bretonias jump effect is pretty
    popular :)
    
    Now for the changes.
    
    msg_id_prefix = gcs_refer_system_li01
    
    Really this should real msg_id_prefix = gcs_refer_system_my01 but because
    msg_id_prefix is used by the game to tell the AI what system its going to so it
    can say "guess where not the only ones going to X system" and our system does
    not have any recorded messages then its best to leave it set to a system near
    by. In this case NewYork.If you want to add your own, have a browse through the
    /Data/Audio folder.:)
    
    reputation = li_p_grp
    
    This is the faction the player should be friendly with to use the jumpgate. If
    we change our systems faction then we should change our systems jumpgate
    faction too.
    
    difficulty_level = 1
    
    This deals with any attacks against the player, this setting is pretty easy.
    
    pilot = pilot_solar_easiest
    
    This also sets up the difficulty, in this case the standard of the ai pilots I
    believe.
    
    goto = my01, myo01_to_li01, gate_tunnel_bretonia
    
    This can be broke down to "goto = destination system, destination jump gate
    name, jump tunnel effect" which is usually gate_tunnel_bretonia. Popular system
    Bretonia :)
    
    loadout = jumpgate_li_01
    
    Every object has a loadout if its an AI object, jumpgates are the same. Hidden
    somewhere in the depths of the freelancer Data folder is a jumpgate loadout for
    liberty called jumpgate_li_01. This adds weapons and other things to the
    jumpgates hardpoints basically. So if you do not mind using liberties loadouts
    you can leave this as it is.
    
    Next we save the li01.ini and open our my01.ini and add a jumpgate to that.
    
    [Object]
    nickname = my01_to_Li01
    ids_name = 458755
    POs = -50000, 0, 0
    rotate = 0, -135, 0
    Archetype = jumpgate
    msg_id_prefix = gcs_refer_system_li01
    ids_info = 66145
    jump_effect = jump_effect_bretonia
    reputation = li_p_grp
    behavior = NOTHING
    difficulty_level = 1
    goto = Li01, Li01_to_my01, gate_tunnel_bretonia
    loadout = jumpgate_li_01
    pilot = pilot_solar_easiest
    
    This jumpgate will be at the west edge of the map.
    
    Paste this in below the last entry in our my01.ini.
    
    Our first test run.
    
    OK now we are ready to test our new system. DONT run off yet.
    
    For testing we should create a new Character, if anything goes wrong you may
    need to look up zens ship tutorial and add the names for the id_names and
    id_info parts we skipped. It's tricky and takes time but is well worth
    learning. Create a new character at liberty or backup your saves and use your
    own character. I strongly advise you to do this because any error in your
    system ini can result in your playing getting stuck in one endless jumphole or
    worse yet crash the game. Either is usually enough to completely scrub your
    character and ruin your saves if testing in multiplayer.
    
    OK now load the game and see if you can travel to your new system. If it works
    come back and we will continue with the tutorial.
    
    Adding Planets to our system.
    
    A typical planet entry is slightly more complex than a sun entry but follows
    similar rules. Here's my planet entries.
    
    Adding the planet object.
    
    [Object]
    nickname = my01_01
    ids_name = 458761
    POs = -20000, 0, 0
    rotate = 0, 0, 0
    ambient_color = 252, 217, 157
    Archetype = planet_earthgrncld_4000
    ids_info = 458757
    spin = 0, 0.001000, 0
    atmosphere_range = 4200
    burn_color = 234, 221, 199
    base = my01_01_Base
    reputation = li_p_grp
    visit = 1
    
    This planet is roughly 30k due east from our jumpgate and because it is
    perfectly allined with our sun it creates the solar eclipse effect. Nice ay :)
    
    Again the planets Archtype is listed in solararch.ini so you can change this
    if you like. Ambient_Colour have all been explained above, as has atmosphere
    range. Again, used for the same purpose. As is burn colour. New entries here
    are spin and base. Spin options are currently unknown but it should not take
    long to figure out. Base points to our base files. Remember those base files
    you copied ? Well this line needs to point at my01_01_base, which is our planet
    config for our first base. Notice the dot ini part of the name is missing. This
    is because the name matches the name in the bases config. Reputation should be
    set to the faction owning the planet. In this case liberty police.
    
    Adding our base to the Universe.ini
    
    You now need to edit the universe.ini again and add our base. This is our
    entry.
    
    [Base]
    nickname = my01_01_Base
    system = my01
    strid_name = 458761
    file = UniverseSystemsmy01Basesmy01_01_Base.ini
    BGCS_base_run_by = W02bF35
    
    Nickname and system should be easy to understand, strid_name is a info card
    entry. File = points directly at our bases ini file and BGCS_base_run_by is
    liberty police. This code is a pain, why they chose to use a new system here I
    do not know but its the only place it is used. If you need to figure out what a
    factions code is, first find a base run by the faction in question by looking
    at the ini files in the systems folder. Then note down the base name and do a
    search of the universe.ini for that base. The BGCS line will have that factions
    code listed.
    
    Now save off the universe.ini file and go back to your my01.ini file.
    
    Planet death zone.
    
    Time to set the zone where the player actually hits the planet and dies. Now
    our original planet had atmosphere_range = 4200 and our death zone is set to
    4100 below, so there's a 100 difference. However lets make the player burn a
    but before he enters the atmosphere. We set our atmosphere burn to 4600 so the
    player gets plenty of warning before the clouds make him lose all sense of
    direction.
    
    [Zone]
    nickname = Zone_my01_newmars_death
    POs = -20000, 0, 0
    shape = SPHERE
    size = 4100
    damage = 2000000
    sort = 99.500000
    density = 0
    relief_time = 0
    population_additive = false
    
    [zone]
    nickname = Zone_my01_001_Planet_my01_01_atmosphere_burn
    POs = -20000, 0, 0
    shape = SPHERE
    size = 4600
    edge_fraction = 0.070000
    spacedust = atmosphere_gray
    spacedust_maxparticles = 250
    sort = 99
    
    Notice there's a new spacedust entry here, also spacedust_maxparticles. I
    think you find these easy to follow so I'll leave you to figure them out. The
    most important thing is to make sure the POs for the planets object and the
    death and burn zones are all at the same point in space. You can change the
    size of the atmosphere if you like, perhaps make the planet small by reducing
    the death zone and make the atmosphere very large to produce a gas giant. I
    have not tried that yet but you have to admit, it sounds cool :)
    
    Now we place the docking ring.
    
    To get this in the correct place is a little fiddly but basically you want it
    to be just outside the planets burn zone. So start out by placing the it at the
    location I have listed below and and have a fiddle until you get it just right.
    I cannot remember if 4600 is the diameter of the planet or its radius so you
    may have to half take 2300 from first POs figure or even increase it. Adjust
    the rotation so it looks natural too.
    
    [Object]
    nickname = Dock_Ring_my01_01
    ids_name = 458760
    POs = -24600, 0, 20000
    rotate = 0, -135, 0
    
    Archetype = dock_ring
    ids_info = 66141
    dock_with = my01_01_Base
    voice = atc_leg_f01a
    space_costume = , robot_body_A
    reputation = li_p_grp
    behavior = NOTHING
    difficulty_level = 1
    loadout = docking_ring_li_01
    pilot = pilot_solar_easiest
    
    Once you have done the planet should be finished. All we have to do know is
    set up the base.
    
    Setting up our planets base.
    
    Open up DATAUNIVERSESYSTEMSmy01BASESmy01_01_base.ini. A typical planetry base
    looks like this but yours still say RH04 because we did not edit those yet. So
    from this point on, start changing the RH04 parts to my01 as you go so it is
    done.
    
    [BaseInfo]
    nickname = my01_01_Base
    start_room = Cityscape
    
    [Room]
    nickname = Bar
    file = UniverseSystemsmy01BasesRoomsmy01_01_bar.ini
    
    [Room]
    nickname = Cityscape
    file = UniverseSystemsmy01BasesRoomsyo01_01_cityscape.ini
    
    [Room]
    nickname = Equipment
    file = UniverseSystemsmy01BasesRoomsyo01_01_equipment.ini
    
    [Room]
    nickname = ShipDealer
    file = UniverseSystemsmy01BasesRoomsmy01_01_shipdealer.ini
    
    [Room]
    nickname = Trader
    file = UniverseSystemsmy01BasesRoomsmy01_01_trader.ini
    
    The nickname must be unique but the startroom says its a Cityscape which
    basically means planet. There is a ini that sets all this up somewhere that you
    can edit but right now I cannot remember where it is.
    
    The rooms listed below that all point to your own systems rooms folder. So be
    sure to edit the lines that say RH04 to my01 like I have above. Yours may be
    different from mine because this is a slightly modified version of my own
    system config.
    
    When the nickname and all the file = lines say my01_01_base and point at your
    systems rooms folder and your systems rooms ini files you can take a look at
    the rooms files them selves.
    
    A space Station entry looks like this (dont forget, we have not universe.ini
    entry for this yet so if you add it, be sure to add it to the universe.ini
    too).
    
    [BaseInfo]
    nickname = my01_02_Base
    start_room = Deck
    
    [Room]
    nickname = Bar
    file = UniverseSystemsyo01BasesRoomsmy01_02_bar.ini
    
    [Room]
    nickname = Deck
    file = UniverseSystemsyo01BasesRoomsmy01_02_deck.ini
    
    [Room]
    nickname = Deck2
    file = UniverseSystemsyo01BasesRoomsmy01_02_deck2.ini
    
    Notice how different it is and that it has 2 decks. The second deck sells
    ships and equipment and replaces several entries used in the planet config.
    
    Rooms.
    
    Open up your my01_01_bar.ini from the rooms folder.
    
    Most of the rooms only need tweaking. However the set_script line should be
    left alone unless you make your own script and design your own room. We borrow
    the RH04 bases hardpoint config here and use it for our base so we dont need to
    edit anything really.
    
    Ignore the following lines, even if they are different from mine.
    
    [Room_Info]
    set_script = ScriptsasesRh_01_Bar_hardpoint_01.thn
    animation = Sc_rh_bizmark_bar
    scene = all, ambient, ScriptsasesRh_01_Bar_ambi_int_01.thn
    
    You can paste over these with bars from other planets if you want to change
    the default look of the planets bar.
    
    [Room_Sound]
    
    Room sounds can be edited to suite your needs here, remember where i told you
    to look for system sounds ? Well these sounds are near those.
    
    Leave the [Camera] part alone.
    
    In fact scroll down to the Hotspots and make sure there's a hotspot for every
    room on the planet you wish to use. This makes a quick link to all other rooms
    available from the bar. Same rule goes for other rooms. There should be 1
    hotspot per room as a general rule.
    
    Open up your my01_01_cityscape.ini from the rooms folder.
    
    You will notice its the same as the bar with a few new entries. You can ignore
    most of them and the Room info can again be pasted over with new scripts to
    change the look of the cityscape if you have a preference. However some lines
    you should pay attention to are these....
    
    [PlayerShipPlacement]
    name = X/Shipcentre/01
    landing_script = ScriptsasesRh_01_cityscape_land_01.thn
    launching_script = ScriptsasesRh_01_cityscape_launch_01.thn
    
    
    The name = part is what we want to look at. Planets have between 1 and 3
    landing areas for the player. So if your planet has 3 landing pads you can
    change the name = X/Shipcentre/01 to name = X/Shipcentre/02 or even name =
    X/Shipcentre/03. But check first.
    
    Open up my01_01_shipdealer.ini from your rooms folder.
    
    There's one important area here that can be changed to suit your needs.
    
    [ForSaleShipPlacement]
    name = X/Shipcentre/01
    
    [ForSaleShipPlacement]
    name = X/Shipcentre/02
    
    [ForSaleShipPlacement]
    name = X/Shipcentre/03
    
    Remember those landing pads, if a planet has 3 pads you can sell 3 ships. The
    entries above allow 3 ships to be solds on the planet if pasted into your
    config below the characterplacement entries. Bewarned, not all planets support
    3 ships. You can change the city scape ini bit to change the look, feel and
    configuration of the landing pads simply by changing the first few lines to new
    lines.
    
    All the room configs basically follow the same idea, you just need to tweak it
    to suit your needs. However its important to note that the equipment, goods and
    ships must be entered into several /Data/equipment/market_xxxx files before
    they will appear in your base. We will do that soon.
    
    When editing spacestations the deck file replaces the cityscape file and the
    deck2 file becomes the ship rooms and should be configured as such. Gain they
    follow similar rules to the planet based room but the word deck is used in
    several places instead of cityscape.
    
    Another difference between planets and stations is the work virtual room
    appears.
    
    EG
    
    [Hotspot]
    name = IDS_HOTSPOT_COMMODITYTRADER_ROOM
    behavior = VirtualRoom
    room_switch = Trader
    
    You may notice that the top of the station ini does not have as many
    scripts/hardpoints listed as a planetry ini. We get around this by naming the
    room a virtual room so it does not need a hard point.
    
    Adding something to sell to our bases.
    
    Next we need to go to Data/equipment and open up all the Market_XXXX.ini
    files. We need to update all of them for our my01_01_base.ini.
    
    Open up market_commodities.ini and copy [Basegood] entry for a base in a
    system that your system will link to directly via jumpgate. This will mean you
    get local goods and dont suddenly put high price goods right next to a high
    demand market by accident and ruin the trade system completely.
    
    You should make an entry like this below the last entry in the commodities
    file. Remembering to change the base = line.
    
    [BaseGood]
    base = my01_01_base
    MarketGood = commodity_boron, 0, -1, 0, 0, 1, 5.500000
    MarketGood = commodity_gold, 0, -1, 0, 0, 1, 1.120000
    MarketGood = commodity_toxic_waste, 0, -1, 150, 500, 0, 55
    MarketGood = commodity_scrap_metal, 0, -1, 150, 500, 0, 11
    MarketGood = commodity_oxygen, 0, -1, 0, 0, 1, 0.600000
    MarketGood = commodity_water, 0, -1, 0, 0, 1, 0.600000
    MarketGood = commodity_food, 0, -1, 0, 0, 1, 0.724100
    MarketGood = commodity_mox_fuel, 0, -1, 0, 0, 1, 0.400000
    MarketGood = commodity_H_fuel, 0, -1, 0, 0, 1, 1.140000
    MarketGood = commodity_basic_alloys, 0, -1, 0, 0, 1, 1.800000
    MarketGood = commodity_super_alloys, 0, -1, 0, 0, 1, 2
    MarketGood = commodity_high_temp_alloys, 0, -1, 0, 0, 1, 10
    MarketGood = commodity_superconductors, 0, -1, 0, 0, 1, 6
    MarketGood = commodity_optical_chips, 0, -1, 0, 0, 1, 4.500000
    MarketGood = commodity_construction_machinery, 0, -1, 0, 0, 1, 3.400000
    MarketGood = commodity_pharm, 0, -1, 0, 0, 1, 0.526300
    MarketGood = commodity_ship_hull_panels, 0, -1, 0, 0, 1, 2
    MarketGood = commodity_polymers, 0, -1, 0, 0, 1, 4
    MarketGood = commodity_optronics, 0, -1, 0, 0, 1, 5.666700
    MarketGood = commodity_engine_components, 0, -1, 0, 0, 1, 5.333300
    
    I'll have a guess here and say the values mean Lvl required to buy item,
    reputation -1 = hostile, 0 = neutral, 1 = friendly required to buy item. The
    third and forth numbers say the base produces this item and probably indicates
    the amount available. The others I do know about but the figure with decimal
    point in it is a price modifier. 0.5 is sells at half price, 1.5 sells at 1.5
    times the base price of that item.
    
    Paste in your new entry for goods and open up market_misc.
    
    [BaseGood]
    base = my01_01_base
    MarketGood = br_gun01_mark01, 6, -1, 10, 10, 0, 1
    MarketGood = br_gun01_mark02, 10, 0, 10, 10, 0, 1
    MarketGood = br_gun02_mark01, 6, -1, 10, 10, 0, 1
    MarketGood = br_gun02_mark02, 10, 0, 10, 10, 0, 1
    MarketGood = br_turret02_mark01, 6, -1, 10, 10, 0, 1
    MarketGood = br_turret02_mark02, 10, 0, 10, 10, 0, 1
    MarketGood = ge_s_thruster_02, 0, -1, 10, 10, 0, 1
    MarketGood = ge_s_thruster_03, 2, -1, 10, 10, 0, 1
    MarketGood = missile01_mark01, 0, -1, 10, 10, 0, 1
    MarketGood = missile01_mark01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = missile01_mark02, 2, -0.200000, 10, 10, 0, 1
    MarketGood = missile01_mark02_ammo, 2, -1, 50, 50, 0, 1
    MarketGood = missile01_mark03_ammo, 10, -1, 50, 50, 0, 1
    MarketGood = missile01_mark04_ammo, 22, -1, 50, 50, 0, 1
    MarketGood = missile01_mark05_ammo, 30, -1, 50, 50, 0, 1
    MarketGood = missile02_mark01, 0, -1, 10, 10, 0, 1
    MarketGood = missile02_mark01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = missile02_mark02, 2, -0.200000, 10, 10, 0, 1
    MarketGood = missile02_mark02_ammo, 2, -0.200000, 50, 50, 0, 1
    MarketGood = missile02_mark03_ammo, 10, 0.200000, 50, 50, 0, 1
    MarketGood = missile02_mark04_ammo, 22, 0.400000, 50, 50, 0, 1
    MarketGood = missile02_mark05_ammo, 30, 0.750000, 50, 50, 0, 1
    MarketGood = missile03_mark01, 0, -1, 10, 10, 0, 1
    MarketGood = missile03_mark01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = missile03_mark02, 6, -0.200000, 10, 10, 0, 1
    MarketGood = missile03_mark02_ammo, 6, -1, 50, 50, 0, 1
    MarketGood = missile03_mark03_ammo, 22, -1, 50, 50, 0, 1
    MarketGood = missile03_mark04_ammo, 30, -1, 50, 50, 0, 1
    MarketGood = cruise_disruptor01_mark01, 2, -1, 10, 10, 0, 1
    MarketGood = cruise_disruptor01_mark01_ammo, 2, -1, 50, 50, 0, 1
    MarketGood = cruise_disruptor01_mark02_ammo, 26, -1, 50, 50, 0, 1
    MarketGood = torpedo01_mark01_ammo, 10, -1, 50, 50, 0, 1
    MarketGood = torpedo01_mark02_ammo, 30, -1, 50, 50, 0, 1
    MarketGood = mine01_mark01, 0, -1, 10, 10, 0, 1
    MarketGood = mine01_mark01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = mine01_mark02, 2, -0.200000, 10, 10, 0, 1
    MarketGood = mine01_mark02_ammo, 2, -1, 50, 50, 0, 1
    MarketGood = mine01_mark03_ammo, 10, -1, 50, 50, 0, 1
    MarketGood = mine01_mark04_ammo, 22, -1, 50, 50, 0, 1
    MarketGood = mine01_mark05_ammo, 30, -1, 50, 50, 0, 1
    MarketGood = mine02_mark01, 0, -1, 10, 10, 0, 1
    MarketGood = mine02_mark01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = mine02_mark02, 6, -0.200000, 10, 10, 0, 1
    MarketGood = mine02_mark02_ammo, 6, -1, 50, 50, 0, 1
    MarketGood = mine02_mark03_ammo, 16, -1, 50, 50, 0, 1
    MarketGood = mine02_mark04_ammo, 26, -1, 50, 50, 0, 1
    MarketGood = mine02_mark05_ammo, 30, -1, 50, 50, 0, 1
    MarketGood = ge_s_repair_01, 0, -1, 100, 100, 0, 1
    MarketGood = ge_s_cm_01_ammo, 0, -1, 50, 50, 0, 1
    MarketGood = ge_s_cm_02, 2, -1, 10, 10, 0, 1
    MarketGood = ge_s_cm_02_ammo, 2, -1, 50, 50, 0, 1
    MarketGood = ge_s_cm_03_ammo, 6, -1, 50, 50, 0, 1
    MarketGood = shield03_mark01_lf, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark02_lf, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark03_lf, 2, -1, 10, 10, 0, 1
    MarketGood = shield03_mark01_hf, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark02_hf, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark03_hf, 2, -1, 10, 10, 0, 1
    MarketGood = shield03_mark01_fr, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark02_fr, 0, -1, 10, 10, 0, 1
    MarketGood = shield03_mark03_fr, 2, -1, 10, 10, 0, 1
    MarketGood = ge_s_battery_01, 0, -1, 100, 100, 0, 1
    
    
    This adds weapons to the equipment trader, again IM not 100% sure how the
    figures work out but the first figure is usually ran and the second is usually
    reputation required to buy the item. Make an entry like this one in your
    market_misc. Remembering to change the base = line. Also note its handy if any
    ships you sell can actually get the equipment they need from the equipment
    trader, otherwise odd things have been know to happen such as fighters with no
    shields.
    
    Now open up the market_ships.ini.
    
    [BaseGood]
    base = my01_01_base
    marketgood = gf1_package, 0, -1, 0, 0, 1, 1, 1
    marketgood = gf2_package, 4, -1, 0, 0, 1, 1, 1
    marketgood = gf4_package, 13, -1, 0, 0, 1, 1, 1
    marketgood = gf5_package, 24, -1, 0, 0, 1, 1, 1
    marketgood = gf6_package, 30, -1, 0, 0, 1, 1, 1
    marketgood = bwf_package, 4, -1, 0, 0, 1, 1, 1
    marketgood = bwe_package, 20, -1, 0, 0, 1, 1, 1
    marketgood = bwe2_package, 30, -1, 0, 0, 1, 1, 1
    marketgood = bwfr_package, 10, -1, 0, 0, 1, 1, 1
    marketgood = cof_package, 8, -1, 0, 0, 1, 1, 1
    marketgood = coe_package, 28, -1, 0, 0, 1, 1, 1
    marketgood = coe2_package, 32, -1, 0, 0, 1, 1, 1
    marketgood = lf_package, 1, -1, 0, 0, 1, 1, 1
    marketgood = le_package, 2, -1, 0, 0, 1, 1, 1
    marketgood = lfr_package, 1, -1, 0, 0, 1, 1, 1
    marketgood = bf_package, 6, -1, 1, 1, 0, 1, 1
    marketgood = be_package, 8, -1, 0, 0, 1, 1, 1
    marketgood = bfr_package, 4, -1, 1, 1, 0, 1, 1
    marketgood = kf_package, 10, -1, 0, 0, 1, 1, 1
    marketgood = ke_package, 13, -1, 0, 0, 1, 1, 1
    marketgood = kfr_package, 10, -1, 0, 0, 1, 1, 1
    marketgood = rf_package, 20, -1, 0, 0, 1, 1, 1
    marketgood = re_package, 22, -1, 0, 0, 1, 1, 1
    marketgood = rfr_package, 20, -1, 0, 0, 1, 1, 1
    marketgood = pf_package, 2, -1, 0, 0, 1, 1, 1
    marketgood = pe_package, 13, -1, 0, 0, 1, 1, 1
    marketgood = pfr_package, 4, -1, 0, 0, 1, 1, 1
    marketgood = bhf_package, 4, -1, 1, 1, 0, 1, 1
    marketgood = bhe_package, 13, -1, 0, 0, 1, 1, 1
    marketgood = bhe2_package, 26, -1, 0, 0, 1, 1, 1
    marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1
    
    
    These are all ships the game knows about and not all the ships it sells. The
    first number is rank required to buy a ship, the second is reputation required
    to buy a ship. Whether ship is for sale or not is simple. There are only 2
    settings.
    
    rank, rep, 0, 0, 1, 1, 1 not available
    
    rank, rep, 1, 1, 0, 1, 1 is available
    
    Its easy to see how the numbers change this way. So you can see 99% of the
    ships up there are actually not for sale at all.
    
    Change the base name and edit the file to make the ships you want to sell
    available, making a note about how many landing pads you have so you know how
    many ships you can sell. You may have heard that stations can only sell 1 ship,
    this not true. I have a station selling 3 ships and all it uses is 2 decks.
    
    When your done save off the file.
    
    Part 2
    Make your own system Part 2
    
    Adding Characters to your base.
    
    To add characters to your bases you need to add an entry for your base in
    /Data/Missions/mbases.ini. Matching the owning faction in mbases with the
    owning faction in your my01.ini and your universe.ini. The Mbase.ini file is
    huge and complex and contects to missions, voice overs and several other import
    parts of the game. However because it is complex we will take the cheap and
    nast approach and cut and past another bases entry and edit it to suit our own
    base. Now because we have thus far delt with liberty forces, lets choose
    Manhattan's mbase entry. Thats Li01_01_Base in mbases. All entries base start
    with [MBase] so just copy everything from the top of Mbasis to the next [MBase]
    line you see and paste it back at the botton the mbase.ini file.
    
    Now change the following lines.
    
    nickname = Li01_01_Base
    local_faction = li_p_grp
    diff = 1
    msg_id_prefix = gcs_refer_base_Li01_01_Base
    
    Change too...
    
    nickname = my01_01_Base
    local_faction = li_p_grp
    diff = 1
    msg_id_prefix = gcs_refer_base_Li01_01_Base
    
    msg_id has no meaning for our base because we dont have any sound files for
    our base so you might as well leave these are they are.
    
    Each faction represented at the base has its own faction entry in your bases
    mbase entry. Heres an example.
    
    [BaseFaction]
    faction = li_n_grp
    weight = 13
    offers_missions = mission_type = DestroyMission, 0.000000, 0.112387, 30
    npc = li0101_lnavy_001_f
    npc = li0101_lnavy_002_m
    npc = li0101_lnavy_003_f
    
    
    
    So if you want to change a faction for another one, change this first. then
    take note of the ncp lines and swap them out for ncps from the faction you want
    to use. An ncp entry is pretty long but looks something like this. By cutting
    this out and replacing it with another factions npc you completely replace the
    character you meet in the bar. The Affiliation line tells you which faction
    this ncp is a member of and should match the BaseFaction entry generally.
    
    [GF_NPC]
    nickname = li0101_ageira_001_f
    body = sc_female1_body
    head = br_karina_head_gen
    lefthand = benchmark_female_hand_left
    righthand = benchmark_female_hand_right
    individual_name = 220001
    affiliation = co_vr_grp
    voice = rvp501
    room = bar
    bribe = li_p_grp, 10000, 16100
    bribe = co_hsp_grp, 10000, 16100
    bribe = co_me_grp, 10000, 16100
    bribe = co_ss_grp, 10000, 16100
    bribe = co_vr_grp, 10000, 16101
    rumor = base_0_rank, mission_end, 1, 131196
    rumor = base_0_rank, mission_end, 1, 131197
    rumor = base_0_rank, mission_end, 1, 131198
    rumor_type2 = mission_01a_loaded, mission_01a_accepted, 1, 393427
    rumor_type2 = mission_01a_loaded, mission_01a_accepted, 1, 393428
    rumor_type2 = mission_01a_loaded, mission_01b_loaded, 1, 393429
    rumor_type2 = mission_01a_loaded, mission_01a_accepted, 1, 393430
    rumor_type2 = mission_01a_loaded, mission_01a_accepted, 1, 393431
    rumor_type2 = mission_01a_loaded, freetime_02_03, 1, 393432
    rumor_type2 = mission_01a_loaded, freetime_01_02, 1, 393433
    rumor_type2 = mission_01a_loaded, mission_04_accepted, 1, 393434
    rumor_type2 = mission_01a_accepted, mission_01b_loaded, 1, 393436
    rumor_type2 = mission_01b_loaded, freetime_01_02, 1, 393439
    rumor_type2 = freetime_01_02, mission_02_loaded, 1, 393440
    rumor_type2 = freetime_01_02, mission_02_loaded, 1, 393441
    rumor_type2 = freetime_01_02, mission_02_accepted, 1, 393573
    rumor_type2 = mission_02_loaded, mission_02_accepted, 1, 393574
    rumor_type2 = mission_02_loaded, mission_02_loaded, 1, 393576
    rumor_type2 = mission_02_loaded, mission_02_accepted, 1, 393577
    rumor_type2 = mission_02_loaded, mission_02_accepted, 1, 393579
    rumor_type2 = mission_02_loaded, mission_02_accepted, 1, 393580
    rumor_type2 = mission_02_loaded, freetime_02_03, 1, 393582
    rumor_type2 = mission_02_loaded, freetime_02_03, 1, 393584
    rumor_type2 = mission_02_accepted, freetime_02_03, 1, 393586
    rumor_type2 = freetime_02_03, mission_03_loaded, 1, 393587
    rumor_type2 = freetime_02_03, mission_03_loaded, 1, 393588
    rumor_type2 = mission_03_loaded, mission_03_loaded, 1, 393589
    rumor_type2 = mission_03_loaded, mission_03_loaded, 1, 393590
    rumor_type2 = mission_03_loaded, mission_04_accepted, 1, 393591
    rumor_type2 = freetime_03_04, mission_04_loaded, 1, 393594
    rumor_type2 = freetime_03_04, mission_04_accepted, 1, 393600
    rumor_type2 = mission_04_loaded, mission_04_accepted, 1, 393603
    rumor_type2 = mission_04_loaded, mission_04_accepted, 1, 393604
    rumor_type2 = mission_04_loaded, mission_04_accepted, 1, 393605
    rumor_type2 = mission_03_loaded, mission_04_accepted, 1, 393606
    rumor_type2 = freetime_03_04, mission_04_accepted, 1, 393607
    rumor_type2 = mission_04_loaded, mission_04_accepted, 1, 393609
    know = 251760, 253608, 300, 1
    knowdb = li01_10
    
    Other shorter NPC files exist for the traders on the station, thats the people
    who sell you thinks. A typical entry for them looks like this.
    
    [GF_NPC]
    nickname = li0101_fix_ship
    body = li_commtrader_body
    head = ge_male1_head
    lefthand = benchmark_male_hand_left
    righthand = benchmark_male_hand_right
    individual_name = 244612
    affiliation = li_p_grp
    voice = rvp111
    
    These npc's are assigned rooms in the following way.
    
    [MRoom]
    nickname = ShipDealer
    character_density = 2
    fixture = li0101_fix_ship, Zs/NPC/Shipdealer/01/A/Stand,
    scriptsvendorsli_shipdealer_fidget.thn, ShipDealer
    
    If you notice the fixture line, you will also notice the first part says
    li0101_fix_ship, which just happens to match our ncp just above. The
    scriptsvendors folder contains a lot of ncp scripts you can use to change an
    npcs behavour here but personally, id just leave ut as it is.
    
    That is more or less how the mbase.ini file breaks down. Each base has a huge
    entry and multiple npcs but we have just listed 1 or two here to give you an
    idea of what that mangled mess of entries means.
    
    Placing Tradelanes.
    
    Tradelanes are the gates you use to travel across a system quickly. They all
    must be given the right rotation values or you end up flying backwards and they
    must all be in a line. Now if you remember our Jumpgate was due West of the
    center of the system and our planet was due East of the jumpgate. This makes it
    very easy to work out where out tradelanes will be.
    
    
    
    We will place our first tradelane 5kms in from the jumpgate. The jumpgate is
    located at POs = -50000,0,0 so our tradeline will start at -45000,0,0 and we
    will place 1 tradelane per 7km until we get to 25000,0,0 or there abouts.
    Allowing room for the planet which is roughly 5km across.
    
    Here is a 3 gate tradelane to use an an example of how they work.
    
    Again give each set of gates a unique name and increase the number at the end
    by one for each new game. Aside from the dis_info and ids_name which are
    infocards again the only things you need to look at are POs, rotate, next_ring
    and pre_ring. Everything else follows the same rules already covered in other
    parts of this tutorial Eg the reputation should be set to the local faction.
    Difficulty etc etc.
    
    Examine the next ring part of these examples and scroll down to continue
    
    [Object]
    nickname = my01_Trade_Lane_Ring_1
    ids_name = 458758
    POs = -45000, 0, 0
    rotate = 0, -90, 0
    Archetype = Trade_Lane_Ring
    ids_info = 66170
    next_ring = yo01_Trade_Lane_Ring_2
    behavior = NOTHING
    reputation = li_p_grp
    difficulty_level = 1
    loadout = trade_lane_ring_li_01
    pilot = pilot_solar_easiest
    
    [Object]
    nickname = my01_Trade_Lane_Ring_2
    ids_name = 458758
    POs = -38000, 0, 0
    rotate = 0, -90, 0
    Archetype = Trade_Lane_Ring
    ids_info = 66170
    prev_ring = my01_Trade_Lane_Ring_1
    next_ring = my01_Trade_Lane_Ring_3
    behavior = NOTHING
    reputation = li_p_grp
    difficulty_level = 1
    loadout = trade_lane_ring_li_01
    pilot = pilot_solar_easiest
    
    
    [Object]
    nickname = my01_Trade_Lane_Ring_3
    ids_name = 458758
    POs = -31000, 0, 0
    rotate = 0, -90, 0
    Archetype = Trade_Lane_Ring
    ids_info = 66170
    prev_ring = my01_Trade_Lane_Ring_2
    behavior = NOTHING
    reputation = li_p_grp
    difficulty_level = 1
    loadout = trade_lane_ring_li_01
    pilot = pilot_solar_easiest
    
    If you look at the my01_Trade_Lane_Ring_1, my01_Trade_Lane_Ring_2,
    my01_Trade_Lane_Ring_3 entries for prev_ring = & next_ring = you will notice
    the first tradeline has a next ring but no previous ring. The last tradelane
    has a prev ring but no next ring and the center tradelane has both a next and
    previous ring.
    
    This is how the game knows what gate you should travel too next. It passes you
    on the next or prev ring if one exists, if it does not it knows the trade lane
    has ended at that point and drops you back into normal space. Getting the gates
    rotated so they all line up and are all facing the same direction is the only
    other import thing to know about. The distance between gates is really not that
    important except for when tradelanes are disrupted and the player has to fly to
    the next tradelane gate to get back on the tradelane. You may also notice that
    the POs listed are right for our new system, You need only add 1 more game and
    balance out the distances between all 4 gates and you will have your first
    tradelane working. Not a difficult task and lots of fun watching when it goes
    wrong, wink wink :)
    
    Adding Nebulas and Asteroids to our system.
    
    Now we have a base and a tradelane and way in and out of our system and can
    explore it lets add some nebulas and asteroids Remember the Nebula and Asteroid
    entries we skipped at the top of our systems ini file. Well we need to set them
    up. We will be placing 1 asteroid field right on top of our tradelane and a
    nebula below our planet.
    
    Add and entry below Nebula that looks something like this.
    
    [Nebula]
    file = solar ebulamy01_mybig_nebula_cloud.ini
    zone = Zone_my01_mybig_cloud
    
    Now depending on how you want your system to look, you need to choose a good
    nebula ini file from /data/solar/nebula and copy and save it as
    my01_mybig_nebula_cloud.ini in the same directory as you found the original
    one. Now the badlands_li01.ini looks like it will work without modification but
    that's way to easy for us. I need you to see the dangers in using these files
    so IM choosing the bw05_crow_nebula.ini which probably doesn't suite our system
    at all but is a good example.
    
    Here's the crow nebula ini in its original state.
    
    [TexturePanels]
    file = solar ebulacrow_shapes.ini
    
    [Fog]
    fog_enabled = 1
    near = 0
    distance = 1600
    color = 0, 100, 160
    
    [properties]
    flag = nebula
    
    [Exclusion Zones]
    exclusion = Zone_Bw05_01_exclusion
    fog_far = 5000.000000
    zone_shell = solar ebulacrow_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.500000
    exclusion_tint = 255, 255, 255
    exclusion = Zone_Bw05_yanagi_debris_field
    fog_far = 2000.000000
    exclusion = Zone_Bw05_yanagi_pocket_exclusion
    fog_far = 19000.000000
    zone_shell = solar ebulageneric_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.800000
    exclusion_tint = 70, 100, 200
    exclusion = Zone_Bw05_story_exclusion
    fog_far = 8000.000000
    zone_shell = solar ebulageneric_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.600000
    exclusion_tint = 100, 200, 255
    exclusion = Zone_Bw05_sun1_exclusion
    fog_far = 19000.000000
    exclusion = Zone_Bw05_sun2_exclusion
    fog_far = 19000.000000
    exclusion = Zone_Bw05_03_exclusion
    exclusion = Zone_Bw05_to_Ku04
    fog_far = 4000.000000
    exclusion = Zone_Bw05_to_Rh04
    fog_far = 4000.000000
    exclusion = Zone_Bw05_oxygen_pocket_001
    fog_far = 2000.000000
    exclusion = Zone_Bw05_oxygen_pocket_002
    fog_far = 2000.000000
    exclusion = Zone_Bw05_oxygen_pocket_003
    fog_far = 2000.000000
    
    [Exterior]
    shape = crow_exterior1
    shape = crow_exterior2
    shape = crow_exterior3
    shape = crow_exterior4
    shape_weights = 1, 1, 1, 1
    fill_shape = nebula_circle2
    plane_slices = 3
    bit_radius = 10000
    bit_radius_random_variation = 0.200000
    min_bits = 5
    max_bits = 8
    move_bit_percent = 0.750000
    equator_bias = 0.500000
    color = 30, 80, 130
    
    [NebulaLight]
    ambient = 50, 80, 100
    sun_burnthrough_intensity = 0.500000
    sun_burnthrough_scaler = 2
    
    [Clouds]
    max_distance = 300
    puff_count = 20
    puff_radius = 100
    puff_colora = 50, 150, 255
    puff_colorb = 255, 255, 255
    puff_max_alpha = 0.500000
    puff_shape = crow_cloud1
    puff_shape = crow_cloud2
    puff_shape = crow_cloud3
    puff_shape = crow_cloud4
    puff_weights = 1, 1, 1, 1
    puff_drift = 1.000000
    near_fade_distance = 125, 200
    lightning_intensity = 1.000000
    lightning_color = 25, 75, 85
    lightning_gap = 20.000000
    lightning_duration = 0.500000
    
    [BackgroundLightning]
    duration = 0.750000
    gap = 3.000000
    color = 50, 50, 50
    
    A prize goes to the the guy who can tell me which part of this script will
    crash the game the moment somebody enters your system. Any ideas ?
    
    This part.
    
    [Exclusion Zones]
    exclusion = Zone_Bw05_01_exclusion
    fog_far = 5000.000000
    zone_shell = solar ebulacrow_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.500000
    exclusion_tint = 255, 255, 255
    exclusion = Zone_Bw05_yanagi_debris_field
    fog_far = 2000.000000
    exclusion = Zone_Bw05_yanagi_pocket_exclusion
    fog_far = 19000.000000
    zone_shell = solar ebulageneric_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.800000
    exclusion_tint = 70, 100, 200
    exclusion = Zone_Bw05_story_exclusion
    fog_far = 8000.000000
    zone_shell = solar ebulageneric_exclusion.3db
    shell_scalar = 1.000000
    max_alpha = 0.600000
    exclusion_tint = 100, 200, 255
    exclusion = Zone_Bw05_sun1_exclusion
    fog_far = 19000.000000
    exclusion = Zone_Bw05_sun2_exclusion
    fog_far = 19000.000000
    exclusion = Zone_Bw05_03_exclusion
    exclusion = Zone_Bw05_to_Ku04
    fog_far = 4000.000000
    exclusion = Zone_Bw05_to_Rh04
    fog_far = 4000.000000
    exclusion = Zone_Bw05_oxygen_pocket_001
    fog_far = 2000.000000
    exclusion = Zone_Bw05_oxygen_pocket_002
    fog_far = 2000.000000
    exclusion = Zone_Bw05_oxygen_pocket_003
    fog_far = 2000.000000
    
    
    The reason why this crashes out the game is because Exclusion zones are
    special zones we need to add to our system and as this ini is for a different
    system we dont have those exclusion zones so the game crashes. So the first job
    is to remove them. Do not worry, we will touch on exclusion zones later.
    
    [TexturePanels]
    file = solar ebulacrow_shapes.ini
    
    [Fog]
    fog_enabled = 1
    near = 0
    distance = 1600
    color = 0, 100, 160
    
    [properties]
    
    flag = nebula
    
    [Exterior]
    shape = crow_exterior1
    shape = crow_exterior2
    shape = crow_exterior3
    shape = crow_exterior4
    shape_weights = 1, 1, 1, 1
    fill_shape = nebula_circle2
    plane_slices = 3
    bit_radius = 10000
    bit_radius_random_variation = 0.200000
    min_bits = 5
    max_bits = 8
    move_bit_percent = 0.750000
    equator_bias = 0.500000
    color = 30, 80, 130
    
    [NebulaLight]
    ambient = 50, 80, 100
    sun_burnthrough_intensity = 0.500000
    sun_burnthrough_scaler = 2
    
    [Clouds]
    max_distance = 300
    puff_count = 20
    puff_radius = 100
    puff_colora = 50, 150, 255
    puff_colorb = 255, 255, 255
    puff_max_alpha = 0.500000
    puff_shape = crow_cloud1
    puff_shape = crow_cloud2
    puff_shape = crow_cloud3
    puff_shape = crow_cloud4
    puff_weights = 1, 1, 1, 1
    puff_drift = 1.000000
    near_fade_distance = 125, 200
    lightning_intensity = 1.000000
    lightning_color = 25, 75, 85
    lightning_gap = 20.000000
    lightning_duration = 0.500000
    
    [BackgroundLightning]
    duration = 0.750000
    gap = 3.000000
    color = 50, 50, 50
    
    Now this script contains no zones that will crash out our system and its ready
    use, save the nebula under solar ebulamy01_mybig_nebula_cloud.in and we are
    ready to go. You can tweak the colour and other aspects of your nebula later
    once the tutorial is completed.
    
    Now we want to create a new zone at the bottom of our system ini file.
    Something like this, being careful to match the zone name under the nebula
    entry above with the nickname here like so and position it roughly 10,000km
    south of our planet.
    
    [Zone]
    nickname = Zone_my01_mybig_cloud
    POs = -20000, 0, 20000
    rotate = 0, 0, 0
    shape = SPHERE
    size = 6000
    comment = mybig_cloud
    sort = 1
    toughness = 7
    density = 12
    repop_time = 10
    max_battle_size = 8
    pop_type = trade_path
    relief_time = 10
    faction_weight = li_p_grp, 8
    faction_weight = gd_bh_grp, 3
    density_restriction = 4, unlawfuls
    encounter = area_defend, 1, 0.070000
    faction = li_p_grp, 1.000000
    encounter = area_bh_defend, 1, 0.030000
    faction = gd_bh_grp, 1.000000
    
    
    Now faction_weight = sets up who will be in this zone but encounters = sets up
    the real action. In this example we only have 2 factions in our zone, the
    police and the bad guys. We set a toughness of 7 so the bad guys are tougher
    than noobs, a max battle size of 8 so 8 ships can take part at once. We use
    area_defend as our area script because we want this to be contested space. Eg
    the bad guys say the nebula is there's and defend it, but so do the police. We
    could use an area assault but who would assault an nebula ?
    
    Encounters are let Nebulas in that they need an entry at the top of the system
    in to work. But before we do that lets explain the encounter here first.
    
    This is a basic encounter.
    
    Encounter = area_defend, 1, 0.070000
    faction = li_p_grp, 1.000000
    
    Notice the Encounter area_defend, 1, 0.070000. IM not sure what the numbers
    mean but the faction below this tells the game to look up the encounters name
    in the Encounter section at the top of the ini file and spawn the faction below
    at that location. We use repop_time = 10 to control how after the faction
    appears. 10 is pretty frequently, 90 is average.
    
    Encounter = area_bh_defend, 1, 0.030000
    faction = gd_bh_grp, 1.000000
    
    These entries set up the bad guys in the same area. They spawn near the edges
    of the area and fly around it. But we have the police there too so there is
    sure to be fight.
    
    Anyway lets make sure the Encounter works.
    
    Add the following line to the Encounter section at the top of the my01.ini
    file.
    
    [EncounterParameters]
    nickname = area_defend
    filename = missionsencountersarea_defend.ini
    
    Notice our nickname matches our Encounter = names. This is important. The
    Encounter will now work so our nebula will be a dangerous place to be.
    
    Asteroids
    
    Now Asteroids follow exactly the same rules as Nebulas, the process for adding
    them is exactly the same with 1 important difference. They are listed under
    Asteroids instead of Nebula at the top of your system ini file. Here's an
    example from my config that will not work for you.
    
    [Asteroids]
    file = SOLARASTEROIDSyo01_badlands_asteroids.ini
    zone = Zone_yo01_center_cloud
    
    At this point in the tutorial I take a seat and watch you putting into
    practice what you have learned.
    
    Your task is this.
    
    Add an Asteroid field to POs -35000,0,0 that's 8000 across so it covers the
    tradelane.
    
    Here's a list of thing you must do your self.
    
    1) Choose and asteroid ini file, edit it and save it off under a new name.
    Located at DATASOLARASTEROIDS
    
    2) Add the asteroid entry under Asteroids
    
    3) Setup a zone like we did for the nebula (cut and past and renaming of the
    zone should work if you tweak POs and size too).
    
    If all goes well, your tradelane will go right through the middle of an
    asteroid belt.
    
    Practice that before moving on to the next part of this tutorial. If you
    feeling brave, add a pirate base in the asteroid belt using that second set of
    base files we created. This is what I had in mind for them and was going to set
    you this take further down anyway.
    
    Note you can add asteroids to other zones containing other effects such as
    nebulas very easily.
    
    Exclusion Zones:
    
    Exclusion zones are setup like any other zone except they are far simpler to
    work with. They are listed in the Solar/nebula or Asteroid ini so the game
    knows not to put a nebula or asteroid effect in that area. This is how you can
    have large asteroid fields but keep base areas totally free of them.
    
    Lets add an exclusion zone around our planet that's 8kms in size and add it to
    our asteroids ini file we created. You did do the task I set you did not you ?
    Well come on, at least I told you now instead of waiting till you got half way
    though this section :)
    
    In your my01.ini file add an exclusion zone like this.
    
    [Zone]
    nickname = ZONE_my01_we_dont_want_no_stinking_asteriods_here
    POs = -20000, 0, 0
    shape = SPHERE
    size = 8000
    property_flags = 131072
    visit = 128
    sort = 99.500000
    
    You should be getting familiar with the meanings of all the commands by now.
    Please note that the lack of a rotation line does not mean you cannot use it
    here.
    
    Now open up your Asteroid ini file and add the following lines.
    
    [Exclusion Zones]
    exclusion = ZONE_my01_we_dont_want_no_stinking_asteriods_here
    exclude_billboards = 1
    
    You have not made your planet a no asteroid zone :)
    
    Good ay :).
    
    Bringing your System to life.
    
    Time to get back into zones, zones are good, zones are cool and zones are what
    we need. So lets make a new new zone around the planet so it has some traffic
    in it.
    
    Lets make this a big entry, a confusing entry so you can see how meaty these
    babies get. As you can see see your faced with exactly the same stuff the other
    zones offered but this one uses area trade encounters to generate friendly
    traffic. So its not as nasty as it sounded. We use pop_type = li_p_grp,
    base_cluster_law to make it heavily policed and set the police to liberty
    police using their code li_p_grp. Everything else is the same as both.
    
    [Zone]
    nickname = Zone_my01_planet
    POs = 0, 0, 0
    rotate = 0, 0, 0
    shape = SPHERE
    size = 10000
    comment = Newmars
    sort = 1
    toughness = 1
    density = 12
    repop_time = 10
    max_battle_size = 8
    pop_type = li_p_grp, base_cluster_law
    
    relief_time = 10
    faction_weight = li_p_grp, 6
    faction_weight = co_be_grp, 7
    faction_weight = co_hsp_grp, 7
    faction_weight = co_kt_grp, 7
    faction_weight = co_me_grp, 7
    faction_weight = co_nws_grp, 7
    faction_weight = co_ni_grp, 7
    faction_weight = co_os_grp, 4
    faction_weight = co_rs_grp, 7
    faction_weight = co_shi_grp, 7
    faction_weight = co_ss_grp, 7
    faction_weight = co_vr_grp, 8
    faction_weight = gd_bh_grp, 3
    density_restriction = 4, unlawfuls
    Encounter = area_defend, 1, 0.070000
    faction = li_p_grp, 1.000000
    Encounter = area_bh_defend, 1, 0.030000
    faction = gd_bh_grp, 1.000000
    Encounter = area_trade_freighter, 1, 0.090000
    faction = co_hsp_grp, 0.260000
    faction = co_me_grp, 0.260000
    faction = co_ss_grp, 0.260000
    faction = co_vr_grp, 0.210000
    Encounter = area_trade_transport, 1, 0.120000
    faction = co_be_grp, 0.100000
    faction = co_hsp_grp, 0.100000
    faction = co_kt_grp, 0.100000
    faction = co_me_grp, 0.100000
    faction = co_nws_grp, 0.100000
    faction = co_ni_grp, 0.100000
    faction = co_rs_grp, 0.100000
    
    Now we 3 encounters here so all 3 have to be named at the top of the file just
    like we did when we set up our nebula.
    
    Encounter 1 = Encounter = area_defend, 1, 0.070000
    
    Encounter 2 = Encounter = area_trade_freighter, 1, 0.090000
    
    Encounter 3 = Encounter = area_trade_transport, 1, 0.120000
    
    You may notice that under each Encounter is a lot more factions, so you would
    be right to expect more activity when this Encounter script is run. Also notice
    our bad guys are back again eg gd_bh_grp. So this zone will see some action
    too. This will enable traffice around any planet, gate or spec of dust you
    center this zone. You can place one over our jumpgate too if you like.
    
    And that just about covers the basics of Area Encounters.
    
    Before we move on, let me show you a 100% pure badguy area Encounter with
    police to fight.
    
    [Zone]
    nickname = Zone_libertyrogues_attack1
    POs = 0, 0, -10000
    rotate = 0, 0, 0
    shape = SPHERE
    size = 10000
    comment = Newmars
    sort = 1
    toughness = 5
    density = 12
    repop_time = 90
    max_battle_size = 4
    pop_type = li_n_grp, base_cluster_law
    relief_time = 10
    faction_weight = fc_rh_grp, 4
    faction_weight = fc_lr_grp, 6
    faction_weight = fc_x_grp, 5
    faction_weight = fc_j_grp, 4
    faction_weight = li_n_grp, 2
    density_restriction = 4, unlawfuls
    Encounter = area_assault, 1, 0.070000
    faction = fc_rh_grp, 1.000000
    Encounter = area_assault, 1, 0.070000
    faction = fc_lr_grp, 1.000000
    Encounter = area_assault, 1, 0.070000
    faction = fc_x_grp, 1.000000
    Encounter = area_assault, 1, 0.070000
    faction = fc_j_grp, 1.000000
    Encounter = area_assault, 1, 0.070000
    faction = fc_n_grp, 1.000000
    
    
    You may find that helpful :)
    
    Getting Missions to work in the Bar.
    
    Getting missions to work
    
    Just requires you to tell the game where those missions should take place.
    This is done via vignette zones. Here is one example from my own system ini
    file.
    
    [Zone]
    nickname = ZONE_yo01_vignette3
    POs = 42000, 0, 29500
    shape = SPHERE
    size = 10000
    mission_type = unlawful, lawful
    sort = 99.500000
    vignette_type = open
    
    The name must be unique, not sure vignette has to be in the name because
    there's a new command or two here.
    
    EG mission type, either lawful missions, unlawful missions or both can be
    entered here.
    
    Also there's a vignette_type entry, this is open which I guess means it is
    available for missions. If right then the default is closed so the absence of
    this line disables missions in that zone. But IM guessing here.
    
    Place a few of these around your system, in the asteroids and nebula belts and
    visit your planets bar. Missions should now be working.
    
    Final Words.
    
    The one area I have not covered here is infocards, yet this is the most
    important area when making a new system but it is an arena thats covered very
    well on Lancers Reacter tutorial forums. Building a system is a lot more
    complex than making a system. You have to consider several things carefully or
    risk ruining the game. The first is what each base sells, if you make diamons
    available right next to a major market for them then the player only has to
    jump to the next system to make a huge profit very fast.
    
    Like wise, if you just throw the system together without taking some time to
    think about how it looks you will just end up with a major eye sore. So it is
    worth taking time to get the look just right.
    
    System editing touches on so many different ini files that by the time your
    finished you should know the in's and outs of freelancer pretty well. However
    freelancer does appear to have 1 limitation. Large ships simple do not like
    docking. So enabling a battleship on your base may seem like a good idea but
    trust me it is not. At least not until somebody comes up with a good solution
    to the problem.
    
    I hope you find this useful, I have figured out most of the areas connected to
    system building but patrols (not arena scripts) and getting the getting solar
    objects to stay on the mini map once found are two things that I have not
    figured out yet. So if you come across the answer let me know.
    
    Giskard
    http://www.respawn.co.uk
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Texturing by harrier
    
    Hi all - Harrier here,
    
    This will be a "work in progress'" tutorial on texturing models in milkshape,
    using a ship as an example of how I have learnt to do it. Once the model is
    done and provided I do a good job - lol - maybe it can be moved to the
    tutorial section.....
    
    Now Iím not saying that I am an expert on texturing, in fact far from it -
    but I see a lot of:
    
    "Help - I've made a model in milkshape - but I dunno how to texture it" -
    "will someone do it for me" - sort of stuff in this forum, so I thought I
    would pass on what I've learnt with a practical example.
    
    I plan to show how to do 'break" the model up into "groups" and using the
    texture coordinate editor in Milkshape, apply textures to the various
    sections. Other programs call it a UV map (thanks Victor) but the principle is
    the same. I prefer to texture as I go and add the hardpoints last - as I get a
    better idea of eventual locations and placement as the model progresses. Also
    I am a believer in colour rather than something drab and uninteresting. If the
    exercise proves popular I may even be able to do something on making textures
    in programs like Photoshop 7 using layers to get the welded panel or plate
    look - although that is a totally different ball game......... I have much to
    learn in that area as well.
    
    Oh.... help and feedback would be welcome and appreciated, that way we all
    learn something......
    
    I will use a model I am working on for the "Epsilon mod" and some samples of
    my work can be seen in the mod announcement forum under that title, with more
    to be added as they are done. ( blatant plug)  - also I did some work for
    firebase on his Basilisk COV fighter elsewhere in this forum.
    
    the model I will use is called the 'Mystere' a new Bretonian light fighter:
    Stats:
    Armour 3700 - level 5/7
    Guns 4, turret 1, missile 1, mine 1, countermeasures 1.
    nano's/batts 35, cargo 25
    Faction - Bretonian Elite Forces
    
    The Mystere was created in doga by Parabolix and uses about 500 polys
    although that will increase as detail is added.
    
    Ok so here are a couple of pictures of the ship:
    http://members.optusnet.com.au/~audioele/mypic57.JPG
    http://members.optusnet.com.au/~audioele/mypic58.JPG
    
    Iíll be back with additional pictures as the model progresses
    
    Edit: TLR through the good graces and the help of Baked Potato has allowed me
    to place 2 models-  the Mystere and the Night Stalker . -  - in the downloads
    section. Included with the models is about a dozen texs and they can be found
    by following this link: here
    Take advantage if you wish - both models are partly textured - feel free to
    play around with them and if you wish use them in mods - however please give
    credit where it is due....
    
    ****Tips by VICTOR****
    The tutorial will be a huge help though, with my recent enlightenment in
    modelling I've discovered the out of the entire process making the textures is
    the easy part
    
    Seriously though, the UV map/texture coordiantes is the most important part
    of texturing or skinning the model. Unfortunately most modellers leave that
    part up to whoever is going to skin the model or they save it until the end
    and do it themselves. The best way to do the UV map is to map out the parts as
    you go taking care to eliminate any problems with distortions in the skin and
    making sure all of the surfaces are skined at the same scale (with a few
    exceptions). I did this while working on the Ogre and I found it much easier
    to be able to rotate the actual objects rather than trying to rotate the
    mapped faces on the skin, and even easier to map a single part, such as the
    wing or engine, before mirroring the part on the model since the mapped faces
    were now mirrored as well it was half the work. Also, since Milkshape will
    only let you use a single material for any given group in the model sometimes
    the mesh needs to be re-groupped in a way that doesn't make a lot of sense to
    a modeler. For example, on my Ogre the top faces on each wing are seperate
    groups while the underside and edges of both wings are in one group, most
    modelers like to simply group them as a left wing and a right wing.
    
    Oh, and here a little trick while doing the UV mapping...
    
    Find or make a simple grid or checkerboard texture the same dimensions that
    you'll want for the finished skin. Also, make a blank black texture the same
    size to use as the base for the actual skin. While you are actualy mapping the
    faces use the grid/checkerboard pattern and check the perspective view
    frequently. This pattern will quickly show you if you have any bad distortion
    and it will also make it easier to ensure the scaling is the same across
    different faces. Once you're happy with the mapping, put the blank black
    texture on the ship, select all of the faces (that have been mapped) go into
    your preferences and set the point size to 1x1, go back into the texture
    coordinate editor window and take a screenshot of the window (ALT-Print
    Screen) and presto! instant base skin with the mesh superimposed over it.
    
    ****End of VICTOR's Tips****
    
    ok so to proceed,
    
    I suggest that anyone reading this pay particular attention to the tips that
    victor has added.
    I do a similar thing when I do a texture, funny how people arrive at the same
    or similar solutions without the benefit of information exchange. My method
    has some slight differences so I will try to explain.
    
    first of all I study the model and look at where I want the texture to go,
    then I break the models into separate "groups" and look for area's that are on
    a similar "plane". It is best I think to do a list:
    
    The mystere has been broken into these major groups:
    
    Cockpit - self explanatory - but can also consist of sub groups like cockpit
    trim, floor, console, seat etc... now we will come back to sub groups a bit
    further down the track.....
    Fuselage - subgroups - front, back, top, bottom, sides etc., but again sub
    groups come later so we will just deal with the main ones first.
    wing_lower - these are the lower panels of the "wing"
    wing_upper - these are the upper panels of the "wing"
    wing_panels - these are detail or odd panels that may be "featured" or are
    not on the same "plane" as the wing itself
    wing_trim - the edges along the sides, front and back surfaces of the wing
    itself - these are normally at an acute angle to the wing itself - i.e. at
    right angles
    connecting_group - these are components that connect the two wings together
    that you may want to apply a different texture to it......
    engine_group - these are the 'parts' that make up the engine - things like
    the bit that sticks out of the body, exhaust trims etc... in the case of the
    mystere it has a pod mounted engine so it's easy to assign a group to it -
    again it will be broken up into sub groups later.
    engine_support - again in the case of the mystere it is part of but
    completely separate from the engine group and connects the engine to the
    fuselage
    ammo_pods - these are components that dont belong in any of the major groups
    I have used this as a description in the case of the mystere because that is
    what they look like.
    
    now we have created approximately 10 major groups - these will be broken down
    into sub assemblies for texturing - or "dissembled" so we can texture each
    part individually - later on we can reassemble the model and reduce our groups
    into several groups only - say - body, wings, engine etc.....
    
    Now for some tricks or tips:
    
    you can break your model assemblies into groups - texture one and then
    regroup them into a major assembly and milkshape will transfer the mirror of
    the pattern onto the other part, for example wings can be broken into a 'left'
    and a 'right' the left is one group (a sub group) the right is another.
    Texture one - the left say -and then regroup the two and the texture is
    mirrored onto the other. a much simpler way is to make your model as a half,
    i.e. cut down the middle front to back, texture one side then duplicate/mirror
    the other and "presto" the exact same texture on both sides! you may still
    have to adjust some small parts, but as a whole the major part of the model is
    done. this will work on highly complex models as well a simple ones.
    
    you can also transfer lines around corners by texturing the major "plane"
    then selecting a part say an angled edge and apply the SAME texture to that
    plane. You cannot do this if you want to use two different textures on the
    same part. they then have to be broken down into sub groups and textured
    separately.
    
    ****Tips by VICTOR****
    To elaborate on the "why" part of grouping...
    
    In Milkshape when you have a group of polygons selected to place in the
    texture coordinate editor window you do all of change to vertecies only, ok,
    not a big deal. Except... if you try to move vertecies that are shared with
    another face in the same group that are not selected, well you can't move
    them. So, you end up with some really odd looking lines all over the place as
    you try to arrange your mapped faces on the image. Did that make any sense?
    Let's try an example, if you have a cylinder (1 "stack" as a single group and
    you want to map the ends in one place and the sides in another while they are
    still in one group and you have already mapped the ends, when you place the
    mapping for the sides of the cylinder you will be unable to move any of the
    vertecies. However, if you re-group the two ends as a seperate group you can
    move the vertecies in the texture coordinate editor all you want.
    
    And some quick tricks to mapping...
    
    To quickly map multiple faces that are the same size to different portions of
    the texture image, only set the region once, every subsequent time you hit
    "remap" it will continue using the same region, now you can move the faces to
    another part of the texture and they'll be the same size.
    
    ****End of VICTOR's Tips****
    
    sub groups:
    
    a couple of picture to illistrate the nest step:
    http://members.optusnet.com.au/~audioele/mypic59.JPG
    http://members.optusnet.com.au/~audioele/mypic60.JPG
    
    
    I've shown the model in flat shaded view for ease of identification and I
    hope you can follow my ramble. I'll try to keep it a simple as I can....
    
    subgroups:
    
    the pictures above are of the "major" group - "engine group" and consist of
    the following components:
    engine_support
    engine_assy
    intake_cone
    intake_plate
    intake_throat
    exhaust_inner
    exhaust_plate
    flame_can
    
    Looks like a lot doesn't it and just for one bit! Each one will have
    different texture although some may share the same texture.. one point - if
    you were to use a totally different texture for each part then your mat file
    would be huge...... So we try to use some textures for common parts and by
    viewing from different angles or planes the texture can have a pattern i.e.
    plates when viewed from the top - but if just "applied' it can make streaky
    lines, a general colour, patches, stripes, a whole host of different effects
    can be achieved.
    
    the most difficult parts to texture are generally things like cylinders,
    spheres, curved surfaces etc., because although they exist in two dimensions
    they "appear" to exist in three, so if you apply a texture to the top of a
    curved surface then the top and bottom view which are in the same "plane" will
    have the texture applied correctly but the sides will appear to "run" and the
    texture -because it is applied from the top - the sides look like and are just
    a series of stretched streaks, if you look closely at the top picture you may
    see examples of this, and anyone who has tried to texture a model will be
    familiar with it. it looks good from certain angles but looks crap from
    others.
    
    So how to fix it: Ok, in the texture coordinate editor you have a multiple of
    views - I won't go into them here if you are reading this take a look - each
    of these views allow you to - (and this is important) - APPLY THE SAME TEXTURE
    TO DIFFERENT FACES IN THE SAME GROUP OR SUB GROUP - BY SELECTING EACH OF THESE
    FACES IN TURN!
    
    This is the MOST important part of texturing - but it takes patience and time
    to achieve........
    
    for example; the engine can is a cylinder - how do you apply a texture to it?
    - you have to think in 3d - the top and bottom are reasonably gentle curves,
    so are the sides - and here's the trick - select the whole cylinder, apply the
    texture to one view - say the top, then VERY carefully and without deselecting
    the whole thing select the sides of the cylinder (on a right angle plane) - go
    back to the texture coordinate editor and select the side view - hit remap and
    align the faces with each other - (the top view) and there you have it - a
    cylinder with the same tex aligned on all faces....
    
    I do hope you understood at least some of that... experimentation is the
    key.. I explain it one way, Victor another... between us you should get the
    picture... it's not that its hard its just hard to explain.... next we will
    take some textures and apply them and if you follow at some point it should
    all start to drop into place..
    
    I will continue with this soon but would like to make some points on surfaces
    to be textured that I may have overlooked - it regards polycounts.
    With a model almost all detail can be included in the textures which do not
    contribute to the poly count. The point that I am trying to make is that
    broadly speaking polys do not make a ship the texture does.... lol.
    
    The poly hogs are things like cylinders, spheres and complicated shapes etc.,
    plus tiny detail parts that for the most part are not seen, as the player does
    not get close enough, so to my mind they are often a waste. Another thing that
    can cause a model to look odd is reversed faces, freelancer does not see
    reversed faces in fact it "looks" straight through them. The faces if reversed
    have to be corrected, then it can be textured, (the texture is on the inward
    face not on the outward face). Another thing that contributes to a higher
    polycount is internal faces that are not seen and have to be removed to lower
    the polycount. Duplicated faces can also contribute to a higher polycount.
    
    With texturing it is important that detail surfaces that are exposed must be
    double sided, e.g. intakes and exhausts are examples of this - lets say you
    make a cylinder that is open ended the outside surface that is seen can be
    textured, but the inside surface cannot as there is nothing to "stick" the
    texture to, by this I mean that in order for you to apply a texture to the
    interior of say an engine exhaust it must have an "outside" or "outward" face
    in order for a texture to be applied to it.
    
    This may seem ambiguous but I will attempt to explain with pictures and text
    in part 4 where we will texture the exposed engine group shown in the pictures
    above.
    
    I would suggest that should you get lost in this part that you use the
    milkshape help file and look for the appropriate menu structure. as it
    explains far better than I can how the menu structure works and how to
    navigate in milkshape
    
    We will texture the engine assembly sub group.
    
    engine_support
    engine_assy
    intake_cone
    intake_plate
    intake_throat
    exhaust_inner
    exhaust_plate
    flame_can
    
    I listed these previously so no explanation is really necessary. To start
    with the engine support we need to look at the "plane" of the major faces,
    there are two main directions this support will be seen, the "bottom" view and
    the "back" view, the top, side and the front view are opposites and are
    "hidden" - the top view by the wing and fuselage assembly and the front
    actually slopes back and will be hidden by other components - so is also not
    really "seen". Select the group in the main milkshape window under the groups
    menu using the wireframe view (to make sure they are actually selected), then
    go to the materials menu, decide what texture we are going to apply by either
    assigning a texture previously used or with a "new" texture not previously
    used. The "new" button is on the left in the bottom section of the window. A
    standard grey "ball" will appear in the material window - directly above this
    are two long buttons labelled <none>, pressing the top one will open a window
    called "open image", find and select your texture and "assign" it to the
    selected engine support using the large button at the bottom of the materials
    menu. The grey ball will change colour to indicate the texture has been
    assigned to that sub group. then go back to the main milkshape window and
    select "textured" in the view window.
    
    Then open the texture co-ordinate editor, find the engine support subgroup,
    in the dropdown box (bottom right) highlight it and all going well your "new"
    texture should appear with the wireframe overlaid. select "bottom" in the
    second drop down box and select "remap". The wireframe will expand to cover
    the whole texture panel. Scale, move or rotate it until you are happy with the
    look of the texture in that "plane" and save it using the file menu (at the
    top left hand side). You will notice that the "back" appears to "run", or look
    "streaky" this is because the "back" is 90 degrees to the "bottom", but we can
    "bend" the texture around corners to apply it to the "back".
    Note: there is a very good tutorial on the chumbalum Forum:
    http://www.planetunreal.com/prefablab/tutorials/texturemaps.htm
    using photoshop to make a texture and apply it to a 3d object. I suggest you
    have a look - even if you dont have photoshop the latter part of the tutorial
    shows you how to do this much better than I can here.
    
    However - we can "bend" a texture around corners in two ways:
    1) in the texture coordinate editor window by using the select button (and
    the Keyboard shift key)
    2) in the main view window by using "face" and "vertex" select
    Either method will work, I prefer to use the second version most of the time.
    
    Anyway to proceed - we will do this bit in the main view window using face
    and vertex select - your sub group should still be selected so what I usually
    do is select only the faces I want - select "face" under the "model" section
    of the right hand menu area and using the shift key (holding it down) select
    only the faces in the right angle (back view), then using select Vertex in the
    same view and still holding the shift key select the vertex's that make up the
    whole "back" panel - then its back to the texture coordinate editor - same
    subgroup, same texture - select "back" in the little drop down box on the
    right hand of the editor window and hit remap - all going well the "back" of
    the engine support sub group should now expand to cover the texture panel.
    Then its simply a matter of - scale, rotate, and move until the texture "fits"
    the "back" of the subgroup.
    
    As I said before experimentation is the key........
    
    Boy this is hard  no wonder I wasn't able to find a tutorial on this.......
    that's enough for me for now..... but I'll be back.... maybe with pictures. At
    some point I may make the Mystere model available with textures.... I wanna
    finish it first......
    
    This should be the end result of all our work.........
    http://members.optusnet.com.au/~audioele/mypic78.JPG
    
    If we are going to texture a model with "native freelancer" textures we have
    first to extract them... before we can use or modify them. This has been done
    before in other tutorials but I will go over it here.
    
    You will need the UTF editor, (its in the downloads section if you dont have
    it), and a compatible graphics program - I use photoshop7 - plus, and I
    strongly recommend this - a very good tutorial called: 'Kasdias Texture Guide'
    that provides the necessary plug-ins for photoshop 7 ....... and gives you a
    step by step process for it..... also in the downloads section.... The plug-
    ins are very important.....
    
    
    For some reason - and I dont know why - all the freelancer .mat files files I
    have found so far list textures as .tga but they are in fact .dds so they need
    to be saved as .dds, then opened with photoshop7 (or any graphics program that
    supports .tga and dds formats).
    Open a new file in photoshop 7: 512 x 512 or 256 x 256 - then open and select
    the largest square in the .dds file, then copy and paste into the new file and
    save as tga. Some of the freelancer files are only 128 x 128 but when you
    paste ps7 will literally show you if your new file is the wrong size.
    
    For instance the textures used in the above model are:
    
    Grille02 - Bretonian 256 x 256
    Pipes1 - Bretonian 256 x 256
    Kusari1b - modified Kusari 256 x 256
    Brglass1 - sampled Kusari canopy colour 128 x 128
    Weaponplate2 - freelancer general equipment texture 128 x 128
    Wraith3 - modified Kusari with added layers 512 x 512
    Wraith3-1 - modified layered Kusari (wraith3) 512 x 512
    
    I prefer to use larger textures for larger area's and vice versa... one thing
    you can do is do all your textures larger, then reduce them in size once you
    have decided how they look, so your mat file is smaller... This seems to work
    better for individual files rather than a single composite file. One advantage
    I find is that if a single texture is NOT right or not done correctly then
    only the section textured in that texture is missing in game rather than the
    whole thing, making the job of tracking a fault much easier.
    
    following are pictures of the tex's in ps7 i'll be back later to apply them..
    
    http://members.optusnet.com.au/~audioele/mypic82.JPG
    http://members.optusnet.com.au/~audioele/mypic83.JPG
    http://members.optusnet.com.au/~audioele/mypic84.JPG
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    How To Make A Black Hole By Dracon
    
    heres how to make a black hole:
    
    first add this to solararch.ini:
    
    [Solar
    nickname = Blackhole_Sphere
    type = PLANET
    DA_archetype = solar\blackhole\blackhole_core.3db
    material_library = solar\blackhole\blackhole.txm
    solar_radius = 3000
    mass = 1000000000000
    
    [Solar
    nickname = Blackhole_Well
    type = PLANET
    DA_archetype = solar\misc\blackhole.3db
    solar_radius = 100000
    mass = 1000000000000
    
    
    then add this to the system you want:
    
    [Object
    nickname = BlackHole1
    pos = 60000, 0, 0
    rotate = 0, 0, 180
    ambient_color = 0, 0, 0
    archetype = Blackhole_Sphere
    ring = Zone_BH, solar\blackhole\bh.ini
    spin = 0, 0, 0
    
    [Object
    nickname = BlackHole2
    pos = 60000, 0, 0
    rotate = 0, 0, 180
    ambient_color = 0, 0, 0
    archetype = Blackhole_Well
    spin = 0, 0, 0
    
    [zone
    nickname = Zone_BH
    pos = 60000, 0, 0
    rotate = 0, 0, 0
    shape = ring
    size = 3000, 700, 200
    sort = 99.500000
    
    you can of course edit some of this stuff, like the position and rotation,
    and the nicknames if you want
    
    credit goes to Nephilim for helping me with the solararch.ini configurations
    
    ***EDIT***
    
    the blackhole well with not work with the following starsphere:
    
    basic_stars = solar\starsphere\starsphere_stars_noband.cmp
    complex_stars = solar\starsphere\starsphere_bw02_stars.cmp
    nebulae = solar\starsphere\starsphere_bw02.cmp
    
    this is because it has a conflict with a sprite of some sort in the
    starsphere, which causes the bg of the sprite not to go trasparent and merge
    with the rest of the starsphere (ie there is this big black square picture
    plastered to your starsphere)
    
    The sphere doesn't need a material library (it's pitch black, after all).
    That particular .txm is in fact called by bh.ini to form the accretion disc
    and other effects (jets?).
    
    Making the well spin around its vertical axis creates the illusion of a
    hypnotizing whirlpool, very cool.
    
    ring = Zone_BH, solar\blackhole\bh.ini ==>> this produces a funky-looking
    CIRCULAR BAND of miniature accretion discs... there has to be another
    parameter (disc/plane?) to tie bh.ini into the big picture (and to add jets,
    which are currently MIA).
    
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    How To Change The Starting Ship In Multiplayer by Captain Tylor
    
    I've not yet seen a tutorial for flying something other than that sissy
    starflier in every MP server I go to, so here's a tutorial for your reference,
    to change the ship new characters get without them needing to download
    anything. This type of mod can work with the patch, so long as your ship
    doesn't have anything "illegal" like a uber shield or hull, or some other
    infinite item. Best of all, you don't need to modify two or three files like
    maybe other tutorials have stated. The only file you'll be modding is
    mpnewcharacter.fl
    
    You'll need to use a ini decompressor/extractor, like BiniQBU or BWS ini
    editor. I prefer using a command line decompressor with a batch file, but you
    should use what seems most comfortable to you. You'll also need a reference to
    decipher those IDs. I recommend using *** IDS_NAMES *** to Friendly Names
    (http://www.lancersreactor.com/t/forum/topic.asp?topic_id=10201&forum_id=18&Top
    ic_Title=%2A%2A%2A+IDS%5FNAMES+%2A%2A%2A+to+Friendly+Names&forum_title=Freelanc
    er+Editing+Forum&cat_title=&M=False) created by vovin. It deciphers the IDs in
    the following files:
    
    DATA\SHIPS\loadouts.ini
    DATA\SHIPS\ships_arch.ini
    DATA\EQUIPMENT\weapon_equip.ini
    DATA\EQUIPMENT\engine_equip.ini
    DATA\EQUIPMENT\misc_equip.ini <--powerplants
    DATA\EQUIPMENT\st_equip.ini <--shields
    DATA\EQUIPMENT\select_equip <--commodities
    
    I want to make this clear, you won't be altering these files. extract them to
    a txt format and have them available as you make your mod.
    
    PART 1:
    
    First, let's take a look at the default ship used. This is pulled directly
    from the loadout.ini file in the DATA\SHIPS folder:
    
    [Loadout
    nickname = msn_playerloadout
    archetype = ge_fighter <--ship referenced by nickname in shiparch.ini
    equip = ge_gf1_engine_01 <--engine
    equip = shield01_mark01_lf, HpShield01 <--shield
    equip = ge_fighter_power01 --powerplant
    equip = ge_s_scanner_01 <--scanner. comes in two flavors
    equip = ge_s_tractor_01 <--tractor beam. usually the same for every ship.
    equip = ge_s_thruster_01, HpThruster01 <--thruster
    equip = li_gun01_mark01, HpWeapon01 <--justice Ilaser
    equip = li_gun01_mark01, HpWeapon02 <--justice I laser
    equip = LargeWhiteSpecial, HpHeadlight <--these are the lights for your ship.
    equip = SlowSmallOrange, HpRunningLight01
    equip = SlowSmallOrange, HpRunningLight02
    equip = SlowSmallOrange, HpRunningLight05
    equip = contrail01, HpContrail01
    equip = contrail01, HpContrail02
    equip = DockingLightRedSmall, HpDockLight01
    equip = DockingLightRedSmall, HpDockLight02 --right down to here. -->
    cargo = ge_s_battery_01, 3 <--batteries on board
    cargo = ge_s_repair_01, 3 <--nanos on board.
    
    from archtype on down, you can copy and paste the above into your
    mpnewcharacter.fl file, but it still won't work properly. first you need to
    change
    
    archetype = ge_fighter
    
    to this:
    
    ship_archetype = ge_fighter
    
    then you need to comment out
    %%PACKAGE%%
    at the bottom. just put a ; in front of it so it'll look like
    ;%%PACKAGE%%
    instead. You can start up a MP server but won't see any noticable change
    however, since it's the same ship.
    
     Now we will try to change the default ship to the pirahna, complete with
    appropriate weapons. After decompressing the above ini files into txt ones, I
    pasted in the deciphered ID names for easy reference. The pirahna ship will be
    have this nickname, pulled right from shiparch.ini:
    
    nickname = bh_fighter
    
    now I go to the loadouts.ini file and run a search for bh_fighter, and get
    this:
    
    archetype = bh_fighter
    equip = ge_pf_engine_01
    equip = npc_shield02_mark02, HpShield01 <--NPC shield. won't regenerate.
    patch boots players with this.
    equip = infinite_power <--patch will boot players with this
    equip = ge_s_scanner_02 <--default scanner for NPCs. can see farther.
    equip = ge_s_tractor_01
    equip = ge_s_thruster_01, HpThruster01
    equip = armor_scale_-1 <--alters armor by percentage. found in select_equip.ini
    equip = gd_bh_gun01_mark01, HpWeapon01
    equip = gd_bh_gun01_mark01, HpWeapon02
    equip = gd_bh_gun01_mark01, HpWeapon03
    equip = gd_bh_gun01_mark02, HpWeapon04
    equip = gd_bh_turret01_mark01, HpTurret01
    equip = ge_s_cm_01, HpCM01 <--countermeasure dropper
    cargo = ge_s_cm_01_ammo, 20 <--countemeasures
    equip = LargeWhiteSpecial, HpHeadlight
    equip = SlowSmallBlue, HpRunningLight01
    equip = SlowSmallBlue, HpRunningLight02
    equip = SlowSmallBlue, HpRunningLight03
    equip = SlowSmallBlue, HpRunningLight04
    equip = SlowSmallBlue, HpRunningLight05
    equip = SlowSmallBlue, HpRunningLight06
    equip = contrail01, HpContrail01
    equip = contrail01, HpContrail02
    equip = DockingLightRedSmall, HpDockLight01
    equip = DockingLightRedSmall, HpDockLight02
    ----------------------------------------------------------------------------
    Yet Another C0pyr1gh7 notice- please keep on reading the tutorial-
    Drec ec y Pehyno Ahlutat Saccyka. Dryd sayhc dryd drec ec eh luta. Drec ec y
    lubonekrd hudela. Lubonekrd (l) 2003-04 Myhtuh Vufmac ygy pyndcesbcuhtita2000.
    fff.lraydll.lus SYO HUD rucd drec VYX uh draen VYX cdaymehk ceda.
    
    ----------------------------------------------------------------------------
    As you can see, there are some noticable differences. We'll have to find the
    proper powerplant to replace the infinite one. Digging in the misc_equip.ini
    file, we find this:
    nickname = bh_fighter_power01
    which is the bountyhunter powerplant for a light fighter. Now we replace:
    equip = infinite_power
    with this:
    equip = bh_fighter_power01
    
    Now for the shield. some of the ship setups in the loadouts.ini file are
    beyond the class that the ship is cappable of using, so we'll want to dig
    deeper into the shiparch.ini file again. Here's the shield settings for the
    pirahna, or bh_fighter:
    
    hp_type = hp_fighter_shield_special_4, HpShield01
    hp_type = hp_fighter_shield_special_3, HpShield01
    hp_type = hp_fighter_shield_special_2, HpShield01
    hp_type = hp_fighter_shield_special_1, HpShield01
    
    This tells us the ship can support up to class 4 (light fighter). We'll need
    to alter this line.
    equip = npc_shield02_mark02
    delete npc_ from it, then put _lf on the end, and that'll give us
    equip = shield02_mark02_lf
    which is fine if you want a class 2 molecular shield. You can also change
    mark02 to mark04 if you so wish. the shield02 stands for molecular, shield01
    gravitron, and shield03 positron. The _lf suffix stands for light fighter, _hf
    for heavy fighter, and _fr for freighter shield.
    
    You can leave equip = ge_s_scanner_02 as it is, or just change 02 to 01
    instead. Gameplay won't really be different using the deep scanner instead of
    the typical one.
    
    Next, we'll look at the weapons. I looked up gd_bh_gun01_mark01 in the
    weapon_equip.ini file and found it to be a Gunslinger Mk I, a class 2 laser.
    Just to be sure, I peek at the pirahna in the shiparch.ini file to see what
    the class restrictions are for each hardpoint, and I find this:
    
    hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02
    hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04
    hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04
    hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04
    
    All hardpoints are capable of mounting class 2 weapons, so I'm satisfied with
    the guns, all except for the turret. Pirahna's don't have turrets, at least
    not the ones we can buy from a base, yet this npc pirahna has a turret. It
    just goes to show, probably every ship has a hidden turret hardpoint that's
    not available for us, but the AI can use. would be kind of unfair, if the AI
    wasn't so bad in one-on-one combat. We delete the turret
    equip = gd_bh_turret01_mark01, HpTurret01
    since we really can't use it. It's possible to leave the turret on, but
    you'll never be able to change it, while you upgrade your other guns. To tell
    if you ship can support turrets or not, look up your ship in the shiparch.ini
    file. If the ship you're using doesn't have HpTurret01anywhere, then it
    doesn't have a customizable turret, and should be left out.
    
    You'll also want to delete
    equip = armor_scale_-1
    since the patch will boot you for having this. if your server isn't patched
    yet, leaving it there won't cause any problems. You could even change it to
    equip = armor_scale_21 to really give yourself an armor boost.
    
    That's about everything I wished to change. Oh yes, it's also possible to
    switch around the engine and powerplant to anything you want. Give your
    pirahna the titan engine and powerplant if you so wish. You'll probably have a
    white exhaust trail very similar to the titan if you do. Now, let's take a
    look at the modified loadout, being careful to change archetype to
    ship_archetype:
    
    ship_archetype = bh_fighter
    equip = ge_pf_engine_01
    equip = shield02_mark02_lf, HpShield01
    equip = ge_s_scanner_02
    equip = ge_s_tractor_01
    equip = ge_s_thruster_01, HpThruster01
    equip = gd_bh_gun01_mark01, HpWeapon01
    equip = gd_bh_gun01_mark01, HpWeapon02
    equip = gd_bh_gun01_mark01, HpWeapon03
    equip = gd_bh_gun01_mark02, HpWeapon04
    equip = ge_s_cm_01, HpCM01
    cargo = ge_s_cm_01_ammo, 20
    equip = LargeWhiteSpecial, HpHeadlight
    equip = SlowSmallBlue, HpRunningLight01
    equip = SlowSmallBlue, HpRunningLight02
    equip = SlowSmallBlue, HpRunningLight03
    equip = SlowSmallBlue, HpRunningLight04
    equip = SlowSmallBlue, HpRunningLight05
    equip = SlowSmallBlue, HpRunningLight06
    equip = contrail01, HpContrail01
    equip = contrail01, HpContrail02
    equip = DockingLightRedSmall, HpDockLight01
    equip = DockingLightRedSmall, HpDockLight02
    
    hmm, something seems to be missing. let's add 15 nanos and batteries, the
    limit for the pirahna to the bottom of this loadout:
    
    ship_archetype = bh_fighter
    equip = ge_pf_engine_01
    equip = shield02_mark02_lf, HpShield01
    equip = ge_s_scanner_02
    equip = ge_s_tractor_01
    equip = ge_s_thruster_01, HpThruster01
    equip = gd_bh_gun01_mark01, HpWeapon01
    equip = gd_bh_gun01_mark01, HpWeapon02
    equip = gd_bh_gun01_mark01, HpWeapon03
    equip = gd_bh_gun01_mark02, HpWeapon04
    equip = ge_s_cm_01, HpCM01
    cargo = ge_s_cm_01_ammo, 20
    equip = LargeWhiteSpecial, HpHeadlight
    equip = SlowSmallBlue, HpRunningLight01
    equip = SlowSmallBlue, HpRunningLight02
    equip = SlowSmallBlue, HpRunningLight03
    equip = SlowSmallBlue, HpRunningLight04
    equip = SlowSmallBlue, HpRunningLight05
    equip = SlowSmallBlue, HpRunningLight06
    equip = contrail01, HpContrail01
    equip = contrail01, HpContrail02
    equip = DockingLightRedSmall, HpDockLight01
    equip = DockingLightRedSmall, HpDockLight02
    cargo = ge_s_battery_01, 15 <--batteries added
    cargo = ge_s_repair_01, 15 <--nanos added
    
    That's looking much better. Typically, you'll want to leave the lights and
    contrails alone. We now have a ship setup that can be pasted into the
    mpnewcharacter.fl file.
    
    Now for some notes:
    ge_s_thruster_01 is the default thruster. the 01 can be changed up to 04 to
    give you the max thruster. There is no limitations for the type of thruster
    that can be mounted on your ship.
    ge_s_cm_01 is your countermeasure dropper. you can change the 01 to 02 for
    the intermediate one, or 03 for the advanced one. make sure you make a
    corresponding change to ge_s_cm_01_ammo as well.
    
    That pretty much concluded my tutorial on changing the starting ship for your
    own server. I'd also like to thank Drepanon for his excellent server side mod
    that showed me how to alter the mpnewcharacter.fl file to make these changes.
    
    
    
    ===============================================================================
    IV.  The Testing Process
    
    Easy just install freelancer into two different places. That way if something
    goes wrong you can use the other one!
    
    ===============================================================================
    V.  Tools and Programs
    
    HCl's UTF Editor
    (http://www.lancersreactor.com/t/editing/download/download.asp?id=202)
    Tyson Schoepflin's BiniQDU v1.1
    (http://www.lancersreactor.com/t/editing/download/download.asp?id=199)
    .thn DeCompiler (http://hosted.nihilogic.dk/freelancer/fled-thorn.zip)
    
    I will add more as I find tutorials that require them.
    
    ===============================================================================
    VI.  Frequently Asked Questions
    
    =====Systems Crashes======
    
    Q: Upon entering my system through the jumpgate/jumphole, or before I leave
    the jumpgate/jumphole the system crashes to desktop! What's Wrong?
    
    A1:Asteroids and Nebula entries
    
    Check: do you have an [asteroids entry without a zone, or vica versa (Zone
    for the asteroids field, no [asteroids entry - same goes for the nebula.
    What to do - comment out the zone and the asteroids entry with ; (semi
    colons) which will render them unreadable by the game.
    
    A2: Populations around the jumphole/gate exit:
    
    Check: Population around the particular zone - see what you have arriving
    there. Easiest way is to comment out all the entries again as above (see below
    for an example) and try your system again, see if you crash.
    example
    [zone
    nickname = Zone_hole2
    pos = 12000, 0, -45000
    shape = Sphere
    size = 3000
    property_flags = 131072
    sort = 99
    ;toughness = 40
    ;density = 4
    ;repop_time = 25
    ;max_battle_size = 4
    ;pop_type = Background
    ;relief_time = 35
    ;;faction_weight = fc_m_grp, 10
    ;;encounter = area_scout, 9, 0.670000
    ;;faction = fc_m_grp, 0.260000
    Notice that the parts commented out have two differences. The ;; part is to
    do with faction and encounter. There might be multiple of these, so if you
    manage to get back into your system after this, bring them back ONE at a time
    until you find which one crashes you. Then you can eliminate/narrow down on
    the problem there.
    
    A3:Missing Universe.ini entry for system
    
    Check: universe.ini file - do you have an entry for your system? Is it
    correct with a custom ids number?
    example
    [system
    nickname = Br08
    file = systems\Br08\Br08.ini
    pos = 6, 2
    visit = 0
    strid_name = 261900
    ids_info = 66700
    msg_id_prefix = gcs_refer_system_br08
    Position is where on universe map it is -don't clash with others! File is
    where your system ini files are located, strid name is the ids name for your
    system, info is the info, msg_id_prefix is the NPC's referring to your system
    (pre-recorded message, so nothing said for mine!)
    
    A4:Spelling Errors
    Check : That you have spelt several things correctly, firstly, the system
    folder and ini file is correct, and secondly that the universe.ini entry is
    correct. Once you have done this start with other things.....
    
    A5:Systems_shortest_path.ini file not updated with your sys
    Check : In the universe folder - three files.
    1) Systems_shortest_path.ini
    2) Shortest_legal_path.ini
    3) Shortest_illegal_path.ini
    Yep - there is a bit to do here, but it needs doing!
    First off - systems_shortest_path.ini file:
    This is how systems are linked up - quick intro to it right now:
    Starts with an example below (my custom again!)
    [SystemConnections
    Path = Br08, Br08, Br08
    Path = Br08, Li01, Br08, Li01
    Path = Br08, Bw10, Br08, Bw10
    
    So what does it mean? - First off - path = Br08 well path is the route. the
    shortest route is path = system (the one its talking about), going too,
    connections through, connections through.
    Easier if an example eh?
    Path = Br08, Li01, Br08, Li01 means path from Br08 to Li01 - goes through
    Br08 to Li01. Lets make this bigger then to understand;
    Path = Br08, Li01, Br08, Br07, Br06, Br05, Br04, Br03, Br02, Br01, Li01
    
    Means - Br08 --> Li01, goes from Br08>br07>Br06>Br05>br04>etc to Li01
    So from Br08 to Br07, then onto Br06 system, through there to Br05 etc etc to
    Li01.
    
    Okay - now you need this for YOUR system...basics of this - just where it is
    connected too......(saves headaches)so if conncted to Li01 and Li02 then you
    would have:example
    [SystemConnections
    Path = Br08, Br08, Br08
    Path = Br08, Li01, Br08, Li01
    Path = Br08, Li02, Br08, Li02
    The first one, from itself to itself through itself - they all have that okay
    - its for internal i assume (internl jumpholes - eg Li01a_to_li01b and
    Li01b_to_Li01a)
    Now - do the same for shortest_legal_path.ini and also for
    shortest_illegal_path.ini (strictly speaking, jumpgate = legal, jumphole =
    illegal - but i do both........saves time later if i put others in  )
    
    Still crashing when entering the system? If you have a fully made system -
    and not the foundations of a system - then you are in trouble - this list
    could go on all night........... The first few here are the major causes with
    systems crashes, others include having incorrect encounters parameters - check
    you entries for enoucnters have the correct :
    [EncounterParameters
    nickname = tradelane_trade_armored
    filename = missions\encounters\tradelane_trade_armored.ini
    for them as well
    Also - other problems can be incorrect zones (minefields etc) so comment out
    all zones with the ; rule - use this to remove stuff from the system without
    deleteing. ; once per line at the start of the text.
    
    Q: I crash randomly at various parts, but always in the same area of my
    system! Is my zone a killer?
    
    A1:Check - well this is a darned common cause of crashing......the biggie. It
    is your encounters parameters for various zones.
    What you should do is find the zone for the area you are in, ie for a station
    or jumpgate/hole - find the zone that is for your area:
    Example
    
    [Zone
    nickname = Zone_Li07_02_pop
    pos = -10500, -4000, -48500
    rotate = 0, 0, 0
    This sort of entry start means a base population okay....so the entry after
    this, concerning encounters (from this part downwards)
    toughness = 18
    density = 12
    repop_time = 25
    max_battle_size = 4
    pop_type = li_p_grp, single_base_law
    relief_time = 35
    population_additive = false
    density_restriction = 4, unlawfuls
    
    Is the area of trouble - comment out the whole area of this with semicolons (
    like so:
    ;toughness = 18
    ;density = 12
    etc etc - then try again. Check that you don't have multiple zones in the
    area that might overlap and cause crashes. Some zone designations themselves
    seem to crash - ie trying to make patrols rather than populations!
    
    Q:When I try to launch into my system from a base, or jump into the system -
    it never loads..I sit staring at a blank screen, and it finally crashes to
    desktop! What's wrong?
    
    A1:Check
    This is very common when errors with tradelane numbers occur. Make sure that
    your tradelanes are numbered properly, and that they do not either a)overlap
    (two entries for th same trade lane) or b) don't 'go' to their own tradelane
    next.
    Example : Two tradelane entries - commented out parts after main bodyadded by
    me:
    
    [Object
    nickname = Li07_Trade_Lane_Ring_19
    ids_name = 260920
    pos = -38000, -2000, 21000
    rotate = 0, 225, 0
    Archetype = Trade_Lane_Ring
    ids_info = 66170
    prev_ring = Li07_Trade_Lane_Ring_19 ;whoops - causes game to freeze
    next_ring = Li07_Trade_Lane_Ring_20
    behavior = NOTHING
    reputation = li_p_grp
    difficulty_level = 1
    tradelane_space_name = 261834
    loadout = trade_lane_ring_li_01
    pilot = pilot_solar_easiest
    [Object
    nickname = Li07_Trade_Lane_Ring_19 ;oh crap - should be 20 - crash time
    ids_name = 260920
    pos = -33000, -2500, 26000
    rotate = 0, 225, 0
    Archetype = Trade_Lane_Ring
    ids_info = 66170
    prev_ring = Li07_Trade_Lane_Ring_20 ;whoops - causes freezing of game!
    next_ring = Li07_Trade_Lane_Ring_21
    behavior = NOTHING
    reputation = li_p_grp
    difficulty_level = 1
    loadout = trade_lane_ring_li_01
    pilot = pilot_solar_easiest
    
    Q:Never ending jumptunnel on the way to my system! What to do?
    
    A1:Incorrect goto command in your jumphole/gate entry
    Check
    Your systems entry concerning the jumpgate/ hole:
    Example
    [Object
    nickname = Li07_to_Iw03
    ids_name = 260610
    pos = -83000, 0, 0
    rotate = 0, -90, 0
    Archetype = jumpgate
    msg_id_prefix = gcs_refer_system_Iw03
    ids_info = 66145
    jump_effect = jump_effect_elite3
    reputation = li_p_grp
    behavior = NOTHING
    difficulty_level = 1
    goto = Iw03, Iw03_to_Li07, gate_tunnel_elite3
    loadout = jumpgate_li_01
    pilot = pilot_solar_easiest
    
    Check these lines are correct:
    nickname = Li07_to_Iw03
    goto = Iw03, Iw03_to_Li07, gate_tunnel_elite3
    If you have Nickname = Li07_to_Iw03_hole
    and the other entry in the destination system has the same entry - then you
    should have this instead:
    Nickname = Li07_to_Iw03_hole
    goto = Iw03, Iw03_to_li07_hole, gate_tun...........
    adapt the entry as necessary. Make sure the 'goto' a)matches the destination
    system(ie the Iw03, part) and b)Matches the destinations systems nickname (ie
    the Iw03_to_Li07 part)
    
    Q:I created a new field of asteroids/nebulae, but I crash when trying to get
    to the system. GRR!
    
    A1:Check: Your actual asteroids.ini file for your field! Did you just copy
    and rename one? If so, it probabily has exclusion zones, set for another
    system. Rename the exclusion zones for your system if you need them, or simply
    get rid of them. If you might want them later - just comment them out!
    
    Q:My tradelane ends, but i carry on!!
    
    A1:Check: That your last ring doesn't have a next entry for it! Also - check
    that if you try to dock and crash, that the rings are correctly numbered
    too......
    
    Q:I dock with my rings, but it docks with the one with red lights instead of
    green, and then I go the wrong way!
    
    A1:Check : You muppet - the rings are orientated the wrong way - its a very
    common cause. Flip the rotation around, ie:
    rotate = 0, 90, 0
    Becomes
    rotate = 0, -90, 0
    
    Q:I try to dock with rings, but it says I am too far away....but I am sat
    infront of the bloody things!
    
    A1:Check That you don't have two rings with the same ring number in different
    locations! That cause for this prob!
    Example
    [Object
    nickname = Li07_Trade_Lane_Ring_20
    ids_name = 260920
    pos = -33000, -2500, 26000
    And also
    [Object
    nickname = Li07_Trade_Lane_Ring_20
    ids_name = 260920
    pos = 10000, 0, 47000
    
    Q:I can fly through my sun without dying.
    
    A1:Check You need a zone of damage around the sun itself - look in other
    systems ini files for examples - same for planets
    
    Q:I dock with my station but the screen goes blank and nothing happens!!
    
    A1:Check - Hey there - you forgot your universe.ini entry for your station!!
    Put one in!
    example
    [Base
    nickname = Li01_01_Base
    system = Li01
    strid_name = 196766
    file = Universe\Systems\Li01\Bases\Li01_01_Base.ini
    BGCS_base_run_by = W02bF35
    Make sure you have the nickname for the base right, and its pointing to its
    base.ini file in the correct folder!
    
    Q:I crash when docking with my station!
    
    A1:Check Have you got a base.ini file for you base? Is it in the correct
    directory? If not, get one. Copy and paste another bases into your bases
    folder, then make sure that you rename it for your base, and that INSIDE the
    base.ini file that the rooms are named correctly!:
    Example
    [BaseInfo
    nickname = Li07_07_Base
    start_room = Deck
    
    [Room
    nickname = Bar
    file = Universe\Systems\Li01\Bases\Rooms\Li07_07_Bar.ini
    
    [Room
    nickname = Deck
    file = Universe\Systems\Li07\Bases\Rooms\Li01_07_Deck.ini
    
    [Room
    nickname = ShipDealer
    file = Universe\Systems\Li01\Bases\Rooms\Li01_07_shipdealer.ini
    
    Oops - notice the messups!? The folder is incorrectly named for the bar, the
    deck.ini is incorrect fo the deck, and everything is wrong for the last one.
    Also check that the first part:
    [BaseInfo
    nickname = Li07_07_Base
    start_room = Deck
    is named correctly for your base too - the start_room = deck means when you
    dock, you appear in the deck! (cityscape for city, unless an alcoholic - at
    which point, make it the bar eh?!)
    
    
    Q:When I dock with my base I get a black screen, with the symbols for nav map
    in the top corner, as well as a little ship icon.
    
    A1:Check You haven't got any rooms for you base yet - you just have the
    base.ini fiel for your base - get some rooms, make sure they are named well
    too!!
    
    Q:I can never see my stuff on the map/its always on the bloody map.
    
    A1:Check: Your systems ini file for the following type of line:
    Visit = X
    Where x= 0 - means you can see the thing as soon as you come within range -it
    will appear on your nav map and stay there for ever and a day.
    x = 128 - you will be lucky to find it........ever - it won't have a name on
    the map, and generally its darned tough to find the dam thing!
    
    Q:The object I have made doesn't have a map icon thing.
    
    A1:Check: The solararch.ini file for something along these lines:
    Example
    shape_name = NAV_jumpgate
    shape_name = NAV_smallstation
    shape_name = NAV_surpriseX
    
    These give it the appearance icon on the nav map of what the object is. The X
    is for a wreck, jumpgate is for.............erm..............hmm - i wonder
    
    Q:I cannot find the station I made.
    
    A1:Check: Have you made an entry in the universe.ini file for you station?
    See previous post for what the entry should look like!
    
    A2:Check: The location in your files of where your station is!
    
    Personally when i create something, i start off by plonking it exactly 2k
    from the jumphole into my system. This way, during testing i can test
    everything for it quickly and simply. I can create a zone, set everything to
    sell, rep, alliance, loadouts, everything - jump in and check it all - then
    move it to where i wish it to be. This is a common problem when you first make
    something........you just aint put it where you think!
    
    Put it with the same coords as the jumpgate/hole - then just increase 1 value
    by a few k! This works especially well if you crash as well - autosave means
    you respawn at jumpholes/gates - so you are already there - no flying to
    location to check if its working!
    
    ==========Problems with Bases or from bases================
    Following part is trouble shooting what happens with bases. typically - if
    you crash when launching it is to do with a systems problem - ie Encountes,
    loadouts, zones
    
    Q:When I land at the base - I have no rooms there
    
    A1:Check That your base.ini file has references to the ini's for the rooms -
    ie deck/cityscape, shipdealer, bar etc etc. Check with other files to see what
    you need in there. Then - make sure that you have the correct rooms. Typically
    - if you see yourself stood on a deck or cityscape - but have no other rooms,
    then you need to edit your base ini file Example: Li01_01_base.ini to
    accomodate the rooms you wish for, and Hotspots which are the links to the
    rooms you want to go to. Then copy and paste with renaming rooms into the
    rooms folder for you system
    
    Q:I crash when I try to go to the shipdealer
    
    A1:Check: The packages for sale in the market_ships.ini file - are they
    correctly named? Then check the goods.ini file - are the ships packages for
    sale at your base correctly named in their? Do they reference a ship in the
    shiparch.ini file correctly?
    
    If not, ammend the entries and try again. If its a conversion of a ship here
    (ie - take a gunship) then its can have up to four probs - wrong
    market_ships.ini entry, bad goods.ini package, bad goods.ini hull entry and
    finally a bad shiparch.ini entry. Make minimum packages for ships first - they
    only need the following:
    A scanner
    A Engine
    A Power source
    These can be any type as well - so can be copied from other ships
    Basically check, check and check again!
    
    Q:When I select a ship for sale in the shipyard, I then crash to desktop
    
    A1:Check: The package for your ship. It is invariably wrong, or has equipment
    that does not exist (custom equipment). Having typos, stuff mounted on non-
    existent mounts etc are all probs here
    
    Q:When I go to the weapons dealer/commodities dealer, I crash to desktop
    before arriving!!
    
    A1:Check: That the stuff you have sold is correct, and that the entries are
    correct.
    Here is a quick reminder!:
    Guns:
    Need
    Weapons_equip.ini entry for your gun. Copy and paste an old one, then modify it
    Weapons_goods.ini entry for the gun - the guns package - copy and paste an
    old package instead - change the numbers and values accordingly. Make sure
    your nicknames are unique here - call them my_gun01 -> my_gun100 - its easy to
    keep track of then, and easy to modify too.
    
    Once done (make sure you entries nicknames are correct and also the ids
    number in the goods.ini file) then make sure nicknames are correct for selling
    guns in the market_misc.ini file (sells guns etc).....copy an older entry from
    a base for a gun, then just change the nickname to match the package nickname
    for the gun in the weapons_good.ini
    
    Commodities
    Several files also need adjusting here:
    Select_equip.ini
    Goods.ini
    and then also the market_commodities.ini as well - only change the
    commodities_per_faction.ini if you want NPC's to carry your commodity (i think
    - i haven't actually tried this - just making an 'educated' guess! Let me know
    if wrong.
    Once again - check ids numbers here, nicknames especially too! The goods.ini
    file and so on are sensitive to ids numbers and nicknames - so they are the
    prime culprits. The icons don't affect whether you crash or not at all - so it
    aint that stuff!!
    
    A2:Check: Did you try to change other values in the market_commodities.ini,
    market_ships.ini and market_misc.ini? If so - what did you change? Always
    remember what you changed, and be prepared to change it straight back if there
    are crashes. There ARE limits to what you can do!
    
    Q:There are no people on my bases, in the rooms, anywhere at all!!
    
    A1:Check: The mbases.ini file. Have you made an entry for your base here? Did
    you give it a population, but remember the nicknames and so on for you base
    correctly-- and change the chaps accordingly?! Check away
    
    Q:I made it so that the base was populated, but now whenever I want a mission
    it tells me to get on better with the base faction first!
    
    A1:Check: Oh nasty problem in the fact that goodbye to several hours of life
    here! You need to do the following:
    [iMbases.ini file - open this up, and take a peek. Inside you will see the
    following:
    example
    [BaseFaction
    faction = li_n_grp
    weight = 13
    offers_missions = true
    mission_type = DestroyMission, 0.000000, 0.112387, 30
    
    This will actually be this do to corruption when you open the file up!
    
    offers_missions = mission_type = DestroyMission, 0.000000, 0.112387, 30
    See the problem is that offers_missions = true has had the true part taken
    out by the application used to decrypt the ini files (biniq). Time for a 2
    hour manual edit of the file back to normal!
    
    Q:No missions are ever on offer at my base!!
    
    A1:Check: That you have included some vignettes into your systems ini file
    example - Li07.ini file. A typical vignette entry looks like this:
    Example: another of mine
    [zone
    nickname = zone_Li07_destroy_vignette_6
    pos = 43343, 0, -1791
    shape = SPHERE
    size = 10000
    sort = 99.500000
    vignette_type = field
    
    Make sure that you have nicknames that are unique too!!
    
    A2:Check: that in your mbases.ini file you actually have offers_missions =
    true at all! Also - that your population offers missions as well.
    
    Q:I don't get rumours/bribes from my stations population or bartender!
    
    A1:Check: Back to Mbases.ini file - as this is where your problem lies - has
    your bartender got any bribes or rumours to tell you set for him?
    EXAMPLE: Here is one taken from the Manhat bartender - similar for you
    
    bribe = li_p_grp, 10000, 16101
    bribe = co_be_grp, 10000, 16100
    bribe = co_nws_grp, 10000, 16100
    bribe = co_kt_grp, 10000, 16100
    bribe = gd_bh_grp, 10000, 16100
    rumor = base_0_rank, mission_end, 2, 131232
    rumor = base_0_rank, mission_end, 3, 131233
    rumor = base_0_rank, mission_end, 1, 131222
    rumor = base_0_rank, mission_end, 1, 131225
    rumor = base_0_rank, mission_end, 1, 131226
    rumor = base_0_rank, mission_end, 1, 131228
    
    Do you have parts looking like this below him?
    You can create custom rumours and stuff as well - also custom bribes for the
    base too - just need for rumours to set your own rumour in the ini file- then
    slap its ids number in there, and for bribes - add your faction of choice, and
    set the values!
    
    Q:I crash whenever I open the navmap!
    
    A1: Have you overloaded the system/navmap?
    
    I experienced this one in NY, after checking and rechecking the loadouts file
    which I had changed,along with all the other little files i had changed, i
    turned back to one i hadn't touched for an age..........the system file - why
    would it crash when openening? I did trial and error - i thought i must have
    overloaded my system file (its NY by the way!) so i removed the load of
    objects i had, then i removed the jumphole i made to another system for quick
    testing. I also attempted to change the visablitity o the internal NY
    jumpholes - but too no avail = however, removing the jumphole and nav bouys
    did the trick. This harked back to what Giskard was telling me about manhatten
    having perhaps the maximum amount of objects allowable in a system - if you
    add one more it removes other ones or something. I also thought of something
    else that was mentioned -i believe this came from Reynen - that you cannot
    have more than 8 jumpholes/gates to ta system - well, i had ten i think (2
    internal J/H's. one to Texas and one to colorado, 1 to mytest system - then
    the jumpgates - alaska., texas, colorado, LA, Magellan) - 10 in all, however,
    they all worked to use though - so unless they cause crashes due to the nav
    map?? Hmm - however, if you get a stumper and you have lots of objects, or
    loads of jumpholes - give this a try! My system is now working again - and
    luckily i have nothing to remod as i save files first (incase they aren't the
    cause - at which point, i can just put the old one back in rather than remod
    the damned thing!!)
    
    ===============================================================================
    VII.  Random Tips, Hints and Information
    
    A few little hints on modding
    
    1) Always back up your files regularly!
    
    2) Build the mod in FLMM, then whenever you make several succesful
    adjustment, create a zip of your folder to keep a 'backup' before progressing!
    
    3) Always, no matter how tedious, check individual changes until you are very
    comfortable with modding. If you mod three things, then find you crash - it is
    much more difficult to narrow it down, than making one!
    
    4) I always copy old entries, then change them, instead of writing new ones.
    One thing it will do is erase 90% of spelling errors!! Also it makes it
    quicker. For systems, you won't even need to give objects new ids names to
    check that stuff works at all, so its quick, simple and easy! Once you find
    your asteroids working, or your jumpholes/gates working, give them the custom
    ids names at that point!
    
    5) Don't hit your computer - it is your mistake......also, it could then be
    an expensive mistake!
    
    Basic rule of thumb for system crashes ...If you can get to your system - but
    you crash in various parts as you go round, then your problems lie in the
    encounters you have set up (see Frequently Asked Questions)
    ===============================================================================
    VIII.  Reader Emails
    
    1. Neal Eckett
    -------------------------------------------------------------------------------
    Hi,
    Thought you may be interested, you may already know this but I have found the
    ini file to control the thrusters speed.
    
    It is in \Data\Equipment and is called st_equip.ini
    I have the advanced thrusters on my ship and in the top of this file found
    the mathing [Thruster] section. It is ge_s_thruster_04 (ids_name = 263740)
    
    The higher you set the max_force parameter, the faster you go when you hit
    tab! Also, you can change the power drain. I have set my max thrust to 600000
    and power drain to 10. It kicks ass. I can outrun any ship and also now can
    cross the maps as if they had trade lanes in them (good for exploring the
    maps!).
    
    Hope you find this useful.
    
    Neal
    -------------------------------------------------------------------------------
    ===============================================================================
    IX.  Contact Information
    MSN: bartsimpsondude_2000 (at) msn.com
    email: projecteclipsor (at) msn.com   (be sure to put Subject as FAQ!!!)
    
    ===============================================================================
    X. Revisions
    1.0 (8-4-03,14:39) Just sent the guide to GameFAQ's awaiting submission...
    First write.
    1.1 (8-5-03,12:52) I added some more tutorials.
    1.2 (10-9-03, 18:08) Sorry for taking so long but i changed some stuff fixed
    typos... etc.  Still awaiting submission
    1.21 (10-9-03, 21:40) Added some stuff to warn against using online (DON'T DO
    IT!) and I hope they will accept my faq with the changes
    1.3c (10-10-03, 16:12) Ok, My FAQ was accepted at version 1.1. I just added
    some to FAQ and Random Tips
    1.4c (10-24-03, 0:37) Added another FAQ, put faq list in top.\
    1.41. (10-24-03, 1:13) Random spellchecks
    1.5c (1-19-04, 11:04) Long time ... well I finished putting up harriers
    tutorial...
    1.51o (2-13-04, 17:49) New letter with a tip today and new section (Reader
    Emails)
    1.52m (2-13-04, 18:35) New Tutorials!
    1.53x (2-14-04, 10:13) Added some nice pictures of 1s and 0s and a numbery
    thing I found on the net.
    1.54x (2-20-04, 18:54) Added a change of logo...
    ===============================================================================
    XI.  Document Information
    
    I would like to thank:
    God: Obviously...
    Computer Gaming World: for releasing the demo to get me hooked
    Microsoft: For Making the Game
    The Folks at Best Buy: For supplying the game
    Reynen: For his Tutorial
    CW: For his Tutorial
    Jackel: For his Tutorial
    BobTheDog: For his Tutorial
    Rolo2020: For his Tutorial
    giskard: For his Tutorial
    Owning_Joo: For his Tutorial
    Chips: For compiling information for the FAQ and Random Tips
    harrier: For his tutorial
    Captain Tylor: For his tutorial
    Dracon: For his tutorial
    Osrevad: For that ASCII art up there (check logo for contact info)
    The Folks at Lancers Reactor!!:For all their support and Random Tips and FAQ
    questions
    
    I'm basicly stating what I said at the top...
    
    Legal Disclaimer
    
      This document is Copyright 2003-2004 Landon Fowles aka bartsimpsondude2000.
      It may not be reproduced nor retransmitted in any form without prior consent
      from the authors.  It may not be altered, published, sold, given as an
      incentive to buy, etc. without advance permission from the authors.  All
      outside sources which have contributed to the making of this guide in some
      form have been cited in the last section of the guide.
    
    ---5134 Lines 181982 bytes!----
    
    My nice little picture of 1's and 0's. I call it Random Insanity
    010101000110100001101001011100110010000001101001011100110010000001100001001000
    0001000010011010010110111001100001011100100111100100100000010001010110111001100
    0110110111101100100011001010110010000100000010011010110010101110011011100110110
    0001011001110110010100101110001000000101010001101000011000010111010000100000011
    0110101100101011000010110111001110011001000000111010001101000011000010111010000
    1000000111010001101000011010010111001100100000011010010111001100100000011010010
    1101110001000000110001101101111011001000110010100101110001000000101010001101000
    0110100101110011001000000110100101110011001000000110000100100000011000110110111
    1011100000111100101110010011010010110011101101000011101000010000001101110011011
    1101110100011010010110001101100101001011100010000001000011011011110111000001111
    0010111001001101001011001110110100001110100001000000010100001100011001010010010
    0000001100100011000000110000001100110010110100110000001101000010000001001100011
    0000101101110011001000110111101101110001000000100011001101111011101110110110001
    1001010111001100100000011000010110101101100001001000000110001001100001011100100
    1110100011100110110100101101101011100000111001101101111011011100110010001110101
    0110010001100101001100100011000000110000001100000010111000001101000010100111011
    1011101110111011100101110011000110110100001100101011000010111010001100011011000
    1100101110011000110110111101101101001000000100110101000001010110010010000001001
    1100100111101010100001000000110100001101111011100110111010000100000011101000110
    1000011010010111001100100000010001100100000101010001001000000110111101101110001
    0000001110100011010000110010101101001011100100010000001000110010000010101000100
    1000000111001101110100011001010110000101101100011010010110111001100111001000000
    111001101101001011101000110010100101110
    
    My other random thought of the day:
    5468697320697320612042696E61727920456E636F646564204D6573736167652E205468617420
    6D65616E732074686174207468697320697320696E20636F64652E2054686973206973206120636
    F70797269676874206E6F746963652E20436F707972696768742028632920323030332D3034204C
    616E646F6E20466F776C657320616B61206261727473696D70736F6E64756465323030302ED0A07
    777772E636865617463632E636F6D204D4159204E4F5420686F7374207468697320464151206F6E
    2074686569722046415120737465616C696E6720736974652E00