======Custom X-Wing Alliance Missions in Multiplayer Mode====== //Original Article by G_Redeye// This article describes a **general way** of storing and playing **custom XWA missions** which are created in **.tie mission file format** and playable in **multiplayer mode.** Additionally, the file structure described below provides a **framework** which supports creating, editing and exchanging **custom multiplayer XWA missions.** The **topic of creating and editing custom XWA .tie missions itself** requires a separate article therefore it's not detailed here. =====Essential Definitions===== ====File Components of a Custom Mission==== ***Mission (.tie) File** ***Attached Skirmish File** ***Voice Files (not required)** ***Voice List (.lst) File (not required)** ====Basic Folders==== ===XWA Installation Folder=== Referred to as **XWA_INSTALLATION_FOLDER.** It's the folder where XWA has been actually installed. The path and name of this folder is **optional.** Examples for the path and name of **XWA_INSTALLATION_FOLDER:** C:\Program Files\LucasArts\XWingAlliance\ D:\XWingAlliance\ E:\XWingAlliance\ ===Basic Folder For Custom Missions=== The path and name of the folder is: XWA_INSTALLATION_FOLDER\Mp_mission\Custom **Mission (.tie) file** and **voice list (.lst) file** components as well as some other files (e.g. mission description file) **of each custom mission** are assumed to be located in this folder. Examples: C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom D:\XWingAlliance\Mp_missn\Custom E:\XWingAlliance\Mp_missn\Custom The subfolder named **\Mp_missn\Custom** is manually created. ====Mission (.tie) File==== Referred to as "mission file" or ".tie file". It's the main component which actually contains the mission itself. It's stored in a so called ".tie" file format what's directly readable by XWA mission engine and editable using [[http://troyed.com/x-wing/|AlliED XWA Mission Editor Tool.]] The path and filename format used for storing **mission (.tie) files** is assumed to be XWA_INSTALLATION_FOLDER\Mp_mission\Custom\Missn???.tie where "???" means the 3 digit number (e.g. 001, 002, 010, 150) of the custom mission which the mission file belongs to Examples: C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\Missn001.tie C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\Missn002.tie D:\XWingAlliance\Mp_missn\Custom\Missn010.tie E:\XWingAlliance\Mp_missn\Custom\Missn150.tie ====Attached Skirmish File==== Referred to as "skirmish file" or ".skm file". The skirmish file component of a custom mission is mainly used to assign players to the flyable Fighter Groups of the custom mission using **XWA Quick Skirmish menu.** At the same time, **XWA Quick Skirmish menu** enables players to change craft type, craft number, weapons and countermeasures of the flyable Fighter Groups of the custom mission. Fighter Group changes made by players in **XWA Quick Skirmish menu** override the default Fighter Group settings stored in .tie mission file component of the custom mission. Skirmish file component is needed to be present **on host side** when a custom mission is flown in multiplayer mode. The path and filename format used for storing skirmish files is assumed to be XWA_INSTALLATION_FOLDER\SKIRMISH\Missn??? - *.skm where *"???" means the 3 digit number (e.g. 001, 002, 010, 150) of the custom mission which the skirmish file belongs to *"*" means any arbitrary character string what fits into a standard file name (it may not contain e.g. "\", ":" or "?" characters) Examples: C:\Program Files\LucasArts\XWingAlliance\SKIRMISH\Missn001 - Escort Rebel Fleet.skm C:\Program Files\LucasArts\XWingAlliance\SKIRMISH\Missn002 - Battle of Endor.skm D:\XWingAlliance\SKIRMISH\Missn010 - The Shield Is Down!.skm E:\XWingAlliance\SKIRMISH\Missn150 - Death Star Tunnel Run.skm ====Voice Files==== Referred to as "voice files" or ".wav files". These are the radio message voice files of the missions stored in ".wav" sound file format. Basicly, there are two kinds of voice files, **original XWA voice files** and **custom voice files** (which are created/imported by the author of the custom missions). Any custom mission may use **both.** Examples for voice files (of "Battle of Endor", XWA_DISK_2\WAVE\MISSIONVOICE\B7M1\): M070101.WAV M070102.WAV M070103.WAV M070104.WAV ... ===Voice File Folders=== **Original XWA voice files** can be found in the **subfolders** of the following folders: XWA_DISK_1\WAVE\ XWA_DISK_2\WAVE\ Examples for these subfolders: F:\WAVE\AERON_AZZAMEEN\ (XWA DISK 1 AND 2) F:\WAVE\MISSIONVOICE\B0M1\ (XWA DISK 1) F:\WAVE\MISSIONVOICE\B0M9\ (XWA DISK 1) F:\WAVE\ZALETTA\ (XWA DISK 2) **Original XWA voice files** can be copied into any **subfolder** of the folder XWA_INSTALLATION_FOLDER\WAVE\ Examples for these subfolders: C:\Program Files\LucasArts\XWingAlliance\WAVE\AERON_AZZAMEEN\ C:\Program Files\LucasArts\XWingAlliance\WAVE\MISSIONVOICE\B0M1\ D:\XWingAlliance\WAVE\MISSIONVOICE\B0M9\ E:\XWingAlliance\WAVE\ZALETTA\ **XWA_INSTALLATION_FOLDER\WAVE\** folder doesn't exist by default. It must be created manually or with [[http://troyed.com/x-wing/|AlliED]] or by installing [[http://xvt.uharc.net/download:xwasolo|Multiplayer XWing-Alliance Solo Campaign Mission Pack.]] **Once the folder is created, XWA automatically uses it as an alternative voicefile main folder.** Assumed subfolder(s) of **custom voice files** of custom missions: XWA_INSTALLATION_FOLDER\WAVE\Missn???\ where "???" means the 3 digit number (e.g. 001, 002, 010, 150) of the custom mission which the **custom voice files** belong to. Of course more of the custom missions can refer to the same **custom voice file(s).** Examples for such subfolders: C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn001\ C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn002\ D:\XWingAlliance\WAVE\Missn010\ E:\XWingAlliance\WAVE\Missn150\ ====Voice List (.lst) File==== Referred to as "voicelist file" or ".lst file". A textfile with ".lst" extension which contains a list of the radio message voice files played during the mission. ===Assumed path and filename format used for storing voicelist (.lst) files=== XWA_INSTALLATION_FOLDER\Mp_mission\Custom\Missn???.lst where "???" means the 3 digit number (e.g. 001, 002, 010, 150) of the custom mission which the voicelist file belongs to Examples: C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\Missn001.lst C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\Missn002.lst D:\XWingAlliance\Mp_missn\Custom\Missn010.lst E:\XWingAlliance\Mp_missn\Custom\Missn150.lst ===Line Format of Voicelist Files=== Each line of a voicelist file consists of the relative path and filename of the voice file that will be played when the corresponding message appears while a mission is being played. The path segment of each voicelist file line is given relatively to **XWA_INSTALLATION_FOLDER\WAVE\** and **XWA_DISK\WAVE\** folders - XWA searches in both of these folders for voice files. For example, assuming that the following set of voice files should be played during a custom mission and XWA DISK 2 is in CDROM drive: C:\Program Files\LucasArts\XWingAlliance\WAVE\MISSIONVOICE\B0M1\M000101.WAV C:\Program Files\LucasArts\XWingAlliance\WAVE\MISSIONVOICE\B0M5\M000501.WAV C:\Program Files\LucasArts\XWingAlliance\WAVE\MISSIONVOICE\B0M9\M000901.WAV F:\WAVE\AERON_AZZAMEEN\A0AE001.WAV F:\WAVE\MISSIONVOICE\B1M1\M010101.WAV F:\WAVE\MISSIONVOICE\B7M4\M070401.WAV F:\WAVE\ZALETTA\G0ZL001.WAV the corresponding voicelist file lines would be the following ones: MISSIONVOICE\B0M1\M000101.WAV MISSIONVOICE\B0M5\M000501.WAV MISSIONVOICE\B0M9\M000901.WAV AERON_AZZAMEEN\A0AE001.WAV MISSIONVOICE\B1M1\M010101.WAV MISSIONVOICE\B7M4\M070401.WAV ZALETTA\G0ZL001.WAV Note: Using of "/" (forward slash) is also allowed as path and filename separator in voicelist file lines. It results from the path and folder name definition of **custom voice files** (see it above), that voicelist file lines which refer to **custom voice files** must be formatted as follows: Missn???\*.wav where *"???" means the 3 digit number (e.g. 001, 002, 010, 150) of the custom mission which the **custom voice file** belongs to *"*" means any arbitrary character string what fits into a standard file name (it may not contain e.g. ":" or "?" characters) For example, assuming that the following set of **custom voice files** should be played during a custom mission: C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn001\Msg00001.wav C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn002\Msg00002.wav C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn010\Msg00003.wav C:\Program Files\LucasArts\XWingAlliance\WAVE\Missn150\Msg00004.wav the corresponding voicelist file lines would be the following ones: Missn001\Msg00001.wav Missn002\Msg00002.wav Missn010\Msg00003.wav Missn150\Msg00004.wav =====Batch Files Used For Custom Missions===== ====Download Link==== All of the batch files used for custom missions can be downloaded from [[http://gururedeye.webs.com/XWingAlliance/Mp_missn.rar|here.]] The downloadable pack contains batchfiles which aren't documented here. Those which aren't documented are used for [[http://xvt.uharc.net/download:xwasolo|Multiplayer XWing-Alliance Solo Campaign Mission Pack.]] ====Basic Folder For Batch Files==== The path and name of the folder is: XWA_INSTALLATION_FOLDER\Mp_mission\ All batch files used for custom missions are assumed to be located in this folder. All of the path references in the batch files are given relatively to this folder. The folder doesn't exist by default, it's created manually or by installing [[http://xvt.uharc.net/download:xwasolo|Multiplayer XWing-Alliance Solo Campaign Mission Pack.]] Examples for the folder: C:\Program Files\LucasArts\XWingAlliance\Mp_missn\ D:\XWingAlliance\Mp_missn\ E:\XWingAlliance\Mp_missn\ ====Batch File List==== ***Cpy_misn.bat** ***Copy_skm.bat** ***Del_cskm.bat** ***Cpy_misv.bat** ====Cpy_misn.bat==== **This is the only batch file that's actually needed to fly custom XWA .tie missions.** ===Purpose of Cpy_misn.bat=== *Copying mission (.tie) file component of a custom mission into **XWA_INSTALLATION_FOLDER\SKIRMISH\** subfolder renaming it to **"temp.tie"** *Deleting **"temp.lst"** file from **XWA_INSTALLATION_FOLDER\WAVE\MISSIONVOICE\** subfolder to prevent mission voice of previously played custom mission from being heard while playing the actual custom mission when the actual custom mission doesn't have its own voice files. *If the custom mission has its own voice files (not required), copying voicelist (.lst) file of the custom mission into **XWA_INSTALLATION_FOLDER\WAVE\MISSIONVOICE** subfolder renaming it to **"temp.lst"** ===Usage=== - Create a shortcut for **Cpy_misn.bat** (recommended, it can also be run from start menu) - Run XWA, go to Combat Simulator / Quick Skirmish menu (performed in one single step using a matchmaking client like [[http://voobly.com/|Voobly)]] - Load the **skirmish file component** of the custom mission - **"Missn??? - *.skm"** - and place (each of) your player name(s) into the desired Fighter Group(s) - (All) hit the helmet at bottom right, then immediately after getting into the game, (host/all) quit - After quitting the game, **staying in Player Statistics / Mission Overview menu,** (all) alt-tab from XWA to desktop - Doubleclick on the shortcut you've created for **Cpy_misn.bat** (or run it from start menu) - **Cpy_misn.bat** will ask you to enter the 3 digit number of the desired **custom XWA .tie mission** (examples for the number to be entered are 001, 002, 010 or 150) - After running **Cpy_misn.bat** and entering the mission number, alt-tab back to XWA, and **staying in Player Statistics / Mission Overview menu,** (host) hit the helmet at the bottom right (Fly Again) ===Example for using Cpy_misn.bat=== Assuming the custom XWA .tie mission to be flown is mission 1, **Cpy_misn.bat dosbox** should look like: Enter a 3 Digit Mission Number (examples: 002, 010, 150): 001 C:\Program Files\LucasArts\XWingAlliance\Mp_missn>COPY ".\Custom\Missn001.tie" "..\SKIRMISH\Temp.tie" /Y 1 file(s) copied C:\Program Files\LucasArts\XWingAlliance\Mp_missn>DEL "..\WAVE\MISSIONVOICE\Temp.lst" C:\Program Files\LucasArts\XWingAlliance\Mp_missn>IF EXIST ".\Custom\Missn001.lst" COPY ".\Custom\Missn001.lst" "..\WAVE\MISSIONVOICE\Temp.lst" /Y 1 file(s) copied Removing temporarily used environment variable to free up environment space... Press any key to continue . . . ====Copy_skm.bat==== **Using Copy_skm.bat is not required to fly custom XWA .tie missions.** Basicly created to support an alternative way of storing skirmish file components of custom missions. There can be need to keep the skirmish file components of the custom missions in the same folder where the main custom mission components "reside" - **XWA_INSTALLATION_FOLDER\Mp_mission\Custom** - copying them into their "functional" folder - **XWA_INSTALLATION_FOLDER\SKIRMISH\** - only when it's needed. Using **Copy_skm.bat** "in couple" with **Del_cskm.bat** is useful to completely separate skirmish files created for **custom .tie missions** from the other skirmish files which "reside" in **XWA_INSTALLATION_FOLDER\SKIRMISH\.** ===Purpose of Copy_skm.bat=== Copying skirmish (.skm) file components of each custom mission from **XWA_INSTALLATION_FOLDER\Mp_mission\Custom** into **XWA_INSTALLATION_FOLDER\SKIRMISH\.** ===Usage=== - Create a shortcut for **Copy_skm.bat** (recommended, it can also be run from start menu) - Doubleclick on the shortcut you've created (or run **Copy_skm.bat** from start menu) ====Del_cskm.bat==== **Using Del_cskm.bat is not required to fly custom XWA .tie missions.** **Del_cskm.bat** is basicly created to remove all the **custom mission skirmish files** copied into **XWA_INSTALLATION_FOLDER\SKIRMISH\** subfolder by **Copy_skm.bat.** This way the **skirmish file component** of each custom mission will "reside" only in custom mission basic folder - **XWA_INSTALLATION_FOLDER\Mp_mission\Custom** - together with the rest of the file components of the custom missions. ===Usage=== - Create a shortcut for **Del_cskm.bat** (recommended, it can also be run from start menu) - Doubleclick on the shortcut you've created (or run **Del_cskm.bat** from start menu) ====Cpy_misv.bat==== **Using Cpy_misv.bat is not required to fly custom XWA .tie missions.** Similarly to Copy_skm.bat, **Cpy_misv.bat** is also created to support keeping **custom voice file containing folders** of custom missions in the same main folder where main file components of custom missions "reside", with a difference that the assumed path for the custom voice folders is **XWA_INSTALLATION_FOLDER\Mp_mission\Custom\WAVE.** Examples for custom mission voice file containing folders "residing" in **\WAVE** subfolder inside basic custom mission folder: C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\WAVE\Missn001\ C:\Program Files\LucasArts\XWingAlliance\Mp_missn\Custom\WAVE\Missn002\ D:\XWingAlliance\Mp_missn\Custom\WAVE\Missn010\ E:\XWingAlliance\Mp_missn\Custom\WAVE\Missn150\ ===Purpose of Cpy_misv.bat=== *Creating **XWA_INSTALLATION_FOLDER\WAVE** and **XWA_INSTALLATION_FOLDER\WAVE\MISSIONVOICE\** subfolders. If the subfolders already exist, these steps are **skipped.** *Copying each of the **subfolders** which contain the **custom voice (.wav) files** of the custom missions (Missn??? subfolders) from **XWA_INSTALLATION_FOLDER\Mp_mission\Custom\WAVE** folder into **XWA_INSTALLATION_FOLDER\WAVE\** folder. ===Usage=== - Create a shortcut for **Cpy_misv.bat** (recommended, it can also be run from start menu) - Doubleclick on the shortcut you've created (or run **Cpy_misv.bat** from start menu) =====Exchanging Custom XWA Missions===== An essential feature of the file structure is the **3 digit number** which is assigned to each custom XWA mission and identifies each of the missions. **To avoid chaos while exchanging custom XWA mission files, it is strongly recommended that the authors of custom XWA missions agree of which number should be assigned to which custom mission.** Once this "global" number assignment to each mission has been completed, the authors must revise all the file/folder components of each of the missions to be exchanged according to the new mission order. **If there's need to modify the 3 digit identifier of a custom mission, name/content of each of its file/folder components must be revised according to its new identifier in the mission order.**