Skip to content

Game Modifications ‐ Missxx.ini

Moburma edited this page Nov 12, 2024 · 5 revisions

The missxxx.ini files are how the fan port stores Syndicate Wars campaigns and mission objectives of every level in the game. In the original DOS release of the game, there were multiple files called ALLXXX.MIS that contained this data. However the game only supported using one of them, and they were in a complex proprietry structure that was difficult to edit (as the intention was players should never touch it). With the fan port this data is now presented as a text based .ini file that can be edited in any text editor, and without complex knowledge of the data structure. By editing these files it's now possible to change the properties of the campaign and the objectives the player must achieve to complete the missions that make up the campaign.

miss000.ini - original Eurocorp campaign

miss001.ini - original Church of the New Epoch campaign

miss002.ini - Recreation of the unfinished cut Unguided campaign

miss003.ini - a bonus campaign of the large number of leftover cut levels included with the game arranged to make them playable

miss099.ini - multiplayer levels list

Header/common values

These are defined at the top of the file.

TextName - The name of the campaign

TextId - The text ID in text.dat containing this campaign name

Type - Type of campaign, single player (SP) or multiplayer (MP)

Selectable - Whether this campaign is selectable when starting new game

MissionsCount - Total number of missions in the file

FirstTrigger - The first mission index triggered for play at the start of the campaign

NetscanTextId - Text ID in (text.dat) containing string for "Netscan" button for this start mission

WeaponsTextIdShift - TextID shift added to weapon TextID to get weapon name string

StandardWeapons - Which weapons the player starts with already researched and available for purchase at the start of the campaign

ResearchWeapons - Weapons available to research at the start of the campaign

StandardMods - Cyborg mods the player starts with already researched and available for purchase at the start of the campaign

ResearchMods - Cyborg mods available to research at the start of the campaign

TextFnMk - Single character prefix used in file names for text translations. s = Syndicate (Eurocorp), z = zealot (Church of the New Epoch)

ProjectorFnMk - Single character prefix used for file names for menu background and animations. s = Syndicate (Eurocorp), z = zealot (Church of the New Epoch)

OutroFMV - Outro Full Motion video file name (data/outro-s.smk for Eurocorp, data/outro-z.smk for Church of the New Epoch)

OutroBkFn - Outro background file name (data/outro-s.raw for Eurocorp, data/outro-z.raw for Church of the New Epoch)

Mission Definitions

To understand how the file works and the order of missions, the user must be aware of the following:

Mission Index Every level has an abitrary "index" number assigned to them, between 0 and 119. A mission is comprised of two things - an actual game level file (e.g. C060L015.DAT), and the mission objectives for the level, defined in the entry in the missxxx.ini campaign file. Without a mission index entry, a level cannot be played, and does not have any objective data. Mission index numbers for a file are used when starting a level from the command line (e.g. swars.exe -m 0,55 would start the seventh mission "Body Matters" from the Eurocorp campaign), and to link together missions in the campaign using the SuccessTrigger/SpecialTrigger commands. Note, in the original DOS game, as all campaigns were contained in the single .MIS file, every level needed a unique index number. In this fan port, they now only need to be unique within their own .ini file/campaign.

The [missionX] entry defines the mission index number, and the start of the data for that mission.

Missions have 3 main components - the main mission values (defined in e.g. [mission2]), the mission success objective values (e.g. [missuccess2]), the mission failure objective values (e.g [misfail2]) and the mission's Netscan values (e.g. [missnetscan2]). The latter two are optional if the mission is to have no specific failure criteria (i.e. the player only fails if all their units die) or no Netscan data.

Mission Definition

An actual mission index entry is defined as follows. Note a minimum of Name, SourceID, MapNo, and LevelNo are needed

Name - The internal name and details of the mission. The player cannot see this text, this is only used to store the name and any details for other developers to see

SourceID - Index of the "missN.txt" message that contains the mission briefing

MapNo - The map number (see cities.ini) the level takes place on, also used to identify the filename

LevelNo - The level file number for this map TODO - expand on naming convention

ReLevelNo - Retry/Restart level number. Because cut scenes in Syndicate Wars use the actual characters carrying out actions, they cannot be skipped. To work around this levels with intro sequence have a second level file starting at the point after the intro is finished. This variable defines the level file to load to skip the intro on retries

SuccessID - Index of the "mailN.txt" message to be opened on mission complete - Not used

FailID - Index of the "mailN.txt" message to be opened on mission fail - not used

SpecialTrigger - Activates a special set of up to three missions that will share the briefing of the first listed mission. These use the pink mission tab in the menus.

SuccessTrigger - Up to 3 mission numbers separated by spaces that are unlocked by completing this mission

FailTrigger - Up to 3 mission numbers separated by spaces that are unlocked by failing this mission - unused

ResearchWeapons - New weapons available for research after completing this mission

ExtraReward - Extra reward after mission, requires type and amount or item, e.g. Scientists 2, or WeaponResearched PERSUADER2

MissionCond - List of up to 5 missions which need to be completed as a condition to unlock the success etc triggers of this mission. Only makes sense if the other missions also have the same conditions etc. Used for e.g. not allowing the player to progress until all 3 branches of a mission tree are complete

CashReward - Number of credits awarded on completion of mission

WaitToFade - After objectives are complete, do not wait for user to press space and instead fade the screen to black and finish the mission. Number determines the speed of fade, e.g. WaitToFade - 30

ImmediateNextOnSuccess - After the mission is complete, immediatelly start the next one without returning to menu. Used for the final levels in the game's campaigns

RemainUntilSuccess - If True, the level can be failed infinitely and won't disappear from the map until the player beats it.

IsFinalMission - Set to True to define the final mission of the campaign, causes outro to be played on completion

PreProcess - After starting the level, quickly simulate that many game turns before starting at normal simulation speed

Atmosphere - Sets the mission weather and any special atmospheric settings. Two variables must be set. The first is the level location, used for special effects. This variable can be EARTH, SPACE, or MOON. EARTH and MOON determine which background ambience loops will play, whereas SPACE will also make the background a starfield (as seen in the Orbital Station level). The second variable is the weather. This can be SUNNY (no weather effect), RAINY, or SNOWY. An example would be EARTH RAINY to set a level with the standard earthbound city ambience and rain.

Netscan Entries

These determine the entries available in the "Netscan" ("inquisitor" for the zealots) information box in mission briefings. Each entry must begin from the first entry N00.

Valid types are:

NETSCAN_OBJ_TARGET( Coord(7296,0,4352) ) - Add a point on the briefing map at this coordinate. Multiple points can be added by separating with commas, e.g. NETSCAN_OBJ_TARGET( Coord(14976,0,1664), Coord(30464,0,21504)

NETSCAN_OBJ_INFORM( Cost(500), Reward(200000) ) - A hidden piece of information the player can unlock for the price listed in Cost

NETSCAN_OBJ_VIDEO( Coord(8960,0,21248), Anim(1) ) - Playback an .fli video from the path data\EQUIP\NETxx.fli. The Anim number is the number in the filename to play (less than ten does not need to be padded with a 0)

e.g.

N00 - NETSCAN_OBJ_TARGET( Coord(6528,0,20480) )

N01 - NETSCAN_OBJ_VIDEO( Coord(8960,0,21248), Anim(1) )

Clone this wiki locally