What's important to keep in mind, if you don't want this mod to crash while you're messing around with the XML sample scripts?





1.  Don't delete the following files, unless you REALLY know what you're doing.  I'm warning you right here, right now... these files have a lot of dependencies that will cause FL and FLMM to crash and burn if you remove them.  Modding them (carefully) is fine... taking them OUT is probably not a good plan.

shiparch.ini

npcships.ini
pilots_population.ini
pilots_story.ini

weapon_equip.ini
misc_equip.ini
st_equip.ini






2.  XML scripts that cause looping operations will cause FLMM to crash.  For example:

<data file="data\equipment\st_equip.ini" method="replace" numTimes="0">
<dest>
hp_type = hp_fighter_shield_special_1
</dest>
<source>
;////////////////////////////////////////////////////CHANGED BY ARGH XML TOOLKIT MOD
hp_type = hp_fighter_shield_special_2
;///////////////////////////////////////////////////////////////////////////////////
</source>
</data>
;///////////////////////////////////////////////////////////////////////////////////////
;///////////////////////////////////////////////////////////////////////////////////////
;///////////////////////////////////////////////////////////////////////////////////////
<data file="data\equipment\st_equip.ini" method="replace" numTimes="0">
<dest>
hp_type = hp_fighter_shield_special_2
</dest>
<source>
;////////////////////////////////////////////////////CHANGED BY ARGH XML TOOLKIT MOD
hp_type = hp_fighter_shield_special_1
;///////////////////////////////////////////////////////////////////////////////////
</source>
</data>

If you look at the script, above, you will see that all that differs between the first script and the second one is that one looks for "special_2" and changes it to "special_1", and the other does the opposite.  Doing something like that will (for obvious reasons) cause an endless loop- which will make FLMM crash and burn ;-)




3.  XML scripts that refer to something that isn't in a given INI will almost certainly crash.  That's why I'm telling you not to delete the files listed above unless you REALLY know what you're doing- these files are called by FL all the time, and this codebase tweaks them in all sorts of ways.  Remove only when you understand what that means, and what will need to be altered to deal with the changes.





4.  XML/FLMM has several known limitations:

A.  You cannot make new Faction names and descriptions with it very well, because of the numbering conventions used.  To make brand-new (not just renamed) Factions, you need to hand-code some DLL entries.  Sorry, but this is a very specialized case, and FL's coders apparantly did this to tie Factions and Voices together properly, which was a huge job, and to keep the game engine straight about who/what/where/how/why.

B.  It isn't magic.  XML modding requires that you understand the limitations of the FL engine, how INIs are structured, and what various things can/cannot do.  This will take you at least a month or two, even if you're already comfortable programming with scripting languages like Javascript or the like.

You can make some amazingly cool things with FL's game engine if you are willing to put the work in, but it requires patience and practice, and it's not simple.  What I have provided here is a great way to get started, but it's not going to solve every possible problem.  If you're brand-new to modding... please, read the available tutorials on The Lancer's Reactor (www.lancersreactor.com) and download the EOA FL SDK, which you can find at Lancer's Reactor and EOA's FL modding 'site.

C. XML scripts must use PROPER NAMING CONVENTIONS.  What exactly is "proper", anyhow?  Some kind of Miss Manners thing?  No... "proper naming conventions" means that they have to follow RULES in order to work like you expect them to, every time.  Here are the rules:

C1.  Only use alphanumeric characters for the titles of your XML!  This means A-Z, a-z, 0-9, and underscores (the "_" symbol on your keyboard).

C2.  DO NOT USE SPACES IN XML TITLES!!!  PERIOD.

This is a good script, that will run in the order we want:  001_Argh_Amazing_Script.xml
This is a BAD script, that will not run in the order we want:  Argh Amazing Script.xml

C3. Scripts run in ALPHANUMERIC ORDER.  This means that 001_A will run BEFORE 001_B, and 003_A will run AFTER 001_A.  So, if one script needs to make important changes before another one runs... name them appropriately :-)




At any rate... hopefully, when people read this (hehe, little joke there... the people who NEED to read these things never DO read them), they will understand that while this codebase is fun and can be used to build from... it's just a starting place.  Don't expect it to make your life wonderful, or anything, k?  It's just some computer code.