SCG Banner

MvM Mission Manifest


This is a technical guide, it is intended for relevant operators but anyone can benefit from knowledge

The MvM Mission Manifiest is a collection of data used in SCG related to the numerous MvM missions we host. It includes file download lists, missions that are missing icons or templates, recommendations to purge or disable certain missions, and so on. This manifest is maintained using a series of scripts that process mission data.

  1. Overall process
  2. Processing missions into json files
    1. Problems and solutions
      1. Invalid syntax, expected a '}' on line X
        1. Key / Value on different lines
        2. Key / Value combined via incorrect quote placement
        3. Key / Value combined due to lack of spacing
        4. Duplicated Key
      2. Open parentheses somewhere when processing
  3. MMRS

Overall process

The manifest for the most part is left alone, only when new maps or missions are added is when anything needs to happen.

  1. Convert all popfiles to json files
  2. Run the popfile process script on all available popfiles
  3. Run the map process script on all maps in rotation

Processing missions into json files

Before missions are processed, they are condensed and transformed into a json file format for easier reading. Things like commented lines are stripped out as well.

Problems and solutions

Though rare, when a mission file cannot be processed, the script will spit out an error informing you of such. Missions that encounter problems are saved in the condensed folder in their compact format. When an error occurs on a specific line, the condensed file is the one you want to open to determine what is wrong.

Invalid syntax, expected a '}' on line X

This occurs when the script encounters what it believes to be an array but isn't closed as one. Most of the time there is a line break between a key/value pair. This can also occur because of a line above, for example, if a key/value pair on an earlier line was missing a key.

Key / Value on different lines

Ex. Wrong

{
	Template	T_TFBot_Trail_Buster
	Attributes
	AlwaysCrit
}

Ex. Right

{
	Template	T_TFBot_Trail_Buster
	Attributes	AlwaysCrit
}

Key / Value combined via incorrect quote placement

Ex. Wrong

{
	"damage bonus"	1.5
	"attack projectiles 1"
}

Ex. Right

{
	"damage bonus"	1.5
	"attack projectiles" 1
}

Key / Value combined due to lack of spacing

Ex. Wrong

{
	Name	"w2b"
	WaitForAllDead"w2a"
	Where	spawnbot

Ex. Right

{
Name "w2b"
WaitForAllDead "w2a"
Where spawnbot

Duplicated Key

Ex.Wrong

ItemAttributes
ItemAttributes
{
ItemName tf_weapon_grenadelauncher
"sticky detonate mode" 1

Ex. Right

ItemAttributes
{
ItemName tf_weapon_grenadelauncher
"sticky detonate mode" 1

Open parentheses somewhere when processing

This is technically simply a missing parentheses, and 99% of the time it occurs at the very bottom of the population file. Perhaps it was missing the closing bracket, or in some cases, had plain text included after the closing bracket.

Very rarely, it can occur when an array of brackets exists without a key, like so.

ItemAttributes
{
ItemName tf_weapon_grenadelauncher
"sticky detonate mode" 1
"clip size upgrade atomic" 1.5
}
{
ItemName tf_weapon_pipebomblauncher
"Projectile range increased" 0.5
}
ItemAttributes
{
ItemName "the scottish resistance"
"sticky arm time penalty" 0.3
}

MMRS

The MMRS or MvM Mission Recommendation System is the overall tool used to managed suggested actions with missions. The tool will highlight and recommend actions be done on missions that contain words such as "test", are missing templates, critical downloads such as files, and so on. It is accessed by MvM operators directly through the admin panel.