_______________________________________________________________________________
\-----------------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