Important Message

You are browsing the archived Lancers Reactor forums. You cannot register or login.
The content may be outdated and links may not be functional.


To get the latest in Freelancer news, mods, modding and downloads, go to
The-Starport

**Tutorial** - Multiple bases on one planet

Here you find the different tutorials on editing and MODing Freelancer

Post Sat Sep 25, 2004 3:44 am

**Tutorial** - Multiple bases on one planet

Introduction
This tutorial is going to show you how to create more than one base at one planet. Think of it like a sector or a different part of a planet. You will have more than one docking object each of which leads to a different base. We are going to use the docking ring and mooring fixture at planet manhattan.

Tools needed
The freelancer sdk
The utf editor
I am going to assume you know how to create a mod folder for flmm

step 1 create a 'Mini-me' Planet archetype

Go to the solars/planet folder and create a new folder called PLANET_EMPTY
then copy the file planet_earthcity_3000.sph from the folder PLANET_EARTHCITY
to PLANET_EMPTY.

Rename planet_earthcity_3000.sph to planet_empty_10.sph in the PLANET_EMPTY folder.

Open the UTF editor and edit planet_empty_10.sph as follows:
Go to the radius node and change the 3000.000000 entry to 10.000000 and save the file as planet_empty_10.sph
(Make sure you have interpret data as ... set to float array)

What have we done? We have created a .sph file for a planet archetype with a radius of 10. Why? because we are going to hide this mini planet in Manhattan and this will be the location for our second base

Now we must create the entry for this planet in solararch.ini which is located in the solar folder. So open it up and append the following entry to it

