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

*** Newbie Questions? Look no further! ***

The general place to discuss MOD''ing Freelancer!

Post Thu Jun 19, 2003 9:34 am

*** Newbie Questions? Look no further! ***

Ive set up this thread for any people who dont have any modding experience and just want to fiddle around with FL. If you have any questions just post 'em here and I'll try to answer them for you.

Edited by - Accushot on 9/24/2004 1:09:49 AM

Post Thu Jun 19, 2003 11:27 am

Great - i have a problem. How on earth do you mod??
Frequently asked question - i bet, but i still haven't found anything that tells you how and why to change files, and which ones with what affects it will have. Any chance of a kinda quick crash course intro being posted into how to MOD - starting with something that is easy and straightforward? I haven't found anything yet - and most of the posts leave me baffled!
Cheers
Chips

Post Thu Jun 19, 2003 4:45 pm

For simple modding, you need the BINI uncompressor, which you can get here. Just drag the .ini file onto the icon and it will extract the data to an .ini.txt file, which you can rename to just an .ini file. Also, in any text in this post with a "[" but no ending bracket you need to add the ending bracket, because of the restrictions of HTML. E.g. add an ending bracket on the end of "[object"

To get you started, I'll show you how to add a base to the New York system, to help you get a feel for the game. Here's what you do:

1. Browse to Freelancer/DATA/UNIVERSE/SYSTEMS/LI01 and find the file "Li01.ini". Extract it using the technique mentioned above, then delete "Li01.ini" and rename "Li01.ini.txt" to "Li01.ini".

2. Have a look through the .ini file. It may look complicated but its not. Each block of text basically stands for a different object/zone/whatever in the system.

3. Now, at the very bottom of the file, add this block of text:

