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

Making a System: Anwers to common questions.

The general place to discuss MOD''ing Freelancer!

Post Mon Apr 21, 2003 5:13 pm

Making a System: Anwers to common questions.

Hello.

Keywords System, Building, Asteriods, Nova, Nebula, Blackhole, Bases, Tradelane, Sun, Planet, Lighting.

Im sick of searching for this stuff and not finding it and not reading about it in the guides available so heres a rough list of missing items I couldnt find in this forum via my own searches. Please note, some questions are answered in part if your willing to search and read several threads but mostly the no thread has a complete answer to most of these.

Im going to pick up from where the system guide leaves off.

Heres the guide.
http://www.lancersreactor.com/t/editing ... s.asp?id=6

Bases:

Bases are seperated into 2 types.
Planet and Stations, the configs list them as Deck or Cityscape under Bases/Rooms.

Solar/Loadouts.ini contains the configs for most bases if you want to make your own. Solar/asteroidarch.ini lists all the asteriod types available in the Asteriods folder in the same directory. Handy for reference. Star Colors are in solar/stararch.ini when your ready to set the up your systems look and feel.

Setting up custom rooms is delt with by Data/petaldb.ini, you can see several existing examples in there. Not hard to follow.

Note if you want to sell stuff on your stations you need a deck1 and deck2 file or the equipement commodities never stay open.

Building a system.

Most systems use tradelanes and jumpgates. Heres an explanation of how these works. First a not on coordinates.

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

Systems are made up from zones. Zones are very important to any system builder because they are used to assign encounters and system objects values.

Heres whats needed to put a nebula in your new system.

