Outpost 2 Custom Scenario Checklist
Below is a checklist to review against new Outpost 2 scenarios. The checklist is designed to highlight most requirements involved in making a scenario DLL mesh with Outpost 2 programmatically and fulfill typical expectations of Outpost 2 players. This list is meant as a guide but not a rigid requirement. It is not meant to prevent someone from being creative or breaking the rules.
Reviewing the checklist before publishing a new scenario is highly recommended.
All Scenarios
- DLL Filenames: Ensure the scenario’s DLL name does not conflict with an existing scenario.
- Consider using the Mission Scanner (See Helper Programs) to check the name of scenario DLLs shipped with Outpost 2. Use the custom scenario wiki page to check established custom scenario DLL names.
- Map & Tech Tree Filenames: If using a custom map or tech tree, ensure its name does not conflict with existing map and tech tree names.
- Winning Conditions: Ensure fulfilling all scenario objectives forces the winning player(s) to win
- Losing Conditions: Ensure the scenario can be lost if proper conditions are met.
- For multiplayer scenarios, consider not forcing a player to lose even when they are destroyed so they may watch the remainder of the game if they wish.
- Consider adding a short delay to losing the scenario through a time trigger. This way the player can register why they are losing before the game immediately ends.
- Common losing conditions:
- Colony population falls too low to support even the most basic structures
- Colony is no longer able to build required structures to win the game (IE structure factory destroyed and no structure factory kits available)
- Colony no longer has a CC and has no CC kit available
- Required wreckage recovered by opponent
- Map Cells Match Terrain: Ensure map cell types are set to match typical values. Impassable terrain like large rocks are I1/I2, cliffs have a high and low side, terrain speeds set appropriately.
- Bottom Row of Map Cells: Do to an internal limitation of Outpost 2, the bottom row of map cells must be set as I1 (Impassible 1).
- Music: Consider setting music playlist to match typical Outpost 2 scenario music selection (Eden vs Plymouth music). For more details, see the Music Page.
- Custom Scenario Gameplay/Rules: If the scenario contains gameplay altered from standard Outpost 2, ensure it is documented on the maps wiki page or the scenario’s main forum post. Common examples include: allowing colonists to be transferred using evac transports, forcing mining beacons to be discovered with scouts, forcing colonists to starve if food is not placed in trucks during evacuations, etc.
Land Rush Scenarios
- Morale: Keep morale steady until colony is established.
- Food Supply: Ensure starting food is sufficient to find a reasonable colony or do not allow food supply decrease until the colony is established.
Unit Only Scenarios
- Set Unit Only: Ensure the scenario is initialized as unit only so inapplicable messages are suppressed (like colony food store levels).
- Day/Night: Consider setting Day/Night to not cycle.
Single Player Specific
- Save/Load Game State: Ensure required game state data is stored in ScriptGlobal to allow saving and reloading the data as needed.
- Difficulty Settings: Ensure colony games implement more difficult gameplay based on selected difficulty.
- Common ways to differ difficulty settings:
- Increasing number of mission objectives
- Reducing player’s starting resources, research, vehicles, structures, and structure kits
- Strengthening enemy unit patrols or enemy AI
- Reducing time until eruptions and/or blight appearance
- Increasing frequency and/or strength of disasters
- Reducing number of mine sites or the richness of their minerals
- Mission Briefing: Consider adding a mission briefing modal dialog box explaining scenario specifics and backstory if applicable. (For more details, see the Creating a Tex Dialog Box Page.
Multiplayer Specific
- Scenario Name: The scenario name, as it appears within Outpost 2, should match established naming convention. For Example: 2P, LoS, 'Peacekeeper.'
- Scenario Filename: The scenario must be placed in its proper category based on filename, for example Landrush, Last One Standing, etc. (For more details, see the Scenario Naming Conventions Page.
- Morale Steady Check Box: Morale sets as variable or steady when using the check box.
- Day/Night Check Box: Day/night rotation is properly set by the check box.
- For scenarios containing the blight, consider not allowing for day/night being disabled
- Disasters On/Off Check: Disasters should be turned on/off with the check box.
- For volcanic eruptions, consider allowing them to occur even with disasters off if they are essential to the scenario.
- Initial Vehicle Count: Initial vehicles are properly set and vehicle's weapon system matches proper colony.
- For non-military scenarios, consider giving non-military initial vehicles such as additional ConVecs, robo-miners, cargo trucks, etc.
- Initial Resources: Changing initial colony resource level actually changes the player’s starting resources appropriately.
- Custom Check Box Use: If the default use of the check boxes (morale steady, day/night, disasters) or initial vehicles is altered, ensure their function is documented in the wiki maps section or the main forum post.
Official Publishing Requirements
- Program Crashing Bugs: No game crashing bugs may be present in scenario.
- Scenario Bugs: There should be no bugs in the scenario.
- if the scenario exposes a bug caused by the SDK or Outpost 2 itself, ensure the bug is documented in the wiki maps section or the scenario’s main forum post. Try to mitigate the bug as best possible.
- Content Age Suitability: The mission briefings and backstory contain content that most people would find suitable for a 13 year old.
- Outpost 2 Mods: The scenario must not depend on an Outpost 2 mod that is not included in the official Outpost 2 download. For example, Multitek 2.
Scenarios Coded from Scratch
Not using a project template as a base. For more details on why and how to implement the following requirements, see the Project Creation Page.
- DLL Load Address: Ensure the scenario’s DLL is loaded into the proper base address and that dynamic base address shifting is set to off.
- Static Project Linking: The scenario should link statically to other libraries like the standard library and OP2Helper. Statically linking to the standard library will eliminate the dependency on the host computer have Microsoft Visual Studio 2015 C++ Redistributable and improve compatibility with WINE.
- Safe Exception Handling Off: Set Safe Exception handling compiler warnings to off. Outpost 2 does not comply with Safe Exception Handling and will not compile properly in some circumstances with this setting on.
- Go Back to Mission Coding
- Go Back to Outpost 2 Main page
- Go Back to Wiki Home Page