[Solar <----------------------don’t forget to close the bracket
nickname = planet_empty_10
ids_name = 60203
ids_info = 60204
type = PLANET
DA_archetype = solar\planets\planet_empty\planet_empty_10.sph
material_library = solar\planets\planet_earthcity.txm
material_library = solar\planets\detailmaps\detailmap_ground01.txm
material_library = solar\planets\detailmaps\detailmap_city.txm
material_library = solar\planets\atmosphere.txm
material_library = solar\planets\planet_earthcity\planet_earthcity.mat
mass = 1000000
solar_radius = 10

Save solararch.ini and proceed to the next step









Edited by - Chips on 10/31/2004 6:49:28 AM

Post Sat Sep 25, 2004 3:45 am

Step 2 li01.ini entries
open up li01.ini from the systems folder Li01
scroll down to the entry for li01_01 planet manhattan i.e.

[Object
nickname = Li01_01
ids_name = 196766
pos = -33270, 0, -33039
rotate = 0, -10, -10
ambient_color = 255, 0, 0
Archetype = planet_earthgrncld_4000
ids_info = 65759
spin = 0, 0.001000, 0
atmosphere_range = 4200
burn_color = 160, 222, 245
base = Li01_01_Base
reputation = li_p_grp
visit = 1

copy this and paste it as follows

[Object
nickname = Li01_01b <----------------changed the nickname
ids_name = 196766 <------------ can change to a new one, I just won’t bother
pos = -33270, 0, -33039 <------------the location should stay the same!
rotate = 0, -10, -10<------------------ ditto
ambient_color = 255, 0, 0
Archetype = planet_empty_10<----------most important
ids_info = 65759 <------- can change to a new one, I just won’t bother
spin = 0, 0.001000, 0
atmosphere_range = 4200<-----------this should stay the same
burn_color = 160, 222, 245
base = Li01_01b_Base<------------- the new base
reputation = li_p_grp
visit = 1

That’s it for the Planet, we have no need for death zones or atmosphere burn zones, The main base Li01_01 has those entries.

Now we need to change the docking fixture entry to make ships docking at the mooring fixture go to the new base Li01_01b

Find the entry for the docking fixture for li01_01
i.e.
[Object
nickname = Li01_docking_fixture_1
ids_name = 261166
pos = -33268, 350, -28769
Archetype = docking_fixture
ids_info = 66489
reputation = li_p_grp
behavior = NOTHING
dock_with = Li01_01_Base
base = Li01_01_Base

change it to

[Object
nickname = Li01_docking_fixture_1
ids_name = 261166
pos = -33268, 550, -28769 <-----------i'm going to up the z figure by 200
Archetype = docking_fixture
ids_info = 66489
reputation = li_p_grp
behavior = NOTHING
dock_with = Li01_01b_Base<---------make it dock with the new base
base = Li01_01b_Base<---------make it dock with the new base

Excellent, we are done with the Li01 file. We have created an entry for the new base Li01_01b and changed the docking fixture to go there and added some height to it to keep us out of the way of the docking ring. We did this because we are going to set the fixture to be able to dock/undock large ships

Now we must complete the entries for the new base:

Step 3 Complete the new base entries
Go to data/universe/systems/li01/bases folder and copy LI01_01_Base.ini and paste it as LI01_01b_Base.ini

open LI01_01b_Base.ini and rename all the Li01_01 entries to Li01_01b
i.e. file = Universe\Systems\Li01\Bases\Rooms\Li01_01_cityscape.ini
becomes:
file = Universe\Systems\Li01\Bases\Rooms\Li01_01b_cityscape.ini
(don’t forget to change the baseinfo entry to nickname = Li01_01b_Base)


Then go into the rooms folder and copy and paste the following files like this:
Li01_01_bar.ini to Li01_01b_bar.ini
Li01_01_cityscape.ini to Li01_01b_cityscape.ini
Li01_01_equipment.ini to Li01_01b_equipment.ini
Li01_01_shipdealer.ini to Li01_01b_shipdealer.ini
Li01_01_trader.ini to Li01_01b_trader.ini

There is no need to change anything in the files themselves here (the base will look the same as normal, you can change it of course, we are just going for a quick win)

Let’s go back to data/universe and open up universe.ini

Make a new entry for the new base
[Base
nickname = Li01_01b_Base
system = Li01
strid_name = 196766 <--------same ids number as per li01.ini
file = Universe\Systems\Li01\Bases\Li01_01b_Base.ini < the base ini we created
BGCS_base_run_by = W02bF35

Append this after the Li01_01_Base entry not at the end of the file as bases should be declared before the system is.
Save universe.ini

Now for mBases.ini (this controls who appears on the base, reps, who can land etc.)
Go to data/missions and open it up
Start at:

[MBase
nickname = Li01_01_Base
local_faction = li_p_grp
diff = 1
msg_id_prefix = gcs_refer_base_Li01_01_Base

and copy all the way down until you come to the next entry. i.e.

[MBase
nickname = Li01_02_Base
local_faction = co_me_grp
diff = 1
msg_id_prefix = gcs_refer_base_Li01_02_Base

paste the data at the end of the file and change the nickname to
[MBase
nickname = Li01_01b_Base
We now have an entry for the base. As before I am just copying from the original Manhattan entry, so the base will have the same npc’s, bribes, missions etc. you can change this as required.

Now let’s sell some stuff at our new base
Go to data/equipment
Open up market_ships.ini and add the following

[BaseGood
base = Li01_01b_base
marketgood = gf4_package, 13, -1, 1, 1, 0, 1, 1
marketgood = gf5_package, 24, -1, 1, 1, 0, 1, 1
marketgood = gf6_package, 30, -1, 1, 1, 0, 1, 1
we are going to sell the falcon, hawk and eagle here

Open up market_misc.ini and append the following
(I just copied freeport 9's entries here)

[BaseGood
base = Li01_01b_base
MarketGood = gd_z_gun01_mark02, 6, 0, 10, 10, 0, 1
MarketGood = gd_z_gun01_mark03, 16, 0.200000, 10, 10, 0, 1
MarketGood = gd_z_gun01_mark04, 22, 0.400000, 10, 10, 0, 1
MarketGood = gd_z_gun01_mark05, 26, 0.750000, 10, 10, 0, 1
MarketGood = gd_z_turret01_mark01, 6, -1, 10, 10, 0, 1
MarketGood = gd_z_turret01_mark02, 16, 0, 10, 10, 0, 1
MarketGood = gd_z_turret01_mark03, 26, 0.400000, 10, 10, 0, 1
MarketGood = ge_s_thruster_04, 6, -1, 10, 10, 0, 1
MarketGood = missile01_mark01_ammo, 0, -1, 50, 50, 0, 1
MarketGood = missile01_mark02_ammo, 2, -1, 50, 50, 0, 1
MarketGood = missile01_mark03, 10, 0, 10, 10, 0, 1
MarketGood = missile01_mark03_ammo, 10, -1, 50, 50, 0, 1
MarketGood = missile01_mark04, 22, 0, 10, 10, 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_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, 10, 0.200000, 10, 10, 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_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, 22, 0, 10, 10, 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_ammo, 2, -1, 50, 50, 0, 1
MarketGood = cruise_disruptor01_mark02, 26, 0, 10, 10, 0, 1
MarketGood = cruise_disruptor01_mark02_ammo, 26, -1, 50, 50, 0, 1
MarketGood = torpedo01_mark01, 10, 0, 10, 10, 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_ammo, 0, -1, 50, 50, 0, 1
MarketGood = mine01_mark02_ammo, 2, -1, 50, 50, 0, 1
MarketGood = mine01_mark03, 10, 0, 10, 10, 0, 1
MarketGood = mine01_mark03_ammo, 10, -1, 50, 50, 0, 1
MarketGood = mine01_mark04, 22, 0, 10, 10, 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_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, 16, 0, 10, 10, 0, 1
MarketGood = mine02_mark03_ammo, 16, -1, 50, 50, 0, 1
MarketGood = mine02_mark04, 26, 0, 10, 10, 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_ammo, 2, -1, 50, 50, 0, 1
MarketGood = ge_s_cm_03, 6, -1, 10, 10, 0, 1
MarketGood = ge_s_cm_03_ammo, 6, -1, 50, 50, 0, 1
MarketGood = shield02_mark06_lf, 16, -1, 10, 10, 0, 1
MarketGood = shield02_mark07_lf, 22, -1, 10, 10, 0, 1
MarketGood = shield02_mark08_lf, 26, -1, 10, 10, 0, 1
MarketGood = shield02_mark09_lf, 30, -1, 10, 10, 0, 1
MarketGood = shield02_mark06_hf, 16, -1, 10, 10, 0, 1
MarketGood = shield02_mark07_hf, 22, -1, 10, 10, 0, 1
MarketGood = shield02_mark08_hf, 26, -1, 10, 10, 0, 1
MarketGood = shield02_mark09_hf, 30, -1, 10, 10, 0, 1
MarketGood = shield02_mark06_fr, 16, -1, 10, 10, 0, 1
MarketGood = shield02_mark07_fr, 22, -1, 10, 10, 0, 1
MarketGood = shield02_mark08_fr, 26, -1, 10, 10, 0, 1
MarketGood = shield02_mark09_fr, 30, -1, 10, 10, 0, 1
MarketGood = ge_s_battery_01, 0, -1, 100, 100, 0, 1

Finally open up market_commodities.ini and append the following (once again copying fp9)

[BaseGood
base = Li01_01b_base
MarketGood = commodity_oxygen, 0, -1, 0, 0, 1, 6
MarketGood = commodity_water, 0, -1, 0, 0, 1, 8
MarketGood = commodity_alien_organisms, 0, -1, 150, 500, 0, 4
MarketGood = commodity_food, 0, -1, 150, 500, 0, 2.931000
MarketGood = commodity_alien_artifacts, 0, -1, 150, 500, 0, 0.700000
MarketGood = commodity_fertilizers, 0, -1, 150, 500, 0, 8.500000
MarketGood = commodity_H_fuel, 0, -1, 150, 500, 0, 0.800000
MarketGood = commodity_pharm, 0, -1, 150, 500, 0, 3.578900
MarketGood = commodity_polymers, 0, -1, 150, 500, 0, 9
MarketGood = commodity_consumer_goods, 0, -1, 150, 500, 0, 8
MarketGood = commodity_engine_components, 0, -1, 150, 500, 0, 5
MarketGood = commodity_terraforming_gases, 0, -1, 0, 0, 1, 16
MarketGood = commodity_sidearms, 0, -1, 150, 500, 0, 3.750000

Ok now we have created our base entries so it will function and sell different equipment to the main Manhattan base

All that’s left is some fine-tuning

step 4 fine-tuning

Now we have to make the mooring-fixture accessible to our ships

Go back to data/solar/solararch.ini
Open it up and find the following entry

[Solar
nickname = docking_fixture
ids_name = 261158
ids_info = 66141
type = STATION
DA_archetype = solar\dockable\space_docking_fixture.3db
material_library = solar\Solar_mat_tink.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
LODranges = 0, 6000
mass = 10000.000000
loadout = docking_fixture
docking_sphere = moor_medium, HpDockMountA, 5.000000
docking_sphere = moor_medium, HpDockMountB, 5.000000
docking_sphere = moor_medium, HpDockMountC, 5.000000
docking_sphere = moor_large, HpDockMountD, 5.000000
solar_radius = 300
hit_pts = 999999961690316250000000000000000000.000000

change it as follows:

[Solar
nickname = docking_fixture
ids_name = 261158
ids_info = 66141
type = STATION
DA_archetype = solar\dockable\space_docking_fixture.3db
material_library = solar\Solar_mat_tink.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
LODranges = 0, 6000
mass = 10000.000000
loadout = docking_fixture
docking_sphere = jump, HpDockMountA, 50.000000 <----------important
docking_sphere = moor_medium, HpDockMountB, 5.000000
docking_sphere = moor_medium, HpDockMountC, 5.000000
docking_sphere = moor_large, HpDockMountD, 5.000000
solar_radius = 300
hit_pts = 999999961690316250000000000000000000.000000
phantom_physics = true <-------------new line for cap ships


What we have done is to change the HPdockmountA to a 'jump' entry. This allows you to dock with the base. I have also changed the range for dockings from 5 to 50 meters.

The phantom_physics = true is there to stop any nasty undocking problems with very large capships (they can become stuck on the docking fixture)

Normal fighter/ freighter ships can dock here, but to allow a cap ship to dock you must go to the shiparch.ini in data/ships and change the mission property line for capships to
mission_property = can_use_jumps

e.g. a large train has the following
[Ship
ids_name = 237055
ids_info = 66609
nickname = ge_train
LODranges = 0, 300, 450, 750, 950, 4500
msg_id_prefix = gcs_refer_shiparch_ctransport
mission_property = can_use_med_moors <-----------change to can_use_jumps

Once you have done that you can make a capship flyable (there are plenty of tutorials for that already) and dock with the base and sell them from there.

Summary

We have accomplished the following

1) A planet with 2 bases selling a total of 6 ships
2) Cap-ships can only dock with the mooring fixture and leave that way as well
You can add more bases etc. and could change the ids_name and ids_info to describe diff sectors
e.g. planet Manhattan transport sector, fighter sector etc. or planet Manhattan dodgy town, lawful town etc.


Edited by - Bane42 on 9/25/2004 4:46:28 AM

Post Sat Sep 25, 2004 5:56 pm

One little thing to make your life simpler:

You don't need the hidden planet at all. As long as you have a "base =" entry in the docking fixture or docking ring, then you're ok.

[Object
nickname = Li01_docking_fixture_1
ids_name = 261166
pos = -33268, 550, -28769
Archetype = docking_fixture
ids_info = 66489
reputation = li_p_grp
behavior = NOTHING
dock_with = Li01_01b_Base
base = Li01_01b_Base <----- If you have this, then you don't need the hidden planet

Post Sun Sep 26, 2004 12:14 am

Thks Wasabe
that is so simple I didnt think of it !

The only thing then would be to make sure you changed your ids_info entries to make sure it appeared in infocardmap.ini on the dock fixture entry in order that the right baseinfo appeared when u landed (i.e. you get the base info not a dock fixture)

I have noticed that if I only use the docking_fixture and if I leave the ids_name entry for the dock_fixture at 261166, it does not appear in the base list on the navmap, if I change it to 196766, it does. What I found is happening, is that to appear in the base list, the ids_name must be referenced to a base entry with a planet or station archetype somewhere.

So the only way to keep the name and description of the mooring fixture and the base separate, and to have the base appear in the base list (i.e. Manhatten alpha sector for example) would be to use the hidden planet approach.
( i think )


Edited by - Bane42 on 9/26/2004 1:15:56 AM

Edited by - Bane42 on 9/26/2004 1:16:19 AM

Edited by - bane42 on 9/27/2004 1:48:26 PM

Post Fri Oct 08, 2004 8:59 am

bane42, good tutorial. Thanks.
I have 2 things I would like to contribute.

First you would like the base to be displayed on the navmap. In that case add to the solararch.ini entry the following line: shape_name = NNM_SM_MEDIUM_FOREST_MOON

But you would probably like to have the base displayed in the hud also.
Using the empty planet_10, the child planet (base) will only be in your hud when you are within 3K distance. The docking ring will already be in the hud when within 10K range.
If the target planet has a radius of 3000, an empty planet with a radius of 2950 will fit into that. So instead of creating an empty planet with a radius 10, I suggest creating a planet that has a slightly smaller radius than the parent planet. In doing it this way the 2nd planet (child) will be in your hud for the same distance as the parent planet will be.


BuckDanny

Post Tue Apr 05, 2005 3:55 am

You don´t need all that. All you need is FLE. Then you just have to add the new
Docking Ring with FLE. I´ve tried it out myself. i added 3 DR´s at Planet Toledo
and it worked.

Post Tue Apr 05, 2005 5:30 am

FLE is nice for those doing small mods without much modification or for seeing a visual representation, but I much prefer ini coding over using FLE. It is easier to trace your steps when things go wrong, less prone to bug problems (unless you are prone to making lots of typo's) and keeps your files cleaner and more efficient.

Post Sun May 01, 2005 3:45 pm

the point of the tutorial is not that you simply add docking rings, its that the docking rings or fixtures go to differeent bases
*edit although I know you can simply tell the docking rings to go to diff places, if u create a planet entry you can have the diff bases appear on the radar, whereas with a docking ring you would have to add a new ids name and info to get something the same.
Lol whatever is the easiest I guess in the circumstances

Edited by - bane42 on 5/2/2005 4:41:58 AM

Post Fri May 05, 2006 4:35 am

I only use FLE for systems, lol. Should they also work in MP using FLE? Cause mine don't, =P.

Anyhow, good tutorial!

Return to Freelancer Editing Tutorial Forum