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

Mega Tutorial

Here you find the different tutorials on editing and MODing Freelancer

Post Sun Oct 12, 2003 3:42 pm

Mega Tutorial

Mega Tutorial
Factions



-setting DYNAMIC IDS-Names and info so there is no DLL editing needed(Huzzar!)
-Open DATA\initialworld.ini and add your factions reputation block so the world knows who they like/dislike etc
-Goto DATA\MISSIONS\empathy.ini and add the nessessary block of rep-change data who to kill to make them happy etc
-Fill out a faction block in DATA\MISSIONS\faction_prop.ini
-edit EXE\mpnewcharacter.fl to add the faction start rep
-edit \DATA\EQUIPMENT\commodities_per_faction.ini to dictate what the factions NPC's carry
-also will be setting loots for the faction when concerning missions DATA\RANDOMMISSIONS\RMLootInfo.ini

Generally speaking in this tuorial negative numbers means dislike action, positive means they like that action or faction...

--------------------------------------------------------------------------
Tools needed:
FLSaveEditor (found in downloads)
BiniQDU or similar (also in downloads here)
Notepad for xml editing or dreamweaver etc
--------------------------------------------------------------------------

Foreword:
Before you go to do this tutorial if you plan to make it into a script goto your FLMM 1.2 mod folder and make a game folder in the appropriate format etc Hopefully you know how to do the modding in FLMM, if not read its how to make mods for FLMM...

Step 1: Dynamic idsnames etc.
Ok, when using FLMM 1.2 i found some scripting stuff available to get FLMM to create custom dll files for all your names etc so here is what you use to make them. Usually they look like this ids_name = 123456 etc. But FLMM can make them for you like so:

ids_name = 0 ;GENERATESTRRES("Weapon or Faction name " )

ids_info = 0 ;GENERATEXMLRES("<xml>description stuff, look at other mods to see how this can be set out </xml> " )

Step 2: Setting initial faction reps
Ok i did most of this in a xml script so I can give easy examples...
open DATA\initalworld.ini and put rep = 0, <Your faction nickname eg fc_pi_grp> after every block for each faction modifying like you see done with other factions to dictate how they like each other.

If you don't want to make an xml file ignore the script bits and just copy and paste the stuff between the <source> </source> tags and paste at bottom of file....

