Adding your own mech designs:
All the data in the game is available for editing, which allows anyone to add or modify content
This means you can add new mechs to the game, and use them as you like!
Once created, you can create a Mod, and allow other players to use them too.
Each mech has a unique XML file which contains all data, weapons, equipment armor etc,
just like the original schematics.
The mech data is located in the Data\Mechs folder, where the game is installed.
Every mech includes the information in the Generic mech info (also found in the Data\Mechs folder),
this is a quick way of ensuring all mechs have the correct number of engine slots etc etc.
In addition to the individual mech files, a link to them is needed in Data/Files.xml. This lets
the game know which files ought to be loaded.
Starting from fresh:
The easiest way of adding a new mech is by copying an existing mech's XML, and fixing up all the slots.
You should probably pencil out the design first - the game does not check that the data is logical or correct!
Each part of the mech is desribed in two main sections:
Top level data:
This is where the individual stats are specified, e.g. WalkRate, or Weight.
The mech's weapons are also lists here, each one has an identifier (ref) so things like ammo can be associated:
The weapon names should match those specified in the Data/Weapons.XML file.
All mech equipment is stashed in various parts of the structure, so in the XML, there should be all the locations
lists, with each weapon, ammo, heatsink, armor and structure amounts etc. lists - just like the schematics in the
original game. Each location should have a Name, so it can be identified, which must be one of:
Head, LTorso, RTorso, Torso, LArm, RArm, LLeg, RLeg.
Each one pretty much speaks for itself..
Note that each piece of equipment should take up the correct number of location slots, e.g. a LongRangeMissile
should take up 3 location slots, like this:
Any ammo should contain the reference to the associated weapon:
This way we can check each weapon still has enough ammunition to be effective.
Adding the models:
The game expects all models to be in the DirectX 'x' format.
Each mech references which models to use with a list of Mesh and LinkedMesh attributes in the top level data.
A LinkedMesh basically means it is attached to the Mesh with the listed index, that way arms face the in the same
direction as the torso etc.
Each section of the mech (one for each location) has a seperate model, this way they can be hidden easily when the
mech suffers critical damage to that area.
This means you should export each location as a seperate mesh, at the correct position (so for example the left arm
should be floating in mid-air in your editor).
The models should be saved to a unique folder in the Data\Meshes folder, for example all the Wasp meshes are
found in the Data\Meshes\Wasp folder. The naming of these meshes not completely important, however it'd be easier
if they were kept to a standard, check any existing data for examples, however the 7 mesh names are:
torso.x, ltorso.x, rtorso.x, larm.x, rarm.x, lleg.x, rleg.x
An 8th mesh exists called 'skeleton.x', which define the firing positions for weapons, so each one should uniquely
match the model. These should contain sub-meshes which are named according to their location, e.g.
LArmWeapon, RArmWeapon, LTorsoWeapon etc.
This allows the game to create any weapon projectiles from the correct position.
Once the models have been created, they need to be referenced in the Data\Meshes.XML file. This instructs
the game which models to load.
Each entry in the Meshes.XML file has a link to the actual model, and a reference so the mech can associate
a particular part of it's body with it, like this:
You can pretty much ignore any field other than 'value1' :)
That's pretty much it; as mentioned previously - the easiest method is to copy an existing mech, and fill out
the equipment for your own design.
All weapon data are stored in two files, Data\Weapons.XML and Data\Projectiles.xml. These define damage, firing rate,
heat etc etc. New weapons can be added to these files, then referenced in the mech data.
Each field of the weapon data should speak for itself, however there are a couple of non-vital data which exist for
aesthetic reasons, lights, firing delays etc.
If you do add a new weapon, and it fires lots of missiles, make sure you update the MultiMissileHits table in Data\Rules.XML :)
this is the information which tells the game how many missiles of the salvo actually hit.
Some very useful advice by the author of the solaris and 3050 mods:
They can be contacted at firstname.lastname@example.org for any questions or advice.
Building Mech common errors
When and What they mean and Other tips!
If it crashes right at the start of "Mods" loading:
-cause-a "meshes.xml" reading issue ((somethings not going to the right spot.
*repair* check to make sure---
That the three letters at the beginning of each part match up and are Unique to the mech only, [example:->ndi<-skeleton]))
That the Path value is going to the correct folder/mech!!
That all parts are actually in the folder you're using..and make certain to COPY the parts, not CUT..or that can cause the same issue!
!!That you actually put your new mech IN the meshes.xml file!!!!
If it crashes while "Meshes" are loading.
-cause- there is/are incomplete lines in the actual MECH.xml or the .xml is corrupt (which randomly happens.)
*repair* go over your mech lines with a fine toothed comb ..or start over.
--easy way to check if the file is corrupt. Just try to open it by doulbe-clicking, which should cause it to open in an Explorer page (or primary browser)
If it crashes when selecting an option that would lead to the mech option screen
-cause-could mean there is a part missing in your mech folder, not defined right in MECH.xml (where you put the 3 letters before skeleton torso and ect. , or something is not defined in the meshes file is not defined correctly.
*repair* -- just go in and fix, replace files as needed
If it crashes once you've selected your mechs and you hit the start button.
-cause- a weapon is probably not defined right. Check to make sure you spelled the weapons right in the first section
If it crashes in game?....good luck.
-------------its MUCH easier when first starting to do it a step at a time. A key thing to always remember is back up your folder....OFTEN!!! Don't find yourself with a random corrupt file and you losing the 20 new mechs you've just created before this one!
STEP1- Copy a mech completely and rename the file and .xml within. Open the mech .xml (i use cooktop2.5-a free .xml creator/editor) and alter the sources for each body part and the main name ...then add it to meshes.xml
STEP2- TEST IT!!!
if it works you've done well, if not..you've not define something correctly so go back and check!!
STEP3- Next try changing the armor stats and movement! ...if you passed step1 and you only alter these few things, it should be an easy step to pass an ultimately add into another later on down the road.
STEP4- TEST IT!!!
if something has failed...then you altered more than the armor and movement!! Fall back and see if you accidently deleated an extra line or a SINGLE key letter or symbol needed for the code to be read by the game.
STEP5- WEAPONS!!!...try adding a weapon one at a time! No shame in it!...make sure when defining the weapon in the first section to spell it correctly..the abreviation doesn't matter so much but the first weapon value name does!! If you don't know it..just open the "weapons.xml" those are all tested and work!
-Remember once you've placed it uptop, you have to put it down where ever you want it the mech which is seporated by each part of the meck...arms...legs...torso(s)..and head.
STEP6- TEST IT!!
if a- the game crashes...then you've defined the weapon wrong in the first section
if b- the weapon is on your list but grayed out...then you've done one of two things.
Not given it enough slots within the mech on the part section (lower of the sheet)...check the weapons.xml to see how many slots it requires..
--From this point its all about the weapons, add what you want where you want and make sure it works. Then move on to the visuals!
when / if you're trying to define size and shape of a mech visualy, this is done in the "meshes.xml"
--you should remember that altering even one part can cause all other parts to not fit correctly, so have some time before you attempt this!!
Take some time and play with it!
--if you want to remove arms, you need to remove the source code in both the meshes.xml AND the mech.xml or it will crash the system.
You cant remove legs yet...if you do, you'll only be able to move on hex at a time.