<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.outpost2.net/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.outpost2.net/wiki/feed.php">
        <title>Outpost Universe Wiki - op2_sdk</title>
        <description></description>
        <link>https://wiki.outpost2.net/wiki/</link>
        <image rdf:resource="https://wiki.outpost2.net/wiki/_media/logo.png" />
       <dc:date>2026-08-19T07:19:10+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:create_msvczip?rev=1538926040&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:creating_tech_trees?rev=1478146482&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:custom_scenario_checklist?rev=1483948503&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:dayandnight?rev=1476307966&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:debugging_scenarios?rev=1610164800&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:disasters?rev=1483034105&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:editing_map_tilesets?rev=1498368470&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:mapmaking?rev=1501116647&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:morale?rev=1476307966&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:music?rev=1476307966&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:placing_units?rev=1476307966&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:playercolor?rev=1481996074&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:programming_scenario_dlls?rev=1609833118&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:projectcreation_tempnew?rev=1609832867&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:projectcreation?rev=1615065958&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:projectsettings?rev=1478194852&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:scenario_naming_conventions?rev=1476307966&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:setting_alliances?rev=1481995823&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:setting_resources?rev=1478282088&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:software_development_kit_sdk?rev=1592069942&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:textdialogbox?rev=1482951809&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.outpost2.net/wiki/op2_sdk:victory_and_defeat_conditions?rev=1476307966&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.outpost2.net/wiki/_media/logo.png">
        <title>Outpost Universe Wiki</title>
        <link>https://wiki.outpost2.net/wiki/</link>
        <url>https://wiki.outpost2.net/wiki/_media/logo.png</url>
    </image>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:create_msvczip?rev=1538926040&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-07T15:27:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>create_msvczip</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:create_msvczip?rev=1538926040&amp;do=diff</link>
        <description>Create MSVC.zip

These steps are for installing Build Tools for Visual Studio on Windows and then packaging them up to be use inside of a Wine install on Linux or MacOS. See Project Creation for more details.

The first few steps for creating this are the same as installing Build Tools on Windows,</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:creating_tech_trees?rev=1478146482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-03T04:14:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>creating_tech_trees</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:creating_tech_trees?rev=1478146482&amp;do=diff</link>
        <description>Creating Tech Trees

Outpost 2 Tech Trees can be highly customized for individual scenarios. Each tech tree is a a .txt file that is parsed by Outpost 2 and may be used by multiple scenarios.

Outpost 2 shipped with several different tech trees. Each of these can be used on a new scenario instead of designing a new tech tree. Tech trees pre-included with Outpost 2 game distributions are often stored in .vol files. The</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:custom_scenario_checklist?rev=1483948503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-09T07:55:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>custom_scenario_checklist</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:custom_scenario_checklist?rev=1483948503&amp;do=diff</link>
        <description>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.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:dayandnight?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dayandnight</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:dayandnight?rev=1476307966&amp;do=diff</link>
        <description>Day and Night Cycles

Reviewed For: SDK 2.1

Scenario Day and Night Cycles can be manipulated through the SDK. Day and Night settings should be set in the InitProc() function and have three different basic settings.

	* Day/Night cycles over time
	*</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:debugging_scenarios?rev=1610164800&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-09T04:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debugging_scenarios</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:debugging_scenarios?rev=1610164800&amp;do=diff</link>
        <description>Debugging Custom Scenario DLLs

Since we do not have access to the Outpost 2 source code or program debug database (PDB file), we cannot step through the Outpost 2 executable code or compare the stack trace with source code. However, we can still debug custom scenario DLLs.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:disasters?rev=1483034105&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-29T17:55:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>disasters</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:disasters?rev=1483034105&amp;do=diff</link>
        <description>Disasters

Reviewed for SDK 2.1

All disasters in Outpost 2 are fully supported by the SDK. This section covers Meteors, Electrical Storms, Earthquakes, and Vortices. Volcanoes are handled in the Volcano Section here: Volcanoes.

