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

Ringworld System: Developement thread.

The general place to discuss MOD''ing Freelancer!

Post Sat Aug 23, 2003 4:28 am

Now for Battleships.

Chips this one is for you.

First i need to sign a disclaimer.

The party of the first part here by agrees to buy the party of the second part a beer when you see him the pub

Ok ?

Right, whilst you follow these examples remember this. The difference between an encounter Battleship and Mission Battleship is as small as copying your entry in shiparch.ini for your battleship and changing a few lines to say fighter and adding the type line. EG treat it like a fighter and it will appear in your missions. I'll make some notes about any changes you need to make to get them to appear in missions as i go along. Otherwise you just have to dupicate the process im about to tell you about.

For our example we need a battleship from Shiparch.ini

By thats handy, the devs made one for us

Lookup
nickname = rh_battleship
Thats the exact name in shiparch.ini.

Next we need to give it a loadout in loadouts_special.ini. For fighters its loadouts.ini. EG Battleships classed as fighters dont use the loadouts_special.ini file. Though the loudout it self may be exactly the same as a standard special entry.

Heres a loadout you can use but why call it rh_battleship2. Well rh_battleship was taken and we dont want to change the ships in the game the devs added unless we intend to do a good job of reballancing the entire game afterwards.

[Loadout
nickname = rh_battleship2
archetype = rh_battleship
equip = infinite_power
equip = ge_s_scanner_02
equip = sfx_rumble_battleship
equip = capitalshipweapon1, HpTurret_R1_01
equip = capitalshipweapon1, HpTurret_R1_02
equip = capitalshipweapon3, HpTurret_R1_03
equip = capitalshipweapon3, HpTurret_R1_04
equip = capitalshipweapon2, HpTurret_R2_01
equip = capitalshipweapon2, HpTurret_R2_02
equip = fc_c_turret02_mark02, HpTurret_R2_03
equip = fc_c_turret02_mark02, HpTurret_R2_04
equip = fc_c_turret02_mark02, HpTurret_R3_01
equip = fc_ou_turret02_mark03, HpTurret_R3_02
equip = fc_ou_turret02_mark03, HpTurret_R3_03
equip = missile01_mark05, HpTurret_R3_04
equip = missile01_mark05, HpTurret_R3_05
equip = missile01_mark05, HpTurret_R3_06
equip = missile01_mark05, HpTurret_R4_01
equip = missile01_mark05, HpTurret_R4_02
equip = missile01_mark05, HpTurret_R4_03
cargo = missile01_mark05_ammo, 100
equip = capitalshipweapon3, HpTurret_R4_04
equip = capitalshipweapon2, HpTurret_R4_05
equip = capitalshipweapon2, HpTurret_R4_06
equip = capitalshipweapon2, HpTurret_R4_07
equip = ge_rb_engine_01
equip = armor_scale_0
equip = SlowLargeYellow, HpRunningLight03
equip = SlowLargeYellow, HpRunningLight04
equip = SlowLargeYellow, HpRunningLight08
equip = SlowLargeYellow, HpRunningLight07
equip = SlowLargeYellow, HpRunningLight05

Did you notice one of my changes in that loadout ?

Cough Custom weapon called capitalshipweapon2 Cough. You wont have that entry. I found standard weapons on Battleships just make them huge turkies and they are not much of a challenge. So added a really mean weapon to them to make them feel like the big bad beasts they really are. I'll leave that to you to experient with. It will give you something to do

Besides it is fun watching various weapons take out 20 fighters in seconds before you finally get the ballance right

Time to move on...

NPCSHIPS.ini is the next file we want, it can be found in the data/missions folder.

Entries in here are divided up into lawful and unlawful AI ships so we need two entries. One for each. Ho my, i have two here. How handy is that

[NPCShipArch
nickname = rh_battleship2_d10
loadout = rh_battleship2
level = d10
ship_archetype = rh_battleship
pilot = pilot_military_ace
state_graph = CRUISER
npc_class = lawful, battleship, d10, d11, d12, d13, d14, d15

[NPCShipArch
nickname = rh_battleship2_u_d10
loadout = rh_battleship2
level = d10
ship_archetype = rh_battleship
pilot = pilot_military_ace
state_graph = CRUISER
npc_class = unlawful, battleship, d10, d11, d12, d13, d14, d15

The police pilots perform better in the game so best leave those. The D10 stuff is the base level. These ships will not appear in system zones less with a toughness less than 10. Given most zones do not go higher than 13, 10 is a nice figure. D13 zones are VERY rare btw. D10 are fairly common outside of liberty.

The Battleship is now setup and ready, all we need to do now is assign it to an AI and everything is done except for the system stuff.

Now its time to open Faction_props.ini from the missions folder

You will notice each faction has an entry here. Also each faction has several lines that start with npc_ship =. The name after npc_ship = is the nickname used in NPCships.ini for the ship you want the AI to have.

So for our Battleships it will be.

npc_ship = rh_battleship2_d10

or for pirates it will be

npc_ship = rh_battleship2_u_d10

Just add those lines to what ever fact you want to have battleships.

Now for word about difficult levels.

By making several different loadouts with several different weapon configurations and making some extra NPCship.ini entries to use them, you can create battleships suitable for all difficulty levels. You just fit weak weapons to low end battleships and kick ass weapons to high end battleships then add each ncpships.ini entry to the faction you want to have those ships just as i have described above.

If you scroll down to the bottom of a faction that already has Battleships by default you will see lines that look something like this.

formation = fighters, fighter_li_p
formation = gunboats, gunboat_rh_n
formation = CAPITALS, fleet_rh_n_battleship

You can setup formations easy enough by assigning a ship class, eg CAPITALS to a Formation.

I dont like giving everything away to people who ask me questions as it means they do not have to have to think. So if you want to add formations that are based on ship classes guess which two files you need to look at to get the available shipclass nicknames and formation nicknames. Heres a clue. Go to missions and just add ini to the end of those names

Whilst we are here its time to talk about mission Battleships. We are entering one area that changes must be applied that differ from encounter battleships so let me explain the mission battleships stuff here so you know.

If your level 10 battleship (fighter class) spawned with 2 other Battleships in formation (all fighter class), they would use a fighter formation unless you change the formation used in the faction_props.ini for the faction using Battleships in missions. So you need to assign a Fleet formation to fighters in faction_props so they are spaced out correctly. Easy stuff if you do your home work as i suggested 2 paragraphs up from this one

Talking of Shipclasses. Did you know you can make up your own ship classes for use in your own encounter scripts ?

Heres a fleet class i created for example. Its a new shipclass that uses any of the ships listed in it for encounters that list FLEET as the class of ship required. Interest stuff dont you think

[ShipClass
nickname = FLEET
member = destroyer
member = battleship
member = gunboat
member = armored

Anyway we are drifting off a bit. Back to the encounters again.

By this point you have everything you need to make battleships work in encounters except for the encounter script and and entry in your system file. So lets take the encounter script first.

A typical encounter script that we shall called battleships.ini for the sake of arguement would look like this and needs to be saved off in data/missions/encounters/.

[EncounterFormation
ship_by_class = 1, 1, CAPITALS
pilot_job = job_battleship
make_class = wanderer
ship_by_class = 1, 3, sc_fighters, -1
pilot_job = defend_job
make_class = wanderer
formation_by_class = CAPITALS
behavior = wander
arrival = all, -tradelane, -object_jump_gate
allow_simultaneous_creation = yes
zone_creation_distance = 10000
times_to_create = infinite

[Creation
permutation = 0, 3

BTW if you still have not spotted where the new FLEET class goes here is a clue taken from the above script.

ship_by_class = 1, 1, CAPITALS

Should be

ship_by_class = 1, 1, FLEET

Thats all thats required to use the FLEET class list of ships instead of the CAPITAL class list of ships from shipclasses.ini. Nothing that even approaches complex.

Anyway save off the Capital version of that script above but make a mental note about how easy it is to create your own shipclasses for future reference.

Open up your systems ini file where you want your Battleships to appear.

In encounters you need something like this.

[EncounterParameters
nickname = battleships
filename = missions\encounters\battleships.ini

Now find a zone where you want them to spawn in the script.

At the bottom of the zone added

encounter = battleships, 12, 0.290000
faction = Yourfaction, 1.000000

Where Yourfaction = a faction you gave the battleships too in faction_props.ini

If you mess up here the game will crash as soon as you enter the system. If you mess up with the AI files above, the game will crash as soon as it spawns a battleship.

And thats it.
Working battleships.

The exact same system can be used to add fighter or freighter encounters with the right encounter script.

As for missions. Missions require a fighter entry in shiparch.ini, a loadout in loadouts.ini and an entry in NPCShips.ini, then just add the new fighter (really a battleship pretending to be fighter) to faction props as described above.

Only missions appear to use difficulty levels higher than 13 at anything approaching regular intervals. Systems generally dont use anything higher than that. Some may be they are very rare.

Anyway, if you make your battleship fighters level 14 in ncpships.ini, they wont appear as fighter encounters. Lets face it, your dont want 8 Battleships raiding the tradelanes at random intervals do you...humm.. well your sadist ok... thats cool then

The capital ship entries still allow you to use Battleships in encounters but at locations of your choosing and not all over the place as they would appear with the fighter versions of the same battleships. It is all a matter of controling where they appear using difficulty levels in npcships.ini.

Players wont get any missions saying "go to location x and destroy the battleship". All they will get is Difficulty 14 mission, go to location x and destroy the enemy ships". When they get their and are suddenly faced with 5 battleships they will mess their pants

BTW battleships will not appear all the time. Normal fighters will normally be mixed in with them when they do appear. To space out battleships when they are used as fighters just give the faction using the fighter battleships a fleet formation of some kind and things will look great.

Hope this helps..

Now wheres that beer

BTW if you get it working your going to love it.

You can add gunboats the same way

Giskard



Edited by - giskard on 23-08-2003 05:42:11

Post Sat Aug 23, 2003 4:30 am

PS dont ask me to explain what each entry means. Thats a huge job, bigger than explaining what files needs editing and we would be here all week

If you have any specific questions though, i'll be happy to answer them. In fact a few guys around here could probably answer them as well as i could if not better.

Edit: An interesting thought here.

Wanderers new spacestation VS my battleships
Read em and weep George Lucas

Dam nearly an Hour replying to all these questions hehe.

Giskard


Edited by - giskard on 23-08-2003 05:45:32

Post Sat Aug 23, 2003 5:37 am

Thankyou - beer on its virtual way i promise. man that took you ages - and nice and indepth too!. Explains alot - but the only problem is that i have created battleship encounters all over the bloody place (every system practically) as it is for a server mod. The only remaining question is that i hear you can mod the server WITHOUT the clients needing the mod for battleship encounters....
Is that true?
If so - its just the same steps as above and they will see/ fight the things yeah?
Also i am planing on making it so that the 'houses' are on edge - ie if you do too many missions for liberty police/navy - then Rheinland is gonna kick some ass when you go to their system. Is that server side only or client and server?
(i ask cos i don't have a server to test stuff out on )

Post Sat Aug 23, 2003 5:48 am

To be honest Chips, I am not expert on server side stuff.
That question is best answered by others mate.

Giskard

Post Tue Aug 26, 2003 1:10 am

Giskard - i am crap at systems editing - however i just put your ringworld in to use as a 'template' to learn from (ie - see what you added and stuff, make a system - then do roughly the same (different type of system and locations stuff), and i have too say that i am gonna be owing you two pints of the finest beer possible!! It is fantastic! Not only that - but perusing the files along with your systems tut is a real gem! Thanks a million - i got a new modding direction to head in!
All your effort is Sooooooooooooooooooo appreciated! Excellent work and see ya soon!
Chips
p.s - love the ringworld - really fine looking too - now where did i put my capships encounters again!

Post Tue Aug 26, 2003 3:58 pm

Thanks for the kind words Chips.

I was kind of hoping it would inspire somebody

BTW the only things not in Ringworld are Asteriods and Nebula. If need advice on adding those let me know. Its pretty easy but you need to make your own asty and neby files first.

Works the same was as encounters really. Eg you name the files at the top of the system and use them in zones. Only difference is, the nebular and asteriod script tend to contain system info. Which is why you need your own scripts for those.

Like i said, not hard.
Post if you need to know about asteriods and stuff, i'll reply with the info you need.

Giskard

Post Tue Aug 26, 2003 5:11 pm

Hehe.

I like these systems!!


Anyway, This is a good place to get back in contact with you

I've fininshed designs on a Battleship for X-Lancer and will be implenting it soon.

Btw, Can you tell me how I can get in touch with Micheal_Dan (You know, Rebalance mod) 'cause I need to talk to him F A S T.


Kendo

Post Tue Aug 26, 2003 6:13 pm

Um - would LOVE some advice on how to put in asteroids and nebula especially.
Without sounding too pansy - I want to know whats the best lookin nebula poss, or if not - how the hell can i make one? Asteroids are functional - but not as cool lookin.......
Also - is it poss to make custom backgrounds? If so - what sort of tools would you need and file types to save em as etc etc.
1st things 1st though - nebula/asteroid guidance.....sign me up!
Chips

Post Tue Aug 26, 2003 6:46 pm

Chip chips chips!!

Look at what the nebula files are in the original FL look like, or use the FL Explorer!! (See Utilities)!!

Post Tue Aug 26, 2003 9:50 pm

Kendo: Hi bud, nice to see you again.
I have not see or heard from dan in a long time.

Chips: Best speak to Reynen from the TNG project about custom nebula backgrounds. It looks straight forward but his team already did it so they should know the answers to that question.

As for how to setup either a nebula or asteriod belt that already exists in the game this is how its done. I'll leave the asteriod loot stuff out of it for now as i dont usually both with it and its only really a matter of reading through some inis to see what loot requires what ini entry.

Lets look a nebular i made, a rather dark and dull one around a mining base.

Under the DUST line in any system ini you need zone name and path to a script for any nebular or asteriod.

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

Change the [Nebula to [Asteriod for asteriods.

The zone = line points to a real zone in the same system in so if the same nebula used twice, your going to need 2 entries.

A typical zone entry for the above Nebular line looks like this.

[zone
nickname = Zone_yo01_farscape_cloud
ids_name = 458796
pos = 39000, 0, -1500
shape = SPHERE
size = 20000
property_flags = 32768
interference = 0.700000
property_fog_color = 30.000000,30.000000,30.000000
pop_type = nonlootable_ast_field
spacedust = asteroiddust
spacedust_maxparticles = 125
visit = 32
sort = 25

As you can see most options are clearly understandable however "sort" and "visit" ones are not what you may think, Best leave then at the values i used otherwise they wont show up on the mini map.

BTW the interference = 0.700000 line is what causes radar interference and when you hear the Sensor visibility reduced message coming over your speakers.

Anyway, I'll assume youve read the tutorial on system making to find the known answers to what the above means. To be honest its mostly in english so you should beable to guess most of it.

Now we go to the data/solar/nebular folder and take a look at the nebula files.

Here is the one for the above stuff.

[properties
flag = nebula

[Fog
fog_enabled = 1
near = 0
distance = 1500
color = 20, 18, 24

[Exterior
shape = generic_exterior1
shape = generic_exterior2
shape = generic_exterior3
shape = generic_exterior4
shape_weights = 1, 1, 1, 1
fill_shape = nebula_circle2
plane_slices = 0
bit_radius = 5000
bit_radius_random_variation = 0.200000
min_bits = 6
max_bits = 6
move_bit_percent = 0.750000
equator_bias = 0.500000
color = 20, 22, 25

[NebulaLight
ambient = 7, 5, 2
sun_burnthrough_intensity = 0.500000
sun_burnthrough_scaler = 1.750000

[Clouds
max_distance = 500
puff_count = 15
puff_radius = 30
puff_colora = 17, 15, 12
puff_colorb = 37, 35, 30
puff_max_alpha = 0.500000
puff_shape = generic_cloud1
puff_shape = generic_cloud2
puff_shape = generic_cloud3
puff_shape = generic_cloud4
puff_weights = 1, 1, 1, 1
puff_drift = 1.000000
near_fade_distance = 60, 160
lightning_intensity = 1.000000
lightning_color = 65, 25, 85
lightning_gap = 20.000000
lightning_duration = 0.500000

[BackgroundLightning
duration = 1.500000
gap = 15.000000
color = 45, 48, 50

Notice theres no exclusion zones listed. This means this nebula file will work in any system. However here is one that will not.

[TexturePanels
file = solar\nebula\walker_shapes.ini

[Fog
fog_enabled = 1
near = 0
distance = 1700
color = 100, 60, 10

[properties
flag = nebula

[Exclusion Zones
exclusion = Zone_Bw03_01_exclusion
fog_far = 4000.000000
zone_shell = solar\nebula\walker_exclusion.3db
shell_scalar = 1.100000
max_alpha = 0.500000
exclusion_tint = 200, 200, 200

[Exterior
shape = walker_exterior1
shape = walker_exterior2
shape = walker_exterior3
shape = walker_exterior4
shape_weights = 1, 1, 1, 1
fill_shape = walker_circle
plane_slices = 5
bit_radius = 15000
bit_radius_random_variation = 0.200000
min_bits = 5
max_bits = 8
move_bit_percent = 0.750000
equator_bias = 0.500000
color = 200, 140, 50

[NebulaLight
ambient = 60, 40, 20
sun_burnthrough_intensity = 1
sun_burnthrough_scaler = 1

[Clouds
max_distance = 300
puff_count = 10
puff_radius = 100
puff_colora = 255, 200, 0
puff_colorb = 80, 40, 0
puff_max_alpha = 0.500000
puff_shape = walker_cloud1
puff_shape = walker_cloud2
puff_shape = walker_cloud3
puff_shape = walker_cloud4
puff_weights = 1, 1, 1, 1
puff_drift = 1.000000
near_fade_distance = 125, 200
lightning_intensity = 1.000000
lightning_color = 65, 25, 85
lightning_gap = 20.000000
lightning_duration = 0.500000

[BackgroundLightning
duration = 0.550000
gap = 2.000000
color = 60, 40, 10

[DynamicLightning
gap = 2
duration = 0.550000
color = 255, 150, 0
ambient_intensity = 1
intensity_increase = 1

Do you see the the lines marked [Exclusion Zones above in this one ?

Well they wont exist in your system and will crash the game if you try and use this file. However you can still use it, just cut out the [Exclusion Zones part and save it under a different name.

To change the colours, just open up a paint package and type in the numbers eg color = 255, 150, 0 into the RBG palette boxes to see the colour thats being used. Then select a new colour and paste in the new numbers. This takes some time but the results are well worth it.

There are several entries that need changing to achieve the desired effect. All are 3 numbers seperated by commons. So you should be able to spot them pretty easily.

The same system is used in system files for setting up system colours. So you can match the two if you like.

Giskard

Edited by - giskard on 26-08-2003 22:51:24

Post Wed Aug 27, 2003 4:40 am

*whips out pen* One bar tab for Giskard, 2 Pints and a double whisky......

Post Wed Aug 27, 2003 5:16 am

How did you add in new factions like that Babylon faction?
I added some new factions in the ringworld and they don't do anything except flying. They don't attack the bad factions such as xenos, outcasts....

For initialworld.ini, I think I set it right
rep = -0.65, fc_x_grp

For empathy.ini
empathy_rate = fc_x_grp, -0.450000

Post Wed Aug 27, 2003 6:21 am

Yes thats the problem, new factions only work in multiplayer not single player.

All i did was track down the factions id number and change it to point at my own dll. A really quick and easy way to do it. Notice theres no liberty police, navy or rogues in my mod ?

BTW i did make 3 new factions for HU before i found out the limitations.

Giskard

Post Wed Aug 27, 2003 7:38 am

Bugger. Giskard, is it possible for you to give me and Leonhart a hand with out mod when it begins to take shape? Since we can't make new factions that work, i was hoping that you might be able to use the Corsairs and Outcasts and modify them to fit Leonhart's armada and my fleets.

Post Fri Aug 29, 2003 1:49 am

Hello Wanderer.

Making new factions is easy but time consuming and only works online. However editing existing factions is as easy as changing an id number. EG take this example from initworld.ini

[Group
nickname = li_n_grp
ids_name = 524314
ids_info = 524295
ids_short_name = 524317

Just change those ids and you have a new faction

Let me know if you need help, i'll do what can but I cannot commit to your project full time. I should be able to get you past this part though.

Giskard

Return to Freelancer General Editing Forum