MvM Mission Processing is a surprisingly complex process as most missions only work under specific scenearios or feature an abundance of extra required downloadable content. In order to drastically improve server and player performance with the sheer number of missions we host, we have a fairly straightfoward system in place to process the bulk of content we host.
Popfile: Popfiles are scripts that either
Mission File: These are popfiles that contain mission data that the server loads to run a mission.
Template File: These are popfiles that strictly contain specific robot configurations that can be used as dependencies in mission popfiles.
Orphan Mission: These are missions that are not associated with any map located in the server directory. By definition, template files fall under this category, but a late update to data entry will be able to strip these out entirely.
The content page is an organized list of maps and accompanying missions that are either on rotation or have the potential to be. It is the quickest way to traverse the list of maps or missions that would need to be maintained.
The tours page is where mission tours can be managed. Previously, this section is where missions could be associated with a tour, but this is now done on the popfile page.
The health checkup page is a series of lists that contain information related to general upkeep. Broken missions, missing downloads, etc.
The scripts toolbox is located on the main MvM panel page and contains a series of scripts related to server upkeep that wouldn't be found in any specific page elsewhere.
Ideally speaking, the order of processing should start with missions, and end with maps. Maps generally require a reprocessing if any associated mission has been.
SCG uses a mission parser to extract important information out of a popfile that is used for assorted purposes, this includes the following:
These details are stored in a database of mission information. Entries in this database can be edited later on with additional information like author credits, server rotation limitations, what tours they belong to, etc.
Missions can be processed by visiting their respective content page, and running the script that can be found in the scripts section.
Map database records contain important information meant for server upkeep and organization. These records often contain the following:
Map database records are not automatically updated at this time and will need to be manually reprocessed in any of the following scenarios.
A map can be reprocessed at any time by visiting the Reprocess Map script in the scripts section, or every map can be reprocessed at once using the
Maps can contain custom information such as a display name and authors. This can be edited by visiting the map's content page and using related form.
At this time, it is not possible to adjust the map rotation options from this panel.
After any applicable maintenance and setting changes have been done, there are only a few more steps that need to take place.
The data sheet keeps track of the following things, and will need to be regenerated before any of the following's changes take effect.
When the sheet is regenerated manually, the plugin will need to be reloaded for the changes to take effect. If the plugin is changed, the map must also be manually changed because it will temporarily break voting functionality.
The missioncycle is a type of config file that contains all avaliable missions the server has, split into several categories. The missioncycle file we use is automatically generated based on the missions we have, split into assorted categories. This file is read from sequentially as missions are played and finished, when a mission is complete, it will locate it on the file and cycle to the next mission in the same category.
In order for a map to appear in the vote menu, or in the server's general rotation, it needs to have at least one instance in the missioncycle. With our maps we have designated as "vote only", these instances will always force the server to continue to natural flow of missions it would have taken earlier if the server wasn't voted onto a different map.
The missioncycle is often the last thing that needs to be regenerated with any major changes, such as the addition, removal, or update of a map and or mission. It is automatically regenerated every day at 6:05 AM server time, but can be done manually via the Scripts Toolbox.