When setting a disaster, you are setting when the first warning that the disaster will occur. No disaster can occur at mark 0 (when a scenario first starts). Even if you set a disaster to immediately occur, it actually will not happen until about mark 10-15. The excepti…</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:editing_map_tilesets?rev=1498368470&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-25T05:27:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>editing_map_tilesets</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:editing_map_tilesets?rev=1498368470&amp;do=diff</link>
        <description>Editing Map Tilesets

Outpost 2 maps consist of a 2D grid of cells. Each cell contains a tile which is a texture pulled from a tileset image. Each tile is 32×32 pixels.

Outpost 2 tilesets are 8bpp BMPs with indexed color palettes. The stock Outpost 2 BMPs are all named well00XX.bmp and stored in the maps.vol archive file. Each tileset is exactly 1 tile wide (32 pixels) and a varying number of tiles tall.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:mapmaking?rev=1501116647&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-27T00:50:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mapmaking</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:mapmaking?rev=1501116647&amp;do=diff</link>
        <description>Outpost 2 Mapmaking



Each Outpost 2 scenario (sometimes called a mission) requires a supporting .MAP file. The MAP file contains the tiles and associated metadata required to create a swath of New Terran Terrain. Typically, maps are created and edited with the OP2Mapper. Preexisting maps may be used for new scenarios with no modifications. For inspiration, see the current maps here:</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:morale?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>morale</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:morale?rev=1476307966&amp;do=diff</link>
        <description>Morale

Reviewed For: SDK 2.1

Colony morale can be set as either fixed or variable individually per colony. If creating a multiplayer scenario, check to see if the players' desire steady morale and set appropriately. For land rush games, consider setting morale as fixed until after the player establishes a base.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:music?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>music</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:music?rev=1476307966&amp;do=diff</link>
        <description>Music

Reviewed For: SDK 2.1

Each scenario in Outpost 2 can be tailored to use a specific subset of the available in game music. All music tracks are represented in the enum SongIds. In order to customize the tracks, place an array of SongIds in the scenario. Then inform the game of the array via the function</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:placing_units?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>placing_units</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:placing_units?rev=1476307966&amp;do=diff</link>
        <description>Placing Units

Reviewed For: SDK 2.1

The Unit class represents all buildings and vehicles in Outpost 2. New units should be created using the function CreateUnit defined in TethysGame.h. Initial Units should be defined within the function InitProc()</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:playercolor?rev=1481996074&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-17T17:34:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>playercolor</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:playercolor?rev=1481996074&amp;do=diff</link>
        <description>Player Color

Player colors can be set using the SetPlayerColor function from TethysGame. Seven different colors are available and can be referenced through the PlayerColor enum. 