[Object ;<--------ADD A CLOSING SQUARE BRACKET HERE, DONT SHOW UP IN THIS FORUM
nickname = Li01_mystation
ids_name = 196773 ;<-------THE NAME THAT SHOWS UP IN GAME, LEAVE FOR NOW
pos = -29000, 0, -26000 ;<--------POSITION IN THE SYSTEM, BY P.MANHATTAN
rotate = 0, 40, 0
Archetype = largestation1 ;<--------OBJECT TYPE
ids_info = 65761 ;<-----INFO THAT SHOWS UP IN GAME
base = Li01_mybase ;<--------OUR NEW BASE
dock_with = Li01_mybase ;<------ALSO OUR NEW BASE
voice = atc_leg_f01
space_costume = br_karina_head, br_karina_body
reputation = li_n_grp ;<-------WHO OWNS IT
behavior = NOTHING
difficulty_level = 3
loadout = space_station_co_01 ;<-------THE WEAPON LOADOUT OF THE STATION
pilot = pilot_solar_easy

4. Now we've created the object in the system, we have to create a file for the base. Browse to DATA/UNIVERSE/SYSTEMS/LI01/BASES and create a new .ini file called "Li01_mybase.ini". This file will contain the data for our new base.

5. Inside this file add the following text:

[BaseInfo
nickname = Li01_mybase
start_room = Cityscape

[Room
nickname = Cityscape
file = Universe\Systems\Li01\Bases\Rooms\Li01_mybase_cityscape.ini

[Room
nickname = Bar
file = Universe\Systems\Li01\Bases\Rooms\Li01_mybase_bar.ini

[Room
nickname = Trader
file = Universe\Systems\Li01\Bases\Rooms\Li01_mybase_trader.ini

[Room
nickname = ShipDealer
file = Universe\Systems\Li01\Bases\Rooms\Li01_mybase_shipdealer.ini

[Room
nickname = Equipment
file = Universe\Systems\Li01\Bases\Rooms\Li01_mybase_equipment.ini

6. This file tells FL where each of the rooms in our base is located. For now, we will just copy the files from Planet Manhattan and rename them for our base. So, find the following files:

Li01_01_cityscape.ini
Li01_01_bar.ini
Li01_01_trader.ini
Li01_01_shipdealer.ini
Li01_01_equipment.ini

and rename them to the following, respectively:

Li01_mybase_cityscape.ini
Li01_mybase_bar.ini
Li01_mybase_trader.ini
Li01_mybase_shipdealer.ini
Li01_mybase_equipment.ini

7. Finally, all we have to do is let Freelancer know that our base exists in the Universe, so browse to DATA/UNIVERSE and find the file "universe.ini". Inside are declarations of all the existing systems and bases in the FL universe. Scroll down, and at the bottom add the following text:

[Base
nickname = Li01_mybase
system = Li01
strid_name = 196775 <------"NEW YORK", LEAVE FOR NOW
file = Universe\Systems\Li01\Bases\Li01_mybase.ini
BGCS_base_run_by = W02bF01

Youre done! Run Freelancer and fly to Planet Manhattan, you should see the station nearby.

Good luck!

Edited by - Accushot on 19-06-2003 17:54:16
(Edit - Changed co-ords of base at last!)

Edited by - Accushot on 16-09-2003 12:10:47

Post Thu Jun 19, 2003 6:55 pm

well I dunno if this is a newbie question, but nobody is answering my thread so I try my luck:

Do you (or anybody) know how to add custom rumors?

Post Fri Jun 20, 2003 4:56 am

What kind of directory structure should a mod have? Let's say I make a 3d ship model, will I set up directories such as ship,data,marketplace etc. to be recompresssed by the BINI uncompressor? Do I need all of these directories? What are the exact 3D model formats that FL uses? Is this the .cmp files? I guess milkshape can convert 3D models from Lightwave (which is what I use) to the native FL format. What kind of picture files do you use for texturing?
I would like some sort of flow chart that would guide the process that I need to do this.

Here's my (very limited) understanding of the process: You create your 3d model (with complete textures?)-> import into milkshape and convert to native FL format. Configure all ini's (where ship is sold, what level weapons it can mount, cargo capacity, number of thrusters) what else am I missing? Load ship into FL directories (BINI uncompressor?) and fly it.

I keep hearing about the .MAT files, what are these? 3D model files? If so, what do the .cmp files do? I probably have a lot more questions, that's all I can think of for now. I sure would love to create some ships, there are a lot of great ship designs from an old Terran Trade Authority book I have. They would make for some awesome ships in this game.

Post Fri Jun 20, 2003 4:14 pm

Im not completely sure about this but to answer both your questions heres what I know about creating rumours...

Extract and open "mbases.ini" and under each base you will see many sections like this:

[GF_NPC
nickname = ew0201_fix_bartender
body = pi_pirate3_body
head = pi_pirate4_head
lefthand = benchmark_male_hand_left
righthand = benchmark_male_hand_right
individual_name = 245130
affiliation = fc_ou_grp
voice = rvp101
bribe = fc_ou_grp, 10000, 16101
rumor = base_0_rank, mission_end, 2, 133162
rumor = base_0_rank, mission_end, 2, 133165
rumor = base_0_rank, mission_end, 2, 133166
rumor = base_0_rank, mission_end, 2, 133168
rumor = base_0_rank, mission_end, 2, 133169
rumor = base_0_rank, mission_end, 2, 133170
accessory = prop_mask_outcast

the rumour = lines list the various rumours that can be passed on by each npc, in this case the bartender. Using a dll editor like FLEd-ids or ResHack you can open misctext.dll and modify/add rumours. For example the first rumour, 133162, corresponds to:

<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><TEXT>Our sworn enemy is Cryer Pharmaceuticals. Cryer is trying to replicate Cardamine so they can take over the drug market with their harmless alternative. It will be legalized, regardless of how dangerous it is. Their ships in this system or in any Outcast space will be destroyed immediately. </TEXT><PARA/><TEXT> </TEXT><PARA/><POP/></RDL>

Either modify these to suit your purposes or create new entries after the rumours and reference them to your npc's.

Generally, the parameters

rumor = base_0_rank, mission_end, 2, 133162

seem to work well, but you can change them to only allow the rumour if certain goals/missions have been completed, for example:

rumor_type2 = freetime_01_02, mission_02_loaded, 1, 393441

which will only allow the rumour during the free-time in mission 2 once the mission has been loaded.

Also of note are the lines reading something like:

bribe = li_p_grp, 10000, 16100

The first string, "li_p_grp", is the faction whose reputation you can have increased. The second is, I think, ther cost multiplier, which changes depending on your current rep with them. The last number is the IDS number for the string, in this case:

You could stand to have a better reputation with %F0v1. I could hack your record for %d0 credits...that should clear things up. Of course that will make you less popular with %F1v1, %F2v1 and %F3v1. What do you say?

These IDS strings are found in resources.dll

Hope this helped.

Post Fri Jun 20, 2003 4:28 pm

spacedrive, Im going to try and answer your Qs one by one, because theres a lot of questions in there.

1. You do not need to re-compress your files with BINI, Freelancer can read the files in their unencrypted format. Compressing the files does reduce the file size, but not significantly.

2. Freelancer uses a .3db format for the various sections of ship models, they can be found in SHIPS/(FACTION)/(SHIP TYPE)/MODELS.

3. The .cmp file file basically brings it all together. If you open a .cmp file with UTF edit you will see nodes such as

bh_portwing_lod1030109200506

Expand these nodes to find information on where hardpoints are, and how the model fixes together.

4. You can find a tutorial on Lightwave -> Freelancer conversion here

5. Im pretty sure the .MAT files contain all the texture information. You have to add to these files if you want to create custom textures, but im not sure how to do this.

Sorry there's not much, but hope this helps.

Post Fri Jun 20, 2003 5:10 pm

BTW guys, this thread was intended to help newbies out, and you obviously know much more about modding. No probs though.

Post Sat Jun 21, 2003 11:59 am

Excellent - heres what I want to do:

1. How do u create custom comoditties?

2. How dou alter were each ship is sold??

I no how to use the bINI thing but i dont no what 2do with the files after!
Thanx v.much

Edited by - AstroTurf on 21-06-2003 13:04:53

Post Sat Jun 21, 2003 12:57 pm

OK, Ill answer your questions in two separate posts because theyre quite involved.

Question 1 - Creating custom commodities
For this tutorial ill create a new commodity called Platinum. If you want to create a different commodity change all references to platinum to your commodity and it should work fine.

Youll need to extract with BINI and then rename the following files from file .ini.txt to just file .ini:

DATA/EQUIPMENT/select_equip.ini
DATA/EQUIPMENT/goods.ini
DATA/EQUIPMENT/market_commodities.ini

1. Open select_equip.ini and add the following block of text at the bottom:

[Commodity
nickname = commodity_platinum
ids_name = 261612 ;<-----Currently "Silver", you need to do some dll editing
ids_info = 65916 ;<-----to change it which is beyond this tutorial.
units_per_container = 30
pod_appearance = cargopod_grey
loot_appearance = lootcrate_grey
decay_per_second = 0
volume = 1
hit_pts = 500

This has created the actual item, now we need to define it as a commodity which can be bought/sold.

2. Next open goods.ini and add this text:

[Good
nickname = commodity_platinum
msg_id_prefix = gcs_gen_commodity_silver <----Too advanced to change in this tutorial
equipment = commodity_platinum
category = commodity
price = 980
combinable = true
good_sell_price = 2.550000
bad_buy_price = 2.550000
bad_sell_price = 1
good_buy_price = 1
shop_archetype = Equipment\models\commodities\nn_icons\cwire_rawmats_2.3db
item_icon = Equipment\models\commodities\nn_icons\COMMOD_metals.3db
jump_dist = 7

"item_icon" is the icon that appears beside the name of the commodity. You can change it to suit whatever you create, the available icons are:

bw_freighter.3dba
or_fighter.3db
bw_freighter.3db
bh_heavy.3db
bh_elite.3db
bh_fighter.3db
pi_heavy.3db
pi_elite.3db
pi_fighter.3db
bw_heavy.3db
bw_elite.3db
bw_fighter.3db
cv_heavy.3db
cv_elite.3db
cv_fighter.3db
cv_startracker.3db
cv_starflier.3db
co_freighter.3db
co_elite.3db
co_fighter.3db
rh_freighter.3db
rh_elite.3db
rh_fighter.3db
ku_freighter.3db
ku_elite.3db
ku_fighter.3db
br_freighter.3db
br_elite.3db
br_fighter.3db
li_elite.3db
li_freighter.3db
li_fighter.3db
COMMOD_tradelaneparts.3db
COMMOD_lightarms.3db
COMMOD_legalartifacts.3db
COMMOD_enginecomponents.3db
COMMOD_consumergoods.3db
COMMOD_optronics.3db
COMMOD_hullpanels.3db
COMMOD_drugs.3db
COMMOD_machines.3db
COMMOD_opticalchips.3db
COMMOD_hfuels.3db
COMMOD_fertilizer.3db
COMMOD_luxuryfoods.3db
COMMOD_foodrations.3db
COMMOD_nomadbacteria.3db
COMMOD_diamonds.3db
COMMOD_waterice.3db
COMMOD_toxicwaste.3db
COMMOD_metals.3db
COMMOD_chemicals.3db

3. Finally, we need to tell FL where the commodity can be sold in game.

Open market_commodities.ini and search for the name of the base you want to add to. For this example ive chosen Planet Manhattan, "Li01_01_base". At the end of the block of text add the following line:

MarketGood = commodity_platinum, 0, -1, 0, 0, 1, 2.250000

The last number is the cost multiplier; raise it to a higher number for a higher cost at the base.

Post Sat Jun 21, 2003 12:58 pm

Question 2 - Changing the location of ships

This is fairly easy, as long as you are only planning on using the pre-made ships in FL.

You will only need to extract this file with BINI:

DATA/EQUIPMENT/market_ships.ini

Search the file for the base you want to add a ship to. When you find it you should see a bunch of text that looks meaningless, but its not.

This example is from Planet Manhattan:

[BaseGood
base = Li01_01_base
marketgood = gf1_package, 0, -1, 0, 0, 1, 1, 1
marketgood = gf2_package, 4, -1, 1, 1, 0, 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, 1, 1, 0, 1, 1
marketgood = bf_package, 6, -1, 0, 0, 1, 1, 1
marketgood = be_package, 8, -1, 0, 0, 1, 1, 1
marketgood = bfr_package, 4, -1, 0, 0, 1, 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, 0, 0, 1, 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

Each package that is referred to is the name of a ship and the accompanying weapons etc. that come with it when you buy a ship. If, for example, you wanted to add the Titan very heavy fighter to Planet Manhattan you would add the following line:

marketgood = coe2_package, 32, -1, 1, 1, 0, 1, 1

Generally speaking, to allow a ship to be sold at the base you change the last 6 numbers to:

-1, 1, 1, 0, 1, 1

To stop it being sold there you change the same numbers to:

-1, 0, 0, 1, 1, 1

Thats about it really.

Note: If there is already an entry for the ship you are adding DO NOT add a new entry, overwrite the existing one otherwise your game will screw up.

Another Note: You can only have a maximum of three ships available on each base. Delete a ship for sale if you already have three, otherwise the new ship will not show up.

Hope this has helped, good luck...

Post Sat Jun 21, 2003 7:46 pm

This Question should be easy:
What hardpoints are existant or
How are hardpoints called and what can i plug to those Hardpoints.
I need those names for new Ships i've model(l)ed.
PLease excuse my bad english but i'm only student from Germany.

Post Mon Jun 23, 2003 10:31 am

Creating completely new hardpoints is harder than you may think, but anyway youll need BINI and the UTF editor, both available in the downloads section.

Open the .cmp file of your ship and expand the tree. IMPORTANT - Make sure you have selected "Float array" under interpret data. Each node in the first expanded section is a section of your ship. If youre creating a completely new ship there should be some entries for the meshes but none for hardpoints

To create a new weapon hardpoint:

There are two types of hardpoint, fixed and revolute. Fixed is where all the immovable add-ons go, such as thrusters and mine-launchers. Revolute is where you stick all the add-ons that move, even if just a tiny bit, for example guns, turrets and torpedo launchers.

For this tutorial lets create a new gun hardpoint. Browse to the fuselage part that you want to add the hardpoint to and expand it. Highlight "Revolute" in this node and click "Add node". Rename "New node" to one of the following, where XX is the next available number of that hardpoint:

HpWeaponXX ---> For a gun or missile mount
HpTorpedoXX --> For a torpedo or cruise disruptor mount
HpTurretXX ---> For a turret mount.

For this example use HpWeaponXX, in your case probably HpWeapon01 if you havent got any hardpoints already.

Create 5 more nodes under this one, renaming them, in this order:

Axis
Max
Min
Orientation (Make sure they are spelt correctly)
Position

First edit "Axis" using the "edit" button. This defines which axis the gun is able to rotate on - it is in the format X, Z, Y. So for a turret able to rotate left and right you would input:

0.000000
1.000000
0.000000

Now edit "Max" and "Min" . Both these nodes have two entries each. The first is the rotation limit in radians. Use a negative number for Min and a positive number for Max, for example -3 and 3. If you dont want a rotation limit enter -6.283185 in Min and 6.283185 in Max (2*Pi).

Next edit "Position" . This node requires three values, one for each axis. The values are as follows:

Value 1 --- X-axis, left and right across the fuselage
Value 2 --- Z-axis, up and down through the fuselage
Value 3 --- Y-axis, up and down across the fuselage

The co-ordinates are relative to the part of the fuselage they are mounted on, so to create a hardpoint in the middle of a wing, say, you would simply enter:

0.000000
0.000000
0.000000

Its not usually that simple though, youll have to experiment.

Finally edit "Orientation" - this is the hard part which requires working with vectors. Each Orientation node has nine entries - three for X, three for Y and three for Z. These values tell FL how the weapon "maps" to the fuselage. It may help to draw a diagram. Since its hard to explain i^ll use an example:

For a gun mounted on the RIGHT of the fuselage facing FORWARDS:

The fuselages X-Axis is equal to the guns y-axis so the first entry is:

0.000000
1.000000
0.000000


The fuselages Y-axis is equal to the guns x-axis in the negative direction so the next entry is:

-1.000000
0.000000
0.000000


The fuselages Z-axis is equal to the guns Z-axis so the last entry is:

0.000000
0.000000
1.000000

So put it all together and you get:

0.000000
1.000000
0.000000
-1.000000
0.000000
0.000000
0.000000
0.000000
1.000000

Now youve done this you can SAVE and close UTF edit and open DATA/SHIPS/shiparch.ini to define your new hardpoint.

Find your ship and add one of the following lines:

hp_type = hp_gun_special_YY, HpWeaponXX , where XX is the number of your hardpoint defined earlier and YY is the class of gun you want it to take.

hp_type = hp_turret_special_YY, HpTurretXX , where XX is the number of your hardpoint defined earlier and YY is the class of turret you want it to take.

hp_type = hp_torpedo_special_YY, HpTorpedoXX , where XX is the number of your hardpoint defined earlier and YY is the class of torpedo you want it to take.

Thats about it, hope this helped!

Edited by - Accushot on 23-06-2003 11:32:07

Post Mon Jun 23, 2003 7:13 pm

HI.
I'm looking to change the ship that a new character starts with in MP. I've got some cryptic answers and no examples. Could you help me out with this?

Junkman

Post Tue Jun 24, 2003 9:31 am

You can change the starting MP ship, but its only a server-side mod so you have to be running your own server.

Using BINI, available in the downloads section, extract the following files by dragging them onto the BINI icon:

EXE/mpnewcharacter.ini
DATA/EQUIPMENT/goods.ini

Then rename them from file .ini.txt to just file .ini, deleting the original file.

Now look through goods.ini. Every entry with the name <something>_package is the name of a package, including a ship and the accompanying components such as engines etc. gf1_package is the package for the Starflier you begin with. To change the starting ship, find the package in goods.ini - for this example Ill use the Titan Very Heavy Fighter, coe2_package. Remember this name for later or copy it to the clipboard.

Now go to mpnewcharacter.ini and browse right to the bottom where it says %%PACKAGE%%. This tells FL to use the default package, which is the Starflier. Comment out this line (By adding a ; in front of it), and add the name of your new package - it should look like this:

;%%PACKAGE%%
coe2_package

Most of this info came from the thread here so you could try that thread as well if this doesnt help.

Return to Freelancer General Editing Forum