[Nebula
file = solar\nebula\yo01_frankjg_smog_cloud.ini
zone = Zone_yo01_farscape_asteriods

The file points to Data/solar/nebula because thats where my nebula config is. Most of the files in there contain exclusion zones that must be edited if they are to work with your system. So dont just add a nebula without checking the config first. You only need to check the exclusions zones, you can leave rest of the config alone if you like.

Back in your system ini file. Mines yo01.ini.

This matches my zone with the above solar nebula ini file i created. The zone is created in my yo01.ini further down.

[Nebula
file = solar\nebula\yo01_frankjg_smog_cloud.ini
zone = Zone_yo01_farscape_asteriods

Heres my Zone.

[zone
nickname = Zone_yo01_farscape_asteriods
pos = 39000, 0, -1500
shape = SPHERE
size = 20000
property_flags = 65
spacedust = asteroiddust
spacedust_maxparticles = 125
visit = 128
sort = 99.500000

Please not this is a basic zone, you can add encounters to this too if you like but im still working all this out my self so I wont go into too much detail here. The two important lines are.

nickname = Zone_yo01_farscape_asteriods
pos = 39000, 0, -1500

Pos is the position of the center of our nebula. 0, 0, 0 is the system used. works out to (from center) West (-)/East of center, higher/ (-) lower of from center, (-)(-) North or south of center. The (-) means its a negative number. 0,0,0 being the center of your system.

We want our Asteroids at the East edge just below the center line so we use pos = 39000, 0, -1500.

But we have a trade gate there so we dont want asteriods blocking it so we use an excusion zone. Heres mine.

[zone
nickname = ZONE_yo01_farscape_exclusion
pos = 39000, 0, -1501
shape = SPHERE
size = 6000
property_flags = 131072
visit = 128
sort = 99.500000

I made my exclusion zone slightly off from the original asteriod zone (ok nebula but i use it too keep asteriods out but allow the nebula in ok) just incase that matters. I kept getting crashes when i had them in the exact location. Not sure what this means yet but adding 1 to the pos does work. What this does is it sets up an area that the Solar configs are not allowed to use. You have add exclusion = ZONE_yo01_farscape_exclusion in the exclusion part of your solar/asteriod or nebular config. A good trick is to add it to the asteriod config but not the nebula one as this allows the nebula in to that zone but no nasty rocks.

Part 2 coming up.

Giskard












Edited by - giskard on 21-04-2003 19:42:09

Post Mon Apr 21, 2003 5:27 pm

This would be the third one, but it has some things the others do not, looks good, please continue


Dawn's tut

Edited by - Maimer1 on 21-04-2003 18:28:20

Post Mon Apr 21, 2003 5:29 pm

o, and u may want to move it to the actual tutorial forums.

Post Mon Apr 21, 2003 5:36 pm

Hello again.

BTW this is not a guide, its just getting info people need into this forum. I'll write a proper guide later and explain all this better.

Part 2.

We covered how to add solar objects to a system without having to do too much editing. Now lets look at planets and suns. There are a lot of different configurations available, you can mix and match your own planets and suns as much as you like but thats an advanced topic which im skip for now and just get the basics posted.

A sun needs 2 things, the sun and its death zone to kill players who get too close. Heres mine.

[Object
nickname = yo02_Sun
ids_name = 458763
pos = 30000, 0, 30000
ambient_color = 255, 255, 255
archetype = sun_2000
star = med_white_sun
atmosphere_range = 9000
burn_color = 160, 222, 245
visit = 0
ids_info = 66162

[zone
nickname = Zone_yo02_sun_death
pos = 30000, 0, 30000
shape = SPHERE
size = 8000
damage = 1000
sort = 99.500000
density = 0
relief_time = 0

The first example has "atmosphere_range = 9000" whilst the second has "size = 8000". You should be able to see that the player will start to burn at 9000 and finally die at 8000 using these figures. This is the only thing you really need to know to use stars but you can customise them heavily and make some truely nice looking systems in the process. Please note that Nebula settings have a option that allows a % of light from a star to shine through. This makes from some great visual effects. I recommend you try them.

Planets.

Planets require 3 zones and a docking ring if you want ships to docks. Heres mine.

This first one sets up my planet using my own name and info ids from my own Dll. Do a search for FL ini Referer and Reshack in this forum to find some info about this. Even better just go to this ship guide and read what it says, the process is the same for adding names and info to planets as it is to ships. In fact, most things work that way. I learned how to do it from Zen my self so his explanation is understandable with a little practice

http://forum.duwx.com/viewthread.php?tid=44

You may notice planets dont have a size entry. Instead they have a burn zone which is pasted further down.

Object
nickname = yo01_01
ids_name = 458761
pos = 4000, 0, 4000
rotate = 0, 0, 0
ambient_color = 255, 0, 0
Archetype = planet_earthgrncld_4000
ids_info = 458756
spin = 0, 0.001000, 0
atmosphere_range = 4200
burn_color = 160, 222, 245
base = yo01_01_Base
reputation = nm_p_grp
visit = 1

Whats important here. Well the nickname is, it has to be unique, but for customing planets the Archetype = planet_earthgrncld_4000 is the key, you can change thus to match any planet you like. There are several variations kicking about. Go look for them. I'd post the location but off hand i dont have it. Reputation is also needed, it sets up who the planet is friendly too. Use it. rotate = 0, 0, 0 is a command that can be added to other parts of your system config, its often missing but you can use it. Especially on stations and other objects, Just stick it below pos and it will work.

Docking rings are pain to place. I tend not to try and place it at odd angles, diagonal, up or down, left or right are easy. Anything else is a pain. See tradelanes for positioning objects further down. However, docking rings much be placed outside of the atmosphere or ships will burn up when they dock. I worked out 200m is probably good but 300m away from the surface is safest. Again reputation = nm_p_grp is important, the docking ring has guns and will shoot at people with bad reps with the planet/ docking ring. Rotation will almost certainly need setting too. The docking master is space_costume = , robot_body_A and he adopts the name listed under ids_name when players dock. So if you add your docking ring name to a Dll, it will get used.

[Object
nickname = Dock_Ring_yo01_01
ids_name = 458760
pos = 900, 0, 900
rotate = 0, -135, 0
Archetype = dock_ring
ids_info = 66141
dock_with = yo01_01_Base
voice = atc_leg_f01a
space_costume = , robot_body_A
reputation = nm_p_grp
behavior = NOTHING
difficulty_level = 1
loadout = docking_ring_li_01
pilot = pilot_solar_easiest

Same as the star, this is where the player dies if he gets this close to the planet. Size is important, it should be about the size you want your planet to be.

[zone
nickname = Zone_yo01_newmars_death
pos = 4000, 0, 4000
shape = SPHERE
size = 4100
damage = 2000000
sort = 99.500000
density = 0
relief_time = 0
population_additive = false

The Burn Zone, this is the area between the surface of the planet and the upper atmosphere that slowly damages the players ship. Your basically setting up how big the Atmosphere will be. It has to be bigger then the death zone size. You may notice in the game that if you fly close enough to a planet you can see the atmosphere. Not sure if thus is taken from the burn zone but if it is you can make the planets death zone very small and the burn zone, very big and make Gas Giants

Neat Ay

[zone
nickname = Zone_yo01_001_Planet_yo01_01_atmosphere_burn
pos = 4000, 0, 4000
shape = SPHERE
size = 4600
edge_fraction = 0.070000
spacedust = atmosphere_gray
spacedust_maxparticles = 250
sort = 99

Part 3 coming up.

Post Mon Apr 21, 2003 6:00 pm

This is not a tutorial. Its just going over some basic info thats missing from other posts. I'd be ashamed to call it a tutorial. Its missing a huge amount of stuff.

PArt 3:

Tradelanes.

Tradelanes are very easy to use and place. They need to be regular distances apart only so they look right but you dont actually need hundreds. You can get away with just 2. Though anybody that gets attacked in a tradelane would have a long cruise home if you did that.

There are few rules when placing tradelanes.

1) Rotation is important, get it wrong and you may fly sideways down a tradelane.
2) All tradelane gates must line up so the effect looks right. Otherwise the effect appears in front of you even if the gate is not in front of you. Nasty
3) Failing to link the tradelanes correctly produces some interesting effects.

Heres some examples of interesting effects.
a) Endless tunnels. I call this the barrel of the gun and may even delibrately use this feature at some point.
b) player 2 correctly setup tradelanes in exactly the same spot at the end of a tradelane cause autopilot to stay on. Another interesting point which may be useful later but for not should be avioded.

Tradelanes are all about placement and rotation. They do have facing an that facing decides which direction your sent in. The game understands the facing to be from the first to last tradegate but if the first is pointing the wrong way, say 180degs away from the second, you wil fly off in the wrong direction. so make sure all tradelanes have the same rotaion values, if your wrong then they are all wrong and its easy to fix that way.

Heres an example of tradelane placement.

Important things to look at are Pos, Rotation, nickname and Next ring and prev ring. The rest you can cut and past at will.

The first entry doesnt have any prev ring entry because there are no previous rings. This trade lane ring should be called yourring 1 (the name is important but can be anything, this is just easier to understand and read).

[Object
nickname = yo01_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 = nm_p_grp
difficulty_level = 1
loadout = trade_lane_ring_li_01
pilot = pilot_solar_easiest

The second contains a next and prev ring entry, prev is set to 1, next is set 3, matching your ring names as i have.

[Object
nickname = yo01_Trade_Lane_Ring_2
ids_name = 458758
pos = -37000, 0, 0
rotate = 0, -90, 0
Archetype = Trade_Lane_Ring
ids_info = 66170
prev_ring = yo01_Trade_Lane_Ring_1
next_ring = yo01_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 = yo01_Trade_Lane_Ring_3
ids_name = 458758
pos = -29000, 0, 0
rotate = 0, -90, 0
Archetype = Trade_Lane_Ring
ids_info = 66170
prev_ring = yo01_Trade_Lane_Ring_2
next_ring = yo01_Trade_Lane_Ring_4
behavior = NOTHING
reputation = nm_p_grp
difficulty_level = 1
loadout = trade_lane_ring_li_01
pilot = pilot_solar_easiest

[Object
nickname = yo01_Trade_Lane_Ring_4
ids_name = 458758
pos = -21000, 0, 0
rotate = 0, -90, 0
Archetype = Trade_Lane_Ring
ids_info = 66170
prev_ring = yo01_Trade_Lane_Ring_3
next_ring = yo01_Trade_Lane_Ring_5
behavior = NOTHING
reputation = nm_p_grp
difficulty_level = 1
loadout = trade_lane_ring_li_01
pilot = pilot_solar_easiest

[Object
nickname = yo01_Trade_Lane_Ring_5
ids_name = 458758
pos = -14000, 0, 0
rotate = 0, -90, 0
Archetype = Trade_Lane_Ring
ids_info = 66170
prev_ring = yo01_Trade_Lane_Ring_4
next_ring = yo01_Trade_Lane_Ring_6
behavior = NOTHING
reputation = nm_p_grp
difficulty_level = 1
loadout = trade_lane_ring_li_01
pilot = pilot_solar_easiest

The last trade lane ring has not next ring enter but has a previous ring entry. This tells the game this is the last ring.

[Object
nickname = yo01_Trade_Lane_Ring_6
ids_name = 458758
pos = -7000, 0, 0
rotate = 0, -90, 0
Archetype = Trade_Lane_Ring
ids_info = 66170
prev_ring = yo01_Trade_Lane_Ring_5
behavior = NOTHING
reputation = nm_p_grp
difficulty_level = 1
loadout = trade_lane_ring_li_01
pilot = pilot_solar_easiest

Placing rings.

Remember the coordinates i posted. Now you have to start using them. Most rings are between 7km and 8km out this translates to 8000 to 9000 apart in yoru config.

The easiest way to place them is in a straight line or diagonally. As the West side of the system is always -50000 and the east is always 50000 with north being -50000 and south being 50000 its easy to see that a tradelane going from west to east would be -50000 then you take - -8000 off per ring.

Eg 50000,0,0 puts the first ring in the middle of the west edge.
43000,0,0 puts one more ring down 8km in (coodinates and kms dont exactly match but to tell you truth, your tradelane rings can be as far appart as you want anyway).
Next would be 37000,0,0

and so on......

Diagonally from the NW to the middle of the map it works the same way only this time the starting figure is -50000,0,-50000. Just remove 7000 or 8000 from both the 50000 figures.

North and south can be set the same too using my coodinates posted further up.

Next we need to sort out the rotation values.

For our tradelane from west to east the values i used was rotate = 0, -90, 0 with the first ring being on the west of the map. This works fine. From the NW to the center the figure is rotate = 0, -135, 0

As you can see, by default the gates point north, eg rotate = 0, -0, 0 so you just need to work out the angle they should be facing to get them in the right place.

The first gate should always point at the last gate though, the other gates use the same rotaion values. You just check they all line up in the game then and reposition them if they dont.

Part 4 Next:

Giskard




Edited by - giskard on 21-04-2003 19:01:24

Post Mon Apr 21, 2003 6:28 pm

Part 4:

Empty base.

If you do search in this forum you will find the word Mbase.ini as the one of the few mentions of whats needed to populate your bases. Mbase.ini

You can find mbase.ini in the data/missions folder.

Now we hit some problems here, for starters, if your not adding to an existing faction systems with a new system for them to control (i didnt so i hit this problem) then your npc voices will appear to have gaps in them when they speak. All this is partly controlled by the mbase file but it does mean to correct it your going to have to record your own voice overs for all the characters in your new system. However if your just making an ExtraNewYork system under the control of the liberty police then your not going to have much of problem.

Mbase enteries are long so im going to cheat and cut and paste only a the bits I need to help me explain whats needed.

You will need the following entries for your bases.

[MBase
nickname = yo01_05_Base
local_faction = fc_or_grp
diff = 5
msg_id_prefix = gcs_refer_base_Br05_03_Base

This just sets up your base and the local controling faction, notice i forget to edit the msg_id line. Must remember to change that. This is important because it tells the game all npcs below this are for this base. If you dont edit anything else. Make sure you do edit those lines above before copying and pasting another bases entry.

You need to copy and past an entire entry for a with a similar amount of rooms to yours. After that, i just changed the affiliation = lines to match the factions i wanted on my base.

The mbase.ini stuff needs more research, its goes heavily into the voice and uniform files. All stuff im working towards but i have a load more stuff to explain before them Such as missions. Which i believe are accessed when vignette exist in a system but i may be wrong.

You will need a good list of factions though to if you get this far so heres a cut and paste of a list i extracted from the dlls my self. The names with no numbers had the same numbers as the faction above it. The factions with no names need further research.

Factions
197509 fc_ouk_grp
197511 fc_f_grp
197512 fc_q_grp
196846 li_n_grp Liberty Navy
fc_ln_grp
196847 li_lsf_grp Liberty Security Force
196848 i_p_grp Liberty Police, Inc
196849 br_n_grp Bretonia Armed Forces
196850 br_p_grp Bretonia Police
196851 ku_n_grp Kusari Naval Forces
fc_kn_grp
196852 ku_p_grp Kusari State Police
196853 rh_n_grp Rheinland Military
fc_rn_grp
196854 rh_p_grp Rheinland Police
196855 co_shi_grp Samura Industries
196856 co_khc_grp Daumann Heavy Construction
196857 co_kt_grp Kishiro Technologies
196858 br_m_grp BMM
196859 co_me_grp Deep Space Engineering
196860 co_be_grp Border World Exports
196861 co_rs_grp Republican Shipping
196862 co_vr_grp Ageira Technologies
196863 co_ni_grp Synth Foods, Inc.
196864 rh_m_grp Kruger Minerals
196865 co_ti_grp Planetform, Inc.
196866 co_ic_grp Interspace Commerce
196867 co_ss_grp Universal Shipping
196868 co_hsp_grp Cryer Pharmaceuticals
196869 co_alg_grp ALG Waste Disposal
196870 co_os_grp Orbital Spa and Cruise
196871 co_nws_grp Gateway Shipping
196872 fc_c_grp Corsairs
196874 fc_ou_grp Outcasts
196875 fc_rh_grp Red Hessians
196876 fc_bd_grp Blood Dragons
196877 fc_j_grp Junkers
196878 fc_h_grp Hogosha
196879 fc_m_grp Mollys
196880 fc_x_grp Xenos
196881 fc_b_grp Bundschuh
196882 fc_g_grp Gaians
196883 fc_lh_grp Lane Hackers
196884 fc_u_grp Unioners
196885 fc_gc_grp Golden Chrysanthemums
196886 fc_lwb_grp LWB
196887 fc_fa_grp Farmers Alliance
196888 fc_lr_grp Liberty Rogues
196889 fc_or_grp The Order
196890 gd_gm_grp Gas Miners Guild
196891 fc_n_grp Nomads
196892 gd_im_grp Independent Miners Guild
196893 gd_z_grp Zoners
196894 gd_bh_grp Bounty Hunters Guild
197510 fc_uk_grp

Post Mon Apr 21, 2003 6:34 pm

Hello.

That will get you a nice looking working system. Its rough list of stuff you need and is still missing a huge amount of data that I have and some i still need to research. However, ive touched on another of the areas for you to fill in the blanks when building a custom system your self. For instance. What i dont say about encounters still needs looking into but what i dont say about nebulas is self explanatory when you read the nebula ini files. The import thing is you know where to look for them.

As for the Encounters & missions, I skipped those parts for now for a reason. Whilst i believe i know whats needed I also know its going to be a big job. However I do know its possible to write custom ai scripts for ships you wish to use in your own encounters. Im still researching just how much can be done in that area but for now i'll leave you with this. Encounters use zones and in some cases patrol paths.

So to use the good ai scripts you must first learn about placing paths for the ai to follow. However, if you master the tradelane ring part of these thread then i doubt you will have any problems following the path examples from any system. They are basically the same as tradelanes it appears but are called paths and are in fact invisable to the player. So they are easier than tradelanes.

Giskard

Post Mon Apr 21, 2003 6:48 pm

Dam forgot about lighting.

[LightSource
nickname = System_LIGHT
pos = 642, 0, 198
color = 255, 255, 255
range = 120000
type = DIRECTIONAL
atten_curve = DYNAMIC_DIRECTION

This is entry from Newyork i think. Lighting is a system is important, it makes your system look and feel different from anybody elses. So play around with the colour and range settings and remember, you can have more than 1 lighting entry. So you can setup some very colourful yet small zones. Id say the best place for system lighting though is at a stars location but thats not the only use for it.

Giskard

Post Mon Apr 21, 2003 6:51 pm

Maimer1:

Your dawn link is the same link i posted in my first message. This thread continues where that tutorial left off. Given the length of this thread i think you will see that the sort of stuff im covering is the other 95% of the material missing from that tutorial.

A point thats been annoying me for the last week.

Giskard

Post Mon Apr 21, 2003 10:02 pm

hmmm, i checked ur link b4 i posted just make sure i didnt lok like idiot and it looks far different, atleast teh beginning is

Post Mon Apr 21, 2003 11:48 pm

Just a note on encounters.

Encounters work like solar objects.

EG

[encounter
your encounter name
Your encounter script (can be a premade one)

Making sure if its a patrol script you do have patrols routes, if its a tradelane you have tradelanes, if its an area script you just need zone areas.

Then in the zone section for the path/tradelane/patrol you setup what factions will use it and call the encounter by name and state a faction it should be under that. If you try adding an encounter to zone without first setting it up at the top of the script it will crash the game.

Theres also an arch section at the time which i believe lists the ships allowed in the system. Not 100% sure about that though.

Giskard

Post Tue Apr 22, 2003 12:05 am

This little thread needs that tutorial anyway. So the links welcome all the same.

Just for the other readers, the all the colour you see listed as xxx, xxx, xxx are Red Green Blue values found on the palette of any good paint package. So you dont have to guess what the colour is, just load of psp7 or photoshop, choose a colour and note down the RGB codes

Giskard

Return to Freelancer General Editing Forum