<data file="DATA\initialworld.ini" method="append">
<source>
[Group
nickname = <Your faction>
ids_name = <DLL name entry or generated as above>
ids_info = <DLL description entry or generated as above>
ids_short_name = <DLL short name entry>
rep = 0, li_n_grp
rep = 0, li_lsf_grp
rep = 0, li_p_grp
rep = 0, br_n_grp
rep = 0, br_p_grp
rep = 0, ku_n_grp
rep = 0, ku_p_grp
rep = 0, rh_n_grp
rep = 0, rh_p_grp
rep = 0, co_alg_grp
rep = 0, co_be_grp
rep = 0, br_m_grp
rep = 0, co_nws_grp
rep = 0, co_hsp_grp
rep = 0, co_ic_grp
rep = 0, co_khc_grp
rep = 0, co_kt_grp
rep = 0, rh_m_grp
rep = 0, co_me_grp
rep = 0, co_ni_grp
rep = 0, co_os_grp
rep = 0, co_rs_grp
rep = 0, co_shi_grp
rep = 0, co_ss_grp
rep = 0, co_ti_grp
rep = 0, co_vr_grp
rep = 0, fc_bd_grp
rep = 0, fc_b_grp
rep = 0, fc_c_grp
rep = 0, fc_fa_grp
rep = 0, fc_g_grp
rep = 0, fc_gc_grp
rep = 0, fc_h_grp
rep = 0, fc_j_grp
rep = 0, fc_lh_grp
rep = 0, fc_lr_grp
rep = 0, fc_lwb_grp
rep = 0, fc_m_grp
rep = 0, fc_ou_grp
rep = 0, fc_rh_grp
rep = 0, fc_or_grp
rep = 0, fc_u_grp
rep = 0, fc_x_grp
rep = 0, gd_gm_grp
rep = 0, fc_uk_grp
rep = 0, fc_n_grp
rep = 0, fc_ln_grp
rep = 0, fc_kn_grp
rep = 0, fc_rn_grp
rep = 0, fc_ouk_grp
rep = 0, fc_q_grp
rep = 0, fc_f_grp
rep = 0, gd_im_grp
rep = 0, gd_z_grp
rep = 0, gd_bh_grp
rep = 0.91, <Your faction>
</source></data>

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:43 pm

Step 3: Modify empathy.ini to make rep-change possible for faction
Open DATA\MISSIONS\empathy.ini and add empathy_rate = <Your faction>, 0 to the bottom of every faction in the list. Modify to decide how they like dislike actions against other clan and against or for them.

Next if your scripting copy this, if not just copy from inside the <source> tags...

<data file="DATA\MISSIONS\empathy.ini" method="append">
<source>
[RepChangeEffects
group = <Your faction nickname>
event = object_destruction, -0.030000
event = random_mission_success, 0.119500
event = random_mission_failure, -0.045000
event = random_mission_abortion, -0.067500
empathy_rate = li_n_grp, 0.300000
empathy_rate = li_lsf_grp, 0.300000
empathy_rate = li_p_grp, 0.300000
empathy_rate = br_n_grp, 0.300000
empathy_rate = br_p_grp, 0.300000
empathy_rate = ku_n_grp, 0.300000
empathy_rate = ku_p_grp, 0.300000
empathy_rate = rh_n_grp, 0.300000
empathy_rate = rh_p_grp, 0.300000
empathy_rate = co_shi_grp, 0.150000
empathy_rate = co_khc_grp, 0.150000
empathy_rate = co_kt_grp, 0.150000
empathy_rate = br_m_grp, 0.150000
empathy_rate = co_me_grp, 0.150000
empathy_rate = co_be_grp, 0.150000
empathy_rate = co_rs_grp, 0.150000
empathy_rate = co_vr_grp, 0.150000
empathy_rate = co_ni_grp, 0.150000
empathy_rate = rh_m_grp, 0.150000
empathy_rate = co_ti_grp, 0.150000
empathy_rate = co_ic_grp, 0.150000
empathy_rate = co_hsp_grp, 0.150000
empathy_rate = co_alg_grp, 0.150000
empathy_rate = co_os_grp, 0.150000
empathy_rate = co_nws_grp, 0.150000
empathy_rate = fc_c_grp, -0.050000
empathy_rate = fc_ou_grp, -0.150000
empathy_rate = fc_rh_grp, -0.050000
empathy_rate = fc_bd_grp, 0
empathy_rate = fc_j_grp, 0
empathy_rate = fc_h_grp, 0
empathy_rate = fc_m_grp, -0.050000
empathy_rate = fc_x_grp, -0.200000
empathy_rate = fc_b_grp, 0
empathy_rate = fc_g_grp, 0
empathy_rate = fc_lh_grp, -0.300000
empathy_rate = fc_u_grp, -0.050000
empathy_rate = fc_gc_grp, 0
empathy_rate = fc_lwb_grp, -0.050000
empathy_rate = fc_fa_grp, -0.100000
empathy_rate = fc_lr_grp, -0.250000
empathy_rate = fc_or_grp, 0
empathy_rate = gd_gm_grp, 0
empathy_rate = fc_uk_grp, 0
empathy_rate = fc_n_grp, 0
empathy_rate = fc_ln_grp, 0
empathy_rate = fc_kn_grp, 0
empathy_rate = fc_rn_grp, 0
empathy_rate = fc_ouk_grp, 0
empathy_rate = fc_q_grp, 0
empathy_rate = fc_f_grp, 0
empathy_rate = gd_im_grp, 0
empathy_rate = gd_z_grp, 0.300000
empathy_rate = gd_bh_grp, 0
</source></data>

Step 4: Detail to your faction
This step sort of gives flavour and detail to your faction dictating what pilots, voices etc This can also be added by xml or copying out of the source tags. This is based off the zoners

<data file="DATA\MISSIONS\faction_prop.ini" method="append">
<source>
[FactionProps
affiliation = <Your faction>
legality = lawful
nickname_plurality = singular
jump_preference = jumpgate
npc_ship = gd_z_ge_fighter2_d1-6
npc_ship = gd_z_ge_fighter2_d7
npc_ship = gd_z_ge_fighter4_d8
npc_ship = gd_z_ge_fighter4_d9
npc_ship = gd_z_ge_fighter4_d10
npc_ship = gd_z_ge_fighter4_d11
voice = pilot_f_ill_m01
voice = pilot_f_ill_m02
mc_costume = mc_gd
space_costume = pl_male3_head_hat, pl_male1_peasant_body, comm_br_darcy
space_costume = pl_male5_head, pl_male1_peasant_body, comm_br_elite
space_costume = pl_male8_head_hat, pl_male1_peasant_body, comm_br_darcy
space_costume = ge_male3_head, pl_male1_peasant_body, comm_br_elite
space_costume = ge_male6_head, pl_male1_peasant_body, comm_br_darcy
space_costume = sc_scientist2_head_hat, pl_male1_peasant_body, comm_br_elite
firstname_male = 226608, 226741
lastname = 227008, 227307
rank_desig = 197140, 197140, 197140, 10, 14
formation_desig = 197821, 197828
formation = fighters, fighter_guild
formation = freighters, freighter_guild
formation = freighters2, freighter2_guild
</source>
</data>
Ok, explaination of what these mean so you can change them.
-affliliation is your faction
-legality can be lawful or unlawful
-nickname plural tells the game to ad an s to the end when saying their names s is added if "singular" is selected, if "plural" is there it does not... eg Zoner = singular.... Xenos = plural
-jump pref can be jumpgate or jumphole
-npc ship has something to do with their ships
-voice, costume and space costume can be chosen from the existing factions to dictate look and sound....
-firstname is the dll with like of first names
-lastname is sam as first
-no idea about the rest, copy from other factions

Step 5: Modify EXE\mpnewcahracter.fl
Open that file with the editor that was mentioned.
Add house = 0, <Your faction> to the list and save the file...

It will only appear in MP so DONT TEST IN SP... or crashola!

Now, save your script and you should be done...


But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:45 pm

Black holes and names

Adding solars guide

Difficulty: Easy
Time: 20 minutes

This guide will teach you how to add new solars to your systems.

Required tools:

Freelancer SDK

notepad
Getting Started
Decompress following files using an ini decompressor:
DATA\SOLAR\solararch.ini
DATA\UNIVERSE\SYSTEMS\xyz\xyz.ini - xyz is the name of your system


Adding a Black Hole
Step 1
Open the decompressed solararch.ini and add following code

[Solar
nickname = blackhole_core
type = PLANET
DA_archetype = solar\blackhole\blackhole_core.3db
material_library = solar\blackhole\blackhole.txm
solar_radius = 5000
mass = 500000000

[Solar
nickname = blackhole
type = PLANET
DA_archetype = solar\misc\blackhole.3db
solar_radius = 100000
mass = 500000000000

Step 2
Open xyz.ini and add following code:

[Object
nickname = BlackHole1
pos = -16400, 0, 75000
rotate = 0, 0, 0
ambient_color = 0, 0, 0
archetype = blackhole_core
ring = bhole_zone, solar\blackhole\bh.ini
spin = 0, -1, 0

[Object
nickname = BlackHole2
pos = -16400, 0, 75000
rotate = 0, 0, 0
ambient_color = 0, 0, 0
archetype = blackhole
spin = 0, 1, 0

[zone
nickname = bhole_zone
pos = 60000, 0, 0
rotate = 0, 0, 0
shape = ring
size = 3000, 700, 200
sort = 99.500000

Explenation:

In step one we're adding the till now not existing Black Hole components to the "solar library" and in step two we're adding those objects
to our system by adding the code to the system's .ini file. then we use the Archetype to refer to the Library Object's nickname.
I'll explain some values below:

Step 1
[Solar
nickname = blackhole_core -> also the archetype used in Step 2
type = PLANET -> the type of solar
DA_archetype = solar\blackhole\blackhole_core.3db -> path to the model
material_library = solar\blackhole\blackhole.txm -> path to the texture
solar_radius = 4000 -> the radius of your object, use 4000 to get a one as big as Planet Manhattan
mass = 500000000.00 -> this is the planet's mass, the higher this is the greater the gravity will be

Step 2
[Object
nickname = BlackHole1 -> nickname
pos = -16400, 0, 75000 -> the object's position. I recommend using a position tool (=> downloads)
rotate = 0, 0, 0 -> Rotate the object (not moving)
ambient_color = 0, 0, 0
archetype = blackhole_core -> connection to the just added library object
ring = bhole_zone, solar\blackhole\bh.ini -> bhole_zone defines the Zone and the stuff after the "," is the path to the ini file.
spin = 0, -1, 0 -> want the object to rotate? Just edit those values ...

Adding Object Names
Modding Guide: Names

Difficulty: Easy
Time: 15 minutes

This guide will teach you how to modify an existing name and how to create new ones.
You need following tools:
1. FLEd-ids
2. Resource Hacker

Step 1: Modifying a name
If you just want to modify
Use the FL ID referer to decode the ID e.g. 237034 (Liberty Fighter Patriot). Enter this number into the IDs_name field and
hit the IDs_name > resourceID button. Now the tool will return following:

HEX = 39DEA
DLL = 3 (NameResource.dll)
Table = 9DE (2527)
Position A (11)
ResourceID = 40426

The entry DLL = 3(NameResource.dll) specifies the file where the entries are saved (when dealing with names it's alwaysNameResource.dll).
Other importand values are Table = 9DE (2527) and ResourceID = 40426. Not bad that far, but to proceed we'll need the Resource Hacker.
Now open the file nameresources.dll (located in C:\yourdir\Freelancer\EXE\ ) in the hacker. Now open the table string and you'll get dozends
of numbers. Now you have to look for 2527 (from: Table = 9DE (2527)) and open this dir to get access to the ResourceID (40426).
Now search this number and if the name is really "Patriot" you got the right one and can modify it. This method works in reverse, so if you have
the Table and resourceId values you can use the FL ID ref to get the Ids_name.

Step 2: Adding a new name
First of all create a backup of the nameresource.dll in your Freelancer\exe\ directory. After that open this file in the Resource Hacker.
You have to look for a unused or free table now, I'm always using table 1315 or 3051. Now click on the free table and open it.
After that a resource will appear in the left window, click on this one and many numbers will appear in the right window. Now write
your object/ship/station's name into the field after one of the free numbers. When you have done that compile the script (button compile)
and save the ini files. Now open the FL ID Referer and enter the field's number (the one you put your name in) into the ID filed.
After that enter the table's number you were using into the table field and 7# into the INI field. When you're done with that hit ID -> ID_name
and the tool will return your name ID. Put this one into the ID fields in the ini files to give a ship/station/object your new name ...



But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:46 pm

Basic Weaponmodding

Difficulty: medium
Time: 25min


As I've been asked by several people how to do weapon modding I'm now writing a short guide about it ...

But as I'm very busy at the moment this guide just covers the basic stuff. A more advanced one might follow.

Required Tools
Bini+Notepad
or BiniQDU

Step 1 - Modifying a weapon

Required Files
DATA/EQUIPMENT/weapon_equip.ini - weapon characteristics (damage, light effects, ammo etc.)
DATA/EQUIPMENT/weapon_good.ini - weapon commodity settings (price, icon etc.)
DATA/EQUIPMENT/market_misc.ini - weapon market settings (level requirements, base selling etc.)
DATA/FX/beam_effects.ini - beam effects are defined here

Let's start with the weapon_equip.ini. Open it in BiniQDU/extract with Bini and open with an editor.
As we want to modify the Vengeance Mk I Laser we search the file for following: ids_name = 263360 (Vengeance Mk I)
Now let's have a look on the three basic shemes in that file.

The Gun Sheme
Consists of two blocks, [Munition and [Gun.
The [Munition block contains the effect and hit related values like damage, hit effect, beam lifetime while
[Gun represents the essential weapon settings like name, power usage, projectile, refire delay and so on.

The Missile Sheme
Consists of four blocks, [Gun, [Motor, [Explosion and [Munition.
[Gun represents the essential weapon settings like name, power usage, refire delay and so on.
The [Motor block determines the missile's flight abilities, [Explosion contains the explosion settings and
the [Munition block contains the effect and hit related values like damage, max. angle, seeker range etc

The Minelayer Sheme
Consists of the [Mine, the [MineDropper and the [Explosion block.
The [Mine block contains the mine values like safe time, seek distance, acceleration etc.
while the [MineDropper block deals with the mine dropper settings. The [Explosion block
contains the damage, effect and radius variables.

[Munition
nickname = li_gun01_mark04_ammo nicknames are used to link to objects in almost every file
hp_type = hp_gun the hardpoint type this weapon can be mounted on
requires_ammo = false we are an energy based weapon, we don't require ammo
hit_pts = 2 our hitpoints
hull_damage = 31.600000 the hull damage we do
energy_damage = 0 the energy damage we do
weapon_type = W_Laser01 the weapon's type
one_shot_sound = fire_laser2 the sound played on shot
munition_hit_effect = li_laser_03_impact the on-impact effect's name
const_effect = li_laser_03_proj the beam effect's name
lifetime = 0.800000 how long the beam exists and harms others
force_gun_ori = false
mass = 1 the projectile's mass
volume = 0.000100 the beam's volume

[Gun
nickname = li_gun01_mark04 the weapon's nickname
ids_name = 263360 the weapon's name ID (read name tutorial for more info)
ids_info = 264360 the weapon's infocard (more details => infocard tutorial)
DA_archetype = equipment\models\weapons\li_heavy_ion_blaster.cmp the in-game model path
material_library = equipment\models\li_equip.mat the path to the texture file
hit_pts = 1026 the weapon's hitpoints (weaps can be also damaged)
explosion_resistance = 1.000000 resistance against explosions
debris_type = debris_normal the debris type
parent_impulse = 20 main impulse's size
child_impulse = 80 second impulse's size
volume = 0.000000 the volume
mass = 10 the weapon's mass
hp_gun_type = hp_gun_special_4 the hardpoint class
damage_per_fire = 0 damage per shot
power_usage = 9.880000 number of energy each shot consumes
refire_delay = 0.120000 the delay between shots
muzzle_velocity = 750 the shot's speed
use_animation = Sc_fire the animation used on when we fie our weapon
toughness = 2.500000

flash_particle_name = li_laser_03_flash: name of the flash we see on fire
flash_radius = 15 flash radius:
light_anim = l_gun01_flash: the flash animation
projectile_archetype = li_gun01_mark04_ammo: "link" to the ammo (see above)
separation_explosion = sever_debris: explosion played on seperation
auto_turret = false: are we an auto turret? (true/false)
turn_rate = 90: how fast we can turn (360 is cool *g*)
lootable = true:is this one lootable (true/false)
LODranges = 0, 20, 40, 80, 100: LOD range settings


But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:49 pm

Step 2 - Market settings

Open file: DATA/EQUIPMENT/market_misc.ini and search for: Li01_09_Base (nickname for Westpoint Mil. Academy)
Now you should have this on your screen:

[BaseGood
base = Li01_09_base
MarketGood = li_gun01_mark01, 0, -1, 10, 10, 0, 1
MarketGood = li_gun01_mark02, 0, -0.200000, 10, 10, 0, 1
MarketGood = li_gun01_mark03, 2, 0.100000, 10, 10, 0, 1
Add following here: MarketGood = li_gun01_mark04, 2, 0.100000, 10, 10, 0, 1
MarketGood = li_gun02_mark01, 0, -1, 10, 10, 0, 1
MarketGood = li_gun02_mark02, 0, -0.200000, 10, 10, 0, 1
MarketGood = li_gun02_mark03, 2, 0.100000, 10, 10, 0, 1
MarketGood = li_turret02_mark01, 0, -1, 10, 10, 0, 1
MarketGood = li_turret02_mark02, 2, -0.200000, 10, 10, 0, 1
MarketGood = ge_s_thruster_01, 0, -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_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_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_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_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_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_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, 0, -1, 10, 10, 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_ammo, 6, -1, 50, 50, 0, 1
MarketGood = shield01_mark01_lf, 0, -1, 10, 10, 0, 1
MarketGood = shield01_mark02_lf, 0, -1, 10, 10, 0, 1
MarketGood = shield01_mark01_hf, 0, -1, 10, 10, 0, 1
MarketGood = shield01_mark02_hf, 0, -1, 10, 10, 0, 1
MarketGood = shield01_mark01_fr, 0, -1, 10, 10, 0, 1
MarketGood = shield01_mark02_fr, 0, -1, 10, 10, 0, 1
MarketGood = ge_s_battery_01, 0, -1, 100, 100, 0, 1
base = Li01_09_base is the base's nickname, use a FL data tool or our nameslist to find your base/ship/weapon's nickname

To make a base selling a new commodity just add a new line:
MarketGood = li_gun01_mark04, 5, -1, 10, 10, 0, 1
the weapon's nickname, required player level, reproduction?(leave as is), storage?(leave as is)


Step 3 - Modifying beam effects

Open file: DATA/FX/beam_effects.ini and search the file for following: li_laser_03_beam
(comes from const_effect = li_laser_03_proj in Step 1)
The meaning of most values below shoule be easy to guess, so I'll just explain the difficult ones

[BeamSpear
nickname = my_gun_01_beam
tip_length = 40 These values determine the effect's size
tail_length = 100
head_width = 7.500000
core_width = 6
tip_color = 172, 34, 172 effect color settings ...
Attention: they're in RGB format !!
core_color = 172, 34, 172
outter_color = 152, 35, 184
tail_color = 111, 37, 184
head_brightness = 1 effect brightness values
trail_brightness = 1
head_texture = star texture settings
trail_texture = wide
flash_size = 20 the flash size

Now you should be able to modify weapons, make them buyable on bases and know basic effects stuff.
To add new weapons just select an already existing weapon (same class as the new one) , copy
the stuff to the clipboard and paste it below. Then you can start modifying as described in Step 1.


But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:50 pm

what you need
Freelancer SDK
a sense of humor

Step 1

Install SDK into F\downoads Not BINI then go into F\Freelancer\Data\Characters and you will see a INI file called Costumes.Here is an example of what it shows

[Costume
nickname = trent-Leave as is or the game will crash
head = Pi_pirate5_head- This is the head
body = Pl_Trent_body- This is his body,Do not use Worm body on him
righthand = benchmark_male_hand_right- These are the hands
lefthand = benchmark_male_hand_left- These are the hands

I changed it to

nickname = trent
head = pi_pirate3_head_hurt
body = ku_edo_body
righthand = robot_hand_right
lefthand = male_hand_left_black


or

nickname = trent
head = ku_edo_head
body = li_hatcher_body
righthand = benchmark_male_hand_right
lefthand = benchmark_male_hand_left

Have a laugh with these two!


This could be useful for my coalition mod.Because the bases of coalition will have similar bodys to this

This is the female

nickname = ???
head = sh_female2_head_gen
body = br_female_elite_body
righthand = female_hand_right_black
lefthand = female_hand_left_black

this is the male

nickname = ???
head = sh_male2_head_gen
body = br_male_elite_body
righthand = male_hand_right_black
lefthand = male_hand_left_black

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:52 pm

making a system sort of

SYSTEM MODDING

This will be a huge tutorial and knowledge-base for system modding. I write this as I learn and "decrypt" more and more parts of system-editing. It should help to learn and speed up modding of systems by giving good examples.
I will also make a template-system to show that all things mentioned here really work.
It will include ALL things that can be modded by me, examples on how to create populated systems like the ones in the game (with missions, bribes,...), also a "gallery" of ALL objects found in the game, sorted by categories like station parts, asteroids, wrecks, ... (maybe in a small extra-system)
This will be published and updated frequently as I make progress.
The replies to this post will handle the numerous parts of system-modding.
Best will be to go through all affected files one by one.
I do all this with notepad. Freelancer Explorer may be a nice tool to create a system, but the result will always be a quick and dirty solution. I want to understand the details of system-modding and FLEx is just a visual tool that hides the details -> just one reason why I don't use it.

------------------------------------------------------------------------------

File organization

I will try to explain which file holds what data and how they are connected or how they interact with each other. All paths are relative to the Freelancer

directory, i.e. I treat it as root.
Some filenames are system- and basename related. I will use < system > and < base > for these.
A detailed description of each file will follow later. (damned, this will be a lot of work... It will hopefully pay back the effort when it is finished and makes system-modding easy)
This only contains files where I exactly know what they do. Will be completed with the time.

------------------

Purchase and sale:
Structure of these files is the same, entries are all in sections (one for each base)

\DATA\EQUIPMENT\market_misc.ini
Contains information about the availability of weapons and equipment on ALL bases.

\DATA\EQUIPMENT\market_ships.ini
Contains information about the availability of ships on ALL bases.

\DATA\EQUIPMENT\market_commodities.ini
Contains information about the availability of commodities on ALL bases.


Objects:
These are the descriptions of all fixed objects that can be found in space. Planets, bases, jumpholes/gates, asteroids, nebulas, stars,...

\DATA\SOLAR\asteroidarch.ini
Archetype references for all asteroids.

\DATA\SOLAR\stararch.ini
Archetype reference for all stars.

\DATA\SOLAR\solararch.ini
This is the "big" one, it holds all planets, bases and all other fixed objects.

\DATA\SOLAR\loadouts.ini
All bases/stations/objects are equipped here (guns, shields, lights,...)

\DATA\SOLAR\ASTEROIDS\< system >_< asteroid field type name >.ini
This defines the visual look and behaviour of the asteroid field used. Minefields are also specified here.

\DATA\SOLAR\NEBULA\< system >_< nebula type name >.ini
Definition of the visual look and behaviour of nebulas.


Universe:
This is the complete universe that you all know in FL. Systems, bases, fields, ... everything.

\DATA\UNIVERSE\universe.ini
A list of all bases and systems. System position on the galaxy map, map scales,... are defined here.

\DATA\UNIVERSE\shortest_illegal_path.ini
Seems to be the place to define paths that cross several systems. This one prefers jumpholes.

\DATA\UNIVERSE\shortest_legal_path.ini
Same as above, just prefers jumpgates.

\DATA\UNIVERSE\SYSTEMS\< system >\< system >.ini
This is the main part of each system. Objects, zones, fields, patrols, their positions, all this is found here. This is where you "shape" your system.

\DATA\UNIVERSE\SYSTEMS\< system >\BASES\< system >_< base >_base.ini
Defines a base with all its rooms.

\DATA\UNIVERSE\SYSTEMS\< system >\BASES\ROOMS\< system >_< base >_< location >.ini
Defines a room inthe base and its connection to other rooms. Also character and ship placement.

\DATA\MISSIONS\mbases.ini
This is probably the largest and most complicated ini-file in FL.
The bases are all listed and populated here with characters (in the bar, traders, shipdealers,..). All missions, rumors and bribes are also defined here. Details are still not completely decrypted.


Allright, this may have confused everyone I guess and i think I lost everyone's attention by now.
Sorry, but this is a very complicated topic and it needs a lot of patience and endurance, but I try to summarize it a bit shorter


Archetype files (these define the objects)
asteroidarch.ini
stararch.ini
solararch.ini
loadouts.ini

System files
Archetypes are used in the system files (all these are nessessary to make a working system with bases and fields):
Code:

SOLAR + ASTEROIDS - mysystem_asteroid_field.ini
/
+ NEBULA - mysystem_nebula.ini
UNIVERSE - universe.ini
+ SYSTEMS + MYSYSTEM + BASES + ROOMS - mysystem_01_base_location1.ini
/ / - mysystem_01_base_location2.ini
/ / - ...
/ - mysystem_01_base.ini
/ - mysystem_02_base.ini
/
- mysystem.ini
MISSIONS - mbases.ini


Purchase and sale
Probably the easiest part of system-modding.
market_misc.ini
market_ships.ini
market_commodities.ini

System framework

This short section will handle the following files in the \DATA\UNIVERSE directory:
universe.ini
shortest_illegal_path.ini
systems_shortest_path.ini

universe.ini
There are two important section types:
[System and [Base. There is a section fro each system and base in the game.

[System
Code:
[system
nickname = Iw03
file = systems\Iw03\Iw03.ini
pos = 5, 10
msg_id_prefix = gcs_refer_system_Iw03
visit = 0
strid_name = 196645
ids_info = 66101
NavMapScale = 2

Explanation:
nickname =
Name of the System in the \UNIVERSE\SYSTEMS directory.

file =
Filename of the system ini.

pos =
This sets the location of the system in the universe map. Coordinates are handled in a similar way as with systems X, Y.
X increases from west to east
Y increases from north to south
values range from 0 to 15 in the builtin maps. center (NY) is 7, 8

msg_id_prefix =
Format: gcs_refer_system_< system >
This is used by NPCs when messaging around.
Probably won't work for custom systems.

visit =
This seems to be a binary flag value.
flag numbers: 8765/4321 ->combined to a binary value
1: System shown on map? NY is the only one with this flag. -> 1
2-7: unknown
8: System never shows up on map. -> 128

visit = 0 is the recommended value (system doesn't show up until found)

strid_name =
Name infocard reference.

ids_info =
Infocard reference for system information.

NavMapScale =
Scale of the system map. Typical entries range from 0 (no entry) to 2


[Base
Code:
[Base
nickname = Iw04_02_Base
system = Iw04
strid_name = 196730
file = Universe\Systems\Iw04\Bases\Iw04_02_Base.ini
BGCS_base_run_by = W02bF36


nickname =
Reference name of the base.

System =
The sytem name where the base is located.

strid_name=
Infocard name reference.

file =
Location of the base ini-file.

BGCS_base_run_by =
??? maybe also a Hex offset for infocard info

other entries
??? unknown

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 3:53 pm

shortest_illegal_path.ini and systems_shortest_path.ini work the same way, but use different routes to get from one to another system.

there is one section [SystemConnections for each system. The path to ALL other systems will be inserted here in the following format.
example:
Code:
[SystemConnections
Path = Li01, Hi01, Li01, Li03, Iw06, Ku02, Ku03, Bw08, Ew01, Hi01
Path = Li01, Li01, Li01
Path = Li01, Li03, Li01, Li03
Path = Li01, Rh05, Li01, Li04, Iw01, Rh02, Rh01, Rh05
Path = Li01, Rh01, Li01, Li04, Iw01, Rh02, Rh01
Path = Li01, Rh03, Li01, Li04, Iw01, Rh02, Rh01, Rh03
Path = Li01, Br06, Li01, Li02, Iw04, Br02, Br04, Br06
...

Explanation:
Path = < source > , < destination >, < list of systems passed through, including source and destination >

example:
Path = Li01, Rh01, Li01, Li04, Iw01, Rh02, Rh01
source is NY, destination NB.
the path is NY->Texas->Bering->Hamburg->NB

The 2 files also differ in the usage of gates and holes. Its not know how this exactly works. Also inner-system paths(waypoint are still unknown).

I am not sure if this is needed to make a system work and it seems uniportant because waypoint over systems are rare (almost only at missions with a spread group).
Making entries for the connected systems worked for me. (can still be extended later. I need to test what happens when I try this with a path that has no entry here)

EDIT: Path tested without system-entry. It will refuse to set a waypoint by telling "no path" -> works without them, but should be done for a well-made system.

Connecting systems

This section handles all finds of jumpgates and jumpholes.
All these entries are in the main ini file of each system:
\DATA\UNIVERSE\SYSTEMS\< system >\< system >.ini

Jumpgates and holes are basically the same, just the look and docking behaviour is different.

Example:
Code:
[zone
nickname = Zone_Li01_to_Li04_hole
pos = 15425, 0, 83760
shape = SPHERE
size = 2000
property_flags = 131072
visit = 128
sort = 99

[Object
nickname = Li01_to_Li04_hole
ids_name = 260916
pos = 15425, 0, 83760
Archetype = jumphole
msg_id_prefix = gcs_refer_system_Li04
ids_info = 66146
jump_effect = jump_effect_hole
visit = 0
goto = Li04, Li04_to_LI01_hole, gate_tunnel_bretonia


Usually, only the [Object entry is needed, as that is our jumphole. The [Zone around it can be useful though. One example is to use this as an exclusion-zone in asteroid fields (more detail on that in later tuts). This makes sure that there are no asteroids near the jumphole.

Explanation of entries (zones will be explained later):
[Object

nickname, ids_name, pos, ids_info
these are very common in most ini-s and should be known by now

Archetype =
This is the model used from the solararch.ini.
Typical entries are jumphole, jumpgate, jumphole_red,...

msg_id_prefix =
Reference for NPC messages.

jump_effect =
The visual effect during the system-change.

visit =
similar flag-system as explained in the system framework under universe.ini
A common value is 0 (visible on map after spotting it)

goto =
This specifies the destination of the jump.
Format is:
goto = < destination system >, < destination object >, < visual effect during jump >
Example:
goto = Li04, Li04_to_LI01_hole, gate_tunnel_bretonia

Important: To make the jump work in both directions you need to set up a similar object in the destination system, just the other way round.

Creating one-way holes or inner-system connections is also possible

Tradelanes

Zooker explained this very well here:
http://www.klngarthur.com/forum/viewtopic.php?t=82

Just a few notes:
Lanes that go straight work in ANY angle.
Lanes that change direction mess up the tunnel-animation. This can be corrected by taking out the visual effcet of the tunnel.
Just comment out the following line in select_equip.ini like this:
Code:
[TradeLane
...
;tl_player_travel = basic_tl_player_travel
...


Please remember that lanes going over edges basically work, but the direction-change is instant and will look strange at this speed when you make turns of over ~10 degrees




Connecting systems

This section handles all finds of jumpgates and jumpholes.
All these entries are in the main ini file of each system:
\DATA\UNIVERSE\SYSTEMS\< system >\< system >.ini

Jumpgates and holes are basically the same, just the look and docking behaviour is different.

Example:
Code:
[zone
nickname = Zone_Li01_to_Li04_hole
pos = 15425, 0, 83760
shape = SPHERE
size = 2000
property_flags = 131072
visit = 128
sort = 99

[Object
nickname = Li01_to_Li04_hole
ids_name = 260916
pos = 15425, 0, 83760
Archetype = jumphole
msg_id_prefix = gcs_refer_system_Li04
ids_info = 66146
jump_effect = jump_effect_hole
visit = 0
goto = Li04, Li04_to_LI01_hole, gate_tunnel_bretonia


Usually, only the [Object entry is needed, as that is our jumphole. The [Zone around it can be useful though. One example is to use this as an exclusion-zone in asteroid fields (more detail on that in later tuts). This makes sure that there are no asteroids near the jumphole.

Explanation of entries (zones will be explained later):
[Object

nickname, ids_name, pos, ids_info
these are very common in most ini-s and should be known by now

Archetype =
This is the model used from the solararch.ini.
Typical entries are jumphole, jumpgate, jumphole_red,...

msg_id_prefix =
Reference for NPC messages.

jump_effect =
The visual effect during the system-change.

visit =
similar flag-system as explained in the system framework under universe.ini
A common value is 0 (visible on map after spotting it)

goto =
This specifies the destination of the jump.
Format is:
goto = < destination system >, < destination object >, < visual effect during jump >
Example:
goto = Li04, Li04_to_LI01_hole, gate_tunnel_bretonia

Important: To make the jump work in both directions you need to set up a similar object in the destination system, just the other way round.

Creating one-way holes or inner-system connections is also possible

Tradelanes

Zooker explained this very well here:
http://www.klngarthur.com/forum/viewtopic.php?t=82

Just a few notes:
Lanes that go straight work in ANY angle.
Lanes that change direction mess up the tunnel-animation. This can be corrected by taking out the visual effcet of the tunnel.
Just comment out the following line in select_equip.ini like this:
Code:
[TradeLane
...
;tl_player_travel = basic_tl_player_travel
...


Please remember that lanes going over edges basically work, but the direction-change is instant and will look strange at this speed when you make turns of over ~10 degrees




Thats all! Hope you like it!

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Sun Oct 12, 2003 5:02 pm

Erm - LordFjord? Have you changed your name here or something? these are your tutorials i am reading here, your hard work, but i don't see your name or credit anywhere! Whats going on? Who is Sir Milkshape -are you LordFjord?

Post Sun Oct 12, 2003 10:22 pm

Sir Milkshape was DeathHawk

Post Mon Oct 13, 2003 12:55 am

hmm, Sir Milkshape, this all sounds damned familiar.
is it not enough to have it in the tutorial database?
why copy-pasting it again?

---------------------------------
Excelcia forever
www.excelcia.org

Post Mon Oct 13, 2003 10:22 am

Seriously! I made practically 75 percent of this Tutorial!

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Mon Oct 13, 2003 6:20 pm

Ókay, this is all what i need for my new system, but... how do i make new names? Cna i have a answear, or a link to some sort of tutorial, because i don't understand the make FLMM make your names, please give me an answear!

Post Mon Oct 13, 2003 7:30 pm

I don't know hw to make new names but i do know how to edit them.

But the worst happened when Bargib started singing Campfire songs!-----Baptism of Fire

Post Mon Oct 13, 2003 10:17 pm

Sir Milkshape, may I quote you?
a few posts ahead u wrote:
...
Step 2: Adding a new name
First of all create a backup of the nameresource.dll in your Freelancer\exe\ directory. After that open this file in the Resource Hacker.
You have to look for a unused or free table now, I'm always using table 1315 or 3051. Now click on the free table and open it.
... and so on ...

I am not so sure anymore about ur mentioned 75%... but nevermind, i don't wanna flame you.
I don't mind if u use my tutorials, that's after all what they have been made for but pls give credits to the people who initially wrote them if you re-post them.
I can't do anything about it if ppl do it, but it would be kind and an act of goodwill.

Btw, I don't really see a point in re-posting other tutorials by copy-pasting them.
It's allright if you correct errors or do extensions though...

Also some parts of my tuts look really crappy here cause this forum deletes some formatting (the file organization table at system-modding-tut for example)

So pls edit the posts where you re-posted the work of others and the world is fine again.

---------------------------------
Excelcia forever
www.excelcia.org

Return to Freelancer Editing Tutorial Forum