_______________________________________________________________________________ \-----------------Logo by Osrevad. Contact Information Below.-----------------/ _____ _____ ____ ____ _ ____ ____ _____ |.----' |.---.\ |.---' |.---' || /.\ |\ || /,---' |.---' |.---.\ ||___ |'---'| ||__ ||__ || // \\ |.\ || || ||__ |'---'| |.---' |.--.( |.--' |.--' || ||___|| ||\\|| || |.--' |.--.( || || \\ ||___ ||___ ||___ |.---.| || \'| ||___ ||___ || \\ `' `' `' '----' '----' '----' `' `' `' `' `----' '----' `' `' _______________________________________________________________________________ \-------Contact him on AIM: Nahuwe or Email: omohasiosrevad@hotmail.com-------/ Freelancer In-Depth Editing FAQ Written by bartsimpsondude2000 Version 1.54 - Last Revised: 2-20-04:p This document is Copyright 2003-2004 by Landon Fowles aka bartsimpsondude2000 Latest revisions of this guide can be found at the following URL(s): http://www.gamefaqs.com =============================================================================== Legal Disclaimer This document is Copyright 2003-2004 bartsimpsondude2000. It may not be reproduced nor retransmitted in any form without prior consent from the authors. It may not be altered, published, sold, given as an incentive to buy, etc. without advance permission from the authors. All outside sources which have contributed to the making of this guide in some form have been cited in the last section of the guide. No one may put my Faq on their site except: www.GameFAQs.com www.NeoSeeker.com Banned Sites: www.cheatcc.com (for stealing everyone elses faq's it deserved an autoban) =============================================================================== Table of Contents I. Introduction and Revision History II. About the Author III. Tutorials - Cargo Sizes by Owning_Joo - Creating New Hardpoints by CW - How to edit the .thn script files by BobTheDog - How to create new weapon effects by BobTheDog - Hardpoints V.2 by Jackel - Transparent Cockpit by Jackel - How to change factions so you can be good to all but 1 by Reynen - Making Energy Missiles by Rolo2020 - System Building from scratch by giskard - Texturing by harrier - How To Make A Black Hole By Dracon - How To Change The Starting Ship In Multiplayer by Captain Tylor IV. The Testing Process V. Tools and Programs VI. Frequently Asked Questions VII. Random Tips, Hints and Information VIII. Reader Emails IX. Contact Information X. Revisions XI. Document Information To find something quickly: 1.Highlight the whole section name including roman numerals. 2.Press Control and C or right click and select copy. 3.Press Control and F. 4.Press Control and V. 5.Press Enter. =============================================================================== I. About the Author Hi my name on the forums is bartsimpsondude2000. I had the idea for this FAQ when I saw my favorite game had only 1 FAQ! I started to think about a subject to work on and then it came to me. I asked everyone on Lancer's Reactor if I could borrow some editing tutorials and they "stuck" my post on the board. From then on I started creating this FAQ. Ok My email is: projecteclipsor (at) msn.com (anti-spam reasons) Please, no spam, flames, but criticism is accepted as long as it is constructive. =============================================================================== II. Tutorials Here we are at the tutorials. I might need to tell you that Freelancer is one of the most editable modern games in existence. I mean they just spilled its guts into .ini files. They are compressed however, so you will need BiniQDU (check the Tools and Programs section). DO NOT USE THESE FOR AN ONLINE GAME!!! (Seriously, some might crash your game, and others WILL get you kicked or banned! They do have a new FL version of Punkbuster (not punkbuster but software with same purpose) that WILL detect your edited inis! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Cargo Sizes by owning_joo First you open up your shiparch.ini. It should be in freelancer folder like C:\program files\microsoft games\data\ships\shiparch.ini I recommend using something like BiniQDU because you can search for words in the .ini file. To edit the cargo size of what ship you have to find out who makes it and what class ship it is and the name. Here is the ship thing for the Sabre. You go down through the list and find the hold size part I put it in "s but dont put that in folder. When you find the hold size just change it to what you want. I dont know if there is any limit but highest cargo space I've edited to is 1 million. [Ship ids_name = 237012 ids_info = 66515 ids_info1 = 66516 ids_info2 = 66608 ids_info3 = 66517 ship_class = 3 nickname = bw_elite2 LODranges = 0, 75, 125, 1000 msg_id_prefix = gcs_refer_shiparch_borhf mission_property = can_use_berths type = FIGHTER DA_archetype = ships\border_world\bw_vheavy_fighter\bw_vheavy_fighter.cmp material_library = ships\border_world\bw_ships.mat material_library = fx\envmapbasic.mat envmap_material = envmapbasic cockpit = cockpits\corsair\bw_elite2.ini pilot_mesh = generic_pilot nanobot_limit = 63 shield_battery_limit = 63 mass = 75.000000 "hold_size = 70" linear_drag = 1.000000 fuse = intermed_damage_smallship01, 0.000000, 2700 fuse = intermed_damage_smallship02, 0.000000, 1350 fuse = intermed_damage_smallship03, 0.000000, 900 max_bank_angle = 30 camera_offset = 9, 33 camera_angular_acceleration = 0.060000 camera_horizontal_turn_angle = 20 camera_vertical_turn_up_angle = 10 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Creating New Hardpoints by CW !!!Warning!!! If you arent a rocket scientist skip this section! j/k but its confusing. This tutorial focuses on the rotatable weapon hardpoints but fixed ones like engines and thrusters aren't that much different, except that they are missing a few nodes. Recommended Utilities: HCl's UTF Editor Tyson Schoepflin's BiniQDU v1.1 Preparation -------------- The feedback I got is that a lot of people don't understand the coordinate frames, especially in the Orientation section. I must emphasise that it is VERY IMPORTANT for you to draw diagrams as you read along, otherwise you will have a hard time trying to understand what I'm talking about! To make a new weapon hardpoint, first find your ship's CMP file in ..\DATA\SHIPS\(your ship's fraction)\(your ship)\ . For example my Dromedary freighter uses a file called bw_freighter.cmp under C:\Program Files\Freelancer\DATA\SHIPS\BORDER_WORLD\BW_FREIGHTER\. Open the file with UTF Editor and selected "float array" under "interpret data as...". Using the same example again, if you explore the tree structure of the file you will notice that the first level 'tree trunks' are mainly consisted of body parts such as "bw_freighter_lod1030109103849.3db" (fuselage), "bw_port_eng_lod1030109103849.3db" (left wing) and "bw_star_wing_lod1030109103849.3db" (right wing). Under these trunks there are branches called "Hardpoints" and further under them are sub-branches labeled "Fixed" , where all the non-moving hardpoints are stored (ie thruster, mine launcher, shield, running lights etc.), and "Revolute" , where all the gun, missile, torpedo/cruise disrupter and turret hardpoints are stored. You can add hardpoints to any body parts, but I've heard that it is a really bad idea to add hardpoints to the bay doors due to a game stability issue. Find the right fuselage part tree trunk that you intend to mount your new hardpoint on, select the "Revolute" sub-branch under it and click "Add node". Rename the new node "HpWeaponXX" for gun/missile mounts; "HpTorpedoXX" for torpedo/cruise disrupter; or "HpTurretXX" for turrets, where XX is the next vacant mount number (if your ship has 4 guns originally, then the next gun slot would be "HpWeapon05". Same goes for torpedo and turret hardpoints). Create 5 more nodes under this new node, and rename them "Axis" , "Max" , "Min" , "Orientation" , and "Position" . Axis ----- Select "Axis" and click Edit. I've done some experiments to find out what this node does, but I was not able to alter the behaviour of a weapon with it and strangely a hardpoint would work just fine with this node incomplete or even missing. For all practical purposes this node does nothing but for the sake of completeness just add it in and assign it the following values, which are standard for all rotatable hardpoints: 0.000000 1.000000 0.000000 Max & Min ------------ These two nodes defines how much the weapon can rotate sideway ("sideway" refers to the weapon, not the fuselage). If you look at an existing hardpoint, you will notice that these two nodes have 2 elements each. The number at the top defines the rotation limit in radians, while the number at the bottom seems to be 0.000000 all the time. "Max" is used to define the limit to the left and has a positive value; while "Min" is used to define the limit to the right and takes a negative number. To make a weapon that doesn't have a rotation limit, enter 6.283185 (=2*pi) in "Max" , and -6.283185 in "Min" , remember to put in 0.000000 for the second row. A quick summary: Max node = Left, Positive Min node = Right, Negative EXAMPLE 1: A gun with rotation limit of 30 degrees (0.523599 radians) to the LEFT, and 40 degrees (0.698132 radians) to the RIGHT. The Max node would be: 0.523599 0.000000 And the Min node would be: -0.698132 0.000000 EXAMPLE 2: A turret that can rotate freely. The Max node would be: 6.283185 0.000000 And the Min node would be: -6.283185 0.000000 There is a way to alter the weapons' firing cones without making them rotatable, or allow them to shoot over a wider arch than they can point their muzzles to. This may be useful for those of you who are planning to build your new ship around some fixed mammoth killer cannon. You can alter the following setting in Constants.ini , which is located directly under Freelancer's Data directory: MUZZLE_CONE_ANGLE = 10 Note that the number is in degrees, also this setting will affect every weapon on everybody's ships in the game. The guns in Freelancer won't shoot unless your cursor is within their firing cone, so if you set the number too small your weapons may sometimes seemingly refuse to fire when you maneuver too much, especially for your fixed killer cannon. Position ---------- Each part of the fuselage has its own coordinate frame with the same orientation. The orientation is as follow (DRAW A DIAGRAM NOW): Positive X: to the right Positive Y: up Positive Z: to the rear Depending on which fuselage part you assign a weapon to, the Position entry is referenced to that fuselage part's own coordinate frame. Look at the existing hardpoints and guess some values for now, we will come back to it at the end. Orientation - The Direct Approach ----------------------------------------- This is the hard part that needs some vector mathematics. Each mountable weapon has its own coordinate frame and if they are to align with the Fuselage Coordinate Frame, ie, having their X,Y,Z axes facing the same directions, then the gun barrel has to be pointing FORWARD with the mounting point facing DOWN. DRAW A SEPERATED DIAGRAM OF THE WEAPON AND ITS COORDINATE FRAME NOW. And here is the complication, the 9 elements in "Orientation" map the Fuselage's Coordinate Frame to the Weapon's Coordinate Frame (ie, describe where each of the Fuselage Coordinate Frame's axes are pointing on the Weapon's Coordinate Frame). The first 3 numbers form the 3D vector for the Fuselage Coordinate Frame's X axis, the second 3 for Y, and the last 3 for Z. EXAMPLE 1: A gun mounted on the TOP of the fuselage facing FORWARD. * The fuselage's X axis is pointing to the same direction as the gun's X axis, so the first 3 elements are 1,0,0. * The fuselage's Y axis is pointing to the same direction as the gun's Y axis, so the next 3 elements are 0,1,0. * The fuselage's Z axis is pointing to the same direction as the gun's Z axis, so the last 3 elements are 0,0,1. Sum it all up, the entry for the gun's orientation would be: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 * This is the "aligned" orientation - the three axes of the Fuselage's Coordinate Frame are aligned with the Weapon's Coordinate Frame's three corresponding axes. EXAMPLE 2: A gun mounted on the RIGHT side of the fuselage facing FORWARD. * The fuselage's X axis is pointing to the same direction as the gun's Y axis, so the first 3 elements are 0,1,0. * The fuselage's Y axis is pointing to the exact opposite direction as the gun's X axis, so the next 3 elements are -1,0,0. * The fuselage's Z axis is pointing to the same direction as the gun's Z axis, so the last 3 elements are 0,0,1 Sum it all up, the entry for the gun's Orientation would be: 0.000000 1.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 EXAMPLE 3: A turret mounted UNDER the fuselage facing to the REAR. * The fuselage's X axis is pointing to the same direction as the turret's X axis, so the first 3 elements are 1,0,0. * The fuselage's Y axis is pointing to the exact opposite direction as the turret's Y axis, so the next 3 elements are 0,-1,0. * The fuselage's Z axis is pointing to the exact opposite direction as the turret's Z axis, so the last 3 elements are 0,0,-1 Sum it all up, the entry for the turret's Orientation would be: 1.000000 0.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 -1.000000 EXAMPLE 4: A gun mounted on a 45 degrees slope (the slope faces the morning sun) on the RIGHT side of the fuselage facing FORWARD. I will stick to the unit vector principle (keeping the hypotenuse = 1) for less confusion. * The fuselage's X axis can be described as y=x on the gun's coordinate frame, so the first 3 elements are 0.707107,0.707107,0. (Remembering 0.707107^2 + 0.707107^2=1^2 from trigonometry; alternatively you can forget about the unit vector principle and use 1,1,0 instead, but it might get confusing if you have any angles other than 45 degrees.) * The fuselage's Y axis can be described as y=-x on the gun's coordinate frame, so the next 3 elements are -0.707107,0.707107,0. * The fuselage's Z axis is pointing to the same direction as the gun's Z axis, so the last 3 elements are 0,0,1. Sum it all up, the entry for the gun's Orientation would be: 0.707107 0.707107 0.000000 -0.707107 0.707107 0.000000 0.000000 0.000000 1.000000 If you screw up the orientation matrix, the weapon you mount on the new hardpoint will appear somewhat transparent in the ship dealer, and will malfunction in flight. And if you really want it here you go: Orientation - The Smart Aerospace Engineer's Approach -------------------------------------------------------------------- If you are trying to mount your hardpoints on some odd-facing surfaces, it will kill a lot of your brain cells trying to come up with the orientation matrix directly. In this case we need to use a little bit more maths to save us the trouble. Make sure you know how to do matrix multiplication, else look up here for a quick (5 minutes) but sufficient primer. What we are going to do here is taking a different approach by breaking the problem down into 3 easier to manage questions: 1) Starting from the "Aligned Orientation", how much in radians do I want to rotate the weapon around its X-axis? 2) How much in radians do I want to rotate the weapon around its Y-axis? 3) How much in radians do I want to rotate the weapon around its Z-axis? ("Aligned orientation": Recalling that if the Weapon's Coordinate Frame is to be aligned with the Fuselage's Coordinate Frame, then the gun barrel has to be pointing FORWARD with the mounting point facing DOWN.) We are going to use this ugly looking formula 3 times, each for the X,Y and Z axes respectively: Where, * {u1;v1;w1} is the Fuselage's Coordinate Frame axis you are trying to transform. The Freelancer game engine wants the transformation of all three axes (hence 9 elements), so in this case use the formula 3 times, once for {1;0;0} (ie. the X-axis), once for {0;1;0} (ie. the Y-axis), and once for {0;0;1} (ie. the Z-axis). * {u;v;w} is the resulting transformed axis that forms the elements in the orientation matrix. * Phi (that circle with a stroke through it) stands for the rotation you want around the X-axis (ie. pitch). * Theta stands for the rotation you want around the Y-axis (ie. yaw). * Psi (that trident-like symbol) is the rotation you want around the Z-axis (ie. roll). Whether the rotation is positive or negative is defined by the "Right Hand Rule". Hold up your right fist and stick up your thumb, if your thumb points towards the positive direction of the axis, then your other fingers signifies the positive direction of rotation around it. To get your orientation matrix, follow these steps: 1) Figure out what Phi, Theta, Psi values you want, plug them into the formula. 2) Replace {u1; v1; w1} with {1, 0, 0}. 3) Solve the equation to get {u; v ;w}, that's the first 3 elements in the orientation matrix. 4) Replace {u1; v1; w1} with {0, 1, 0}. 5) Solve again, that's the middle 3 elements in the orientation matrix. 4) Replace {u1; v1; w1} with {0, 0, 1}. 5) Solve once more, that's the last 3 elements in the orientation matrix. 6) Put your orientation matrix into UTF editor and try it out in the game, if you don't like the result, go back to step 1. It is definitely much less tedious if you get some computational maths package to do the calculations for you. Activating The Hardpoint ------------------------------- That's it for orientation and the new hardpoint is now fully defined. The next step is to enable it in shiparch.ini which is located in ..\DATA\SHIPS\ . But before you do that, look up here for the unique ID number of your ship. Once you have the ID number, open shiparch.ini with BiniQDU and find your ship. If you created a gun hardpoint, find the lines starting with "hp_type = hp_gun_special_X, HpWeapon01, HpWeapon02, ..." and add your new hardpoint to the end of each line. Notice that X stands for the class of guns, so if you want your new hardpoint to take every gun in the game, add it to the back of all 10 lines. Unless you are modding the Eagle, Titan or Sabre, which take class 10 guns and missiles by default, you will need to add the missing lines for the higher classes. Just follow the pattern. Same goes for torpedos/cruise disrupters and turrets, under the lines "hp_type = hp_torpedo_special_X, ..." (there are 2 classes of torpedos/cruise disrupters) and "hp_type = hp_turret_special_X, ..." (10 classes) respectively. Remember to save your work. The last step would be to run the game, put a weapon on your new hardpoint and see where it goes, then come back to refine the hardpoint's position. That's it for adding hardpoints! Enjoy your overloaded super gunship! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= How to edit the .thn script files by BobTheDog Part 1 Ok, so ya want to edit a script, right? well, today we're gonna focus on the main menu background, the one with the station in front of a planet with the ships and transports flying across. First off, you need the .thn uncompiler, BiniQDU, and the UTF Editor Both of which can be found in the Tools and Programs Section Now, once you have those, go into DATA\SCRIPTS\INTRO and copy gasminer3.thn to wherever you unzipped the .thn decompiler to. decompile it and open it up with notepad. Now, you are probably going "What's this? this isn't Freelancer coding!" and you'd be right. It's scripted in LUA code. But it's fairly straightforward, especially if ya know C++ or something like it. I'm not entirely sure what time unit is used in these, so just leave them alone for now. Part 2 Ok, now every FL script (to my knowledge) begins with a duration declaration, and then a scene entity, and ya can just copy those if ya make a new script. here's how things work in FL scripts: Everything has to be declared. You can only use things from solararch.ini, shiparch.ini, effects.ini, and the starspheres and nebulaspheres. so, here's how to declare a ship: { entity_name="Ships_li_dreadnought", <-- this is the name used to reference it in this script type=COMPOUND, <-- must be this for ships template_name="li_dreadnought", <-- what to use from shiparch.ini lt_grp=4, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC, spatialprops={ pos={ <-- position to start at... only used is stationary 7760.895996, 612.4628300000001, -4181.624023 }, orient={ <-- rotational vectors { -0.955097, 0, -0.296293 }, { 0, 1, 0 }, { 0.296293, 0, -0.955097 } } }, userprops={ <-- I assume this tells it where to get the template from... category="Spaceship" } }, now, you can mae the template anything from shiparch.ini we have a ship, now let's make it follow a path: This is a path from gasminer3.thn: { entity_name="Path_1_copy_1", type=MOTION_PATH, template_name="", lt_grp=0, srt_grp=0, usr_flg=0, spatialprops={ pos={ 5, 6.576355, 55 }, orient={ { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } } }, pathprops={ path_type="CV_CROrientationSplinePath", path_data="OPEN, {7760.895996,612.463013,-4181.623535}, {1.000000,0.000000,0.000000,0.000000}, {7465.413574,612.463013,-3846.421143}, {1.000000,0.000000,0.000000,0.000000}, {7569.932129,612.463013,-3511.218262}, {1.000000,0.000000,0.000000,0.000000}, {7474.450684,612.463013,-3176.015137}, {1.000000,0.000000,0.000000,0.000000}, {7358.968750,612.463013,-2840.812256}, {1.000000,0.000000,0.000000,0.000000}, {7283.486816,612.463013,-2505.608887}, {1.000000,0.000000,0.000000,0.000000}, {7188.005371,612.463013,-2170.406006}, {1.000000,0.000000,0.000000,0.000000}, {7092.523438,612.463013,-1835.202759}, {1.000000,0.000000,0.000000,0.000000}, {6997.041504,612.463013,-1500.000000}, {1.000000,0.000000,0.000000,0.000000}, " } }, all the numbers at the bottom are points for the path to follow, i'm not sure how to calculate them, tho. What you CAN do is edi the pos={ section: pos={ 5, <-- positive is right, negative is left 6.576355, <-- positive is up, negative is down 55 <-- positive is forward, negative is back }, I'm assuming that these paths are calculated from the center of the scene. Now, you need to have the ship go down the path... under the events={ section, at the end of the declarations, you would put: { 0, <--this tells it how many time units to delay the action (I think) START_PATH_ANIMATION, { "Ships_li_dreadnought", <-- which entity to put on the path "Path_1" <-- which path to use }, { duration=60, <-- I'm not sure what the next three do... start_percent=0, stop_percent=1, offset={ 90, 45, 45 }, up=Y_AXIS, front=NEG_Z_AXIS, flags=POSITION + ORIENTATION + LOOK_AT <--this seems to tell the ship to face in the direction of the waypoint } }, As you can see, there is a field called offset={ this is exactly like the pos={ field discussed earlier. This time, it tells the offset by which the ship is placed on the path. ok, now you have a ship, on a path. assuming you simply edited the gasminer3.thn, you are almos good to go. to get it to allways show up when you start freelancer (there are three possible menu backgrounds, randomly chose when you start FL) you need to edit two files: intro2_vlocanoplanet.ini intro3_planetchunks.ini both in DATA\UNIVERS\SYSTEMS\INTRO\BASES\ROOMS you'll need to decompile them with bini and change this line in both: [Room_Info scene = ambient, Scripts\Intro\xxxxxx.thn to: [Room_Info scene = ambient, Scripts\Intro\gasminer3.thn save both files, and make sure you put the decompiled ini's back into the right folders, and made sure they still had the .ini extension, not .ini.txt as bini makes them. now, load freelancer, and you should see the intro with the ship going by eventually. Part 3 Now, you say "Wait a second... there's no engine!" that's correct. Here's the complex part: This is a script, not a Freelancer system, and those aren't ships, just models stuck on a conveyor belt. they don't even have solidity. Yep, you can fly them right through each other, and anyhting else in the scene, planets, stations, etc. how to add an engine then? back at the declaration part of the gasminer3.thn file, add this: { entity_name="FX_ge_lbd_engine_01", type=PSYS, template_name="gf_li_largeengine03", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7784.271973, 609.758606, -4256.971191 }, orient={ { -0.993505, 0, -0.113791 }, { 0, 1, 0 }, { 0.113791, 0, -0.993505 } } }, psysprops={ sparam=0 } }, this time, the template comes from effects.ini this is the engine effect used by the engine used by the liberty dreadnought in the game. Now that we've declared it, we mive on to attaching it to the ship: put this in the events={ section: { 0, ATTACH_ENTITY, { "FX_ge_lbd_engine_01", <-- thing that's being attached "Ships_li_dreadnought" <-- thing it's being attached to }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpengine01", target_type=HARDPOINT, flags=POSITION + ORIENTATION } }, note at the end it has sections for what to attach it to. If you are not familiar with the model you are attaching the effect to, you need the UTF editor to look at the hardoint names for specific models. The Liberty Dreadnought has only one engine flame, fortunately for us. and the hardpoint is labeled HpEngine01. I suppose you caould add offsets here, but that'd look odd... now it's attached to the ship, but we still need to turn it on: under the attachment event, add this: { 0, START_PSYS, { "FX_ge_lbd_engine_01" }, { duration=2400 } }, this turns on the named effect. now, save the file and go back into the game. You should see the Liberty Dreadnough has it's engine now. One last thing: THe engine is too small, you say. Yes, but it cannot be helped. I don't know of a way of changing it's size... you see the size it dynamically controlled in the game, relative to your speed, bu the ship in the scene has no speed, it's just sitting on the track. so the effect is at it's lowest "on" point. And another thing: You can't add weapons, or runninglights to anything. Believe me I've tried. Part 4 Here's another thing to try: Add this to these declaration area: { entity_name="smoke1", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke2", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke3", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke4", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke5", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke6", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke7", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke8", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, { entity_name="smoke9", type=PSYS, template_name="gf_prisonattack_bigsmoke", lt_grp=0, srt_grp=0, usr_flg=0, flags=LIT_DYNAMIC + LIT_AMBIENT, spatialprops={ pos={ 7322.942383, 363.170685, -3207.746094 }, orient={ { 0.433044, -0.458753, 0.775899 }, { 0.223574, 0.888564, 0.400586 }, { -0.873205, 0, 0.487352 } } }, psysprops={ sparam=0 } }, amd these to the event area: { 0, ATTACH_ENTITY, { "smoke1", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s2_01", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke2", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_01", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke3", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_02", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke4", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_03", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke5", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_04", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke6", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_05", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke7", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_06", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke8", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_07", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, ATTACH_ENTITY, { "smoke9", "smallstation1_1" }, { duration=2400, offset={ 0, 0, 0 }, up=Y_AXIS, front=NEG_Z_AXIS, target_part="hpturret_s1_08", target_type=HARDPOINT, flags=POSITION + ORIENTATION + ENTITY_RELATIVE + ORIENTATION_RELATIVE } }, { 0, START_PSYS, { "smoke1" }, { duration=2400 } }, { 0, START_PSYS, { "smoke2" }, { duration=2400 } }, { 0, START_PSYS, { "smoke3" }, { duration=2400 } }, { 0, START_PSYS, { "smoke4" }, { duration=2400 } }, { 0, START_PSYS, { "smoke5" }, { duration=2400 } }, { 0, START_PSYS, { "smoke6" }, { duration=2400 } }, { 0, START_PSYS, { "smoke7" }, { duration=2400 } }, { 0, START_PSYS, { "smoke8" }, { duration=2400 } }, { 0, START_PSYS, { "smoke9" }, { duration=2400 } }, now the station is burning! Oh no! Part 5, The Final Part And one last thing to try: Open the following: intro1_cityscape.ini intro2_vlocanoplanet.ini intro3_planetchunks.ini and change the [Room_Info scene = ambient, Scripts\Intro\xxxxxxxx.thn to: [Room_Info scene = ambient, Scripts\Intro\intro_waterplanet.thn now you can see the unused intro! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= How to create new weapon effects by BobTheDog You will need BINI Look in the Tools and Programs Section effects are simple, yet complex: all weapons reference their effect in the ammo header in weapon_equip.ini.... although missiles reference some thinf in their explosion header. lets say you wanted to create an effect called BEAM_O_DOOM, you'd need to do the following: in weapon_equip.ini: [Munition nickname = li_gun01_mark01_ammo hp_type = hp_gun requires_ammo = false hit_pts = 2 hull_damage = 16.299999 <-- hull damage (lol) energy_damage = 0 <--shield damage (multiplied by something.. so this is not actually 0 shield damage) weapon_type = W_Laser01 one_shot_sound = fire_laser1 munition_hit_effect = li_laser_01_impact <-- the effect used when the projectile hits something const_effect = BEAM_O_DOOM <--the beam lifetime = 0.800000 force_gun_ori = false mass = 1 volume = 0.000100 [Gun nickname = li_gun01_mark01 ids_name = 263357 ids_info = 264357 DA_archetype = equipment\models\weapons\li_heavy_ion_blaster.cmp material_library = equipment\models\li_equip.mat HP_child = HPConnect hit_pts = 400 explosion_resistance = 1.000000 debris_type = debris_normal parent_impulse = 20 child_impulse = 80 volume = 0.000000 mass = 10 hp_gun_type = hp_gun_special_1 damage_per_fire = 0 power_usage = 5.090000 <-- how much power each shot uses refire_delay = 0.120000 <-- how long before you can shoot again... 1.0 is long and 0.01 is real short muzzle_velocity = 750 <-- how fast the projectile goes use_animation = Sc_fire toughness = 1.300000 flash_particle_name = li_laser_01_flash flash_radius = 15 light_anim = l_gun01_flash projectile_archetype = li_gun01_mark01_ammo <-- references above [munition section separation_explosion = sever_debris auto_turret = false turn_rate = 90 lootable = true LODranges = 0, 20, 40, 80, 100 ok, now edit those to whatever, these are the defaults for the Liberty Mark One cannon. all the effects are listed in effects.ini, so in there, you need to make a listing: [Effect nickname = BEAM_O_DOOM effect_type = EFT_WEAPON_PROJ vis_beam = BEAM_O_DOOM <-- This references the listing in beam_effects.ini now go to beam_effects.ini and make a new listing: [BeamSpear <--can be [BeamBolt or [BeamSpear nickname = BEAM_O_DOOM tip_length = 5 tail_length = 60 head_width = 3 core_width = 2 tip_color = 0, 64, 128 core_color = 20, 85, 150 outter_color = 0, 64, 128 tail_color = 255, 255, 255 head_brightness = 1 trail_brightness = 1 head_texture = ball <-- can be BALL or STAR trail_texture = thin <-- can be THIN or WIDE flash_size = 3 all these things are pretty self-explanatory, but the colors are in RGB values: R, G, B to easily get an RGB value, use Microsoft Paint, and go to the custom color editor. anyhoo, for a beam weapon, you want low energy use, long beam, fast refire, low damage. just play around with the settings. also: for fun ya can use any effect listed in effects.ini for the following in weapon_equip.ini: flash_particle_name = const_effect = projectile_hit_effect = just be careful... some effects loop indefinitely, and if ya use one for a flash, it's stuck to your ship untill ya die, or dock with something. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Hardpoints V.2 by Jackel I don't want to step on any toes here. I know there is a current hardpoint tutorial by CW that is really good, but I had trouble understanding it until I was a little more advanced at moding, so I thought I would make one even a nOOb would understand. First off, you have to open your ship's CMP file and to do that you use everyone's favorite program UTF Edit. Once you have that opened you need to expand the root "\" and then expand "Window2.3db", "Hardpoints" and "Revolute". This will show you a list of your rotatable hardpoints which are your Turrets, etc. It should be noted that these same procedures can be used for the "Fixed" hardpoints too but the only ones there you might want to edit are the CM/Mine launchers. Select the turret/etc. that you wish to adjust and then expand it. Here you see a list of 5 things. AXIS = Which axis' will be rotatable MAX = How far the gun can turn to it's LEFT (might be right) MIN = How far the gun can turn to it's RIGHT (might be left) Orientation = Which direction the gun faces Position = Where the gun is located on the ship In this tutorial we won't worry about the Position as most people add the hardports graphically using MilkShape which does all of this by itself. What we are concerned with is the rotation and orientation of the turrets because MilkShape sometimes has issues dealing with said things. It should be noted that if you modify the CMP file and then have to go back and make a change in MilkShape you will have to re-edit the CMP file again to ensure your Hardpoints are correct. So here we go. ~~~~~~~~~~~~~AXIS~~~~~~~~~~~~~~ This is shown with a series of 3 numbers, which are either a 1 or 0 followed by a decimal and 6 more 0's... They're pretty easy to understand and here is an example. 0.000000 = X axis, meaning this gun isn't turnable (overridden by Min/Max). 1.000000 = Y axis, this gun has the ability of aiming up and down. 0.000000 = Z axis, Always a 0 because a gun shouldn't move up and down. If you wanted a gun to only be able to swing left and right without the ability to move up and down simply change the second number to "0.000000 ", it's that easy. ~~~~~~~~~~~~~MIN/MAX~~~~~~~~~~~~~ This is where it gets a little more confusing. These two commands, Min and Max, let the gun know how far it can turn to the left (Min) or the right (Max). This is based on the mathamatical PI (3.1415) formula. The easiest way to figure this out is simply by drawing the left half of a circle and marking the top as 0 and the bottom as 3.1415. Then it's a simple fact of determining, using division, exactly how far you want your gun to turn. Now, in the MAX and MIN entries I see two numbers. The first is the one you should be interested in. I believe the second (I may be wrong) is how much it can turn on the Y axis (meaning up or down). At any rate, here is an example of how you figure out what the first number should be; I want my gun to be able to shoot 45 degrees to the left and 45 degreese to the right. Therefore, 45 degreese is 1/4 of the half that we've drawn. That being the case, 3.1415 divided by 4 gives you 0.7854 which would allow the turret to turn 1/4 to the left. So in the Max you would put "0.7854" and in the min you would put "-0.7854". Always remember that MIN is the opposite half of the circle and must be negative. In the same respect, if you wanted to use 90' which is half of our little chart you would endup with 3.1415 divided by 2, because 90 is half of 180, which equals 1.5708. So you would put "1.5708" in MAX and "-1.5708" in MIN. This would give you 90' rotation to the left and 90' rotation to the right. Simple huh? ~~~~~~~~~~~Orientation~~~~~~~~~~~ This has to be the one that kills everyone as it leveled me more than once. Orientation has to do with the gun facing forward/backward, upside right/upside down, and even on it's side. Now, I did alot of testing to make sure this was totally accurate but it might actually be determined by your model so don't bite my head off it it dosn't work out exactly the way you liked. There are three sets of three numbers as you'll soon see. Here is an example of an orientation entry... 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 Now I'm going to break them up and give them names for this tutorial. 1.000000 0.000000 = FIRST SET 0.000000 0.000000 1.000000 = SECOND SET 0.000000 0.000000 0.000000 = THIRD SET 1.000000 Now, what I've learned is that the FIRST SET controls the gun's actual "figuring out" where it's orientation is. It actually calculates the Y access of the gun, that being, figuring out what is up and down. I'm going to break this down further and explain it here. First number of the FIRST SET 1.000000 = If the gun is upside right (negative if upside down) 0.000000 = Otherwise Second number of the FIRST SET 1.000000 = If the gun is on the right side of the hull (negative if on left) 0.000000 = Otherwise Third number of the FIRST SET 1.000000 = If gun is on front of ship -1.000000 = If gun is on back of ship 0.000000 = Otherwise Now, before I go any further I wanted to let you know that there can be some variations in these numbers. They don't always have to be a 1 or a 0. For instance if you wanted the gun to be on a 45' angle then you would devide the 1 by 4 and get your number which is "0.250000". This takes a little more advanced thinking but it's easy once you get the hang of these hardpoints. Now, onto the SECOND SET of numbers. The SECOND SET of numbers tells the gun what it's rotation is, as far as being on the top of the hull, on the side of the hull, or even on the bottom of the hull. Here are some examples. -1.000000 0.000000 = A Gun on the right side of the ship. 0.000000 1.000000 0.000000 = A Gun on the left side of the ship. 0.000000 0.000000 1.000000 = A Gun on the top of the ship. 0.000000 0.000000 -1.000000 = A Gun on the belly of the ship. 0.000000 Please note that this orientation must be the same as the orientation for the Y axis. What I mean is that if you put the FIRST SET of numbers as having the gun upside right then you better have the SECOND SET with the gun being upside right. Otherwise, when you get in the game, your guns will do some VERY strange stuff. The THIRD SET of numbers, the final 3, dictate the orientation of the turret as far as it being facing forward or backward, left or right. This is what most people look for when they're adding hardpoints and here are some examples; 0.000000 0.000000 = The turret facing forward 1.000000 0.000000 0.000000 = The turret facing backward -1.000000 You can do the same with these as you do with the others, make them face 45' or 90' or whatever direction you wish. The only thing you have to remember is that if you change one of the three SETs you have to make sure the other two make sence. For instance, you wouldn't see this.... 0.000000 1.000000 = FIRST SET 0.000000 0.000000 1.000000 = SECOND SET 0.000000 0.000000 0.000000 = THIRD SET 1.000000 This would symbolize a gun that's upside right with the Y axis being to the right of the ship facing forward. Now, the SECOND SET and the THIRD SET are perfectly fine. But you can't have a gun that's upside right with it's Y axis (meaning aiming up) as being to the right. It just isn't right, no pun intended. This gun would think that UP would be RIGHT (as in the direction) when it's supposed to be UP. And it could lead to the gun bouncing around the hull, or worse, a crash. Well, I hope this tutorial helps out a bit. If there is anything you want further elaboration on please let me know and I'll see what I can do. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Transparent Cockpit by Jackel I was just reading through and I noticed someone commenting about not knowing how to do transparant cockpits, so I figured what better way to explain than make a small tutorial that's probably already been done. This is real easy to do. All you need to do is make a texture specifically for the window. To do this load up a program capable of making transparent images, for instance I use Photoshop 7.0 and follow this procedure. If you have Photoshop 7.0 you can follow along and it will basically make itself. If you don't have Photoshop then you should be able to modify this procedure for whatever program your using, it's really self-explanatory. First, make a new image that is a fare size, say 400X300. When you create it be sure you move the dot under the CONTENTS heading to "Transparent" from whatever it's on. Now, you should have a blank image that's transparent, It should be noted that Photoshop will automatically create a new layer when you do this next procedure. If your not sure if yours will I suguest making a new layer that we can paint on. Some programs call it a layer, some call it a Raster Layer, depending on what your using. Now, go to your paint and select a color that you want for the glass. If you want it to be black, choose something a little bit greyer than total black. If you want white choose something a little greyer than white. The off-black/off- white will give it a sence of texture when it's put on the glass. Now click the FILL tool and click anywhere on the picture. This next step is for Photoshop only. Other programs will be diferent. Basically all your doing is adjusting the new layer's opacity. Some programs have it under Layer Properties but any program that does layers will have a properties somewhere for that layer. Now, under the LAYER menu there is an option there for LAYER STYLE. Put your mouse on that and a side menu will appear. Select the BLENDING OPTIONS command and what we're now looking for is the slider in the GENERAL BLENDING box that's labeled OPACITY. Slide it back 1/4 of the bar, or to where the shading is to your liking, and then hit OK. Now all you have to do is go to FILE, SAVE, and save it as a TGA. It will "yell" at you saying it can only save a copy of the image, just ignore that. Now all you have to do is open your MAT file and add the texture there. Oh, and don't forget to add the texture in Milkshape as you normally do BTW, now that your cockpit is transparent, you might wanna add a pilot and a few more details. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= How to change factions so you can be good to all but 1 by Reynen Ok I've had a terrible time trying to manually get neutral factions for almost everyone. Dang near impossible. So I made this to help people out. Yes some may view it as a cheat, but use it as you will. I tried doing it the normal way and falied. The process is simple. Uncompress and edit empathy.ini in the missions directory. Find fc_x_grp (xenos) Since everyone hates them anyways this will work out nicely. Simply change all their values to -1 and when you kill 1 thing you will be completely friendly to all but the xenos who will want to kill you everywhere. Change the stuff under the xenos group itself. Not everyone elses. Easies place to kill em is Ouray base int he Colorado system. Enjoy. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Making Energy Missiles by Rolo2020 To do this just edit the "Stalker Missile" munition entry to read: The munition entry has been changed to remove the explosion_arch or something line (tells the game to use an /Explosion Entry. Also removed the DA_archetypes for the /Munition/ entry (removes the original projectile representation) [Munition nickname = missile02_mark01_ammo hp_type = hp_gun requires_ammo = false <
one_shot_sound = fire_plasma2 <