// Color of structures and units belonging to a given player
enum PlayerColor
{
	PlayerBlue = 0, //Standard Eden color
	PlayerRed,      //Standard Plymouth color
	PlayerGreen,
	PlayerYellow,
	PlayerCyan,
	PlayerMagenta,
	PlayerBlack     //Not selectable as a player color from the multiplayer game initialization scre…</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:programming_scenario_dlls?rev=1609833118&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-05T07:51:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming_scenario_dlls</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:programming_scenario_dlls?rev=1609833118&amp;do=diff</link>
        <description>Programming a Scenario

A complete Outpost 2 scenario (or mission) requires 3 files to work: a DLL, a MAP file, and a tech tree file. This page focuses on programming the DLL file. Outpost 2 scenarios are coded in C++ and require using legacy features of the language. See the</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:projectcreation_tempnew?rev=1609832867&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-05T07:47:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projectcreation_tempnew</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:projectcreation_tempnew?rev=1609832867&amp;do=diff</link>
        <description>Outpost 2 Scenario Project Creation Settings

Reviewed For: SDK 2.1 using Visual Studio 2017 or Visual Studio Code

Creating new Outpost 2 scenarios requires programming and compiling a new DLL (dynamic link library). This articles reviews specific instructions on preparing Visual Studio to program a scenario DLL. See the .</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:projectcreation?rev=1615065958&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-06T21:25:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projectcreation</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:projectcreation?rev=1615065958&amp;do=diff</link>
        <description>Outpost 2 Scenario Project Creation Settings

Reviewed For: SDK 2.1 &amp; Visual Studio 2015

Creating new Outpost 2 scenarios requires programming and compiling a new DLL (dynamic link library). This articles reviews specific instructions on preparing Visual Studio to program a scenario DLL. See the .</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:projectsettings?rev=1478194852&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-03T17:40:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projectsettings</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:projectsettings?rev=1478194852&amp;do=diff</link>
        <description>Development Environment Project Settings

This page lists common development environment customizations when creating Outpost 2 scenario DLLs using Visual Studio. The customizations include changing the target file name, copying files to a new directory on post build, referencing Outpost 2 from Visual Studio, and debugging. You should have Visual Studio running and compiling basic scenario DLLs before proceeding.............</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:scenario_naming_conventions?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>scenario_naming_conventions</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:scenario_naming_conventions?rev=1476307966&amp;do=diff</link>
        <description>Scenario Naming Conventions

Each Outpost 2 scenario has an associated DLL. The scenario's DLL must follow the naming conventions below for Outpost 2 to register it.

The max character count is 7, not including the file's extension.

Scenario Naming Conventions</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:setting_alliances?rev=1481995823&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-17T17:30:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>setting_alliances</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:setting_alliances?rev=1481995823&amp;do=diff</link>
        <description>Setting Alliances

Reviewed For: SDK 2.1

Player Alliances can be set on game initialization for both multiplayer and colony scenarios. For a full alliance, remember to set both players as allied to each other. See sample below.

Related Source Code</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:setting_resources?rev=1478282088&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-04T17:54:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>setting_resources</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:setting_resources?rev=1478282088&amp;do=diff</link>
        <description>Setting Resources

Reviewed For: SDK 2.1

Colony resources can be set or retrieved for any player whether they are human controlled or AI controlled. Typically, resources values are reduces or increased based on the difficulty selected by the player.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:software_development_kit_sdk?rev=1592069942&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-13T17:39:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>software_development_kit_sdk</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:software_development_kit_sdk?rev=1592069942&amp;do=diff</link>
        <description>Outpost 2 Software Development Kit (SDK)



The Outpost Universe community has diligently maintained and extended Outpost 2 through modifying the original game and creating an API that allows adding new content. Notably, new maps can be designed, new scenarios created for new or old maps, new map tiles can be added, and technology trees can be manipulated. A listing of current maps for the game can be found in the</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:textdialogbox?rev=1482951809&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-28T19:03:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>textdialogbox</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:textdialogbox?rev=1482951809&amp;do=diff</link>
        <description>In Game Text Dialog Box

The Outpost 2 SDK supports adding custom dialog boxes during single player scenarios. Often dialog boxes are used to provide mission briefings or background story for colony missions. Sierra's odasl library can format dialog boxes to match the Outpost 2 UI theme.</description>
    </item>
    <item rdf:about="https://wiki.outpost2.net/wiki/op2_sdk:victory_and_defeat_conditions?rev=1476307966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-12T21:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>victory_and_defeat_conditions</title>
        <link>https://wiki.outpost2.net/wiki/op2_sdk:victory_and_defeat_conditions?rev=1476307966&amp;do=diff</link>
        <description>Victory and Defeat Conditions

Reviewed For: SDK 2.1

Outpost 2 scenarios can contain multiple conditions to stipulate either victory or defeat. These conditions can be dynamically enabled or disabled as game play progresses to shift a scenario's focus.</description>
    </item>
</rdf:RDF>
